W jaki sposób Mac OSX nadaje priorytet interfejsom sieciowym podczas routingu?

20

Aby podać konkretny przykład, w jaki sposób OSX wybiera, do którego z tych domyślnych wpisów netstat -nrnależy kierować?

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 

Z tego, co mogłem powiedzieć, OSX używa metryk na interfejsach, a nie na pozycjach tabeli routingu. Ale domyślnie wszystkie te wskaźniki interfejsu mają wartość 0, więc jak to wybrać? Ostatnio utworzony interfejs?

Widziałem niektórych ludzi sugerujących kolejność w preferencjach sieci, ale w moim przypadku interfejs ppp0 (z SonicWall NetExtender) nie jest tam wymieniony.

W tym wątku jest trochę dyskusji , ale nie widzę odpowiedzi.

studgeek
źródło
Czy wiesz, jak ustawić metrykę trasy?
endryha,

Odpowiedzi:

8

Większość systemów przestrzega tych zasad przy wyborze trasy:

  • Znajdź najbardziej szczegółowe (tj. Te z najdłuższym pasującym prefiksem).
  • Wybierz ten o najwyższym priorytecie .

W Linuksie (i, jak sądzę, w systemie Windows) priorytet jest określany przez metrykę , ale tak nie jest w przypadku macOS, jak słusznie zauważyłeś. Zamiast przypisywać metryki do poszczególnych tras, macOS przypisuje priorytety interfejsom . Możesz użyć, networksetup -listnetworkserviceorderaby wyświetlić to zamówienie i networksetup -ordernetworkservicesje zmienić.

Teraz ta droga z twoich wyników sprawia, że ​​myślę, że w twoim przypadku również odgrywa rolę:

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

Ta trasa obejmuje dolną połowę przestrzeni adresowej i dlatego spodziewałbym się również znaleźć:

128.0/1            10.10.99.100       UGSc            0        0    ppp0

w tabeli routingu. Jest to standardowa sztuczka, której oprogramowanie VPN używa do priorytetyzacji swoich tras default: dodaje dwie trasy, które razem obejmują wszystkie adresy IP, ale każdy z nich jest bardziej szczegółowy niż domyślny, więc wygrywają.

kirelagin
źródło
W systemie Linux priorytet jest określany tylko przez metrykę dla przypadków z pojedynczą tablicą routingu, jednak reguły o wyższym priorytecie mogą zastąpić metrykę tras z innych tabel z niższym wprowadzeniem reguły prio w wielu przypadkach z tabelami routingu. Również w przypadku routingu dynamicznego należy wziąć pod uwagę najniższą odległość administracyjną.
Moreaki,
Bardzo dziękuję za: „Jest to standardowa sztuczka, której oprogramowanie VPN używa do ustalania priorytetów swoich tras nad domyślne”. To w końcu pomogło mi zrozumieć, że WTF dzieje się w moim przypadku.
ipmcc
15

Każda tabela routingu, która ma wiele domyślnych tras o jednakowych metrykach, równoważy obciążenie. Jednak w przypadku komputera Mac wybierany jest pierwszy interfejs, który znajduje się na liście interfejsów. Jeśli chcesz zobaczyć i zmienić listę, przejdź do „otwartych preferencji sieci”, tutaj zobaczysz listę interfejsów sieciowych, takich jak ethernet, lotnisko, ppp przez telefon komórkowy lub 3G, itp. Pod listą zobaczysz gwiazdkę w kształcie gwiazdki opcja ze strzałką w dół. Kliknij i ustaw „ustaw zlecenie serwisowe”. Tutaj możesz zmienić preferencje swojego interfejsu.

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

Samir Sogay
źródło
3
Czy istnieje jakieś źródło, do którego można się odwołać, co to potwierdza? Jeśli możesz odwołać się do witryny, która sprawi, że Twoja odpowiedź będzie bardziej opłacalna, a ludzie ją zagłosują.
slm
1
„Ustaw zlecenie serwisowe” można potwierdzić tutaj: OS X Mountain Lion: Zmień priorytet połączeń sieciowych
David Moles,