Comment Linux détermine-t-il quelle interface réseau utiliser, lorsque les deux sont connectés au même réseau?
Notez que ce n'est pas une question de routage. Je sais comment cela fonctionne. Par exemple, si mon ordinateur portable est connecté à mon routeur sans fil via ma carte Ethernet et ma carte sans fil, ou si j'ai deux cartes Ethernet connectées au même routeur.
Je peux dire par expérience que dans mon cas, mon ordinateur portable semble privilégier la carte Ethernet (eth0) par rapport au sans fil (eth1 - je sais que ce n'est pas un nom typique pour une interface sans fil, mais c'est ce que j'ai), mais j'étais se demandant, comment décide-t-il cela? S'il choisit simplement à partir de l'interface numérotée la plus basse, que se passe-t-il si les deux choix sont, disons, eth0 et wlan0?
Edit: @Nils a souligné que c'est toujours une question de routage, et la table de routage fournit la réponse (voir sa réponse). Cela laisse toujours ma question d'origine, mais sous une forme différente. Qu'est-ce qui détermine l'ordre des entrées dans la table de routage sous Linux? Par exemple, voici ma table de routage en étant connecté aux deux interfaces:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.4.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Il est clair que eth0 a une priorité plus élevée dans la table que eth1 pour les destinations du réseau local, mais est-ce décidé sous Linux à partir de la latence de la liaison, du débit de la liaison, même du nom de l'interface, ou quoi? (La même question pourrait se poser pour savoir pourquoi eth0 est l'interface pour la route par défaut.)
la source
Ne pas vous offenser, mais si vous connaissez la portion de routage de votre pile de communications TCP / IP sur n'importe quelle machine Linux, vous devez également savoir que, les résultats de la connexion de deux interfaces réseau au même réseau sont, au mieux, imprévisibles. Si j'étais vous, je désactiverais le sans fil sur mon ordinateur portable ou exécuterais une
ifconfig eth0 down
commande (en supposant que eth0 est votre connexion Ethernet filaire) pour l'éteindre. Linux peut avoir une certaine intelligence pour faire la même sélection pour chaque paquet, mais en cas de hoquet réseau à un moment donné, il peut en résulter des résultats inattendus. Mes 2 cents.la source