Pourquoi il n'y a qu'une seule passerelle par défaut?

3

Je suis novice en réseautage et tente de comprendre le fonctionnement de plusieurs interfaces réseau. Mon doute est quand il y a deux cartes réseau ou plus sur une machine, quelle est la signification de la passerelle par défaut présente dans le /etc/sysconfig/networkfichier. Le noyau est-il supposé équilibrer la charge entre différentes interfaces ayant des passerelles définies dans leur /etc/sysconfig/network-scripts/ifcfg-eth*fichier respectif ?

Poorna
la source

Réponses:

9

La passerelle par défaut est l'endroit où les paquets sont envoyés lorsqu'il n'y a plus d'itinéraire spécifique. En fait, la passerelle par défaut a un itinéraire correspondant à tous les paquets: un itinéraire de masque de réseau / 0.

Essayez "netstat -rn" pour voir les routes sur votre système.

La passerelle par défaut n'est pas une interface sur votre système - il s'agit généralement de votre routeur local. Il peut être accessible via plusieurs interfaces, bien qu’il n’existe généralement qu’une seule interface active.

Je ne suis pas sûr de l’équilibrage de la charge, mais il semble raisonnable de penser que si la passerelle par défaut est accessible depuis plusieurs interfaces, des paquets pourraient être envoyés à partir de toutes les interfaces.

Un exemple simple de configuration de votre réseau à partir de zéro:

ifconfig eth0 192.168.0.55 netmask 255.255.255.0
route add default gateway 192.168.0.1 eth0

La première commande configure votre interface et ajoute une route au réseau local (192.168.0 / 24). La deuxième commande ajoute une route par défaut via 192.168.0.1 qui est maintenant accessible grâce à la première route.

Si vous avez une deuxième interface, vous pouvez aussi la configurer:

ifconfig eth1 192.168.0.56 netmask 255.255.255.0

Maintenant, l’une ou l’autre interface peut atteindre la passerelle par défaut. Vous pouvez vérifier si un équilibrage de charge est en cours en utilisant "ifconfig" et en regardant les paquets RX / TX. Si les compteurs incrémentent, cela indique que l'interface est utilisée.

Mise à jour:

Pour deux interfaces sur des réseaux différents, vous pouvez ajouter plusieurs passerelles par défaut. Je ne sais pas si cette situation est supportée par etc / sysconfig. Sinon, vous pouvez ajouter une instruction "route add default gateway" à votre script de démarrage.

Quelques anecdotes sur le sujet: il était possible d'envoyer un paquet via une passerelle avec une adresse IP source de l'autre interface (routage asymétrique). De cette façon, vous pouvez envoyer tous vos paquets depuis une passerelle et les recevoir par l’autre. Ceci est utile dans le cas où vous avez des connexions avec une largeur de bande montante / descendante asymétrique ou une latence (pensez liaison descendante satalite et liaison montante cellulaire).

Je dis "utilisé pour" parce que la plupart des fournisseurs de services Internet filtrent maintenant les paquets avec une adresse IP source qui n'est pas attribuée en aval.

Plus amusant dual-nic amusant:

J'ai deux NIC sur mon ordinateur portable: filaire et sans fil. Je leur attribue la même adresse IP dans la configuration de mon serveur DHCP en fonction de leur adresse Ethernet. Lorsque le filaire est connecté, je reçois une grande vitesse. Mais quand je le débranche, tout continue à fonctionner. Je ne perds même pas les connexions aux hôtes distants. Le noyau ne se soucie pas de quelle interface provient un paquet tant qu'il est lié à la bonne adresse IP.

julien
la source
Merci pour la réponse détaillée. Qu'en est-il du cas où chaque interface (eth0 ou eth1) est présente dans deux sous-réseaux différents (peut être connectée à différents routeurs)
Poorna
Voir la réponse mise à jour
Julian
1
Bonne réponse détaillée, Julian. Un petit mot sur l’utilisation route add default gatewayde plusieurs adaptateurs; cette commande (et le travail qu'elle effectue) est très liée à l'adaptateur utilisé lors de l'exécution de la commande. J'ai tendance à utiliser ceci pour forcer tout mon trafic VPN privé à travers mon interface wifi autrement inutilisée; mais ce n’est qu’un des nombreux bons cas d’utilisation.
Jerry W Jackson
5

La passerelle par défaut ne devrait être accessible que par une seule de vos interfaces réseau. Le fait d’avoir plusieurs cartes réseau sur le même sous-réseau, et donc un chemin de sortie potentiellement non déterministe, peut conduire à un comportement inattendu et décevant.

Voir par exemple https://serverfault.com/questions/415304/multiple-physical-interfaces-with-ips-on-the-same-subnet

Si vous voulez vraiment implémenter cela, un moyen fiable serait de configurer une forme d' agrégation de réseau , ce qui se traduira par une liaison / une association en ce qui concerne Linux.

jlliagre
la source
On peut avoir plusieurs cartes réseau à la fois configurées sans passer outre au standard de réseau. J'ai actuellement mon Ethernet et mon Wifi sur le même réseau, avec la même passerelle. Sous OSX et d'autres systèmes d'exploitation, une voie sera préférée à l'autre automatiquement, soit en ordonnant explicitement la priorité d'interface, soit par des moyens arbitraires tels que la numérotation d'interface logique. Si une adresse IP source fixe est configurée, de sorte que quelle que soit l'interface qui envoie le trafic, que l'adresse IP source soit la même et accessible par la passerelle, chaque interface peut envoyer à tour de rôle, sans prob.
Nevin Williams
@NevinWilliams Accordé la norme autorise de telles configurations et définit deux modèles décrivant le comportement attendu des paquets entrants dirigés vers la "mauvaise" interface physique. Réponse mise à jour pour supprimer le point de violation standard.
Jlliagre
Si vous deviez spécifier 'passerelle active par défaut', je n'aurais aucun problème… mais après le bon rire que j'ai eu après avoir vérifié le lien référé, nous sommes bons!
Nevin Williams
3

Avec deux itinéraires de métriques égales, un schéma d’équilibrage de charge round-robin est utilisé. Cela peut se faire par réseau ou par paquet. Les routeurs Cisco (pas Linksys) peuvent être configurés pour le faire soit, mais par paquet donne une meilleure distribution des liens équivalents. En ce qui concerne l'hôte, à moins que vous n'utilisiez un démon de routage, comme routé ou gated, le noyau système choisira une interface comme voie de prédilection et ne basculera vers l'autre interface que si la première tombe en panne ou si la passerelle devient inaccessible sur cette interface.

Nevin Williams
la source