Comment un paquet IP sait-il quelle passerelle prendre?

11

Supposons que deux passerelles existent sur le même réseau. Si je comprends bien, la table de routage IP sur l'ordinateur de l'expéditeur décide quels paquets seront routés via quelle passerelle.

Les tables de routage IP contiennent l'adresse IP de la passerelle.

Comment cette adresse IP de la passerelle est-elle utilisée lors de l'envoi de paquets IP?

Simon Farshid
la source
1
Le paquet ne "sait" pas, le routeur décide à quelle passerelle l'envoyer, quel que soit le lien existant entre le routeur et la passerelle choisie. (Comme le soulignent les réponses, Ethernet est une couche 2 bien connue et courante pour le trafic IP.)
Peter Cordes

Réponses:

14

TL; DR: l'adresse de la passerelle n'est stockée que dans une trame Ethernet contenant ce paquet TCP / IP

Le trafic serveur-> commutateur-> routeur, ainsi que le trafic serveur-> commutateur-> serveur, est l'endroit où l'adressage IP ne joue aucun rôle significatif. C'est le monde du protocole sous-jacent, très probablement Ethernet. C'est donc un monde qui fonctionne avec l'adressage MAC.

Il vous suffit donc de résoudre la confusion selon laquelle une passerelle par défaut est une adresse IP. C'est, en quelque sorte ... au démarrage ... mais ce paramètre IP de passerelle n'est nécessaire que pour faire une chose, c'est de demander: qui a 192.168.1.1 ici? La réponse vient que la passerelle est MAC 88: 99: aa: bb: cc: dd: ee: ff. (C'est la requête / réponse ARP, le traducteur entre les deux mondes.) Le paquet va à ce MAC au niveau Ethernet, malgré le fait qu'il peut contenir une destination différente au niveau IP.

Ainsi, le paquet est marqué pour aller à une passerelle choisie en le codant dans le champ "MAC de destination" de la trame Ethernet. Le champ détermine quelle passerelle sur ce réseau l'obtiendra, s'il existe plusieurs passerelles. (Le "cadre" est une capsule sous-jacente qui contient le paquet ou une partie du paquet.)

kubanczyk
la source
2
J'irais plus loin et je dirais que c'est la seule réponse ici qui répond réellement à la question.
Peter Green
3
De plus, ce n'est pas seulement une passerelle par défaut à laquelle cela s'applique, cela s'applique à l'adresse "saut suivant" pour toute entrée dans la table de routage.
Peter Green
2
Bien sûr, il existe d'autres protocoles de couche 1/2 que Ethernet qui sont utilisés. Les protocoles LAN IEEE ont des adresses MAC, mais d'autres protocoles utilisent quelque chose ou rien d'autre.
Ron Maupin
6

L'en-tête de datagramme IP contient uniquement les informations d'adresse de la source et de la destination. En fonction de la destination, le routeur doit savoir où transférer le paquet ensuite, et ces informations sont stockées dans la table de routage.

Il peut y avoir des informations de route statiques pour l'adresse ou son sous-réseau et la passerelle par défaut est utilisée pour le reste. C'est généralement le cas sur le réseau local: il peut y avoir un routage statique vers d'autres réseaux locaux et une passerelle par défaut pour le reste, c'est-à-dire Internet. Dans le cas de plusieurs passerelles par défaut, c'est-à-dire des routes vers 0.0.0.0ou ::, la passerelle active est choisie par sa valeur de préférence ou métrique .

Les choses se compliquent quand il y a plusieurs routes entre les destinations, comme il y a entre les FAI au niveau Internet. Il existe plusieurs méthodes pour partager les informations entre les routeurs: Routing Information Protocol (RIP), Open Shortest Path First (OSPF) et Border Gateway Protocol (BGP). Quelle que soit la façon dont ces informations sont partagées, la table de routage connaît le saut suivant et le paquet IP ne connaît que sa destination finale.

Esa Jokinen
la source
1
Il convient également de mentionner le routage basé sur des règles dans lequel différentes tables de routage peuvent être sélectionnées en fonction de divers critères tels que l'IP source ou la marque de pare-feu.
Bratchley
N'oubliez pas d'expliquer que la correspondance de préfixe la plus longue a priorité sur tout le reste lorsqu'il y a deux correspondances possibles.
Ron Maupin
La question n'est pas de savoir comment le routeur transfère le paquet, mais comment l'expéditeur l'envoie au routeur approprié en premier lieu.
Barmar
@Barmar: La version originale de cette question aurait pu être interprétée de deux manières, et cela a répondu à l'autre. Le processus de choix du routeur en fonction de la table de routage est le même sur la machine d'origine. Par conséquent, je trouve toujours cette réponse utile tandis que l'autre obtient une couche. Ils se complètent.
Esa Jokinen
Je viens de vérifier l'historique des modifications. Je ne vois pas de différence pertinente dans la version originale. La question est de savoir comment le paquet parvient au routeur, déterminé à partir de la table de routage.
Barmar
2

Une possibilité est que le réseau soit configuré avec un protocole de redondance de premier saut (FRHP), tel que VRRP ou HSRP. Le FHRP possède une adresse de passerelle virtuelle que les hôtes utilisent et le trafic envoyé à l'adresse virtuelle est capté par l'un des routeurs physiques, qui transfère ensuite le trafic. Si le routeur principal tombe en panne, un routeur secondaire peut le déterminer et prendre en charge le transfert des paquets.


Dans tous les cas, les paquets ne déterminent pas le chemin qu'ils empruntent. Chaque paquet est transmis individuellement et indépendamment de tout autre paquet, sur la base des informations contenues dans la table de routage d'un routeur, et les paquets vers la même destination à partir de la même source peuvent emprunter des chemins différents si une table de routage change.

Les routeurs apprennent les itinéraires de trois manières:

  1. Réseaux directement connectés
  2. Itinéraires configurés statiquement
  3. Grâce à un protocole de routage dynamique
Ron Maupin
la source
2

Réponse courte et simple: elle n'est pas codée dans le paquet, ou c'est l'adresse cible Ethernet selon la façon dont vous la regardez. La pile IP / Ethernet examine quelle passerelle gère l'adresse IP de destination, envoie une demande ARP pour que l'adresse IP de la passerelle obtienne son adresse MAC, puis envoie le paquet à l'adresse MAC de la passerelle. La passerelle transmet ensuite le paquet et fait de même la même chose. Cela suppose un réseau Ethernet.

Je pense avoir répondu à ce que vous demandez. Je me suis une fois demandé la même chose. Votre question peut également être interprétée comme la façon dont un hôte, compte tenu d'une table de routage particulière, décide à quelle passerelle envoyer un paquet sortant.

Alex Cannon
la source
0

Bien sûr, un détail qui est examiné est de savoir si un itinéraire correspond. Si j'envoie à 192.0.2.55/24 et qu'un itinéraire est disponible pour le trafic vers 10.55.0.0/16, cet itinéraire est ignoré car il ne s'applique pas.

Le critère suivant qui est généralement considéré est que les itinéraires plus spécifiques ont priorité sur les itinéraires plus généraux. Par route "spécifique", j'entends des sous-réseaux plus petits. En d'autres termes, des nombres plus importants lors de l'utilisation de la notation / CIDR et des masques de sous-réseau plus importants lors de l'utilisation de la notation "masque de sous-réseau". En d'autres termes, des réseaux de destination avec moins d'adresses possibles.

Ainsi, une "passerelle par défaut", également connue sous le nom de "passerelle de dernier recours", spécifie généralement une destination pour tout le trafic vers le réseau 0.0.0.0/0. Tout itinéraire pour un réseau plus petit sera "plus spécifique" que cela et aura la priorité. Ainsi, 192.0.2.0/24 aura plus de priorité.

Troisièmement, les itinéraires ont généralement un autre champ appelé "métrique", ou parfois un nom différent comme "priorité". Si vous avez plusieurs réseaux de même taille, cela peut avoir un impact.

Ces valeurs «métriques» peuvent être générées automatiquement (par exemple, de cette façon, un réseau à plus haut débit est utilisé pour une plus grande partie du trafic), mais peuvent être ajustées manuellement.

Où sont les informations sur la passerelle à prendre encodées à l'intérieur des paquets IP envoyés?

Les paquets IP ne contiennent aucune information sur le routage, sauf pour spécifier l'adresse IP de destination. Les détails de routage sont déterminés par l'équipement qui gère le routage en cours de route, et ces détails ne sont généralement pas placés dans un paquet IP. (Par conséquent, l'équipement ne recherche pas de tels détails, car il n'est pas là. Étant donné que l'équipement ne recherche pas de telles informations, il serait inutile d'essayer d'inclure ces informations.)

RFC 791 page 11 montre une table de style "ASCII ART" des informations qui sont dans un paquet IP. Après ce tableau, ce document affiche des détails (par exemple, la section "Options" est décrite à la page 15).

TOOGAM
la source