4. Encapsulation
Le routeur PE d'entrée DOIT transporter les données VPN IPv6 via un tunnel du réseau dorsal vers le routeur PE de sortie identifié par le saut suivant BGP du préfixe IPv6 VPN de destination correspondant.
Lorsque les 16 octets de l'adresse IPv6 contenue dans le champ du saut suivant BGP sont codés comme une adresse IPv6 mappée en IPv4 (voir section 3.2.1.2), le PE d'entrée DOIT utiliser un tunnel IPv4, sauf s'il est explicitement configuré pour agir autrement. Le PE d'entrée PEUT, par configuration explicite, autoriser l'utilisation d'un tunnel IPv6 lorsque les 16 octets de l'adresse IPv6 contenue dans le champ du saut suivant BGP sont codés comme une adresse IPv6 mappée en IPv4. Cela permet de prendre en charge certains environnements de déploiement particuliers dans lesquels un tunnel IPv6 est souhaité bien qu'une adresse IPv6 mappée en IPv4, plutôt qu'une adresse IPv6 globale, soit utilisée pour la routabilité IPv6 du PE.
Lorsque les 16 octets de l'adresse IPv6 contenue dans le champ du saut suivant BGP ne sont pas codés comme une adresse mappée en IPv4 (voir section 3.2.1.1), le PE d'entrée DOIT utiliser un tunnel IPv6.
Lorsque le PE reçoit un paquet en provenance du CE connecté, il effectue une recherche de l'adresse de destination IPv6 du paquet dans la VRF correspondant à ce CE. Ainsi, il peut trouver une route VPN-IPv6. Cette route VPN-IPv6 possède une étiquette MPLS associée et un saut suivant BGP associé. Premièrement, cette étiquette MPLS est empilée dans le paquet en tant qu'étiquette de niveau inférieur. Ensuite, ce paquet étiqueté est encapsulé dans un tunnel pour être transporté vers le PE de sortie identifié par le saut suivant BGP. Les détails de cette encapsulation dépendent de la technique de tunnelisation réelle, comme décrit ci-dessous :
Comme pour le MPLS/BGP utilisé pour les VPN IPv4 [2547-GRE/IP], lors de l'encapsulation par tunnel utilisant un tunnel IPv4 ou IPv6 (respectivement un tunnel GRE IPv4 ou un tunnel GRE IPv6), l'encapsulation du paquet VPN IPv6 étiqueté produit un paquet encapsulé MPLS-in-IP (respectivement MPLS-in-GRE) tel que spécifié dans [MPLS-in-IP/GRE]. Lors de l'encapsulation par tunnel utilisant L2TPv3, l'encapsulation du paquet VPN IPv6 étiqueté produit un paquet encapsulé MPLS-in-L2TPv3 tel que spécifié dans [MPLS-in-L2TPv3].
Comme pour le MPLS/BGP utilisé pour les VPN IPv4, lors de l'encapsulation par tunnel utilisant un tunnel protégé par IPsec [2547-IPsec], l'encapsulation du paquet VPN IPv6 étiqueté produit un paquet encapsulé MPLS-in-IP ou MPLS-in-GRE [MPLS-in-IP/GRE]. Le mode de transport IPsec est utilisé pour protéger ce tunnel IPv4 ou GRE du PE d'entrée au PE de sortie.
Lors de l'encapsulation par tunnel utilisant un tunnel IPv4 (protégé ou non par IPsec), le routeur PE d'entrée DOIT utiliser l'adresse IPv4 codée dans le champ d'adresse IPv6 mappée en IPv4 du champ du saut suivant BGP comme adresse de destination de l'en-tête de tunnel IPv4 ajouté. Il utilise l'une de ses propres adresses IPv4 comme adresse source de l'en-tête de tunnel IPv4 ajouté.
Lors de l'encapsulation par tunnel utilisant un tunnel IPv6 (protégé ou non par IPsec), le routeur PE d'entrée DOIT utiliser l'adresse IPv6 contenue dans le champ d'adresse IPv6 du champ du saut suivant BGP comme adresse de destination de l'en-tête de tunnel IPv6 ajouté. Il utilise l'une de ses propres adresses IPv6 comme adresse source de l'en-tête de tunnel IPv6 ajouté.
Lors de l'encapsulation par tunnel utilisant un LSP MPLS, le LSP peut être établi en utilisant n'importe quelle technique de distribution d'étiquettes (LDP [LDP], RSVP-TE [RSVP-TE], etc.).
Lors de l'encapsulation par tunnel utilisant un LSP MPLS, le routeur PE d'entrée DOIT empiler directement l'étiquette de tunnel LSP dans la pile d'étiquettes du paquet VPN IPv6 étiqueté (c'est-à-dire sans ajouter au préalable un en-tête IPv4 ou IPv6 quelconque). L'étiquette empilée correspond au LSP commençant au routeur PE d'entrée et se terminant au routeur PE de sortie. Le champ du saut suivant BGP est utilisé pour identifier le routeur PE de sortie, et donc pour déterminer l'étiquette à empiler dans la pile d'étiquettes. Lorsque l'adresse IPv6 dans le champ du saut suivant BGP est une adresse IPv6 mappée en IPv4, l'adresse IPv4 incorporée détermine l'étiquette de tunnel à empiler dans la pile d'étiquettes. Dans tous les autres cas, l'adresse IPv6 dans le champ du saut suivant BGP détermine l'étiquette de tunnel à empiler dans la pile d'étiquettes.
Pour garantir l'interopérabilité entre les systèmes implémentant cette architecture VPN, tous ces systèmes DOIVENT prendre en charge l'encapsulation par tunnel utilisant des LSP MPLS établis par LDP [LDP].