Aller au contenu principal

4. Opérations

4.1. Interaction entre NOUVEAUX locuteurs BGP

Un locuteur BGP qui prend en charge les numéros AS à quatre octets DOIT (SHALL) l'annoncer à ses pairs en utilisant les annonces de capacités BGP. Le numéro AS du locuteur BGP DOIT (MUST) être transporté dans le champ Capability Value de la « prise en charge de la capacité de numéros AS à quatre octets ».

Lorsqu'un NOUVEAU locuteur BGP traite un message OPEN d'un autre NOUVEAU locuteur BGP, il DOIT (MUST) utiliser le numéro AS encodé dans le champ Capability Value de la « prise en charge de la capacité de numéros AS à quatre octets » au lieu du champ « My Autonomous System » du message OPEN.

Un locuteur BGP qui annonce une telle capacité à un pair particulier, et reçoit de ce pair l'annonce d'une telle capacité, DOIT (MUST) encoder les numéros AS comme des entités de quatre octets à la fois dans l'attribut AS_PATH et dans l'attribut AGGREGATOR dans les mises à jour qu'il envoie au pair et DOIT (MUST) supposer que ces attributs dans les mises à jour reçues du pair encodent les numéros AS comme des entités de quatre octets.

Les nouveaux attributs, AS4_PATH et AS4_AGGREGATOR, NE DOIVENT PAS (MUST NOT) être transportés dans un message UPDATE entre NOUVEAUX locuteurs BGP. Un NOUVEAU locuteur BGP qui reçoit l'attribut AS4_PATH ou l'attribut AS4_AGGREGATOR dans un message UPDATE d'un autre NOUVEAU locuteur BGP DOIT (MUST) ignorer l'attribut de chemin et continuer le traitement du message UPDATE.

4.2. Interaction entre NOUVEAUX et ANCIENS locuteurs BGP

4.2.1. Appairage BGP

Notez que l'appairage entre un NOUVEAU locuteur BGP et un ANCIEN locuteur BGP n'est possible que si le NOUVEAU locuteur BGP a un numéro AS à deux octets. Cependant, ce document ne suppose pas qu'un système autonome avec des NOUVEAUX locuteurs BGP doit avoir un numéro AS à deux octets globalement unique -- AS_TRANS DOIT (MUST) être utilisé lorsque le NOUVEAU locuteur BGP n'a pas de numéro AS à deux octets (même si plusieurs systèmes autonomes l'utiliseraient).

4.2.2. Génération des mises à jour

Lors de la communication avec un ANCIEN locuteur BGP, un NOUVEAU locuteur BGP DOIT (MUST) envoyer les informations de chemin AS dans l'attribut AS_PATH encodé avec des numéros AS à deux octets. Le NOUVEAU locuteur BGP DOIT (MUST) également envoyer les informations de chemin AS dans l'attribut AS4_PATH (encodé avec des numéros AS à quatre octets), sauf dans le cas où toutes les informations de chemin AS sont composées uniquement de numéros AS à quatre octets mappables. Dans ce cas, le NOUVEAU locuteur BGP NE DOIT PAS (MUST NOT) envoyer l'attribut AS4_PATH.

Dans l'attribut AS_PATH encodé avec des numéros AS à deux octets, les numéros AS à quatre octets non mappables sont représentés par le numéro AS à deux octets bien connu, AS_TRANS. Cela préservera la propriété de longueur de chemin des informations de chemin AS et aidera également à mettre à jour les informations de chemin AS reçues sur un NOUVEAU locuteur BGP d'un ANCIEN locuteur BGP, comme expliqué dans la section suivante.

Le NOUVEAU locuteur BGP construit l'attribut AS4_PATH à partir des informations de chemin AS. Chaque fois que les informations de chemin AS contiennent le segment de chemin AS_CONFED_SEQUENCE ou AS_CONFED_SET, le NOUVEAU locuteur BGP DOIT (MUST) exclure ces segments de chemin de l'attribut AS4_PATH en cours de construction.

L'attribut AS4_PATH, étant optionnel transitif, sera transporté à travers une série d'ANCIENS locuteurs BGP sans modification et aidera à préserver les numéros AS à quatre octets non mappables dans les informations de chemin AS.

De même, si le NOUVEAU locuteur BGP doit envoyer l'attribut AGGREGATOR, et si le numéro AS du système autonome agrégateur est un numéro AS à quatre octets non mappable, alors le locuteur DOIT (MUST) utiliser l'attribut AS4_AGGREGATOR et définir le champ du numéro AS dans l'attribut AGGREGATOR existant au numéro AS réservé, AS_TRANS. Notez que si le numéro AS est mappable, alors l'attribut AS4_AGGREGATOR NE DOIT PAS (MUST NOT) être envoyé.

4.2.3. Traitement des mises à jour reçues

Lorsqu'un NOUVEAU locuteur BGP reçoit une mise à jour d'un ANCIEN locuteur BGP, il DOIT (MUST) être préparé à recevoir l'attribut AS4_PATH ainsi que l'attribut AS_PATH existant. Si l'attribut AS4_PATH est également reçu, les deux attributs seront utilisés pour construire les informations de chemin AS exactes, et donc les informations transportées par les deux attributs seront considérées pour la détection de boucle de chemin AS.

Notez qu'une route peut avoir traversé une série de systèmes autonomes avec des numéros AS à deux octets et uniquement des ANCIENS locuteurs BGP. Dans ce cas, si la route transporte l'attribut AS4_PATH, cet attribut serait resté non modifié depuis que la route a quitté le dernier NOUVEAU locuteur BGP. Les informations de chemin AS de fin (représentant les systèmes autonomes avec des numéros AS à deux octets et uniquement des ANCIENS locuteurs BGP) sont contenues uniquement dans l'attribut AS_PATH actuel (encodé dans la partie de tête de l'attribut AS_PATH).

Dans certaines conditions, il peut ne pas être possible de reconstruire toutes les informations de chemin AS à partir des attributs AS_PATH et AS4_PATH d'une route. Cela se produit, par exemple, lorsque deux routes ou plus qui transportent l'attribut AS4_PATH sont agrégées par un ANCIEN locuteur BGP, et l'attribut AS4_PATH d'au moins une de ces routes transporte au moins un numéro AS à quatre octets (par opposition à un numéro AS à deux octets qui est encodé en 4 octets). Selon l'implémentation, soit l'attribut AS4_PATH serait perdu lors de l'agrégation de route, soit l'attribut AS_PATH et l'attribut AS4_PATH contiendraient des informations partielles valides qui ne peuvent pas être combinées de manière transparente, résultant en des informations de chemin AS incomplètes dans ces cas.

Un NOUVEAU locuteur BGP DOIT (MUST) également être préparé à recevoir l'attribut AS4_AGGREGATOR ainsi que l'attribut AGGREGATOR d'un ANCIEN locuteur BGP. Lorsque les deux attributs sont reçus, si le numéro AS dans l'attribut AGGREGATOR n'est pas AS_TRANS, alors :

  • l'attribut AS4_AGGREGATOR et l'attribut AS4_PATH DOIVENT (SHALL) être ignorés,
  • l'attribut AGGREGATOR DOIT (SHALL) être pris comme l'information sur le nœud agrégateur, et
  • l'attribut AS_PATH DOIT (SHALL) être pris comme les informations de chemin AS.

Sinon,

  • l'attribut AGGREGATOR DOIT (SHALL) être ignoré,
  • l'attribut AS4_AGGREGATOR DOIT (SHALL) être pris comme l'information sur le nœud agrégateur, et
  • les informations de chemin AS devront être construites, comme dans tous les autres cas.

Afin de construire les informations de chemin AS, il est nécessaire de d'abord calculer le nombre de numéros AS dans les attributs AS_PATH et AS4_PATH en utilisant la méthode spécifiée dans la Section 9.1.2.2 de [RFC4271] et dans [RFC5065] pour la sélection de route.

Si le nombre de numéros AS dans l'attribut AS_PATH est inférieur au nombre de numéros AS dans l'attribut AS4_PATH, alors l'attribut AS4_PATH DOIT (SHALL) être ignoré, et l'attribut AS_PATH DOIT (SHALL) être pris comme les informations de chemin AS.

Si le nombre de numéros AS dans l'attribut AS_PATH est supérieur ou égal au nombre de numéros AS dans l'attribut AS4_PATH, alors les informations de chemin AS DOIVENT (SHALL) être construites en prenant autant de numéros AS et de segments de chemin que nécessaire de la partie de tête de l'attribut AS_PATH, puis en les préfixant à l'attribut AS4_PATH de sorte que les informations de chemin AS aient un nombre de numéros AS identique à celui de l'attribut AS_PATH. Notez qu'un segment de chemin AS_CONFED_SEQUENCE ou AS_CONFED_SET valide DOIT (SHALL) être préfixé s'il est soit le segment de chemin de tête, soit adjacent à un segment de chemin qui est préfixé.