In che modo Mac OSX dà la priorità alle interfacce di rete durante il routing?


20

Per fare un esempio concreto, come fa OSX a scegliere da quale di queste voci predefinite netstat -nrinstradare?

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 

Da quello che sono stato in grado di dire, OSX utilizza le metriche sulle sue interfacce piuttosto che sulle voci della tabella di routing. Ma per impostazione predefinita tutte queste metriche dell'interfaccia sono 0, quindi come sceglie? Ultima interfaccia creata?

Ho visto alcune persone suggerire che è l'ordine nelle preferenze Network, ma nel mio caso l'interfaccia ppp0 (da SonicWall NetExtender) non è elencata lì.

C'è qualche discussione in questo thread , ma nessuna risposta che vedo.


Hai scoperto come impostare la metrica del percorso?
Endryha,

Risposte:


8

La maggior parte dei sistemi segue queste regole quando sceglie quale percorso usare:

  • Trova quelli più specifici (ovvero quelli con il prefisso corrispondente più lungo).
  • Scegli quello con la massima priorità .

Su Linux (e, penso, su Windows) la priorità è determinata dalla metrica , ma non è il caso di macOS come hai giustamente sottolineato. Invece di assegnare metriche a percorsi individuali, macOS assegna priorità alle interfacce . È possibile utilizzare networksetup -listnetworkserviceorderper visualizzare questo ordine e networksetup -ordernetworkservicesper modificarlo.

Ora, questo percorso dal tuo output mi fa pensare che nel tuo caso anche la specificità svolga il suo ruolo:

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

Questo percorso copre la metà inferiore dello spazio degli indirizzi e quindi mi aspetto di trovare anche:

128.0/1            10.10.99.100       UGSc            0        0    ppp0

nella tabella di routing. Questo è un trucco standard che il software VPN utilizza per stabilire la priorità dei propri percorsi default: aggiunge due percorsi che insieme coprono tutti gli indirizzi IP, ma ognuno di essi è più specifico del valore predefinito, quindi vincono.


Su Linux, la priorità è determinata solo dalla metrica per singoli casi di tabella di routing, tuttavia le regole con priorità più elevata possono sovrascrivere la metrica dei percorsi da un'altra tabella con una voce della regola prio inferiore in più casi di tabella di routing. Anche con il routing dinamico, si deve considerare la distanza amministrativa più bassa.
Moreaki,

Grazie mille per: "Questo è un trucco standard che il software VPN usa per dare la priorità ai suoi percorsi rispetto all'impostazione predefinita". Questo alla fine mi ha aiutato a capire che WTF stava succedendo nel mio caso.
ipmcc

15

Qualsiasi tabella di routing che ha più route predefinite con metriche uguali esegue il bilanciamento del carico. Il caso con un mac è che selezionerà la prima interfaccia che è nell'elenco delle interfacce. Se vuoi vedere e modificare l'elenco, vai su "apri le preferenze di rete", qui vedrai un elenco di interfacce di rete come Ethernet, aeroporto, ppp tramite cellulare o 3G, ecc. Sotto l'elenco, vedrai un asterisco a forma di opzione con una freccia giù. Fare clic su questo e impostare "imposta ordine di servizio". Qui puoi cambiare la preferenza della tua particolare interfaccia.

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


3
C'è qualche fonte a cui puoi fare riferimento per confermarlo? Se puoi fare riferimento a un sito che renderà la tua risposta più utile e le persone la voteranno.
slm,

1
"Imposta ordine di servizio" può essere confermato qui: OS X Mountain Lion: modifica la priorità delle connessioni di rete
David Moles
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.