Rute statis Windows tanpa menentukan gateway (hop berikutnya)

15

Saya memiliki skenario berikut:

Komputer A 198.51.100.8:, netmask 255.255.255.0
Komputer B 203.0.113.9:, netmask 255.255.255.0
Kedua komputer berada pada segmen LAN yang sama; tidak ada gateway default yang ditentukan dalam kedua kasus tersebut.

Untuk membuat dua komputer ini saling berkomunikasi, saya telah menambahkan dua rute statis, seperti:

route add 203.0.113.9 mask 255.255.255.255 198.51.100.8

Namun, saya lebih suka menambahkan rute statis dengan menentukan antarmuka jaringan , daripada dengan menentukan alamat IP gateway .

Ini dimungkinkan dengan Linux dengan menggunakan perintah seperti:

ip route add 203.0.113.9 dev eth0

dan juga di FreeBSD:

route add 203.0.113.9/32 -iface fxp0 -cloning

Namun, saya bingung bagaimana melakukan ini dengan Windows. Idealnya saya ingin melakukan sesuatu seperti:

route add 203.0.113.9 mask 255.255.255.255 if 2

tetapi itu hanya mencetak penggunaan untuk routeperintah, yang memberitahu saya bahwa saya salah melakukannya. Saya juga sudah mencoba menggunakan netsh, yang memberitahu saya:

> netsh routing ip add persistentroute 203.0.113.9 255.255.255.255 "Local Area Connection"
Specify the next-hop for non point-to-point interfaces.

Ada pemikiran atau saran?


Pembaruan : Ketika saya awalnya memposting pertanyaan ini, saya menggunakan Windows XP. Tetapi saya lalai menyebutkan hal itu.

Saya akan meninggalkan jawaban asli Grizly, karena sudah benar untuk pertanyaan awal saya. Tetapi jika Anda menggunakan versi Windows yang lebih baru daripada XP / 2003, cobalah salah satu dari jawaban lain.

pembelahan
sumber

Jawaban:

7

Ini mungkin tidak dapat dilakukan dengan windows

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/route.mspx

Kutipan: Untuk rute subnet yang dilampirkan secara lokal, alamat gateway adalah alamat IP yang ditetapkan untuk antarmuka yang dilampirkan ke subnet.

Grizly
sumber
Hai Grizly - terima kasih atas tanggapannya! Saya mencoba kedua perintah yang Anda sarankan, tetapi saya dapat: "Penambahan rute gagal: Entah indeks antarmuka salah atau gateway tidak terletak pada jaringan yang sama dengan antarmuka. Periksa Tabel Alamat IP untuk mesin." Saya hanya punya dua antarmuka pada mesin, 0x1 (antarmuka MS TCP Loopback) dan 0x2 (Intel (R) PRO / 1000 MT Network Connection), jadi saya cukup yakin "jika 2" adalah apa yang ingin saya gunakan. Ada pemikiran lain?
fisi
Abaikan saja bagian "metrik 1 jika 2" .. harus dipecahkan. Terbaik untuk menguji tanpa -p juga. (yang membuatnya gigih)
Grizly
Saya mendapatkan hasil yang sama tanpa bagian "metrik 1 jika 2".
fisi
Ohh, salahku, sepertinya gateway adalah ip dari antarmuka .. jawabannya diperbarui.
Grizly
Benar, yang sudah saya lakukan, dan apa yang saya harapkan untuk dihindari. Bagaimanapun, terima kasih.
fisi
21

Di windows Anda dapat menambahkan rute berdasarkan antarmuka tanpa mengetahui antarmuka dengan melewati 0.0.0.0sebagai gateway

ini memberikan sesuatu seperti ini:

route add <IPtoRoute> mask <MaskOfTheIp> 0.0.0.0 IF <InterfaceNumber>

route add 203.0.113.9 mask 255.255.255.255 0.0.0.0 IF 2
domi.vds
sumber
2
Saya mencoba ini pada Windows 7 x64. Berhasil! Perintah saya: route ADD 176.31.111.111 0.0.0.0 IF 25Ini kembali OK!dan entri baru muncul di tabel routing seperti yang diharapkan
Dmitry
6

Saya mendapatkan hal yang sama di Windows 7 Enterprise dengan klien Juniper Junos Pulse VPN.
Saya punya masalah dengan ini, karena menangkap semua kemungkinan alamat IPv4 dan mengalihkannya ke koneksi dial-up:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          1.0.0.0        255.0.0.0         On-link       XX.XX.XX.XX     11
          2.0.0.0        254.0.0.0         On-link       XX.XX.XX.XX     11
          4.0.0.0        252.0.0.0         On-link       XX.XX.XX.XX     11
          8.0.0.0        248.0.0.0         On-link       XX.XX.XX.XX     11
         16.0.0.0        240.0.0.0         On-link       XX.XX.XX.XX     11
         32.0.0.0        224.0.0.0         On-link       XX.XX.XX.XX     11
         64.0.0.0        192.0.0.0         On-link       XX.XX.XX.XX     11
        128.0.0.0        128.0.0.0         On-link       XX.XX.XX.XX     11

Saya tidak ingin semua traffic saya melewati VPN, jadi kalau-kalau ada yang membutuhkannya, saya menulis file cmd kecil untuk menghapus rute ini dan kemudian menginstal satu-satunya yang saya butuhkan (10.0.0.0) tanpa bisa menentukan gateway. , dengan menentukan antarmuka yang tepat.
Anda dapat menggunakan ini untuk mengambil nomor antarmuka secara dinamis.

@rem Get the interface number
set IF=
for /f "tokens=1,8 delims=. " %%A in ('route print') do @if /i "%%B" equ "Juniper" set IF=%%A
@rem If interface is not found, terminate quietly
if not defined IF exit /b
for %%A in (1 2 4 8 16 32 64 128) do @route delete %%A.0.0.0
route add 10.0.0.0 mask 255.0.0.0 0.0.0.0 IF %IF%
Eelco L.
sumber
1
Anda cukup menonaktifkan "force tunneling" di bagian properti ip koneksi vpn Anda.
Pejalan Kaki Aneh
5

Nomor Antarmuka dalam desimal ditampilkan dengan route print. Lihatlah bagian atas output di bawah Interface List.

Cara lain adalah dengan menggunakan arp -adan mencatat nomor heksadesimal, misalnya:

C:\>arp -a

Interface: 192.168.1.28 --- 0xc  
  Internet Address      Physical Address      Type
<snip>

Keduanya diterima setelah ifargumen dalam route.exe, misalnya:

route ADD <NET-ID> MASK <mask> <GW-address or 0.0.0.0 for on-link> IF 0xc -P

Saya lebih suka arp -a, karena lebih mudah untuk mengidentifikasi NIC.

Banyak cara lain, tetapi ini adalah yang paling sederhana.

Eggie
sumber
0

Anda tidak bisa menghilangkan gateway di tabel permanen. Beberapa orang menawarkan meletakkan kartu antarmuka IP (sisi pengguna) di sana, yang dapat diterima di Windows XP. Tapi itu tidak berlaku lagi. OS akan terus mengetuk setiap antarmuka jaringan dalam hal ini, setidaknya sampai cache terisi; itu bukan perilaku yang baik dan tidak ada bedanya dengan tabel routing yang kosong.

Saya menemukan bahwa menempatkan IP tujuan sebagai gateway menyelesaikan masalah setidaknya pada Windows 10. Tapi saya memiliki sedikit statistik saat ini untuk mengonfirmasikannya sebagai kebenaran 100,1%.

Asdf
sumber