9. Transfert
Lorsqu'un routeur reçoit un paquet adressé à un nœud autre que lui-même, il doit prendre en compte la zone des adresses de destination et source comme suit:
-
La zone de l'adresse de destination est déterminée par la portée de l'adresse et l'interface d'arrivée du paquet. L'interface de saut suivant est choisie en cherchant l'adresse de destination dans une table de routage (conceptuelle) spécifique à cette zone (voir Section 10). Cette table de routage est restreinte à se référer aux interfaces appartenant à cette zone.
-
Après que l'interface de saut suivant soit choisie, la zone de l'adresse source est prise en compte. Comme avec l'adresse de destination, la zone de l'adresse source est déterminée par la portée de l'adresse et l'interface d'arrivée du paquet. Si la transmission du paquet sur l'interface de saut suivant choisie causerait le paquet de quitter la zone de l'adresse source, c'est-à-dire de traverser une limite de zone de la portée de l'adresse source, alors le paquet est rejeté. De plus, si l'adresse de destination du paquet est une adresse unicast, un message ICMP Destination Unreachable [4] avec Code 2 ("au-delà de la portée de l'adresse source") est envoyé à la source du paquet original. Notez que le Code 2 est actuellement laissé non assigné dans [4], mais l'IANA réassignera la valeur à cette nouvelle fin, et [4] sera révisé avec ce changement.
Notez que même si les adresses unicast locales au site sont dépréciées, la procédure ci-dessus s'applique toujours aux adresses locales au lien. Ainsi, si un routeur reçoit un paquet avec une adresse de destination locale au lien qui n'est pas l'une de ses propres adresses locales au lien sur le lien d'arrivée, le routeur est censé essayer de transférer le paquet à la destination sur ce lien (sous réserve de la détermination réussie de l'adresse de couche lien de la destination via le protocole de découverte des voisins [9]). Le paquet transféré peut être transmis via l'interface d'arrivée, ou via n'importe quelle autre interface attachée au même lien.
Un nœud qui reçoit un paquet adressé à lui-même et contenant un en-tête de routage (Routing Header) avec plus de zéro Segments Left (Section 4.4 de [3]) vérifie d'abord la portée de l'adresse suivante dans l'en-tête de routage. Si la portée de l'adresse suivante est plus petite que la portée de l'adresse de destination originale, le nœud DOIT rejeter le paquet. Sinon, il échange l'adresse de destination originale avec l'adresse suivante dans l'en-tête de routage. Ensuite, les règles de transfert ci-dessus s'appliquent comme suit:
-
La zone de la nouvelle adresse de destination est déterminée par la portée de l'adresse suivante et l'interface d'arrivée du paquet. L'interface de saut suivant est choisie selon la première puce des règles ci-dessus.
-
Après que l'interface de saut suivant soit choisie, la zone de l'adresse source est prise en compte selon la deuxième puce des règles ci-dessus.
Cette vérification de la portée de l'adresse suivante assure que lorsqu'un paquet arrive à sa destination finale, si cette destination est locale au lien, alors le nœud récepteur peut savoir que le paquet provient du lien local. Cela aidera le nœud récepteur à envoyer un paquet de "réponse" avec la destination finale du paquet reçu comme adresse source sans violer sa zone source.
Notez qu'il est possible, bien que généralement inadvisable, d'utiliser un en-tête de routage pour transmettre une adresse non globale à travers sa limite de zone associée dans le champ d'adresse suivante précédemment utilisé. Par exemple, considérez un cas dans lequel un nœud frontalier de lien (par exemple, un routeur) reçoit un paquet avec la destination étant une adresse locale au lien, et l'adresse source une adresse globale. Si le paquet contient un en-tête de routage où l'adresse suivante est une adresse globale, l'interface de saut suivant vers l'adresse globale peut appartenir à un lien différent de celui de la destination originale. Ceci est autorisé parce que la portée de l'adresse suivante n'est pas plus petite que la portée de la destination originale.