Routing WIFI dan LAN untuk lalu lintas tertentu

12

Saya memiliki dua perangkat jaringan di atas macbook pro saya:

  1. WIFI (en1): Digunakan untuk lalu lintas umum. Terhubung ke ip 192.168.19. * Melalui DHCP
  2. 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 routing langsung .

Saya memiliki 4 alamat IP yang perlu saya akses di LAN:

  1. 192.168.2.1
  2. 192.168.2.21
  3. 192.168.2.20
  4. 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
jakebird451
sumber
OS menangani perutean, bukan perangkat keras.
Ignacio Vazquez-Abrams
Apakah semuanya 192.168.2.X di LAN? Jika ya, itu membuat solusinya jauh lebih sederhana.
LawrenceC
@ultrasawblade Ya, semua yang ada di jaringan itu adalah 192.168.2. *
jakebird451

Jawaban:

11

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.

  1. Pergi ke System Preferences -> Network
  2. Pilih perangkat Ethernet Anda, pastikan "Konfigurasi IPv4" diatur ke "Secara Manual", bahwa subnet mask Anda diatur ke 255.255.255.0, dan kotak router kosong.

Setelah ini selesai, netstat -rnmasih 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.

rakslice
sumber
Terima kasih! Itu dia! Saya sudah mengatur semuanya dengan benar kecuali di bidang router. Saya memasukkan alamat ip 192.168.2.1di 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.
jakebird451
Terima kasih untuk ini! Punya masalah yang sama dan bekerja untuk saya dengan sempurna.
BaronVonKaneHoffen
4

Masalahnya adalah bahwa en0antarmuka 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 bahwa en0rute default sedang digunakan oleh Refskolom; Refsadalah 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 untuk en0memastikan bahwa Anda belum memasukkan apa pun di routerlapangan. Informasi dalam bidang itu ditambahkan sebagai gateway default. Jika itu tidak berhasil, kita perlu menghapus rute secara manual, alasan yang route flushtidak 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:

sudo route delete -net 0.0.0.0 192.168.2.1

Jika Anda ingin menjadikan perubahan ini permanen, Anda dapat a) membuat layanan /Library/StartupItemsyang sepertinya terlalu banyak bekerja untuk saya atau b) menambahkan baris itu ke /etc/rc.localdengan perintah seperti:

echo 'route delete -net 0.0.0.0 192.168.2.1' >> /etc/rc.local

Anda mungkin perlu menambahkan sleep <number_of_seconds>perintah sebelum baris itu /etc/rc.localuntuk menghindari menjalankan perintah sebelum antarmuka sepenuhnya dan tabel routing ditetapkan.

Semoga ini bisa membantu dan semoga berhasil!

d34dh0r53
sumber
Terima kasih atas tanggapannya yang panjang. Rute default ke 192.168.2.1masalahnya, tetapi @rakslice menemukan bahwa saya membuat kesalahan saat memasukkan informasi perutean saya untuk koneksi en0. Saya meletakkan alamat ip 192.168.2.1di bidang router di percaya bahwa itu diperlukan. Setelah menghapus ip router default, saya juga menghapus rute default buruk ke 192.168.2.1. Sekali lagi, terima kasih untuk bantuan Anda.
jakebird451
1
Agak kacau saya tidak mendapatkan karunia: "Hal pertama yang saya akan periksa adalah di panel konfigurasi untuk en0 pastikan bahwa Anda belum memasukkan apa pun di bidang router. Informasi di bidang itu ditambahkan sebagai gateway default. " Tapi pada akhirnya semua baik-baik saja, senang Anda berhasil.
d34dh0r53
0

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.

LawrenceC
sumber
Saya mengatur urutan wifi saya ke atas melalui preferensi sys jaringan. Tapi saya tidak yakin bagaimana caranya remove any default gateway connected to the LAN.
jakebird451
mungkin sudo route del default 192.168.2.10?, tidak begitu yakin bagaimana melakukannya di freebsd / mac osx tetapi harus serupa.
LawrenceC
Perintah pada mac adalah sudo route delete default 192.168.2.10. Ping masih aktif. Namun, itu mematikan akses ke lalu lintas wifi tidak termasuk ip router.
jakebird451
Anda mendapatkan internet melalui wifi Anda, benar, yaitu jika Anda tidak terhubung melalui LAN dan hanya Wifi, Anda dapat menjangkau situs eksternal seperti Google, dll?
LawrenceC
Ya, WiFi untuk lalu lintas umum seperti google.com (terutama untuk google maps api)
jakebird451