web-dev-qa-db-fra.com

Comment Mac OSX donne-t-il la priorité aux interfaces réseau lors du routage?

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

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 choisir? Dernière interface créée?

J'ai vu certaines personnes suggèrent sa commande dans les préférences de réseau, mais dans mon cas, l'interface PPP0 (de SonicWall NetExtender) n'est pas répertorie là-bas.

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

21
studgeek

La plupart des systèmes suivent ces règles lors du choix de la voie à utiliser:

  • Trouver le plus spécifique Ceux (c'est-à-dire ceux avec le préfixe correspondant le plus long).
  • Choisissez celui avec le Priorité.

Sur Linux (et, je pense, sur Windows) La priorité est déterminée par métrique, mais ce n'est pas le cas sur MacOS comme vous l'avez souligné correctement. Au lieu d'assigner des métriques à des itinéraires individuels, les macos attribuent priorités aux interfaces . Vous pouvez utiliser networksetup -listnetworkserviceorder Pour voir cette commande et networksetup -ordernetworkservices Pour le changer.

Maintenant, cet itinéraire de votre sortie me fait penser que dans votre spécificité de cas joue également son rôle:

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

Cet itinéraire couvre la moitié inférieure de l'espace d'adressage et je m'attendrais donc également à trouver:

128.0/1            10.10.99.100       UGSc            0        0    ppp0

dans votre table de routage. Il s'agit d'un logiciel VPN standard utilise pour hiérarchiser ses itinéraires sur default: il ajoute deux itinéraires qui couvrent ensemble toutes les adresses IP, mais chacune d'entre elles est plus spécifique que par défaut.

9
kirelagin

Toute table de routage qui comporte plusieurs itinéraires par défaut avec des métriques égales en équilibre. Le cas avec un Mac, c'est que cela sélectionnera la première interface qui se trouve dans la liste des interfaces. Si vous souhaitez voir et modifier la liste, accédez à "Ouvrir les préférences de réseau", vous verrez ici une liste des interfaces réseau telles que Ethernet, Airport, PPP via mobile ou 3G, etc. Au-dessous de la liste, vous verrez un astérisque option avec une flèche vers le bas. Cliquez dessus et définissez le "Définir la commande de service". Ici, vous pouvez modifier la préférence de votre interface particulière.

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

15
Samir Sogay