Aller au contenu principal

3. Distribution des routes VPN-IPv6

3.1. Distribution des routes entre les PE par BGP​

Comme décrit dans [BGP/MPLS-VPN], si deux sites d'un VPN sont connectés à des PE situés dans le même système autonome, ces PE peuvent se distribuer les routes VPN via leur connexion (IPv4) iBGP (Border Gateway Protocol interne). Alternativement, chaque PE peut établir une connexion iBGP avec un réflecteur de route. De même, pour la distribution des routes VPN IPv6, les PE peuvent utiliser leur connexion iBGP entre eux, ou une connexion iBGP vers un réflecteur de route. Pour le VPN IPv6, la connexion iBGP peut être basée sur IPv4 ou IPv6.

Les routeurs PE échangent, via MP-BGP [BGP-MP], les informations de routabilité des préfixes IPv6 dans le VPN IPv6, et s'annoncent en conséquence comme saut suivant BGP (BGP Next Hop).

Le codage des informations de routabilité et les règles relatives à l'adresse du saut suivant BGP sont spécifiés dans les sections suivantes.

3.2. Codage de la NLRI VPN IPv6​

Lors de la distribution des routes VPN IPv6, le routeur PE annonciateur DOIT allouer et distribuer une étiquette MPLS pour ces routes. Essentiellement, le routeur PE distribue non pas une route IPv6 VPN ordinaire, mais une route IPv6 VPN étiquetée [MPLS-BGP]. Lorsque le routeur PE annonciateur reçoit un paquet transportant l'étiquette émise, le PE dépile cette étiquette de la pile MPLS et traite le paquet en conséquence (c'est-à-dire, transfert direct basé sur l'étiquette, ou recherche dans le contexte IPv6-VPN approprié).

Les extensions multiprotocole de BGP [BGP-MP] sont utilisées pour annoncer les routes VPN IPv6 dans la NLRI (Network Layer Reachability Information) MP_REACH. Les champs de l'identifiant de famille d'adresses (AFI) et de l'identifiant de famille d'adresses subséquent (SAFI) DOIVENT être définis comme suit :

  • AFI : 2 ; pour IPv6

  • SAFI : 128 ; pour VPN-IPv6 avec étiquette MPLS

Le codage du champ NLRI lui-même est spécifié dans [MPLS-BGP]. Dans le contexte de cette extension, le préfixe appartient à la famille d'adresses VPN-IPv6 et se compose donc d'un discriminateur de route de 8 octets suivi du préfixe IPv6 décrit à la section 2 ci-dessus.

3.2.1. Codage du saut suivant BGP​

Le codage du saut suivant BGP dépend de la politique du porteur BGP : exige-t-il que le trafic VPN IPv6 soit transporté vers ce saut suivant BGP via un tunnel IPv6 (« porteur BGP demandant un transport IPv6 »), ou via un tunnel IPv4 (« porteur BGP demandant un transport IPv4 »).

La définition de cette politique (exiger un transport via un tunnel IPv4 ou IPv6) relève de la responsabilité de l'opérateur de réseau et dépasse le périmètre de ce document. Notez que cette politique peut exiger un transport via un tunnel IPv4 (respectivement IPv6) alors même que le porteur BGP échange les informations de routabilité IPv6 VPN via IPv6 (respectivement IPv4). Dans ce cas cependant, plusieurs aspects opérationnels méritent considération. En particulier, une défaillance non détectée affectant le chemin de données du tunnel IPv4 (respectivement IPv6) sans affecter le chemin de données IPv6 (respectivement IPv4) peut ne pas être détectée par BGP, ce qui peut entraîner un trou noir de trafic.

Le contrôle de cette politique dépasse le périmètre de ce document et peut être réalisé sur la base d'une configuration par l'utilisateur.

3.2.1.1. Porteur BGP demandant un transport IPv6​

Lorsque le trafic VPN IPv6 doit être transporté vers le porteur BGP via un tunnel IPv6 (par exemple un LSP MPLS IPv6, un tunnel IPv6 protégé par IPsec), le porteur BGP DOIT annoncer un champ d'adresse réseau du saut suivant contenant une adresse VPN-IPv6 :

  • dont les 8 octets du RD sont fixés à zéro, et

  • dont les 16 octets de l'adresse IPv6 sont définis à l'adresse IPv6 globale du porteur BGP annonciateur.

Il peut être suivi d'une autre adresse VPN-IPv6 :

  • dont les 8 octets du RD sont fixés à zéro, et

  • dont les 16 octets de l'adresse IPv6 sont définis à l'adresse IPv6 link-local du porteur BGP annonciateur.

Dans l'attribut MP_REACH_NLRI, la valeur de la longueur du champ d'adresse réseau du saut suivant DOIT être fixée à 24 (lorsque seule l'adresse globale est présente), ou à 48 (lorsque l'adresse link-local est également incluse dans le champ du saut suivant).

Si le porteur BGP n'utilise que son adresse IPv6 link-local (par exemple lorsque le CE IPv6 établit un peering avec le PE IPv6 et que le CE ne dispose d'aucune adresse IPv6 globale, et que le peering eBGP est réalisé via l'adresse link-local), le porteur BGP annonciateur utilise l'« adresse non spécifiée » ([V6ADDR]) pour représenter l'absence d'adresse IPv6 globale dans le champ d'adresse réseau du saut suivant.

Le champ du saut suivant n'inclut une adresse link-local que si le porteur BGP annonciateur et le pair de la route annoncée partagent un sous-réseau commun [BGP-IPv6].

Dans tous les autres cas, le porteur BGP n'annonce à son pair, dans son champ d'adresse réseau du saut suivant, que l'adresse IPv6 globale du saut suivant.

Par conséquent, un porteur BGP annonçant une route à un pair interne PEUT modifier le champ d'adresse réseau du saut suivant en supprimant l'adresse IPv6 link-local du saut suivant.

Un scénario nécessitant l'inclusion des adresses IPv6 globales et link-local dans le champ d'adresse du saut suivant BGP est celui où le service VPN IPv6 est établi sur un réseau dorsal multi-systèmes autonomes (AS), et les routes VPN-IPv6 étiquetées sont redistribuées entre les routeurs de bordure de système autonome (ASBR) de différents AS (partageant un sous-réseau IPv6 commun) ; dans ce cas, les ASBR DOIVENT annoncer à la fois l'adresse IPv6 globale et l'adresse IPv6 link-local.

3.2.1.2. Porteur BGP demandant un transport IPv4​

Lorsque le trafic VPN IPv6 doit être transporté vers le porteur BGP via un tunnel IPv4 (par exemple un LSP MPLS IPv4, un tunnel IPv4 protégé par IPsec), le porteur BGP DOIT annoncer à son pair un champ d'adresse réseau du saut suivant contenant une adresse VPN-IPv6 :

  • dont les 8 octets du RD sont fixés à zéro, et

  • dont les 16 octets de l'adresse IPv6 sont codés comme une adresse IPv6 mappée en IPv4 [V6ADDR] contenant l'adresse IPv4 du porteur BGP annonciateur. Cette adresse IPv4 DOIT être routable par les autres porteurs BGP.

3.3. Cible de route​

L'utilisation de la cible de route est spécifiée dans [BGP/MPLS-VPN] et s'applique aux VPN IPv6. Le codage de l'attribut de communauté étendue est défini dans [BGP-EXTCOM].

3.4. Négociation de capacité BGP​

Afin que deux PE puissent échanger une NLRI VPN IPv6 étiquetée, ils DOIVENT utiliser la négociation de capacité BGP pour s'assurer que les deux peuvent traiter correctement ce type de NLRI. La méthode est celle spécifiée dans [BGP-MP] et [BGP-CAP], à savoir utiliser le code de capacité 1 (BGP multiprotocole) avec les valeurs AFI et SAFI spécifiées à la section 3.2 ci-dessus.