Groupe de travail Réseau	Y. Rekhter, Juniper Networks	
Request for Comments : 3107	E. Rosen, Cisco Systems, Inc.	
Catégorie : Sur la voie de la normalisation	mai 2001	
Traduction Claude Brière de L'Isle		

Portage des informations d'étiquettes dans BGP-4

Statut de ce mémoire
Le présent document spécifie un protocole en cours de normalisation de l’Internet pour la communauté de l’Internet, et appelle à des discussions et suggestions pour son amélioration. Prière de se référer à l’édition en cours des "Normes officielles des protocoles de l’Internet" (STD 1) pour connaître l’état de la normalisation et le statut de ce protocole. La distribution du présent mémoire n’est soumise à aucune restriction.

Notice de copyright 
Copyright (C) The Internet Society (2001). Tous droits réservés

Résumé
Le présent document spécifie la façon dont les informations de transposition d'étiquettes pour une certaine route sont portées dans le même message de mise à jour du protocole de routeur frontière (BGP, Border Gateway Protocol) qui est utilisé pour distribuer le chemin lui-même. Quand BGP est utilisé pour distribuer un certain chemin, il peut aussi être utilisé pour distribuer une étiquette de commutation d'étiquette multi protocoles (MPLS, Multiprotocol Label Switching) qui est transposée sur cette route.
Table des matières
1. Spécification des exigences	1
2. Généralités	1
3. Portage des informations de transposition d'étiquette	2
4. Annonce de chemins multiples pour une destination	3
5. Annonce de capacités	3
6. Quand les homologues BGP ne sont pas directement adjacents	3
7. Considérations sur la sécurité	4
8. Remerciements	4
9. Références	4
10. Adresse des auteurs	4
11. Déclaration complète de droits de reproduction	5

 	1.	Spécification des exigences

Les mots clés "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDE", "PEUT", et "FACULTATIF" en majuscules dans ce document sont à interpréter comme décrit dans le BCP 14, [RFC2119].

 	2.	Généralités

Quand BGP est utilisé pour distribuer un chemin particulier, il peut aussi être utilisé pour distribuer une étiquette MPLS qui est transposée en ce chemin [RFC3031]. Le présent document spécifie la façon dont cela est fait. Les informations de transposition d'étiquette pour un chemin particulier sont portées dans le même message BGP Update qui est utilisé pour distribuer le chemin lui-même.

Cela peut être utile dans les situations suivantes :

-	Si deux routeurs de commutation d'étiquette (LSR, Label Switched Router) immédiatement adjacents sont aussi des homologues BGP, la distribution d'étiquettes peut alors être faite sans qu'il soit besoin d'aucun autre protocole de distribution d'étiquettes.

-	Supposons qu'un réseau consiste en deux "classes" de LSR : des LSR extérieurs, qui font l'interface avec les autres réseaux, et des LSR intérieurs, qui servent seulement à porter le trafic entre les LSR extérieurs. Supposons que les LSR extérieurs soient des locuteurs BGP. Si les locuteurs BGP distribuent les étiquettes MPLS les uns aux autres le long de chaque route qu'ils distribuent, alors tant que les routeurs intérieurs prennent en charge MPLS, ils n'ont pas besoin de recevoir les routes BGP de la part des locuteurs BGP.

Si le routeur extérieur A a besoin d'envoyer un paquet à la destination D, et si le prochain bond BGP de A pour D est le routeur extérieur B, et si B a transposé l'étiquette L à D, alors A pousse d'abord L sur la pile d'étiquettes du paquet. A consulte alors son IGP pour trouver le prochain bond pour B, qu'on appellera C. Si C a distribué à A une étiquette MPLS pour le chemin vers B, A peut pousser cette étiquette sur la pile d'étiquettes du paquet, et envoyer ensuite le paquet à C.

Si un ensemble de locuteurs BGP échangent des routes via un réflecteur de routes [RFC1966], alors en portant la distribution des étiquettes sur la distribution de routes, on est capable d'utiliser le réflecteur de routes pour distribuer aussi les étiquettes. Cela améliore assez significativement l'adaptabilité. Noter que si le réflecteur de routes n'est pas sur le chemin de transmission, il n'a même pas besoin d'être capable de transmettre les paquets MPLS.

La distribution des étiquettes peut être portée dans le message BGP Update en utilisant l'attribut BGP-4 Extensions multi protocoles [RFC 2283]. L'étiquette est codée dans le champ NLRI de l'attribut, et le champ Identifiant de famille d'adresse suivant (SAFI, Subsequent Address Family Identifier) est utilisé pour indiquer que les NLRI contiennent une étiquette. Un locuteur BGP peut ne pas utiliser BGP pour envoyer des étiquettes à un certain homologue BGP sauf si cet homologue indique, au moyen d'un annonce de capacités BGP, qu'il peut traiter les messages Update avec le champ SAFI spécifié.

 	3.	Portage des informations de transposition d'étiquette

Les informations de transposition d'étiquettes sont portées au titre des informations d'accessibilité de couche réseau (NLRI, Network Layer Reachability Information) dans les attributs d'extensions multi protocoles. Le AFI indique, comme d'usage, la famille d'adresses de la route associée. Le fait que les NLRI contiennent une étiquette est indiqué par la valeur de SAFI  4.

Les informations d'accessibilité de couche réseau sont codées comme un ou plusieurs triplets de la forme <longueur, étiquette, préfixe>, dont les champs sont décrits ci-dessous :

+---------------------------+
|   Longueur (1 octet)      |
+---------------------------+
|   Étiquette (3 octets)    |
+---------------------------+
.............................
+---------------------------+
|   Préfixe (variable)      |
+---------------------------+

L'utilisation et la signification de ces champs sont les suivantes 

a) Longueur : Le champ Longueur indique la longueur en bits du préfixe d'adresse plus la ou les étiquettes.

b) Étiquette : Le champ Étiquette porte une ou plusieurs étiquettes (qui correspondent à la pile d'étiquettes [RFC3032]). Chaque étiquette est codée sur 3 octets, où les 20 bits de poids fort contiennent la valeur de l'étiquette, et le bit de moindre poids contient le "bas de la pile" (comme défini dans la [RFC3032]).

c) Préfixe : Le champ Préfixe contient les préfixes des adresses suivis par assez de bits en queue pour faire tomber le champ sur une limite d'octet. Noter que la valeur des bits d'en-queue est sans importance.

La ou les étiquettes spécifiées pour une route particulière (et associées à son préfixe d'adresse) doivent être allouées par le LSR qui est identifié par la valeur de l'attribut Prochain bond de la route.

Quand un locuteur BGP redistribue une route, la ou les étiquettes allouées à cette route ne doivent pas être changées (sauf par omission), à moins que le locuteur change la valeur de l'attribut Prochain bond de la route.

Un locuteur BGP peut retirer une route précédemment annoncée (ainsi que le lien entre cette route et une étiquette) en (a) annonçant une nouvelle route (et une étiquette) avec les mêmes NLRI que celles de la route précédemment annoncée, ou (b) faisant la liste des NLRI de la route précédemment annoncée dans le champ Routes retirées d'un message Update. Les informations d'étiquette portées (au titre des NLRI) dans le champ Routes retirées devraient être réglées à 0x800000. (Bien sûr, terminer la session BGP retire aussi toutes les routes précédemment annoncées.)

 	4.	Annonce de chemins multiples pour une destination

Un locuteur BGP peut conserver (et annoncer à ses homologues) plus d'une route pour une certaine destination, pour autant que chacune de ces routes ait sa propre étiquette.

Le codage décrit ci-dessus permet à un seul message BGP Update de porter plusieurs routes, chacune avec sa ou ses propres étiquettes.

Dans le cas où un locuteur BGP annonce plusieurs routes pour une destination, si une route est retirée, et si une ou des étiquettes sont spécifiées au moment du retrait, seule la route qui a l'étiquette correspondante est retirée. Si une route est retirée, et si aucune étiquette n'est spécifiée au moment du retrait, seule la route non étiquetée correspondante est retirée ; les routes étiquetées restent en place.

 	5.	Annonce de capacités

Un locuteur BGP qui utilise les extensions multi protocoles pour porter les informations de transposition d'étiquette devrait utiliser le paramètre Capacités facultatives défini dans la [RFC2842], pour informer ses homologues de cette capacité. Le code de capacité MP_EXT, comme défini dans la [RFC2858], est utilisé pour annoncer les paires (AFI, SAFI) disponibles sur une certaine connexion.

Un locuteur BGP ne devrait pas annoncer cette capacité à un autre locuteur BGP si il n'y a pas un chemin de commutation d'étiquettes (LSP, Label Switched Path) entre ces deux locuteurs.

Un locuteur BGP capable de traiter plusieurs routes pour une destination (comme décrit ci-dessus) devrait utiliser le paramètre Capacités facultatives, défini dans la [RFC2842], pour informer ses homologues de cette capacité. La valeur de cette capacité est 4.

 	6.	Quand les homologues BGP ne sont pas directement adjacents

Considérons la topologie de LSR suivante : A--B--C--D. Supposons que D distribue une étiquette L à A. Dans cette topologie, A ne peut pas simplement pousser L sur la pile d'étiquettes d'un paquet, et envoyer ensuite le paquet résultant à B. D doit être le seul LSR qui voit L au sommet de la pile. Avant que A n'envoie le paquet à B, il doit pousser une autre  étiquette, qui a été distribuée par B. B doit remplacer cette étiquette par une autre étiquette, qui a été distribuée par C. En d'autres termes, il doit y avoir un LSP entre A et D. Si il n'y a pas un tel LSP, A ne peut pas utiliser l'étiquette L. C'est vrai chaque fois que les étiquettes sont distribuées entre des LSR non adjacents, que cette distribution soit faite par BGP ou par une autre méthode.

Le présent document NE spécifie AUCUNE procédure pour assurer en temps réel que la distribution d'étiquettes entre des LSR non adjacents est faite seulement quand l'infrastructure MPLS appropriée existe dans le ou les réseaux qui connectent les deux LSR. S'assurer que l'infrastructure appropriée existe est un problème de gestion et de fonctionnement de réseau.

 	7.	Considérations sur la sécurité

Quand un LSR A est directement connecté à un LSR B via une interface point à point, quand A reçoit des paquets sur cette interface, il sait qu'ils viennent de B. Cela rend facile à A d'éliminer tout paquet provenant de B dont les étiquettes de sommet ne sont pas parmi les étiquettes que A a distribuées à B. C'est-à-dire que A peut facilement s'assurer que B utilise seulement les étiquettes qu'il est en droit d'utiliser. Cette technique peut être utilisée pour empêcher "l'usurpation d'étiquette", c'est-à-dire la situation dans laquelle un LSR impose une étiquette qui ne lui a pas été distribuée de façon appropriée.

Les procédures discutées dans le présent document seront couramment utilisées quand les homologues de la distribution d'étiquettes sont séparés non seulement par une liaison point à point, mais par un réseau MPLS. Cela signifie que quand un LSR A traite un paquet étiqueté, il n'a réellement aucun moyen de déterminer quel autre LSR B a poussé sur l'étiquette du haut. Donc, il ne peut pas dire si l'étiquette est une de celles que B est en droit d'utiliser. En fait, quand des réflecteurs de route sont utilisés, A peut même ne pas savoir l'ensemble des LSR qui ont reçu ses transpositions d'étiquettes. De sorte que la technique du paragraphe précédent pour empêcher l'usurpation d'étiquette ne s'applique pas.

Il est cependant possible d'utiliser d'autres techniques pour éviter les problèmes d'usurpation d'étiquette. Si, par exemple, on n'accepte jamais de paquets étiquetés provenant d'interfaces "externes" au réseau, et si toutes les étiquettes distribuées par BGP sont annoncées via IBGP, il n'y a alors aucun moyen pour un routeur qui n'est pas de confiance de mettre un paquet étiqueté sur le réseau. On peut généralement supposer qu'un des homologues IBGP (ou les homologues IBGP de son réflecteur de route) ne va pas tenter d'usurpation d'étiquette, car ils sont tous sous le contrôle d'une seule administration.

Cette condition peut en fait être significativement affaiblie. On n'a pas besoin de refuser d'accepter tous les paquets étiquetés provenant des interfaces externes. On a juste besoin de s'assurer que tout paquet étiqueté reçu sur une interface externe a une étiquette de sommet qui a réellement été distribuée à partir de cette interface.

Le problème de l'usurpation d'étiquette ne va alors exister que si il y a à la fois des systèmes de confiance et d'autres qui ne le sont pas sur la même interface. Une façon d'éviter ce problème est simplement d'éviter cette situation.

 	8.	Remerciements

Merci à Ravi Chandra, Enke Chen, Srihari Ramachandra, Eric Gray et Liam Casey pour leurs commentaires.

 	9.	Références

[RFC1771]	Y. Rekhter, T. Li , "Protocole de routeur frontière v. 4 (BGP-4)", mars 1995. (Obsolète, voir RFC4271) (D.S.)

[RFC1966]	T. Bates, R. Chandra, "Acheminement BGP par réflexion : une solution de remplacement au maillage IBGP intégral", juin 1996. (Expérimentale, MàJ par RFC2796 ; obsolète, voir RFC4456)

[RFC2842]	R. Chandra, J. Scudder, "Annonce de capacités avec BGP-4", mai 2000. (Obsolète, voir RFC3392) (P.S.)

[RFC2858]	T. Bates et autres, "Extensions multiprotocoles pour BGP-4", juin 2000. (Obsolète, voir RFC4760) (P.S.)

[RFC3031]	E. Rosen, A. Viswanathan, R. Callon, "Architecture de commutation d'étiquettes multi protocoles", janvier 2001. (P.S.) (MàJ par la RFC6790)

[RFC3032]	E. Rosen et autres, "Codage de pile d'étiquettes MPLS", janvier 2001.

 	10.	Adresse des auteurs

Yakov Rekhter	Eric Rosen	
Juniper Networks	Cisco Systems, Inc.	
1194 N. Mathilda Avenue	250 Apollo Drive	
Sunnyvale, CA 94089	Chelmsford, MA 01824	
mél : yakov@juniper.net 	mél : erosen@cisco.com 	

 	11.	Déclaration complète de droits de reproduction

Copyright (C) The Internet Society (2001). Tous droits réservés.

Le présent document et ses traductions peuvent être copiés et fournis aux tiers, et les travaux dérivés qui les commentent ou les expliquent ou aident à leur mise en œuvre peuvent être préparés, copiés, publiés et distribués, en tout ou partie, sans restriction d’aucune sorte, pourvu que la déclaration de droits de reproduction ci-dessus et le présent paragraphe soient inclus dans toutes copies et travaux dérivés. Cependant, le présent document lui-même ne peut être modifié d’aucune façon, en particulier en retirant la notice de droits de reproduction ou les références à la Internet Society ou aux autres organisations Internet, excepté autant qu’il est nécessaire pour le besoin du développement des normes Internet, auquel cas les procédures de droits de reproduction définies dans les procédures des normes Internet doivent être suivies, ou pour les besoins de la traduction dans d’autres langues que l’anglais.

Les permissions limitées accordées ci-dessus sont perpétuelles et ne seront pas révoquées par la Internet Society ou ses successeurs ou ayant droits.

Le présent document et les informations contenues sont fournis sur une base "EN L’ÉTAT" et le contributeur, l’organisation qu’il ou elle représente ou qui le/la finance (s’il en est), la INTERNET SOCIETY et la INTERNET ENGINEERING TASK FORCE déclinent toutes garanties, exprimées ou implicites, y compris mais non limitées à toute garantie que l’utilisation des informations encloses ne viole aucun droit ou aucune garantie implicite de commercialisation ou d’aptitude à un objet particulier.

Le financement de la fonction d’édition des RFC est actuellement fourni par l’Internet Society.