Tunnels
From Livre IPv6
Liaisons point à point | Table des matières | IPv6 dans la téléphonie mobile (UMTS) |
Un tunnel est un moyen de transporter des paquets IP directement entre deux points connectés par IP. L'extrémité émettrice du tunnel encapsule le datagramme IP dans un autre datagramme IP et l'envoie vers l'autre extrémité du tunnel. L'extrémité réceptrice reçoit le message, décapsule le datagramme IP et le traite. On peut voir ce mécanisme comme un lien point à point ou un lien NBMA, selon qu'on considère des relations 2 à 2 ou un émetteur en face du réseau Internet.
Il existe de nombreux formats de tunnels en IPv4 :
- IP dans IP (RFC 1853),
- l'encapsulation minimale pour la mobilité (RFC 2004),
- celui utilisé par le Mbone pour le multicast,
- le format GRE (Generic Routing Encapsulation, RFC 1701),
- L2TP (encapsulation de PPP sur IP, RFC 3437)
- ...
En IPv6, l'utilisation des en-têtes d'extension et le support du multicast en natif font que la beaucoup des utilisations spécifiques de tunnels par IPv4 n'ont a priori plus de raison d'être. Il reste cependant des protocoles importants qui utilisent explicitement des tunnels, si bien que les tunnels existent toujours en IPv6 : il existe un format générique, et des utilisations spécifiques pour la mobilité, pour la sécurité et, dans la phase de déploiement de IPv6, tant que la connectivité mondiale n'est pas assurée, pour relier des réseaux IPv6 isolés à travers l'Internet IPv4. Cette approche a été utilisée de manière intensive pour réaliser le réseau 6bone.
A noter que GRE (RFC 2473) a été également défini pour IPv6 pour transporter des protocoles non Internet dans une infrastructure IPv6.
Tunnel générique IP dans IPv6
Ce type de tunnel permet d'utiliser le réseau IPv6 pour transporter tout type de datagramme, en particulier des datagrammes IPv4 ou IPv6. Le RFC 2473 précise le principe général : envoi d'un paquet IPv6 contenant comme donnée le paquet encapsulé.
Dans le cas d'un paquet encapsulé IPv6, le type de donnée (champ En-tête suivant) utilisé est 41 (0x29) et dans le cas d'un paquet IPv4, le champ en-tête suivant vaut 4. Le RFC 2473 propose aussi un mécanisme de protection contre les bouclages dus à des tunnels imbriqués. Le MTU du tunnel est à configurer, une valeur possible est PMTU - LGH où PMTU est le Path MTU entre les deux extrémités du tunnel, et LGH est la taille de toutes les en-têtes ajoutées (en-tête IPv6, mais peut-être aussi routage, chiffrement, ...).
Transport de IPv6 sur IPv4
Le transport des paquets IPv6 à l'intérieur de paquets IPv4 est décrit dans le RFC 2893. Il utilise un tunnel point à point (ou configuré) qui établit une liaison fixe entre deux machines (en général des routeurs).
Le MTU est à configurer, et doit être au moins égal à 1280. Une valeur possible est 1280, ou PMTU - 20 où PMTU est le Path MTU IPv4 entre les deux extrémités du tunnel.
L'encapsulation est faite dans un paquet IPv4 de type protocole 41 (0x29). Chaque datagramme IPv6 forme un paquet séparé. Ce paquet peut être fragmenté par IPv4 (cf. figure Datagramme IPv6 encapsulé dans un datagramme IPv4).
Le tunnel utilise comme identifiant d'interface l'adresse IPv4 complétée en tête par des 0. Le tunnel doit implémenter les mécanismes de découverte des voisins, sans option d'adresse physique.
Liaisons point à point | Table des matières | IPv6 dans la téléphonie mobile (UMTS) |