Comment Mac OSX priorise-t-il les interfaces réseau lors du routage?

20

Pour donner un exemple concret, comment OSX choisit laquelle de ces entrées par défaut netstat -nrà acheminer?

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 

D'après ce que j'ai pu dire, OSX utilise des métriques sur ses interfaces plutôt que sur ses entrées de table de routage. Mais par défaut, toutes ces métriques d'interface sont à 0, alors comment choisit-elle? Dernière interface créée?

J'ai vu des gens suggérer son ordre dans les préférences réseau, mais dans mon cas, l'interface ppp0 (de SonicWall NetExtender) n'y figure pas.

Il y a une discussion dans ce fil , mais aucune réponse que je vois.

studgeek
la source
Savez-vous comment définir la métrique de l'itinéraire?
endryha

Réponses:

8

La plupart des systèmes suivent ces règles lors du choix de l'itinéraire à utiliser:

  • Trouvez les plus spécifiques (c'est-à-dire ceux avec le préfixe correspondant le plus long).
  • Choisissez celui qui a la priorité la plus élevée .

Sous Linux (et, je pense, sous Windows), la priorité est déterminée par la métrique , mais ce n'est pas le cas sous macOS comme vous l'avez correctement souligné. Au lieu d'attribuer des mesures à des itinéraires individuels, macOS attribue des priorités aux interfaces . Vous pouvez utiliser networksetup -listnetworkserviceorderpour afficher cette commande et la networksetup -ordernetworkservicesmodifier.

Maintenant, cette route à partir de votre sortie me fait penser que dans votre cas, la spécificité joue également son rôle:

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

Cette route couvre la moitié inférieure de l'espace d'adressage et je m'attends donc à trouver également:

128.0/1            10.10.99.100       UGSc            0        0    ppp0

dans votre table de routage. C'est un truc standard que le logiciel VPN utilise pour prioriser ses itinéraires default: il ajoute deux itinéraires qui couvrent ensemble toutes les adresses IP, mais chacun d'eux est plus spécifique que par défaut, donc ils gagnent.

Kirelagin
la source
Sous Linux, la priorité n'est déterminée que par la métrique pour les cas de table de routage unique, mais les règles de priorité plus élevée peuvent remplacer la métrique des itinéraires d'une autre table avec une entrée de règle de priorité inférieure dans plusieurs cas de table de routage. De plus, avec le routage dynamique, il faut considérer la distance administrative la plus faible.
Moreaki
Merci beaucoup pour: "C'est un truc standard que le logiciel VPN utilise pour prioriser ses routes par défaut". Cela m'a finalement aidé à comprendre que WTF se passait dans mon cas.
ipmcc
15

Toute table de routage qui a plusieurs itinéraires par défaut avec des métriques égales effectue un équilibrage de charge. Le cas avec un mac est cependant qu'il sélectionnera la première interface qui se trouve dans la liste des interfaces. Si vous voulez voir et modifier la liste, allez dans "préférences réseau ouvertes", ici vous verrez une liste des interfaces réseau comme ethernet, aéroport, ppp via mobile ou 3g, etc. En dessous de la liste, vous verrez un astérisque en forme option avec une flèche vers le bas. Cliquez dessus et définissez "définir l'ordre de service". Ici, vous pouvez modifier la préférence de votre interface particulière.

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

Samir Sogay
la source
3
Y a-t-il une source à laquelle vous pouvez vous référer qui confirme cela? Si vous pouvez référencer un site qui rendra votre réponse plus intéressante et que les gens la voteront.
slm
1
"Définir l'ordre de service" peut être confirmé ici: OS X Mountain Lion: modifiez la priorité de vos connexions réseau
David Moles