Saya memiliki dua perangkat jaringan di atas macbook pro saya:
- WIFI (en1): Digunakan untuk lalu lintas umum. Terhubung ke ip 192.168.19. * Melalui DHCP
- LAN (en0): Digunakan untuk lalu lintas tertentu. Menyambungkan ke ip 192.168.2.10 sebagai IP statis. Tidak terhubung ke router, hanya saklar untuk koneksi
routinglangsung .
Saya memiliki 4 alamat IP yang perlu saya akses di LAN:
- 192.168.2.1
- 192.168.2.21
- 192.168.2.20
- 192.168.2.30
Lalu lintas lainnya harus pergi ke WIFI. Saya telah mencoba mengatur tabel routing untuk alamat ip tertentu, tetapi saya hanya berhasil mengacaukan jaringan saya. Saya tidak menjelajah ke dunia jaringan terlalu sering, tapi ini adalah perintah terbaru yang saya coba:
sudo route add -host 192.168.2.30 -interface en0
Perintah ini membunuh kemampuan saya untuk menggunakan ping. Ia memberi tahu saya bahwa ping tidak dapat mengalokasikan memori (apakah itu mungkin)? Itu juga membunuh akses wifi saya. Logout dan kembali memperbaiki masalah. Saya benar-benar tidak keberatan untuk membuat solusi ini permanen, jadi saya baik-baik saja dengan perutean sementara.
EDIT:
Jika saat ini saya sudah mencoba:
sudo route flush
sudo route add default 192.168.19.1
Ini membuat semuanya berfungsi selama sekitar satu menit. Namun setelah beberapa saat ia "lupa" perutean ke WiFi sambil mempertahankan perutean LAN (en0). Jika saya mencabut dan memasang kembali kabel LAN (en0) saya, proses akan bekerja selama satu menit lagi.
EDIT 2:
Ini adalah beberapa perintah yang dimasukkan sebagai permintaan oleh d34dh0r53.
$ netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.2.1 UGSc 4 0 en0
default 192.168.19.1 UGScI 0 0 en1
127 127.0.0.1 UCS 0 1 lo0
127.0.0.1 127.0.0.1 UH 5 1429023 lo0
169.254 link#4 UCS 0 0 en0
192.168.2 link#4 UCS 4 0 en0
192.168.2.1 0:27:22:2e:5f:1a UHLWIi 2 0 en0 1199
192.168.2.10 127.0.0.1 UHS 0 0 lo0
192.168.2.30 90:a2:da:0:f5:63 UHLWIi 1 1433 en0 1191
192.168.2.255 ff:ff:ff:ff:ff:ff UHLWbI 0 7 en0
192.168.19 link#5 UCS 2 0 en1
192.168.19.1 3e:d0:f8:aa:28:56 UHLWIi 0 2 en1 1192
192.168.19.3 127.0.0.1 UHS 1 0 lo0
192.168.19.255 ff:ff:ff:ff:ff:ff UHLWbI 0 5 en1
Internet6:
Destination Gateway Flags Netif Expire
::1 link#1 UHL lo0
fe80::%lo0/64 fe80::1%lo0 UcI lo0
fe80::1%lo0 link#1 UHLI lo0
fe80::%en0/64 link#4 UCI en0
fe80::226:4aff:fe00:b68a%en0 0:26:4a:0:b6:8a UHLI lo0
fe80::%en1/64 link#5 UCI en1
fe80::226:bbff:fe03:cbd%en1 0:26:bb:3:c:bd UHLI lo0
ff01::%lo0/32 fe80::1%lo0 UmCI lo0
ff01::%en0/32 link#4 UmCI en0
ff01::%en1/32 link#5 UmCI en1
ff02::%lo0/32 fe80::1%lo0 UmCI lo0
ff02::%en0/32 link#4 UmCI en0
ff02::%en1/32 link#5 UmCI en1
$ traceroute -n 192.168.2.1
traceroute to 192.168.2.1 (192.168.2.1), 64 hops max, 52 byte packets
1 192.168.2.1 2.499 ms 3.392 ms 3.829 ms
$ traceroute -n google.com
traceroute: unknown host google.com
sumber
Jawaban:
Anda tidak perlu membuat aturan perutean apa pun dengan tangan untuk konfigurasi itu, asalkan semua alamat 192.168.2.x yang ingin Anda komunikasikan berada di bawah antarmuka dengan alamat 192.168.2.x.
Setelah ini selesai,
netstat -rn
masih harus menunjukkan rute untuk kedua subnet, tetapi hanya rute "tautan # 4" yang menggantikan rute default melalui 192.168.2.1.Jika Anda tidak ingin rute default, biarkan kotak router kosong. Nilai dalam kotak router hanya digunakan untuk mengatur rute default melalui antarmuka jaringan ini, dan tidak digunakan untuk hal lain.
sumber
192.168.2.1
di bidang router untuk mencocokkan "router" di sisi lan. Saya pikir itu diperlukan, tetapi saya melihat sekarang bahwa ia mengambil alih rute default untuk lalu lintas umum.Masalahnya adalah bahwa
en0
antarmuka Anda menambahkan rute default yang lebih diutamakan daripada rute default yang dibuat oleh antarmuka 802.11. Saya tidak begitu yakin mengapa, tetapi BSD lebih memilih antarmuka kabel daripada nirkabel, atau lebih memilih antarmuka yang dikonfigurasi secara statis daripada yang dikonfigurasi secara dinamis. Anda bisa tahu bahwaen0
rute default sedang digunakan olehRefs
kolom;Refs
adalah metrik yang menunjukkan jumlah penggunaan aktif dari rute saat ini, sehingga kita dapat melihat bahwa itu mendapatkan semua lalu lintas.Solusinya adalah menghapus rute itu, lebih disukai secara permanen dari tabel routing sehingga lalu lintas yang diperuntukkan bagi host selain yang ada di jaringan lokal Anda melintasi gateway default yang dibuat oleh DHCP aktif
en1
. Hal pertama yang akan saya periksa adalah di panel konfigurasi untuken0
memastikan bahwa Anda belum memasukkan apa pun dirouter
lapangan. Informasi dalam bidang itu ditambahkan sebagai gateway default. Jika itu tidak berhasil, kita perlu menghapus rute secara manual, alasan yangroute flush
tidak bekerja adalah karena saya percaya itu memberitahu OS X untuk memuat ulang informasi peruteannya dari file konfigurasi antarmuka, maka mengembalikan perubahan Anda setelah waktu yang singkat. Perintah berikut harus menghapus rute default untuken0
antarmuka hingga jaringan dimulai ulang atau sistem IPLed:Jika Anda ingin menjadikan perubahan ini permanen, Anda dapat a) membuat layanan
/Library/StartupItems
yang sepertinya terlalu banyak bekerja untuk saya atau b) menambahkan baris itu ke/etc/rc.local
dengan perintah seperti:Anda mungkin perlu menambahkan
sleep <number_of_seconds>
perintah sebelum baris itu/etc/rc.local
untuk menghindari menjalankan perintah sebelum antarmuka sepenuhnya dan tabel routing ditetapkan.Semoga ini bisa membantu dan semoga berhasil!
sumber
192.168.2.1
masalahnya, tetapi @rakslice menemukan bahwa saya membuat kesalahan saat memasukkan informasi perutean saya untuk koneksi en0. Saya meletakkan alamat ip192.168.2.1
di bidang router di percaya bahwa itu diperlukan. Setelah menghapus ip router default, saya juga menghapus rute default buruk ke192.168.2.1
. Sekali lagi, terima kasih untuk bantuan Anda.Anda ingin mengatur IP Wifi Anda sebagai gateway default Anda, dan menghapus semua gateway default (atau rute ke 0.0.0.0) yang terhubung ke LAN atau 192.168.2.0/24.
Ini tentu saja lebih mudah jika Anda dapat mengatur en1 Anda ke IP tetap yang akan bekerja dengan wifi.
Anda mungkin harus menambahkan 192.168.2.10 sebagai rute ke jaringan 192.168.2.0/24. Namun, ini harus otomatis karena dapat mengetahui bahwa 192.168.2.0/24 terhubung langsung oleh virtual dari apa yang Anda tetapkan ke antarmuka.
Jadi lalu lintas menuju ke 192.168.2.X akan keluar dari 192.168.2.10, dan lalu lintas ke tempat lain akan keluar dari alamat IP en1 Anda.
sumber
remove any default gateway connected to the LAN
.sudo route del default 192.168.2.10
?, tidak begitu yakin bagaimana melakukannya di freebsd / mac osx tetapi harus serupa.sudo route delete default 192.168.2.10
. Ping masih aktif. Namun, itu mematikan akses ke lalu lintas wifi tidak termasuk ip router.