Bagaimana Mac OSX memprioritaskan antarmuka jaringan saat melakukan routing?


20

Untuk memberikan contoh konkret, bagaimana OSX memilih yang mana dari entri default ini netstat -nruntuk dirutekan?

Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                10.10.99.100       UGSc            0        0    ppp0
default            192.168.1.1        UGSc            5        0     en0
default            192.168.1.1        UGScI           1        0     en1
default            192.0.2.1          UGScI         157        2    ppp0 

Dari apa yang saya bisa katakan OSX menggunakan metrik pada interface-nya daripada pada entri tabel routingnya. Tetapi secara default semua metrik antarmuka tersebut adalah 0 jadi bagaimana cara memilihnya? Antarmuka yang terakhir dibuat?

Saya telah melihat beberapa orang menyarankan urutannya dalam preferensi Jaringan, tetapi dalam kasus saya antarmuka ppp0 (dari SonicWall NetExtender) tidak terdaftar di sana.

Ada beberapa diskusi di utas ini , tetapi tidak ada jawaban yang saya lihat.


Sudahkah Anda mengetahui cara mengatur metrik rute?
endryha

Jawaban:


8

Sebagian besar sistem mengikuti aturan ini ketika memilih rute mana yang akan digunakan:

  • Temukan yang paling spesifik (yaitu yang dengan awalan paling cocok).
  • Pilih satu dengan prioritas tertinggi .

Di Linux (dan, saya pikir, di Windows) prioritas ditentukan oleh metrik , tetapi tidak demikian halnya pada macOS seperti yang Anda tunjukkan dengan benar. Alih-alih menetapkan metrik untuk rute individual, macOS memberikan prioritas ke antarmuka . Anda dapat menggunakan networksetup -listnetworkserviceorderuntuk melihat pesanan ini dan networksetup -ordernetworkservicesmengubahnya.

Sekarang, rute ini dari output Anda membuat saya berpikir bahwa dalam kasus Anda kekhususan juga memainkan perannya:

Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                10.10.99.100       UGSc            0        0    ppp0

Rute ini mencakup bagian bawah ruang alamat dan oleh karena itu saya berharap juga menemukan:

128.0/1            10.10.99.100       UGSc            0        0    ppp0

di tabel perutean Anda. Ini adalah trik standar yang digunakan perangkat lunak VPN untuk memprioritaskan rutenya default: ia menambahkan dua rute yang bersama-sama mencakup semua alamat IP, tetapi masing-masing lebih spesifik daripada standar, sehingga mereka menang.


Di Linux, prioritas hanya ditentukan oleh metrik untuk kasus tabel perutean tunggal, namun aturan prioritas yang lebih tinggi dapat menggantikan metrik rute dari tabel lain dengan entri aturan prio yang lebih rendah dalam beberapa kasus tabel routing. Juga dengan routing dinamis, kita harus mempertimbangkan jarak administrasi terendah.
Moreaki

Terima kasih banyak untuk: "Ini adalah trik standar yang digunakan perangkat lunak VPN untuk memprioritaskan rute di atas default". Ini akhirnya membantu saya memahami WTF yang terjadi dalam kasus saya.
ipmcc

15

Setiap tabel perutean yang memiliki beberapa rute default dengan metrik yang sama melakukan load balancing. Kasus dengan mac adalah bahwa ia akan memilih antarmuka pertama yang ada di daftar antarmuka. Jika Anda ingin melihat dan mengubah daftar, buka "buka preferensi jaringan", di sini Anda akan melihat daftar antarmuka jaringan seperti ethernet, bandara, ppp melalui ponsel atau 3g, dll. Di bawah daftar, Anda akan melihat tanda bintang opsi dengan panah bawah. Klik ini dan atur "atur pesanan layanan". Di sini Anda dapat mengubah preferensi antarmuka khusus Anda.

http://www.sustworks.com/site/prod_ipnrx_help/html/AlternateRouteHelp.html


3
Apakah ada sumber yang dapat Anda rujuk yang menegaskan hal ini? Jika Anda dapat referensi situs yang akan membuat jawaban Anda lebih berharga dan orang-orang akan memberikan suara.
slm

1
"Tetapkan pesanan layanan" dapat dikonfirmasi di sini: OS X Mountain Lion: Ubah prioritas koneksi jaringan Anda
David Moles
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.