Vous êtes sur la page 1sur 17

Protocole de routage BGP-IV

par Christian JACQUENET


Ingénieur de l’École Nationale Supérieure de Physique de Marseille (ENSPM)

1. Quelques rappels élémentaires ............................................................ IP 2 900 - 3


1.1 Des réseaux IP en général et des routeurs en particulier......................... — 3
1.2 De l’utilité des protocoles de routage dynamique dans les réseaux IP .. — 3
1.3 De l’inadéquation des IGP aux besoins de communication
entre systèmes autonomes......................................................................... — 4
2. Protocole BGP-IV...................................................................................... — 4
2.1 Généralités ................................................................................................... — 4
2.2 Formalisme du protocole BGP-IV ............................................................... — 5
3. Ingénierie de réseaux BGP-IV ............................................................... — 10
3.1 Typologie des systèmes autonomes.......................................................... — 10
3.2 Volumétrie du trafic BGP............................................................................. — 10
3.3 Politiques de routage BGP .......................................................................... — 11
3.4 Contraintes d’échelle ................................................................................... — 11
3.5 Politiques de redistribution......................................................................... — 14
4. Évolutions du protocole BGP-IV........................................................... — 15
4.1 Attribut COMMUNITIES (code 8)................................................................ — 15
4.2 Extensions multiprotocoles ........................................................................ — 15
4.3 Services de sécurité..................................................................................... — 16
5. Conclusion ................................................................................................. — 17
Pour en savoir plus ........................................................................................... Doc. IP 2 900

e déploiement massif du réseau Internet au cours des trois dernières décen-


L nies a été principalement caractérisé par un accroissement quasi exponen-
tiel de réseaux (IP) (Internet Protocol) placés sous la responsabilité d’entités
administratives dûment identifiées auprès de l’instance de régulation chargée
en particulier de répondre aux demandes d’attribution d’adresses IP [RFC-791]
[1].
L’acheminement du trafic IP tant au sein de ces réseaux qu’entre eux fait appel
à l’activation de protocoles de routage dynamique chargés de déterminer le
meilleur chemin possible pour atteindre une destination donnée, moyennant
l’activation d’algorithmes de calcul de routes plus ou moins complexes.

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux IP 2 900 − 1
PROTOCOLE DE ROUTAGE BGP-IV _________________________________________________________________________________________________________

Sigle Désignation

AFI (Address Family Identifier) Indication véhiculée dans certains attributs du protocole BGP-IV, pour indiquer l’identité du protocole de
communication auquel se référe l’annonce caractéristique du message de type UPDATE correspondant.
AS (Autonomous System) Un système autonome est une communauté de routeurs placée sous la responsabilité d’exploitation d’une
entité administrative dûment identifiée.
ATM (Asynchronous Transfer Mode de transmission d’informations qui s’appuie en particulier sur la commutation d’unités de longueur
Mode) fixe, appelées « cellules ».
BGP-IV (Border Gateway Protocol) Protocole de routage dynamique interdomaine (un domaine étant un ensemble de routeurs formant une
version 4 communauté gérée par une entité administrative unique. Le domaine correspond à la notion de « système
autonome »).
CIDR (Classless Inter-Domain Technique d’agrégation d’adresses qui permet d’optimiser la volumétrie du trafic de service lié à
Routing) l’échange d’informations de routage entre routeurs appartenant à des systèmes autonomes distincts, et
qui rend caduque la notion de classes d’adresses, telle que définie dans la spécification du protocole IPv4
[RFC-791].
EGP (Exterior Gateway Protocol) Sigle générique qui s’applique à tout protocole de routage dynamique susceptible d’être activé entre deux
systèmes autonomes (AS).
FIB (Forwarding Information Base) Table d’acheminement d’un routeur utilisée pour identifier le next hop et, partant, l’interface de sortie vers
laquelle un datagramme IP doit être commuté afin qu’il puisse être transmis selon l’information consignée
dans le champ «adresse destination» de son en-tête. La FIB est alimentée par des informations mainte-
nues dans la ou les table(s) de routage du routeur. Certaine littérature parle abusivement de « table de
routage » pour désigner ce qui est en réalité une table d’acheminement.
FSM (Finite State Machine) Machine d’états finis qui décrit un processus de fonctionnement applicable en particulier à un protocole.
HDLC (High level Data Link L’un des modes de tramage utilisé par la couche liaison du modèle OSI.
Control)
IDR (Inter-Domain Routing) Nom de l’un des groupes de travail de l’IETF, mandaté pour la production de spécifications relatives au
routage inter-domaines. C’est au sein de ce groupe de travail que les spécifications relatives au protocole
BGP évoluent.
IDRP (Inter-Domain Routing Protocole de type EGP spécifié par l’organisme de normalisation ISO.
Protocol)
IETF (Internet Engineering Task Organisme international impliqué dans la standardisation des protocoles, fonctions et services suscep-
Force) tibles d’être mis en œuvre par un réseau, un service ou une application qui s’appuie sur la suite de proto-
coles TCP/IP.
IGP (Interior Gateway Protocol) Sigle générique qui s’applique à tout protocole de routage dynamique susceptible d’être activé à l’inté-
rieur d’un domaine, ou système autonome (AS).
IP (Internet Protocol)
IRR (Internet Routing Registry) Serveur de routes consulté par certains des routeurs BGP mis en place au sein du réseau Internet, afin
qu’ils puissent alimenter leurs tables de routage. Les informations consignées dans un IRR sont (parfois)
formalisées selon la syntaxe du langage RPSL.
ISO (International Standards Organisme de standardisation international, impliqué notamment dans la production de normes de télé-
Organization) communications.
LAN (Local Area Network) Sigle générique utilisé pour désigner un réseau local, quelle que puisse être la méthode utilisée pour
accéder au support de ce réseau local. A titre d’exemple, la technologie Ethernet est l’une des technologies
de LAN les plus repandues.
MD5 (Message Digest, version 5) Algorithme qui permet de mettre en œuvre un processus de signature numérique utilisé dans le contexte
de la sécurisation d’une communication.
MIB (Management Information Base de données d’informations relatives à la gestion d’un équipement, d’un réseau, d’un service.
Base)
NAP (Network Access Point) Lieu d’échange d’informations de routage, moyennant l’hébergement de routeurs appartenant à différents
fournisseurs de services (d’accès au réseau Internet) qui ont conclu des accords (d’échange de routes)
bilatéraux (sinon multilatéraux), et, généralement, l’utilisation d’une technique de communication (de
niveau liaison, par référence au modèle OSI), choisie pour ses hautes performances (en termes de paquets
commutés par seconde, par exemple).
NLRI (Network Layer Reachability Information (éventuellement) consignée dans les messages de type UPDATE tels que véhiculés par le pro-
Information) tocole BGP-IV, et renseignant l’identité d’une destination, exprimée sous la forme d’une adresse (IP).
OSI (Open Systems Modèle en 7 couches défini par l’organisme de standardisation international ISO.
Interconnection)
OSPF (Open Shortest Path First) Protocole de routage dynamique de type IGP et de la famille «link state».
PDU (Protocol Data Unit) Unité de données de transmission définie dans la spécification du protocole IP [RFC-791].
RFC (Request For Comments) Document de spécification produit par la communauté IETF. Un RFC peut constituer un standard.

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
IP 2 900 − 2 © Techniques de l’Ingénieur, traité Réseaux
_________________________________________________________________________________________________________ PROTOCOLE DE ROUTAGE BGP-IV

Sigle (suite) Désignation (suite)

RIB (Routing Information Base) Table de routage maintenue par un routeur, et alimentée par des informations recueillies grâce à l’activa-
tion d’un protocole de routage dynamique.
RIP (Routing Information Protocol) Protocole de routage dynamique de type IGP, qui s’appuie sur le calcul probabiliste de Bellman-Ford,
moyennant l’utilisation d’une métrique particulière : le nombre de sauts (hop count).
RPSL (Routing Policy Specification Langage utilisé pour décrire les caractéristiques d’une politique de routage et, partant, consigner les infor-
Language) mations de routage maintenues par un équipement de type IRR.
SHA (Secure Hashing Algorithm) Algorithme qui permet de mettre en œuvre un processus de signature numérique utilisé dans le contexte
de la sécurisation d’une communication.
SNPA (Sub-Network Point Information utilisée par un routeur BGP-IV (et véhiculée dans l’attribut MP_REACH_NLRI) pour rendre
of Attachment) compte de l’identité du point d’attachement du routeur à une connexion donnée.
TCP (Transmission Control Protocole permettant de rendre un service orienté connexion.
Protocol)
TLV (Type, Longueur, Valeur) Processus de codage d’une information.

1. Quelques rappels 1.2 De l’utilité des protocoles de routage


dynamique dans les réseaux IP
élémentaires
Le déploiement de réseaux IP de grande taille (tels que ceux qui
constituent aujourd’hui le réseau Internet) a rapidement nécessité la
1.1 Des réseaux IP en général mise au point de protocoles de routage dynamique chargés de
et des routeurs en particulier déterminer avec la meilleure efficacité possible (efficacité qu’il est
possible de qualifier en termes de temps de convergence, c’est-à-
dire le temps au bout duquel l’activation de l’algorithme de calcul de
Les réseaux IP (et, en particulier, les routeurs qui les composent) route a abouti à un résultat – celui de la détermination d’une route
qui sont placés sous la responsabilité d’exploitation d’une entité pour atteindre une destination donnée, cette destination étant
administrative globalement unique au sein de la communauté Inter- décrite par une adresse réseau) la meilleure route pour atteindre
net (c’est-à-dire que la notion « d’unicité globale » suppose que une destination donnée.
l’entité administrative est dûment identifiable d’une manière univo- Cette qualification de « meilleure » route peut varier d’un proto-
que au sein de la communauté Internet), constituent un système cole de routage dynamique à l’autre et en fonction de la nature et du
autonome AS (Autonomous System) (figure 1) ou domaine. D’un nombre de paramètres pris en compte par l’algorithme de calcul de
point de vue topologique, un système autonome est constitué d’un route caractéristique d’un protocole de routage dynamique donné.
ensemble de routeurs et l’on distingue l’intérieur du système auto- De plus, l’administrateur d’un réseau IP peut aussi influer sur le pro-
nome de son extérieur. L’extérieur d’un système autonome est cessus de qualification d’un ensemble de routes qui permettraient
l’ensemble des autres systèmes autonomes avec lesquels il est sus- d’atteindre une destination donnée.
ceptible d’échanger du trafic IP.
Par ailleurs, le choix de mettre en œuvre un processus de routage
statique se révèle rapidement incompatible avec le nombre de
réseaux IP qui constituent aujourd’hui le réseau Internet, parce que
le renseignement statique des tables d’acheminement susceptibles
Système autonome (AS)
de consigner et de maintenir plusieurs dizaines de milliers d’entrées
est, de toute évidence, une tâche fastidieuse de nature à pénaliser
Routeur l’efficacité d’acheminement du trafic dans un réseau IP.
Les protocoles de routage dynamique permettent donc aux rou-
teurs organisés selon plusieurs systèmes autonomes d’échanger
des informations d’accessibilité à des réseaux IP. Ces informations
sont stockées dans les tables de routage des routeurs, rafraîchies
d’une manière dynamique et ces informations alimentent les tables
d’acheminement des routeurs.
L’organisation du réseau Internet en systèmes autonomes a
donné lieu à une classification des protocoles de routage dynami-
que en deux grandes familles :
— les protocoles de routage dynamique qui permettent d’échan-
ger des informations d’accessibilité à des réseaux IP au sein d’un
système autonome : ce sont les IGP (Interior Gateway Protocol) ;
— les protocoles de routage dynamique qui permettent d’échan-
Figure 1 – Réseau Internet organisé en systèmes autonomes ger des informations d’accessibilité à des réseaux IP entre systèmes
(figuration symbolique) autonomes : ce sont les EGP (Exterior Gateway Protocol).

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux IP 2 900 − 3
PROTOCOLE DE ROUTAGE BGP-IV _________________________________________________________________________________________________________

1.3 De l’inadéquation des IGP aux besoins La principale motivation qui a conduit à la spécification, à la stan-
dardisation et au développement de protocoles de type EGP est la
de communication entre systèmes suivante : puisque les métriques (et leur valorisation) des protocoles
autonomes de routage dynamique de type IGP peuvent être comprises diffé-
remment par des routeurs appartenant à des systèmes autonomes
distincts, les informations d’accessibilité de réseaux échangées
La découpe du réseau Internet en systèmes autonomes ne justifie entre systèmes autonomes devraient s’affranchir de l’utilisation de
pas, a priori, la classification IGP/EGP telle qu’elle a été présentée métriques.
dans le paragraphe 1.2, puisque l’échange des informations d’acces- Ainsi, un routeur d’un système autonome A se contenterait
sibilité à des réseaux IP entre systèmes autonomes repose sur l’acti- d’annoncer à un ou plusieurs routeurs appartenant aux systèmes
vation d’un protocole de routage dynamique (un processus de autonomes B, C, etc., l’ensemble des réseaux qu’il sait atteindre,
routage statique est généralement exclu pour les raisons dévelop- ainsi que les systèmes autonomes qu’il est nécessaire de traverser
pées dans le paragraphe 1.1), ce qui constitue une condition suffi- pour atteindre ces réseaux. Ce concept quasi élémentaire est celui
sante. qui est mis en pratique par les protocoles de routage dynamique de
Des lors, pourquoi ne pas mettre en œuvre un protocole de type type EGP, et il est appelé routage de type « chemin vectoriel » (path
IGP, que celui-ci utilise les ressources d’un algorithme de calcul de vector routing) [RFC-1771] [STALLINGS98].
distance vectorielle, ou celles d’un algorithme de calcul de coût de Un protocole de type EGP présente donc les caractéristiques
liens (à des réseaux adjacents) ? La réponse à cette question est suivantes :
développée dans les lignes suivantes.
— les informations échangées entre routeurs de systèmes auto-
■ Un routeur qui met en œuvre un protocole de routage dynamique nomes différents ne contiennent aucun renseignement relatif à l’uti-
de type « distance vector » annonce à ses voisins l’ensemble des lisation d’une métrique ou à la valorisation d’un coût particulier ;
réseaux qu’il peut atteindre sous la forme d’une liste vectorielle, — les informations échangées entre routeurs de systèmes auto-
laquelle consigne en particulier la valeur du chemin associé à cha- nomes différents sont des informations qui décrivent un ensemble
que réseau dont le routeur a la connaissance. Chaque routeur du de routes qui permettent d’atteindre un ensemble de réseaux, en
réseau construit sa table de routage sur la foi des informations termes de systèmes autonomes traversés par chaque route pour
consignées dans les listes vectorielles échangées, mais ces informa- atteindre une destination donnée.
tions ne donnent aucune indication quant à l’identité des routeurs et Cette seconde caractéristique permet à un routeur de mettre en
des réseaux qui jalonnent un chemin qui permet d’atteindre un œuvre une politique de routage définie par l’administrateur d’un
réseau donné, ce qui peut poser quelques difficultés lorsqu’il s’agit système autonome (et des routeurs qui le composent), de telle sorte
d’échanger des informations d’accessibilité entre systèmes auto- que ce routeur puisse par exemple décider d’éviter d’emprunter
nomes : telle route parce qu’elle traverse des systèmes autonomes dont le
— le protocole de routage dynamique de type « distance vector » degré de fiabilité – la fiabilité d’un système autonome est une notion
suppose que tous les routeurs qui l’activent ont une compréhension évidemment arbitraire (et donc largement discutable), mais elle
commune de la métrique qui leur permet de sélectionner tel routeur peut toutefois être caractérisée de différentes façons, telles que le
plutôt que tel autre, ce qui n’est pas forcément le cas d’un système taux de perte de datagrammes observé sur les liens qui permettent
autonome à l’autre ; d’accéder au système autonome incriminé, ou encore les temps de
— la politique d’acheminement du trafic au sein d’un système transit comparés pour atteindre une destination donnée – (tel qu’il
autonome peut être définie de telle sorte que la communication pourrait être perçu par un administrateur), est incompatible avec le
avec certains systèmes autonomes soit interdite pour échanger des caractère sensible du trafic susceptible d’emprunter cette route.
informations d’accessibilité de certains réseaux, alors que les infor- L’acheminement du trafic IP sur le réseau Internet suppose donc la
mations véhiculées par les annonces échangées entre les routeurs traversée de plusieurs systèmes autonomes et partant, l’activation
qui activent un protocole de routage dynamique de type « distance d’un protocole de routage dynamique de type EGP entre les rou-
vector » ne permettent pas de renseigner et, a fortiori, d’appliquer teurs qui composent ces différents systèmes autonomes. Le proto-
ce genre de politique. cole BGP-IV [RFC-1771] est aujourd’hui le protocole de routage inter-
AS déployé au sein du réseau Internet. Le protocole BGP est né de
■ Un routeur qui met en œuvre un protocole de routage dynamique
l’expérience acquise au cours des premières phases de développe-
de type « link state » annonce quant à lui des informations compo-
ment du réseau Internet au travers du déploiement du réseau
sées de coûts affectés aux liens qui le raccordent à autant de
NSFNET (National Science Foundation NETwork), grâce à la spécifi-
réseaux adjacents à tous les autres routeurs avec lesquels il est sus-
cation et à l’implantation du protocole EGP [RFC-904] [RFC-1092]
ceptible de communiquer, de sorte que chacun de ces routeurs bâtit
[RFC-1093].
une image de la topologie complète du réseau dont il acquiert ainsi
la connaissance (en termes de configuration, notamment), pour La version 4 du protocole BGP est aujourd’hui la version déployée
ensuite procéder à la détermination des routes qui permettent au sein du réseau Internet. Les paragraphes suivants proposent de
d’accéder à un ensemble de réseaux. Ce mode de diffusion des décrire le principe de fonctionnement de ce protocole, son forma-
informations d’accessibilité de réseaux pose là encore des difficul- lisme, son processus de décision, ainsi que les quelques règles
tés lorsqu’il s’agit de faire communiquer des routeurs de différents d’ingénierie élémentaires qui régissent l’interconnexion de systè-
systèmes autonomes entre eux : mes autonomes.
— les systèmes autonomes n’ont pas nécessairement une com-
préhension identique des métriques utilisées, ce qui peut avoir des
conséquences sur la cohérence des informations consignées dans
les tables de routage de routeurs appartenant à des systèmes auto- 2. Protocole BGP-IV
nomes différents ;
— le mode de diffusion d’un protocole de type « link state » peut
rapidement se révéler incompatible avec des réseaux de grande
taille, compte tenu de la volumétrie du trafic associé à la diffusion de 2.1 Généralités
ces informations d’accessibilité, volumétrie qui serait de nature à
pénaliser l’acheminement du trafic utile au sein des réseaux
déployés sur les différents systèmes autonomes susceptibles de La fonction principale d’un routeur qui active le protocole BGP
communiquer entre eux. consiste à échanger des informations d’accessibilité de réseaux IP

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
IP 2 900 − 4 © Techniques de l’Ingénieur, traité Réseaux
_________________________________________________________________________________________________________ PROTOCOLE DE ROUTAGE BGP-IV

avec d’autres routeurs qui activent le protocole BGP. Ces informa- — la table de routage Adj-RIB-Out, qui consigne l’intégralité des
tions incluent la liste des AS qu’elles ont traversés et suffisent donc routes qui seront annoncées par le routeur BGP. Ce sont les routes
à construire un graphe représentatif de la connectivité des systèmes qui ont été sélectionnées par le processus de décision évoqué
autonomes, graphe à partir duquel il sera possible d’éviter des phé- précédemment ;
nomènes de boucles (qui conduisent à la formation de « trous — la table de routage Loc-RIB, qui consigne l’intégralité des rou-
noirs » capables de rendre un réseau IP totalement inopérant) et tes qui seront utilisées par le routeur BGP et, parmi ces routes, figu-
grâce auquel il sera possible de mettre en œuvre des politiques de rent celles qui seront ensuite stockées dans la table de routage Adj-
routage définies par l’administrateur d’un système autonome. RIB-Out.
Nota : dans toute la suite de ce document, les sigles BGP et BGP-IV seront indifférem-
ment employés pour désigner le protocole BGP-IV. La distinction qui est faite entre ces trois tables de routage se jus-
Le protocole BGP s’appuie sur la couche TCP (Transmission Con- tifie surtout d’un point de vue conceptuel, puisque la pratique des
trol Protocol) [RFC-793], port 179), ce qui permet de s’affranchir de la implantations du protocole BGP-IV montre que la plupart des solu-
nécessité de supporter explicitement (i.e. par le protocole BGP lui- tions constructeurs ont choisi de n’implanter qu’une seule table de
même) les fonctions de fragmentation, de retransmission, d’acquit- routage, mais pourvue d’autant de pointeurs que nécessaire,
tement et de séquencement qui sont des fonctions naturellement conformément à la spécification du protocole.
supportées par le protocole TCP.
Le mode de fonctionnement du protocole BGP entre deux routeurs
qui l’activent peut être succinctement décrit selon la chronologie 2.2 Formalisme du protocole BGP-IV
suivante :
— les routeurs BGP établissent une connexion TCP entre eux, en
échangeant des messages destinés à ouvrir cette connexion puis à 2.2.1 Définition d’une connexion BGP-IV
confirmer les paramètres caractéristiques de la connexion ;
— une fois la connexion établie, le premier échange d’informa-
tions est constitué de l’intégralité du contenu de la table BGP ; Si deux routeurs tentent d’établir d’une manière exactement
— des informations sont ensuite échangées d’une manière dyna- simultanée une connexion TCP vers l’autre, il y a un phénomène de
mique sous forme d’annonces spécifiques à mesure que le contenu « collision de connexions ». En vertu du principe d’unicité d’une
de l’une ou l’autre des tables BGP de l’un ou l’autre des routeurs a connexion BGP entre deux routeurs, une convention est définie
changé. Dans la mesure où le protocole n’impose pas un rafraîchis- pour déterminer quelle est la connexion qui doit être préservée.
sement périodique de l’intégralité du contenu de la table de routage Cette convention s’appuie sur la notion « d’identifiant BGP » (cf.
BGP, chaque routeur doit conserver la version courante de l’intégra- § 2.2.2.2), et le principe d’unicité est respecté en comparant les iden-
lité du contenu de l’ensemble des tables de routage maintenues par tifiants BGP respectifs des deux routeurs : c’est la connexion initiali-
les routeurs BGP avec lesquels il a établi une connexion. sée par le routeur dont l’identifiant BGP est le plus élevé qui sera
maintenue. Dans la pratique, l’identifiant BGP correspond à la
Des messages spécifiques sont envoyés d’une manière périodi- valeur numériquement « la plus élevée » (l’adresse 10.0.0.1/24 est
que de façon à maintenir la connexion active, tandis que des notifi- par exemple « plus élevée » que l’adresse 1.0.0.1/8) des adresses IP
cations sont envoyées en réponse à des erreurs de transmission ou, affectées au routeur.
d’une manière générale, sous certaines conditions. La réception
d’une notification entraîne la rupture de la connexion entre les deux
routeurs BGP incriminés, mais la brutalité de cette rupture est en
principe modulée par la souplesse fonctionnelle du protocole TCP 2.2.2 Différents types de messages BGP-IV
qui se charge normalement d’assurer la transmission effective des
données en cours d’échange avant de procéder effectivement à la 2.2.2.1 En-tête du message BGP-IV
rupture de la connexion.
Chaque message BGP-IV échangé entre deux routeurs est pourvu
Si le protocole BGP-IV est un protocole de type EGP, il n’en reste
d’un en-tête représenté sur la figure 2 :
pas moins vrai que des routeurs appartenant au même système auto-
nome ont la capacité d’établir des connexions BGP entre eux, ce qui — la taille minimale d’un message BGP-IV est de 19 octets (soit la
conduit à la typologie suivante : longueur de l’en-tête seul), et sa taille maximale est de 4096 octets ;
— les connexions établies entre des routeurs BGP appartenant à — le champ « marqueur » peut être utilisé pour détecter une
des AS distincts sont qualifiées « d’externes » (external links). De perte de synchronisation entre deux routeurs BGP, mais aussi pour
telles connexions sont de type « eBGP » (external BGP) ; authentifier les messages BGP reçus par un routeur ;
— les connexions établies entre des routeurs BGP appartenant au — le champ « longueur » indique la longueur totale du message
même AS sont qualifiées « d’internes » (internal links). De telles (exprimée en octets), et cette valeur inclut l’en-tête du message ;
connexions sont de type « iBGP » (internal BGP). — le champ « type » indique le type de message BGP-IV.
Les connexions de type iBGP sont justifiées par la volonté de main-
tenir une vue cohérente de l’ensemble des routes externes au sys-
tème autonome par l’ensemble des routeurs qui composent le
système autonome. De la même façon, un protocole de routage 0 1 2 3
dynamique de type IGP permet de maintenir une vue cohérente de 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
l’ensemble des routes internes au système autonome.
Une route, c’est-à-dire l’information globalement véhiculée dans
le contexte d’une connexion BGP, est constituée de l’association
d’une destination (adresse IP) et des caractéristiques (ou attributs)
du chemin qui mène à cette destination. À la réception de cette infor- Marqueur
mation, le routeur va stocker celle-ci dans la table de routage BGP
qui est en fait constituée de trois tables de routage distinctes :
— la table de routage Adj-RIB-In, qui consigne l’intégralité des
routes annoncées au routeur BGP par les routeurs avec lesquels une Longueur Type
connexion BGP a été établie. Cette table contient donc l’information
qui sera manipulée par le processus de décision BGP ; Figure 2 – Format de l’en-tête d’un message BGP-IV

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux IP 2 900 − 5
PROTOCOLE DE ROUTAGE BGP-IV _________________________________________________________________________________________________________

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Withdrawn Routes Length (2 octets)

Version Withdrawn Routes (variable)

Mon système autonome Total Path Attribute Length (2 octets)

Hold Time Path Attributes (variable)

Identifiant BGP Network Layer Reachability Information (variable)

Opt Parm Len Figure 4 – Champs (potentiellement) présents dans un message


de type UPDATE
Paramètres optionnels

Figure 3 – Message de type OPEN version 4 du protocole BGP intègre la capacité d’agrégation d’adres-
ses IP, qui, au sens CIDR (Classless Inter-Domain Routing) [RFC-
1519], rend caduque la notion de classes d’adresses. Ainsi, on peut
par exemple imaginer un agrégat d’adresses de la forme 192.0.0.0/8
Il existe quatre types de messages BGP-IV : OPEN (type 1), qui pouvaient être accessibles par les routes retirées du service ;
UPDATE (type 2), NOTIFICATION (type 3) et KEEPALIVE (type 4).
— le champ « Total Path Attribute Length » indique la longueur
totale du champ « Path Attributes » en octets. Lorsque le champ
2.2.2.2 Message de type OPEN « Total Path Attribute Length » est valorisé à « 0 », cela signifie qu’il
Lorsque la connexion TCP est établie entre deux routeurs, le pre- n’y a pas de champ NLRI (Network Layer Reachability Information,
mier message échangé est un message de type OPEN. Si le mes- cf. § 2.2.2.3.1) contenu dans le message de type UPDATE ;
sage est acceptable par le routeur BGP qui le reçoit, celui-ci envoie — le champ « Path Attributes » contient une suite (ou une
un message de type KEEPALIVE en retour. Lorsque le message de séquence, i.e. l’ordre dans lequel les attributs et leurs valeurs asso-
type OPEN est confirmé, alors des messages de type KEEPALIVE, ciées a un sens) d’attributs qui sont autant de caractéristiques de la
UPDATE et NOTIFICATION peuvent être échangés entre les deux route consignée dans le champ NLRI. Chaque attribut est codé selon
routeurs BGP. le principe TLV (Type, Longueur, Valeur) (cf. § 2.2.2.3.2) ;
— le champ NLRI contient la liste des préfixes réseau qui sont
Le message de type OPEN contient les champs suivants
accessibles par la route décrite dans le champ « Path Attributes » ;
(figure 3) :
— la longueur minimale d’un message de type UPDATE est de
— le champ « mon système autonome » indique le numéro d’AS 23 octets (les 19 octets de l’en-tête d’un message BGP, associés aux
du routeur qui a émis le message de type OPEN ; 2 octets du champ « Unfeasible Routes Length » et aux 2 octets du
— le champ « Hold Time » indique la proposition (exprimée en champ « Total Path Attribute Length » ;
secondes) de l’émetteur du message de type OPEN pour la valeur
— un message de type UPDATE peut annoncer au maximum une
maximale de la période de temps qui s’écoule entre la réception de
route, qui peut être décrite par plusieurs attributs. Ces caractéristi-
deux messages de type KEEPALIVE (et/ou de type UPDATE) consécu-
ques sont applicables à l’ensemble des préfixes réseau consignés
tifs. Sur réception du message de type OPEN, un routeur BGP doit
dans le champ NLRI. De même, un message de type UPDATE peut
calculer cette valeur, par comparaison de celle consignée dans le
dresser la liste de plusieurs routes retirées du service, chacune de
champ « Hold Time » du message reçu, et celle qui a été configurée
ces routes étant identifiée par le préfixe réseau qu’elle permettait
par le gestionnaire du routeur. La valeur du champ « Hold Time » est
d’atteindre (sa destination). Un message de type UPDATE peut ne
soit « 0 », soit une valeur au moins égale à 3 secondes ;
pas contenir d’annonce de route (le champ « Total Path Attribute
— le champ « Identifiant BGP » correspond à l’adresse IP affectée
Length » est alors valorisé à « 0 »), mais simplement une liste des
au routeur pour son identification (au sens de la connexion BGP-IV) ;
routes retirées du service.
— le champ « paramètres optionnels » contient la liste des para-
mètres optionnels susceptibles d’être véhiculés dans le message de 2.2.2.3.1 Description du champ NLRI
type OPEN. Ces paramètres sont codés selon le principe TLV (Type
Longueur Valeur). La spécification actuelle [RFC-1771] n’a défini Le champ NLRI contient une liste de préfixes IP et codé selon une
qu’un seul paramètre (type 1) – le paramètre « Authentication ou plusieurs association(s) de type [longueur (sur un octet) ; préfixe
Information », destiné à être utilisé pour procéder à l’authentifica- (longueur variable)]. Le champ « longueur » indique la longueur (en
tion d’un routeur BGP-IV (le document [RFC-2385] définit un proces- bits) du préfixe IP auquel elle se réfère. Le champ « Préfixe » con-
sus d’authentification de routeurs BGP-IV qui s’appuie sur tient les préfixes IP accessibles par la route qui fait l’objet de
l’utilisation d’une signature MD5/SHA-1). l’annonceur et dont les caractéristiques sont applicables à l’ensem-
ble des préfixes destination consignés dans le champ NLRI.
2.2.2.3 Message de type UPDATE 2.2.2.3.2 Attributs BGP-IV
Les messages de type UPDATE constituent la pierre angulaire du Les attributs BGP-IV, tels qu’ils sont véhiculés dans le champ
routage BGP puisque c’est ce formalisme qui permet de véhiculer « Path Attributes », sont classés en quatre catégories [RFC-1771] :
les informations d’accessibilité de réseaux. Les annonces consi- — les attributs de type « well-known mandatory ». Ces attributs
gnées dans les messages de type UPDATE peuvent être utilisées par doivent être supportés par toute implantation du protocole BGP-IV
les routeurs BGP pour construire le graphe qui permettra de décrire qui revendique une conformité au standard [RFC-1771], et doivent
les relations entre les systèmes autonomes. être inclus dans tout message de type UPDATE qui contient un
Un message UPDATE contient une annonce relative à l’accessibi- champ NLRI ;
lité d’un réseau et/ou des indications relatives au retrait des routes — les attributs de type « well-known discretionary ». Ces attributs
qui ne sont plus utilisables, conformément au formalisme décrit doivent être supportés par toute implantation du protocole BGP-IV
dans la figure 4 suivante : qui revendique une conformité au standard [RFC-1771] mais peu-
— le champ « Withdrawn Routes » (« routes retirées »), de lon- vent ne pas être inclus dans un message de type UPDATE ;
gueur variable, contient la liste des préfixes réseau IP – La notion de — les attributs de type « optional transitive » ;
« préfixe réseau » est importante, puisqu’elle signifie que la — les attributs de type « optional non-transitive ».

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
IP 2 900 − 6 © Techniques de l’Ingénieur, traité Réseaux
_________________________________________________________________________________________________________ PROTOCOLE DE ROUTAGE BGP-IV

— la valeur AS_SEQUENCE (« 2 ») qui indique que la liste des sys-


0 1 tèmes autonomes par lesquels l’information de routage a transité
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 est ordonnée.
Attribute Flags Attribute Type Code Lorsqu’un routeur A propage l’annonce relative à une route qu’il
a apprise d’un autre routeur B, le routeur A modifiera la valeur de
Figure 5 – Champ « Attribute Type » dans le codage TLV l’attribut AS_PATH, en fonction de la localisation du routeur BGP
d’un attribut auquel il transmettra le message de type UPDATE correspondant :
— si cette route est annoncée à un routeur avec lequel une con-
nexion iBGP est établie, l’attribut AS_PATH ne devrait pas faire
Les attributs optionnels peuvent ne pas être supportés par les l’objet d’une modification par l’annonceur ;
implantations du protocole BGP qui revendiquent la conformité au — si, par contre, cette route est annoncée à un routeur avec lequel
standard [RFC-1771]. Le traitement approprié de tels attributs, une connexion eBGP est établie, la valeur de l’attribut AS_PATH
lorsqu’ils ne sont pas reconnus par un routeur BGP, est conditionné devra être mise à jour en incluant le numéro du système autonome
par la valorisation du bit « Transitive » dans l’octet « Attribute Flag » de l’annonceur.
du champ « Attribute Type », conformément au codage TLV des Lorsqu’un routeur décide d’annoncer une route en utilisant une
attributs, comme l’illustre la figure 5 : connexion eBGP, l’attribut AS_PATH aura pour unique entrée le
— le bit « 0 » du champ « Attribute Flags » permet d’identifier s’il numéro du système autonome auquel appartient l’annonceur ; la
s’agit d’un attribut optionnel (le bit est alors valorisé à « 1 ») ou non même route annoncée en utilisant une connexion iBGP aura pour effet
(le bit est valorisé à « 0 »). Le bit « 1 » du même champ est le bit de véhiculer un attribut AS_PATH vide, c’est-à-dire dont la valeur du
« Transitive », et il indique si l’attribut doit être communiqué aux champ « longueur » est « 0 ».
interlocuteurs BGP d’un routeur (le bit est alors valorisé à « 1 » –
tous les attributs de type « well-known » ont ce bit valorisé à « 1 »). 2.2.2.3.5 Attribut NEXT_HOP (code 3)
Les attributs optionnels non reconnus par un routeur BGP et pour L’attribut NEXT_HOP est de type « well-known mandatory ». Cet
lesquels le bit « Transitive » dans l’octet « Attribute Flag » du champ attribut identifie (par son adresse IP) le routeur qui devrait être utilisé
« Attribute Type » est valorisé à « 0 », devraient être ignorés par le comme « next hop » pour l’ensemble des préfixes destination
routeur, lequel devrait se garder de les transmettre à ses interlocu- recensés dans le message de type UPDATE. L’adresse consignée
teurs BGP ; dans l’attribut NEXT_HOP peut être celle de l’une des interfaces de
— le bit « 2 » du champ « Attribute Flags » est le « Partial bit » qui l’annonceur, pourvu que le récepteur de l’annonce (faite en utilisant
indique si l’information consignée par un attribut optionnel transitif une connexion eBGP) soit au moins connecté au réseau défini par
est partielle (l’information est complète si le bit est valorisé à « 0 »). cette adresse – on parle alors d’attribut NEXT_HOP « first party ».
La valeur de ce bit est toujours « 0 » pour les attributs de type « well-
known », ainsi que pour les attributs optionnels non transitifs ; De même, l’adresse consignée dans l’attribut NEXT_HOP peut
être celle de l’une des interfaces de n’importe quel routeur qui
— le champ « Attribute Type Code » indique le type de l’attribut
appartient au même système autonome que l’annonceur, pourvu
dont la valeur est décrite dans le reste du champ « Path Attributes »,
que le récepteur de l’annonce (faite en utilisant une connexion iBGP)
parmi les autres valeurs des attributs ainsi véhiculés dans le mes-
soit au moins connecté au réseau défini par cette adresse – l’attribut
sage de type UPDATE.
NEXT_HOP est alors qualifié de « third party ». L’adresse consignée
Les différents attributs décrits aujourd’hui dans le standard [RFC- dans l’attribut NEXT_HOP peut aussi être celle de l’une des interfa-
1771] font l’objet des paragraphes suivants. Leur utilisation à des ces d’un routeur externe (au système autonome auquel appartient
fins d’ingénierie liée au déploiement de réseaux BGP-IV constitue en l’annonceur), pourvu que le récepteur de l’annonce soit au moins
partie la raison d’être du paragraphe 3 du présent article. connecté au réseau défini par cette adresse.
En tout état de cause, la valeur de l’attribut NEXT_HOP est choisie
2.2.2.3.3 Attribut ORIGIN (code 1) de telle sorte que la route correspondante emprunte le plus court che-
min pour atteindre l’ensemble des préfixes destination consignés
L’attribut ORIGIN est de type « well-known mandatory ». Cet attri- dans le champ NLRI.
but décrit l’origine de l’information de routage et trois valeurs pos-
sibles ont été définies : De la même façon, un routeur ne doit jamais consigner dans
l’attribut NEXT_HOP l’adresse IP du récepteur de l’annonce d’une
— lorsque l’attribut a pour valeur « 0 », le préfixe réseau consigné route dont il est à l’origine. Par ailleurs, un routeur BGP ne doit
dans le champ NLRI du message de type UPDATE est interne au sys- jamais installer (dans sa table d’acheminement) une route pour
tème autonome qui a généré l’information ; laquelle il est précisément le « next hop ».
— lorsque l’attribut a pour valeur « 1 », le préfixe réseau consigné
Enfin, lorsqu’une route est annoncée à un routeur interne au sys-
dans le champ NLRI du message de type UPDATE est externe au
tème autonome auquel appartient l’annonceur, la valeur de l’attribut
système autonome qui a généré l’information ;
NEXT_HOP ne doit pas être modifiée.
— lorsque l’attribut a pour valeur « 2 », l’origine de l’information
consignée dans le champ NLRI est dite « INCOMPLETE » – la route
correspondante aura par exemple été « injectée dans BGP-IV » par 2.2.2.3.6 Attribut MULTI_EXIT_DISC (code 4)
un processus de redistribution statique ou dynamique (§ 5.5). L’attribut MED (MULTI_EXIT_DISC(riminator)) est un attribut
optionnel non transitif, représenté sous la forme d’un entier non
négatif codé sur 4 octets. Cet attribut pourra être utilisé par des con-
2.2.2.3.4 Attribut AS_PATH (code 2)
nexions eBGP pour pondérer le choix entre les différents points
L’attribut AS_PATH est de type « well-known mandatory ». Il iden- d’entrée/sortie possibles (et connus) d’un système autonome voisin
tifie l’ensemble des systèmes autonomes par lesquels l’information (de celui auquel appartient l’annonceur).
de routage a transité. Chacun des systèmes autonomes est repré- L’attribut MED constitue une métrique à part entière, en ce sens où
senté par un triplet <Path Segment Type, Path Segment Length, le point d’entrée/sortie de valeur MED la plus faible devrait normale-
Path Segment Value> (codage TLV). Le « Path Segment Type » peut ment être préféré, toutes choses étant égales par ailleurs. Les
prendre deux valeurs possibles : annonces comportant l’attribut MED peuvent être propagées au sein
— la valeur AS_SET (« 1 ») qui indique que la liste des systèmes du système autonome mais ne doivent en aucun cas être retransmi-
autonomes par lesquels l’information de routage a transité n’est pas ses par l’un quelconque des routeurs récepteurs des annonces vers
ordonnée ; des routeurs appartenant à d’autres systèmes autonomes.

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux IP 2 900 − 7
PROTOCOLE DE ROUTAGE BGP-IV _________________________________________________________________________________________________________

192.134.0.0/16). Cette dernière est alors qualifiée de « moins


Système autonome (AS) spécifique » ;
— lorsque des routes moins spécifiques et plus spécifiques sont
Routeur présentes dans la table Adj-RIB-In d’un routeur BGP, les routes les
plus spécifiques sont prises en considération (par le processus de
décision BGP-IV, § 2.2.3) d’une manière prioritaire par rapport aux
routes moins spécifiques ;
— si un routeur BGP reçoit des annonces relatives à des routes
recouvrantes (c’est-à-dire les informations consignées dans leurs
champs NLRI respectifs sont constituées de préfixes recouvrants), le
processus de décision devra prendre en considération l’ensemble
de ces routes, en tenant compte de la politique de routage qui aura
pu être définie par l’entité responsable de la gestion du système
« J'annonce 192.134.75.0/ 24 » A autonome. Si les deux types de routes (« moins » et « plus » spécifi-
ques) sont acceptables, le processus de décision doit soit installer
« J'annonce 192.0.0.0/8 »
les deux types de routes, soit agréger les deux routes pour n’instal-
« J'annonce 192.134.0.0/16 »
« J'annonce 192.134.76. 4 / 30 » ler que la route finalement agrégée ;
— dans le cas où le processus de décision choisit d’installer
Figure 6 – Cas de routes dont le champ NLRI comporte des préfixes une route agrégée, le routeur devra insérer l’attribut
recouvrants ATOMIC_AGGREGATE dans le message de type UPDATE
correspondant ;
— le récepteur d’une route qui est en particulier caractérisée par
Une implantation BGP-IV doit permettre de retirer l’attribut MED l’attribut ATOMIC_AGGREGATE ne doit jamais retirer cet attribut
consigné dans l’annonce d’une route (par des moyens de configura- lorsqu’il décide de propager l’annonce à d’autres routeurs BGP. De
tion appropriés), de même qu’il devrait être possible de changer la plus, le récepteur de telles routes ne doit jamais « désagréger » le pré-
valeur de l’attribut MED consigné dans une annonce reçue par le tru- fixe pour annoncer des routes permettant d’atteindre des destinations
chement d’une connexion BGP, conformément à ce qui est indiqué plus spécifiques (le préfixe 192.134.76.4/30 dans l’exemple).
dans le standard [RFC-1771].
2.2.2.3.9 Attribut AGGREGATOR (code 7)
2.2.2.3.7 Attribut LOCAL_PREF (code 5) L’attribut AGGREGATOR est un attribut optionnel transitif. Cet
attribut peut être véhiculé dans les annonces correspondant à des
L’attribut LOCAL_PREF est de type « well-known discretionary »,
routes permettant d’atteindre des destinations agrégées. Un routeur
représenté sous la forme d’un entier non négatif codé sur 4 octets.
BGP capable d’agréger des adresses a ainsi la possibilité d’inclure cet
Cet attribut est utilisé par un routeur pour informer les autres routeurs
attribut dans les annonces qu’il fait aux routeurs BGP avec lesquels il
internes d’un système de son propre degré de préférence pour chaque
communique. La valeur de l’attribut AGGREGATOR sera alors consti-
route qui permet d’atteindre une destination externe au système
tuée de son adresse IP (cette adresse IP correspond en pratique à son
autonome auquel il appartient.
identifiant BGP) et du numéro du système autonome auquel il appar-
La route dont le degré de préférence a la valeur la plus élevée doit tient.
être sélectionnée. Les messages de type UPDATE qui sont transmis à
des récepteurs externes au système autonome auquel appartient 2.2.2.3.10 Gestion des messages de type UPDATE
l’annonceur ne doivent en aucun cas contenir l’attribut LOCAL_PREF. par un routeur BGP
Si tel était cependant le cas, cet attribut doit être ignoré par le récep-
teur de l’annonce. Lorsqu’un routeur BGP reçoit un message de type UPDATE de l’un
des routeurs internes au système autonome auquel il appartient, il ne
doit en aucun cas retransmettre l’information contenue dans
2.2.2.3.8 Attribut ATOMIC_AGGREGATE (code 6) l’annonce à l’un quelconque des routeurs internes au système auto-
L’attribut ATOMIC_AGGREGATE est un attribut de type « well- nome.
known discretionary ». Cet attribut est utilisé par un annonceur pour Par contre, la réception d’une annonce en provenance d’un rou-
informer les récepteurs BGP avec lesquels il communique que la teur BGP externe au système autonome auquel le récepteur appar-
route consignée dans son annonce est la moins spécifique, c’est-à- tient, devra faire l’objet d’une retransmission auprès de l’ensemble
dire que le préfixe destination consigné dans le champ NLRI du mes- des routeurs BGP internes au système autonome auquel le récep-
sage de type UPDATE est en fait un agrégat d’adresses (au sens teur appartient et avec lesquels une connexion BGP est établie.
CIDR) [RFC-1519]. Cette retransmission est toutefois conditionnée par le fait que la
Par exemple, si un routeur A reçoit les annonces relatives aux pré- route correspondante a été effectivement installée dans la table Loc-
fixes 192.134.0.0/16 et 192.134.76.0/24 d’un routeur B, et si les routes RIB du récepteur, moyennant l’activation du processus de sélection
correspondantes ont des attributs différents (l’attribut AS_PATH n’a de routes, tel qu’il est décrit dans le paragraphe 2.2.3.
pas la même valeur, par exemple), le routeur A pourra choisir de Lorsque le message de type UPDATE contient un champ
transmettre l’annonce de la route permettant d’atteindre le préfixe « withdrawn routes » non vide, le récepteur devra retirer l’ensemble
192.134.0.0/16 moyennant l’utilisation de l’attribut des routes correspondantes de sa table Adj-RIB-In. Si l’une ou
ATOMIC_AGGREGATE, de sorte que les récepteurs correspondants l’autre de ces routes avait déjà fait l’objet d’une annonce (i.e. la
sachent qu’un sous-ensemble de l’espace d’adressage puisse être route en question a été stockée dans la table Adj-RIB-Out du routeur
atteint par des routes qui traversent des AS non listés dans l’attribut après mise en œuvre du processus de sélection), le routeur devra
AS_PATH. C’est en substance ce qu’illustre la figure 6 : faire face à deux cas de figure possibles :
— une route qui permet d’atteindre un ensemble restreint de des- — il existe une route de remplacement pour les préfixes décrits
tinations (soit un préfixe réseau plus « long », c’est-à-dire que les dans le champ NLRI correspondant, et cette route de remplacement
bits de masquage sont plus nombreux, par exemple le préfixe devra être annoncée par le routeur BGP à l’ensemble de ses
192.134.76.4/30) est qualifiée de « plus spécifique » qu’une route interlocuteurs ;
qui permet d’atteindre un ensemble plus important de destinations — il n’existe pas de route de remplacement pour les préfixes
(caractérisé par un préfixe réseau plus « court », par exemple décrits dans le champ NLRI correspondant, et, dans ce cas, le routeur

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
IP 2 900 − 8 © Techniques de l’Ingénieur, traité Réseaux
_________________________________________________________________________________________________________ PROTOCOLE DE ROUTAGE BGP-IV

Enfin, un message de type KEEPALIVE est seulement constitué de


0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 l’en-tête du message BGP (soit une longueur de 19 octets), moyen-
nant une valorisation ad hoc du champ « Type ».
Error code Error subcode Données

2.2.3 Processus de décision BGP-IV


Figure 7 – Champs spécifiques d’un message de type NOTIFICATION
Le processus de décision du protocole BGP-IV permet à un routeur
BGP-IV de sélectionner les routes qui seront annoncées à l’ensemble
des récepteurs BGP-IV avec lesquels ce routeur a établi une
BGP devra rajouter les préfixes incriminés dans le champ « withdrawn connexion BGP, que celle-ci soit de type interne (au système auto-
routes » du message de type UPDATE qu’il adressera à l’ensemble nome auquel ce routeur appartient) ou externe.
des routeurs BGP à qui il avait précédemment annoncé la route qui
Le processus de sélection est formalisé par la définition d’une
permettait d’atteindre ces préfixes destination.
fonction qui considère (comme paramètres d’entrée) l’ensemble
des attributs caractéristiques d’une route donnée pour fournir un
2.2.2.4 Message de type NOTIFICATION entier non négatif représentatif du degré de préférence associé à
cette route. La sélection effective d’une route consiste donc au calcul
Un message de type NOTIFICATION est envoyé lorsqu’une condi- du degré de préférence associé à chaque route dont le routeur a la
tion d’erreur a été détectée par l’un ou l’autre des routeurs BGP. La connaissance, suivi du choix de la route associée au degré de préfé-
connexion BGP entre ces derniers est immédiatement rompue après rence le plus élevé.
l’émission d’un message de type NOTIFICATION.
Le calcul du degré de préférence porte sur chacune des routes con-
Les champs spécifiques à un message de type NOTIFICATION sont signées dans la table Adj-RIB-In et doit permettre au routeur de déci-
décrits sur la figure 7 : der de :
— le champ de code d’erreur (Error Code) indique le type de — l’ensemble des routes qui feront l’objet d’une annonce auprès
NOTIFICATION. Six codes d’erreur ont été définis dans [RFC-1771], des routeurs internes au système autonome auquel appartient
tels que : erreur détectée dans l’en-tête du message BGP (code 1), l’annonceur ;
dans un message de type OPEN (code 2), dans un message de type — l’ensemble des routes qui feront l’objet d’une annonce auprès
UPDATE (code 3), expiration du Hold Timer (code 4), erreur de la des routeurs externes au système autonome auquel appartient
machine d’état fini (code 5, par exemple réception d’un événement l’annonceur ;
inattendu – se reporter à l’annexe 1 du document [RFC-1771] pour — l’agrégation de routes (Cf. § 2.2.2.3.8) et, partant, de la réduc-
une description in extenso de la machine d’état FSM (Finite State tion de la volumétrie du trafic caractéristique des annonces.
Machine)), cessation de la connexion (code 6, c’est-à-dire en Le processus de décision BGP-IV se déroule en trois phases, cha-
l’absence d’une quelconque erreur fatale, un routeur BGP peut déci- cune de ces phases étant déclenchée par un événement différent.
der à n’importe quel moment de rompre la connexion BGP en
envoyant un message de type NOTIFICATION avec un code d’erreur
2.2.3.1 Phase 1 : calcul du degré de préférence
valorisé à 6 (Cease)) ;
— le champ de « sous-code » d’erreur (Error Subcode) permet de La phase 1 est déclenchée dès la réception d’un message de type
fournir une information plus précise quant à la nature de l’erreur. UPDATE qui contient l’annonce d’une nouvelle route, ou celle d’une
C’est ainsi que ce champ peut prendre trois valeurs lorsque le code route de remplacement, ou celle d’une route désormais inutilisée.
d’erreur est valorisé à « 1 » (erreur dans l’en-tête du message BGP, Pour chaque nouvelle route et pour chaque route de remplacement, le
telle qu’une non synchronisation de la connexion, un type de mes- routeur BGP devra déterminer le degré de préférence associé.
sage erroné, ou une longueur de message erronée), six valeurs lors- Le calcul associé dépend à la fois de la nature de l’annonce (par
que le code d’erreur est valorisé à « 2 » (erreur dans un message de exemple, si la route a été apprise suite à l’annonce envoyée par un
type OPEN, telle que le non support d’une version spécifique du pro- routeur interne au système autonome auquel le récepteur de
tocole BGP, un identifiant BGP erroné, un échec d’authentification, l’annonce appartient, le processus de calcul prendra probablement
une valeur inacceptable du paramètre « Hold Time », etc.) et onze en compte la valeur de l’attribut LOCAL_PREF comme degré de pré-
valeurs lorsque le code d’erreur est valorisé à « 3 » (erreur dans un férence – probabilité modulée par la proposition spécifiée dans le
message de type UPDATE, telle qu’une mauvaise formation de la document [RFC-1997]), et des choix de configuration qui peuvent
liste des attributs ou l’invalidation de la valeur de certains attributs, être pris par l’entité responsable de l’administration du système
etc.) ; autonome – ces choix reflètent typiquement une politique de rou-
— le champ « données » est quant à lui utilisé pour établir le dia- tage dynamique définie par l’entité administrative responsable de la
gnostic lié à la réception du message de type NOTIFICATION. Le gestion de l’AS et mise en œuvre par les routeurs qui composent le
contenu de ce champ est conditionné par les valeurs respectives des système autonome en question.
champs « Error Code » et « Error Subcode » décrits précédemment. Quoi qu’il en soit, la nature de l’information qui sera prise en
La longueur minimale d’un message de type NOTIFICATION est compte par le routeur pour calculer le degré de préférence associé à
de 21 octets. chaque route reste une affaire de configuration locale à la machine.
Des exemples d’application de politiques de routage sont donnés
dans le chapitre 5 du présent document.
2.2.2.5 Message de type KEEPALIVE
Les messages de type KEEPALIVE sont échangés périodiquement 2.2.3.2 Phase 2 : sélection de la route
entre deux routeurs BGP, de telle sorte que le « Hold Timer », La phase 2 est déclenchée dès que la phase 1 est terminée et le
n’expire pas. En tout état de cause, le temps écoulé entre deux mes- processus associé porte sur l’ensemble des routes consignées dans
sages de type KEEPALIVE consécutifs ne saurait excéder le tiers de la table Adj-RIB-In d’un routeur BGP. Pour chacune des destinations
l’intervalle de temps défini par le paramètre « Hold Time », et la fré- pour lesquelles il existe une route (consignée dans la table Adj-RIB-
quence d’émission de ces messages ne doit pas être plus élevée In), le routeur BGP devra identifier :
qu’une cadence de un message par seconde.
— la route qui a la valeur la plus élevée du degré de préférence
Si la valeur négociée du paramètre « Hold Time » est de « 0 », associé à chaque route permettant d’atteindre une destination don-
alors aucun message de type KEEPALIVE ne doit être envoyé. née OU BIEN ;

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux IP 2 900 − 9
PROTOCOLE DE ROUTAGE BGP-IV _________________________________________________________________________________________________________

— la seule route qui permet d’atteindre cette destination OU


BIEN ; 3. Ingénierie de réseaux
— la route sélectionnée à l’issue de l’activation du mécanisme de
sélection appelé « breaking ties » (littéralement « liens de rupture »,
BGP-IV
pour illustrer le processus de dichotomie qui caractérise ce méca-
nisme) et décrit ci-après (§ 2.2.3.2.1).
Une fois cette identification effectuée, le routeur installera la route 3.1 Typologie des systèmes autonomes
correspondante dans la table Loc-RIB et il devra de toute évidence
déterminer le « next hop » immédiat qui correspond à la valeur de
l’attribut NEXT_HOP consignée dans le message de type UPDATE Le document [RFC-1772] dresse en particulier une typologie des
caractéristique de cette route, moyennant une analyse des chemins systèmes autonomes qui reflète la réalité topologique du réseau
possibles qui permettent de l’atteindre – ces chemins peuvent être Internet. En effet, un AS peut appartenir à l’une des trois catégories
déterminés par activation d’un protocole de routage dynamique de suivantes :
type IGP. Si la route qui permet d’atteindre le routeur décrit dans — les AS de type « stub » (littéralement le « bout », l’extrémité en
l’attribut NEXT_HOP change de telle sorte que le « next hop » immé- un certain sens géographique. Un AS de type « stub » ne véhicule
diat change, le processus de sélection de la route devra être réactivé. que du trafic local) : ces systèmes autonomes sont des AS qui ne
communiquent qu’avec un seul autre système autonome et un
2.2.3.2.1 Mécanisme « breaking ties » seul ;
— les AS de type « multihomed » : ces systèmes autonomes peu-
Plusieurs routes affectées du même degré de préférence et permet- vent communiquer avec au moins deux autres systèmes autonomes
tant d’atteindre la même destination peuvent être stockées dans la distincts, mais la politique de routage BGP-IV mise en place au sein
table Adj-RIB-In, alors que le routeur BGP ne peut stocker qu’une d’un système autonome de type « multihomed » lui interdit de véhi-
seule de ces routes dans sa table Loc-RIB. culer le trafic échangé entre les systèmes autonomes avec lesquels il
L’algorithme mis en œuvre suppose que, pour chaque route peut communiquer. En d’autres termes, ces systèmes autonomes
« candidate », l’ensemble des routeurs BGP internes à un système ne véhiculent pas de trafic de transit ;
autonome peut garantir le coût associé à l’accessibilité de l’adresse — les AS de type « transit» : ces systèmes autonomes peuvent
consignée dans l’attribut NEXT_HOP de l’annonce correspondante. communiquer avec au moins deux autres systèmes autonomes, et la
politique de routage BGP-IV mise en place en leur sein leur permet de
Cet algorithme fonctionne selon la chronologie suivante : véhiculer non seulement le trafic local, mais aussi le trafic de transit,
1. Ne pas considérer (c’est-à-dire ne pas retenir dans le processus moyennant la définition d’éventuelles restrictions relatives à l’ache-
de sélection) les routes qui intégrent l’attribut MED dont les valeurs minement du trafic de transit (par exemple restreindre la retrans-
sont les plus pénalisantes, c’est-à-dire les plus élevées (les routes mission des annonces à celles dont le champ NLRI consigne un
qui ne comportent pas l’attribut MED dans leurs caractéristiques ensemble de préfixes destination prédéterminés).
seront à ce titre considérées comme des routes ayant la valeur de
MED la plus élevée, soit 232−1). La comparaison faite entre les diffé-
rentes valeurs de l’attribut MED n’est valable que dans la mesure où
les routes correspondantes ont été annoncées par des routeurs
3.2 Volumétrie du trafic BGP
appartenant au même système autonome.
2. Ne pas considérer les routes pour lesquelles l’accessibilité au L’activation d’un protocole de routage dynamique au sein d’un
« next hop » (identifié par la valeur de l’attribut NEXT_HOP consi- réseau IP, pour aussi efficace que ce protocole soit, génère un trafic
gnée dans l’annonce) présente un coût intérieur (c’est-à-dire la « de service » (par opposition au trafic correspondant aux données
métrique associée au(x) chemin(s) qui permet(tent) d’atteindre utiles, i.e. le trafic généré par les utilisateurs d’un réseau IP), dont la
l’adresse valorisée dans l’attribut NEXT_HOP – ce coût est générale- volumétrie ne doit en aucune manière pénaliser les performances
ment obtenu moyennant l’activation d’un ou plusieurs protocoles du réseau IP, performances qui pourraient par exemple être quali-
de routage dynamique de type IGP) pénalisant, c’est-à-dire ne pas fiées en termes de capacité à traiter le trafic utile.
considérer les routes qui présentent le plus faible coût intérieur.
Le protocole BGP-IV permet de limiter la volumétrie du trafic lié à la
3. Si plusieurs routes présentent le même « plus faible coût » : génération des messages de type UPDATE entre routeurs BGP grâce
aux moyens suivants :
— préférer les routes annoncées par des routeurs externes au sys-
tème autonome auquel appartient le récepteur, à celles annoncées — la variable bgpPeerminRouteAdvertisementInterval de la table
par des routeurs internes au système autonome ; BgpPeer de la MIB (Management Information Base) BGP-IV [RFC-
— sinon, préférer la route annoncée par le routeur dont la valeur 1657] (la valeur suggérée pour cette variable est de 30 s) permet de
de l’identification BGP est la plus faible. définir le temps minimal qui devra s’écouler entre l’émission de
deux messages de type UPDATE consécutifs par un routeur BGP.
Mentionner l’existence et l’utilisation de ces variables suppose de
2.2.3.3 Phase 3 : dissémination des routes toute évidence que la MIB décrite dans le document [RFC-1657] est
effectivement supportée par les routeurs BGP qui font l’objet de ce
La phase 3 est déclenchée à l’issue de la phase 2, ou lorsque l’un mode de gestion. Toutefois, le document [RFC-1771] stipule que
des événements suivants se produit : toute implantation du protocole BGP-IV doit permettre la configura-
— les routes stockées dans la table Loc-RIB ont changé ; tion des variables citées dans ce paragraphe, mais aussi celle des
— les routes apprises par un protocole de routage autre que BGP variables bgpPeerConnectRetryInterval (valeur suggérée de 2 min),
ont changé ; bgpPeerHoldTime (valeur suggérée de 90 s) et bgpPeerKeepAlive
(valeur suggérée de 30 s), telles qu’elles sont décrites dans le docu-
— une nouvelle connexion BGP a été établie. ment [RFC-1657] ;
Chacune des routes stockées dans la table Loc-RIB sera traitée — la variable bgpPeerminASOriginationInterval [RFC-1657] (la
comme une entrée correspondante dans la table Adj-RIB-Out asso- valeur suggérée pour cette variable est de 15 s) définit le temps
ciée. La phase 3 consiste à mettre à jour le contenu de la table Adj- minimal qui doit s’écouler entre l’émission de deux messages de
RIB-Out et, le cas échéant, le contenu de la table d’acheminement du type UPDATE consécutifs qui font état de changements au sein du
routeur. système autonome auquel appartient l’annonceur ;

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
IP 2 900 − 10 © Techniques de l’Ingénieur, traité Réseaux
_________________________________________________________________________________________________________ PROTOCOLE DE ROUTAGE BGP-IV

— la volumétrie de l’information véhiculée dans les annonces peut L’amortissement fournit un moyen de limiter la propagation de
elle-même être réduite, par exemple, par la possible agrégation de changements de routes trop fréquents lorsque la communication est
routes (cf. § 2.2.2.3.8) associée à l’utilisation de l’attribut AS_PATH intermittente. En appliquant ce type d’algorithme à leur propre infor-
dont la valeur est exprimée sous forme de suite non ordonnée (Cf. mation de routage, les fournisseurs de services IP réduisent d’autant
§ 2.2.2.3.4) de numéros de systèmes autonomes qui ne sont men- leur nécessité de faire appel aux autres fournisseurs de service avec
tionnés qu’une seule fois, indépendamment du nombre de fois où lesquels ils échangent des informations de routage, afin que ces
ces numéros sont apparus dans les attributs AS_PATH correspon- derniers appliquent eux-mêmes une politique d’amortissement
dant aux différentes annonces de routes qui ont précisément fait d’oscillation.
l’objet de l’agrégation.
Par ailleurs, le document [RFC-2439] propose un mécanisme
capable de réduire la charge des processeurs impliqués dans le trai-
tement des messages BGP, lorsqu’un phénomène d’instabilité de
3.3 Politiques de routage BGP
routes persiste – ce phénomène conduisant systématiquement à la
réactivation du processus de décision BGP et à la mise à jour du con-
Le protocole BGP-IV permet d’appliquer une politique de routage
tenu des tables affectées par cette instabilité.
définie par l’entité responsable de la gestion du système autonome et
Ce mécanisme qui permet à la fois de s’affranchir d’un possible de ses composantes, et prise en compte en particulier dans l’activa-
phénomène d’oscillation (effet secondaire important d’un phéno- tion du processus de sélection des routes qui seront installées dans
mène d’instabilité) et de maintenir un temps de convergence (le les tables Adj-RIB-Out et FIB des routeurs BGP, et qui seront annon-
temps de convergence est le temps au bout duquel un routeur a cées, le cas échéant, aux composantes d’autres systèmes autono-
déterminé une route pour atteindre une destination donnée) compa- mes.
rable à celui pris pour déterminer une route permettant d’accéder à
une destination donnée, s’appuie sur des techniques communé- À titre d’exemple, le protocole BGP-IV permet :
ment appelées « route flap damping » (littéralement, amortissement — à un AS de type multihomed de refuser d’acheminer le trafic
d’oscillation (battement, sic.) de routes). de transit, en limitant les annonces à celles dont le champ NLRI est
constitué de préfixes internes au système autonome ;
Les algorithmes d’amortissement ont pour principal objectif de limi-
ter la charge volumétrique induite par le trafic des messages de type — à un AS de type multihomed de restreindre l’acheminement
UPDATE sans pour autant pénaliser le temps de convergence associé d’un trafic de transit à destination d’un ensemble de systèmes auto-
à la détermination de routes prétendument stables, ce qui impose un nomes adjacents (c’est-à-dire accessibles au travers de l’établisse-
effort de définition de la stabilité d’une route, de sorte qu’une partie ment de connexions BGP entre des routeurs qui partagent un
de l’algorithme puisse être capable de faire la distinction entre les rou- réseau IP commun), en limitant les annonces (à ces systèmes auto-
tes stables et les routes instables. nomes adjacents) à celles dont les champs NLRI comportent non
seulement des préfixes internes au système autonome concerné,
La proposition décrite dans le document [RFC-2439] s’appuie en mais aussi des préfixes caractéristiques des systèmes autonomes
particulier sur la valorisation des paramètres de configuration pour lesquels l’AS de type « multihomed » accepte de véhiculer le
suivants : trafic de transit ;
— cutoff threshold, exprimé en nombre de retraits de routes (de la — à un AS de privilégier certains systèmes autonomes pour
table d’acheminement du routeur, NDLA). Ce paramètre identifie la l’acheminement de son trafic de transit (par exemple l’opérateur
valeur au-delà de laquelle une annonce sera supprimée ; France Télécom peut privilégier l’utilisation du réseau Sprint plutôt
— reuse threshold, exprimé lui aussi en nombre de retraits de rou- que celle du réseau MCI pour le trafic IP à destination et en prove-
tes. Ce paramètre identifie la valeur en dessous de laquelle une route nance des États-Unis) ;
supprimée pourra de nouveau être utilisée ; — à un AS de minimiser le nombre de systèmes autonomes de
— maximum hold down time. Ce paramètre caractérise le temps transit, en fonction des informations consignées dans l’attribut
maximum pendant lequel une route peut être supprimée, indépen- AS_PATH d’une annonce : « plus le nombre de systèmes autonomes
damment de son degré d’instabilité ; traversés est faible pour atteindre une destination donnée, meilleure
— decay half time while reachable : ce paramètre caractérise la sera la route » est un exemple de règle destinée à orienter le choix du
durée (exprimée en minutes ou en secondes) pendant laquelle la processus de sélection de routes ;
valeur accumulée de la stabilité d’une route (extraite de ce que le — à un AS d’apprécier la qualité d’une route en fonction des indi-
document [RFC-2439] appelle la « figure de mérite », c’est-à-dire un cations consignées dans l’attribut AS_PATH et de la connaissance de
moyen pour le routeur de se représenter le degré de stabilité/insta- l’entité gestionnaire de ce système autonome des caractéristiques
bilité d’une route) sera réduite de moitié, si la route est considérée des AS consignés dans l’attribut AS_PATH d’une annonce, caracté-
comme « accessible », i.e. utilisable pour atteindre la destination ristiques telles que la capacité des liens d’interconnexion des routeurs
que cette route caractérise (que cette route ait été supprimée ou non composant les différents systèmes autonomes identifiés dans
de la table) ; l’annonce, ou encore la probabilité de congestion telle qu’elle peut
— decay half life while unreachable : ce paramètre caractérise la être perçue (par tous moyens appropriés, non nécessairement liés au
durée (exprimée en minutes ou en secondes) pendant laquelle la fait d’activer le protocole BGP-IV. Parmi ces moyens, il est possible
valeur accumulée de la stabilité d’une route sera réduite de moitié, si de citer les techniques d’analyse statistique de trafic, telles que
la route est considérée comme inaccessible ; RMON (Remote network MONitoring MIB) [RFC-2021] au sein des
— delay memory limit : ce paramètre caractérise le temps maximal NAP (Network Access Point), lieux d’échange d’informations de rou-
retenu par la mémoire (du routeur) d’une instabilité précédente, tage au travers de connexions eBGP entre les routeurs hébergés
pourvu que l’état de la route concernée soit demeuré inchangé, que dans ces NAP).
cette route soit accessible ou non.
Le document [RFC-2439] rend compte des développements effec-
tués par un universitaire et un constructeur en 1995, et ces techni- 3.4 Contraintes d’échelle
ques d’amortissement d’oscillation sont mises en œuvre d’une
manière opérationnelle depuis 1996 dans certains régions du réseau
Internet. L’expérience montre que l’algorithme ne devrait pas être L’activation du protocole BGP au sein d’un système autonome
appliqué aux routes apprises au travers de communications iBGP, à impose un maillage complet de tous les routeurs BGP du domaine, de
cause des incohérences provoquées par la suppression de ces rou- façon à ce que chacune de ces machines ait une vision commune
tes (suite à une décision de l’algorithme d’amortissement d’oscilla- des routes qui permettent d’accéder à l’ensemble des destinations
tion). externes au système autonome, ce qui suppose l’établissement

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux IP 2 900 − 11
PROTOCOLE DE ROUTAGE BGP-IV _________________________________________________________________________________________________________

d’une connexion iBGP entre chacun des routeurs concernés. Ainsi,


pour n routeurs BGP appartenant à un système autonome donné,
n(n − 1)/2 communications iBGP doivent être maintenues, ce qui Cluster
peut avoir une incidence non négligeable sur la bande passante uti- A B A B E
lisée par le trafic BGP associé, notamment.
Il va de soi que ce maillage complet constitue une contrainte
C AS C D
d’autant plus forte que le système autonome est important (en ter-
mes de nombre de routeurs qui le composent) et que les communica-
tions iBGP s’appuient souvent sur les ressources de transmission AS
Route reflector (RR)
disponibles entre les routeurs concernés.
Les paragraphes 3.4.1 et 3.4.2 donnent une description des solu- AS système autonome
tions actuellement mises en œuvre pour remédier à cette contrainte
et ainsi faire face aux problèmes d’échelle liés à l’extension (et à Figure 8 – Mise en œuvre de clusters au sein d’un système autonome
l’exploitation) d’un système autonome.

3.4.1 Clusters
Cluster
Le document [RFC-1966] introduit le concept de réflexion de rou- A B E
tes (Route Reflection), qui s’appuie sur la notion de « cluster », un
cluster étant composé de routeurs BGP qui sont clients (Client Peer)
d’un routeur particulier du cluster, appelé le « Route Reflector ». Le C D
principe mis en œuvre par le déploiement de clusters au sein d’un
système autonome est illustré par la figure 8 : AS
— dans un contexte de configuration BGP classique selon lequel
les trois routeurs de la figure bénéficient d’un maillage complet pour
AS système autonome
l’établissement des connexions iBGP, la réception de l’annonce d’une
route par le routeur A conduira celui-ci à retransmettre cette annonce Figure 9 – Exemple de cluster
aux routeurs B et C, pourvu que cette route ait été sélectionnée (par
le routeur A) comme le meilleur chemin pour atteindre les destinations
consignées dans l’annonce. Dès lors, les routeurs B et C, en tant que
routeurs internes au système autonome (vis-à-vis de cette route annoncées par les autres RR d’un cluster puissent être facilement dis-
externe), ne retransmettront pas cette annonce aux autres routeurs tinguées des routes annoncées par les clients de ce même cluster.
iBGP du domaine. Cette règle comportementale peut être modifiée si,
Le CLUSTER_ID est en fait renseigné dans l’attribut
par exemple, le routeur C est autorisé à rendre compte (refléter)
CLUSTER_LIST, de type « optional non transitive » (type code 10),
auprès du routeur B les routes apprises du routeur A par l’entremise
qui est une succession de valeurs de CLUSTER_ID qui représente le
de la connexion iBGP établie entre le routeur C et le routeur A, ce qui,
nombre de RR au travers desquels une annonce donnée a transité.
ipso facto, n’impose plus l’établissement d’une communication iBGP
Lorsqu’un RR reflète une route annoncée par l’un de ses clients
entre le routeur A et le routeur B ;
auprès d’un routeur non client, l’annonce correspondante doit au
— le routeur C devient alors le routeur RR (Route Reflector), dont
moins intégrer la valeur du CLUSTER_ID caractéristique du RR annon-
les clients sont les routeurs A et B de la figure 8 précédente, et dont
ceur, de sorte que des phénomènes de bouclage peuvent ainsi être
les « non clients » sont les routeurs D et E de la figure 9. Les rou-
évités (si l’identifiant du RR est consigné dans l’attribut
teurs clients d’un RR ne devraient pas établir de connexions iBGP
CLUSTER_LIST véhiculé par une annonce transmise à des clients du
avec d’autres routeurs (externes au cluster composé du RR et de ses
RR annonceur, celle-ci sera purement et simplement ignorée).
clients), tandis que les routeurs non clients doivent établir une con-
nexion iBGP entre eux ; Le document [RFC-1966] définit un autre attribut de type
— lorsque le RR reçoit une annonce (de l’un des routeurs non « optional non transitive » (type code 9), l’attribut ORIGINATOR_ID :
clients du cluster auxquels il est connecté), celui-ci active le proces- cet attribut, codé sur 4 octets, sera créé par un RR et véhiculera le
sus de sélection classique du protocole BGP pour déterminer le ROUTER_ID caractéristique du routeur BGP à l’origine d’une
meilleur chemin pour atteindre les destinations indiquées dans annonce au sein du système autonome (dans lequel au moins un
l’annonce. Lorsque le meilleur chemin est sélectionné, l’annonce cor- cluster a été mis en place). Il va de soi qu’un RR ne reflétera jamais
respondante sera faite à l’ensemble des routeurs clients du cluster une route auprès du routeur (du système autonome) qui est à l’ori-
dont le RR fait partie ; gine de l’annonce.
— si l’annonce reçue par le RR est envoyée par un client, cette
route sera reflétée (après activation du processus de sélection de rou-
tes) à l’ensemble des routeurs non clients, ainsi qu’aux routeurs 3.4.1.1 Du danger de déployer des clusters
clients du cluster dont le RR fait partie, à l’exception du routeur client
à l’origine de l’annonce ; Par définition du principe de réflexion des routes, chaque routeur
— si l’annonce reçue par le RR est envoyée par un routeur externe BGP d’un système autonome n’a pas nécessairement une vision
au système autonome auquel appartient le RR, celui-ci reflétera complète de l’ensemble des routes qui permettent d’atteindre une
l’annonce à l’ensemble des routeurs clients et non clients du destination donnée, puisque le RR d’un cluster est conduit à faire
domaine, après activation du processus de sélection de route. une sélection qui fera l’objet de l’annonce correspondante auprès
des routeurs appropriés (clients et/ou non clients du cluster) : la
Un système autonome peut comporter plusieurs clusters (donc plu- route ainsi reflétée est celle qui a été considérée comme la meilleure
sieurs RR), chaque RR étant considéré comme un routeur avec lequel possible par le RR, parmi les multiples chemins qu’il était possible
une connexion iBGP a été établie avec le reste des RR du domaine. Il d’emprunter pour atteindre les destinations consignées dans le
est aussi possible de définir plusieurs RR au sein d’un cluster, à des champ NLRI.
fins de redondance. Dans ce cas, l’identification des RR au sein du
cluster ne s’appuiera plus sur le classique ROUTER_ID, mais sur un Dans le contexte décrit sur la figure 10, le déploiement d’un clus-
identifiant codé sur 4 octets, le CLUSTER_ID, de sorte que les routes ter peut conduire à une prise de décision de routage erronée :

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
IP 2 900 − 12 © Techniques de l’Ingénieur, traité Réseaux
_________________________________________________________________________________________________________ PROTOCOLE DE ROUTAGE BGP-IV

3.4.2 Confédérations
AS1 Cluster # 2 - RR = D
Si la taille d’un système autonome peut être qualifiée en termes de
A nombre de routeurs qui le composent, il existe de par le monde Inter-
D
net des AS de très grande taille (au moins une centaine de routeurs,
typiquement), qu’il peut paraître utile d’organiser en sous-systèmes
autonomes, de façon à s’affranchir (autant que faire se peut) de la
B C E contrainte du maillage complet des routeurs entre lesquels une
communication iBGP a été établie, notamment. De plus, cette subdi-
vision permet de mieux contrôler la politique de routage mise en
place au sein du système autonome, en fonction de l’information
consignée dans l’attribut AS_PATH contenu dans les messages de
Cluster # 1 - RR = A type UPDATE échangés entre les routeurs (par exemple en considé-
G AS3 rant tous les routeurs confinés dans une région géographique don-
née comme une seule entité).
En contrepartie, cette subdivision provoque un accroissement de la
F AS2 H complexité liée à l’application d’une politique de routage BGP-IV qui
s’appuierait essentiellement sur les informations véhiculées dans
l’attribut AS_PATH (augmentation de la longueur de l’attribut, puis-
Figure 10 – Risques liés au déploiement de clusters au sein que la traversée d’un message de type UPDATE au travers des diffé-
d’un système autonome rents sous-domaines d’un système autonome donné augmente
d’autant le contenu de l’attribut). De plus, la complexité de la main-
tenance des tables BGP est accrue par le fait de la nécessaire cohé-
— les routeurs B et C sont les clients du routeur RR A, tandis que sion entre les informations échangées au travers des commu-
le routeur E est client du routeur RR D au sein du même système auto- nications eBGP (c’est-à-dire celles établies entre le système auto-
nome AS1, qui comporte ainsi deux clusters distincts. Les routeurs B nome qui fait l’objet d’une subdivision et le reste du monde) et la
et E ont établi une communication eBGP avec les routeurs F et H d’un topologie du système autonome.
système autonome AS2, tandis que le routeur C a établi une commu- Le protocole IDRP (Inter-Domain Routing Protocol) [IDRP] défini
nication eBGP avec le routeur G appartenant au système autonome par ISO (International Standards Organization), a été le premier à
AS3 ; introduire le concept de « confédération », c’est-à-dire au sens du
— les routeurs F, G, et H annoncent une route identique (c’est-à- protocole BGP-IV, une collection de systèmes autonomes [RFC-
dire une route permettant d’atteindre la même destination, telle que 1965]. Cette collection fait l’objet d’annonces (aux routeurs qui ne
consignée dans le champ NLRI du message de type UPDATE corres- sont pas membres de la confédération) qui n’indiquent en fait que le
pondant), selon les indications suivantes (tous les autres attributs numéro du système autonome pour lequel la confédération a été
ayant des valeurs égales par ailleurs) : mise en place, de sorte que les routeurs qui n’appartiennent pas à ce
système autonome n’ont pas la connaissance de la topologie de
l’AS en question.
Routeur AS ROUTIER_ID MED
Si le protocole IDRP permet de constituer des confédérations imbri-
F AS2 192.134.76.34 10 quées les unes dans les autres, le protocole BGP permet de définir des
G AS3 191.134.76.34 confédérations qui s’appuient notamment sur une extension du
type de l’attribut AS_PATH (cf. § 3.2.2.3.4), extension qui impose la
H AS2 190.134.76.34 20 nature hiérarchique des confédérations BGP. Ces extensions sont
définies par les types supplémentaires suivants :
— on suppose également que le coût (tel que défini par l’activa- — AS_CONFED_SET (type 3), qui définit une suite non ordonnée
tion d’un protocole de type IGP au sein du système autonome AS1) de systèmes autonomes définis au sein de la confédération et que le
associé pour atteindre le routeur B depuis le routeur A (et, a fortiori, message de type UPDATE a traversés ;
le routeur F) est identique à celui pour atteindre le routeur C depuis — AS_CONFED_SEQUENCE (type 4), qui définit une suite ordon-
le routeur A (et, a fortiori, le routeur G). De même, le coût associé née de systèmes autonomes définis au sein de la confédération et
pour atteindre le routeur H depuis le routeur D est identique à celui que le message de type UPDATE a traversés.
pour atteindre les routeurs B et C depuis le routeur D ; Un routeur R membre d’une confédération utilisera à des fins
— compte tenu du tableau précédent, le routeur A choisit la route d’identification l’identifiant de la confédération pour toutes les tran-
qui passe par le routeur G (à cause de la comparaison des sactions effectuées avec des routeurs non membres de la confédé-
ROUTER_ID et de la différence de valeur de l’attribut MED pour les ration, tandis que ce même routeur R utilisera l’identifiant du sous-
routeurs F et H). Le routeur D choisit quant à lui la route qui passe par système autonome auquel il appartient au sein de la confédération
le routeur H (compte tenu de la comparaison entre les ROUTER_ID) ; pour toutes les transactions effectuées avec les routeurs membres de
— si le maillage était complet, le routeur D sélectionnerait la la confédération, que ceux-ci appartiennent ou non au même système
même route que celle choisie par le routeur A (en effet, dans ce cas, autonome que celui auquel appartient le routeur R.
le choix de la route par le routeur F est meilleur que celui par le rou- Lorsqu’un routeur décide de propager une annonce de route, il
teur H (à cause des valeurs respectives de l’attribut MED), mais le devra modifier le contenu de l’attribut AS_PATH véhiculé dans
choix de la route par le routeur G est meilleur que celui de la route l’annonce en fonction de la localisation du récepteur de l’annonce :
par le routeur F (à cause des ROUTER_ID).
— si le récepteur est localisé dans le système autonome auquel
Le problème soulevé par ce cas de figure est lié au caractère appartient l’annonceur, le contenu de l’attribut AS_PATH ne sera
sélectif (quasi déterministe) des RR et à la prise en compte de l’attri- pas modifié ;
but MED dans le processus de sélection. Une solution à ce cas de — si le récepteur est localisé dans un système autonome voisin
figure consisterait à imposer aux RR de ne jamais prendre leur déci- (de celui auquel appartient l’annonceur) faisant partie de la confédé-
sion sur la base d’une analyse de l’attribut MED (ce qui est possible ration, le contenu de l’attribut AS_PATH sera mis à jour, de telle
pour la plupart des solutions proposées par les constructeurs). sorte que :

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux IP 2 900 − 13
PROTOCOLE DE ROUTAGE BGP-IV _________________________________________________________________________________________________________

• si le type du premier segment de l’attribut AS_PATH est Cette référence astronomique aux « trous noirs » doit ici être com-
AS_CONFED_SEQUENCE, l’annonceur devra rajouter son propre prise comme une illustration pratique du phénomène de « calcul
numéro d’AS comme le dernier élément de la séquence ; infini » (count to infinity) qui illustre l’incapacité d’un routeur à
• si le type du premier segment de l’attribut AS_PATH n’est pas déterminer une route qui permettrait d’atteindre une destination
AS_CONFED_SEQUENCE, l’annonceur devra rajouter un nouveau donnée, et ainsi à absorber l’intégralité du trafic correspondant, en
segment de type AS_CONFED_SEQUENCE, en incluant son pro-
pre identifiant de confédération dans ce segment ; détruisant purement et simplement les datagrammes qui compo-
— si le récepteur est localisé dans un système autonome voisin sent ce trafic...
qui ne fait pas partie de la confédération, l’annonceur devra modifier
le contenu de l’attribut AS_PATH, de telle sorte que : Enfin, l’implantation de la fonction d’injection (ou de redistribution)
est dépendante de la solution constructeur qui supporte cette fonc-
• si le type du premier segment de l’attribut AS_PATH est
tion, au moins en termes de configuration.
AS_CONFED_SEQUENCE, ce segment (et ceux de type
AS_CONFED_SET qui lui sont immédiatement consécutifs)
devront être RETIRES, de sorte que l’attribut AS_PATH ne consi-
gne que l’identifiant du système autonome pour lequel la confé- 3.5.1 Routes statiques
dération a été mise en place (le récepteur de l’annonce n’a donc
pas la connaissance de la topologie confédératrice du système
autonome auquel appartient l’annonceur) ; Les routes statiques sont pas définition des routes qui sont instal-
• si le type du premier segment de l’attribut AS_PATH est lées manuellement dans la table d’acheminement d’un routeur et, par
AS_SEQUENCE (il n’y a donc plus de types conséquent, elles ne seront jamais retirées, à moins d’une volonté
AS_CONFED_SEQUENCE ou AS_CONFED_SET dans l’un quel-
délibérée de l’administrateur du routeur.
conque des segments de l’attribut AS_PATH), l’annonceur devra
rajouter son propre identifiant de confédération (i.e. le numéro du
Lorsqu’elles sont redistribuées dans BGP, les routes statiques sont
système autonome auquel appartient l’annonceur, dans ce cas)
comme le dernier élément de cette séquence ; maintenues d’une manière permanente dans les tables de routage
• s’il n’y a plus de segments après le retrait de segments de BGP, indépendamment du fait que ces routes peuvent être inutilisa-
type AS_CONFED_SEQUENCE/AS_CONFED_SET dans l’attribut bles (à cause d’une rupture de lien, par exemple). Si la redistribution
AS_PATH, l’annonceur devra rajouter un segment de type de routes statiques dans BGP offre d’assez bonnes garanties de sta-
AS_SEQUENCE qui inclura son identifiant de confédération. bilité (compte tenu du caractère permanent de la maintenance de ces
Lorsqu’un routeur R est à l’origine de l’annonce d’une route, R routes), il n’en reste pas moins que ce type d’injection peut présenter
devra inclure un attribut AS_PATH vide dans le message de type des inconvénients si la route en question est annoncée depuis plu-
UPDATE qui sera envoyé à l’ensemble des routeurs BGP qui appar- sieurs endroits du réseau... et qu’elle est inutilisable.
tiennent au même système autonome que celui de l’annonceur.
L’attribut AS_PATH inclura un segment de type Ainsi, si le routeur qui annonce cette route est en fait incapable
AS_CONFED_SEQUENCE, lorsque l’annonce est destinée aux rou- d’atteindre la destination consignée dans le champ NLRI correspon-
teurs d’un système autonome voisin faisant partie de la confédéra- dant, les datagrammes qui composent le trafic destiné à ce préfixe
tion. L’attribut AS_PATH inclura un segment de type seront en revanche détruits, quand bien même il existerait un chemin
AS_SEQUENCE, lorsque l’annonce est destinée aux routeurs d’un
possible pour atteindre cette destination.
système autonome voisin ne faisant pas partie de la confédération.
Par ailleurs, les attributs NEXT_HOP et MED ne devraient pas être
modifiés lorsqu’ils font partie d’un message de type UPDATE trans-
mis par un routeur membre d’une confédération et destiné à des 3.5.2 IGP
routeurs membres de cette même confédération.
En fonction du mécanisme utilisé pour propager l’information véhi-
culée par le protocole BGP-IV au sein d’un système autonome, une
3.5 Politiques de redistribution attention particulière devra être portée pour la cohésion des informa-
tions de routage véhiculées par le ou les protocole(s) de type IGP acti-
vés au sein du système autonome et celles véhiculées par le protocole
La stabilité des routes au sein du réseau Internet est probablement BGP, d’autant plus que les informations relatives à des changements
l’un des soucis majeurs rencontrés par les entités administratives
d’état tels que perçus par ces différents protocoles peuvent être pro-
chargées de gérer les différentes régions du réseau. L’injection
d’informations de routage dans le protocole BGP (plus précisément, pagés à des vitesses différentes au sein du système autonome.
l’alimentation des informations manipulées par le protocole BGP lors
de l’échange de messages de type UPDATE entre deux routeurs, De façon à minimiser autant que faire se peut les risques de trous
peut trouver son origine dans l’activation d’un protocole de routage noirs liés à l’apparition de fenêtres temporelles (telles que celle provo-
dynamique de type IGP au sein du système autonome, ou dans l’uti- quée par la transmission d’une annonce entre deux routeurs BGP à un
lisation de routes statiques) conditionne largement la stabilité des instant t0, et l’instant t1 où le protocole IGP permet effectivement
routes annoncées par le protocole BGP-IV. d’acheminer le trafic vers l’annonceur), les règles élémentaires sui-
L’injection d’informations de routage apprises par le protocole vantes devraient être prises en compte [RFC-1772] : un routeur BGP
BGP dans un protocole de type IGP n’est pas recommandée parce devrait s’abstenir de propager, auprès des routeurs avec lesquels
qu’elle augmente le risque de « trous noirs » (le risque est particuliè- une connexion eBGP a été établie, des annonces de routes qui iden-
rement important lorsque le protocole OSPF [RFC-2328] est activé tifient un « next hop » (au sein du système autonome auquel appar-
au sein du système autonome, parce que ce protocole fait une dis-
tient l’annonceur) tant que l’accessibilité à ce « next hop » n’a pas
tinction entre les routes internes (à une aire OSPF ou au système
autonome, c’est-à-dire les routes qui permettent d’atteindre une été déterminée par le protocole de type IGP activé au sein du sys-
destination interne à l’aire ou au système autonome) et les routes tème autonome, ce qui introduit une fonction de synchronisation
externes, à moins d’activer des fonctions de filtrage extrêmement (dès que l’accessibilité est connue, le routeur BGP envoie
rigoureuses. l’annonce).

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
IP 2 900 − 14 © Techniques de l’Ingénieur, traité Réseaux
_________________________________________________________________________________________________________ PROTOCOLE DE ROUTAGE BGP-IV

4. Évolutions du protocole — l’usage de l’attribut COMMUNITIES permet de s’affranchir


d’une manipulation parfois erratique de l’attribut AS_PATH.
BGP-IV
4.2 Extensions multiprotocoles
4.1 Attribut COMMUNITIES (code 8)
Le document [RFC-1771] spécifie le protocole BGP-IV de telle sorte
qu’il ne permet de véhiculer que des informations caractéristiques
Le protocole BGP permet d’appliquer des politiques de routage pour
du protocole IPv4 [RFC-791] en mode transmission unicast, compte
le trafic de transit (trafic transitant par un système autonome) notam-
tenu du type d’adresses qu’il est possible de consigner dans le
ment, grâce à une distribution contrôlée de l’information de routage,
champ NLRI. Compte tenu du déploiement massif du protocole BGP
qui s’appuie essentiellement sur des adresses IP (préfixes) et la
au sein du réseau Internet et de la pléthore d’applications qui
valeur consignée dans l’attribut AS_PATH véhiculée dans le message
s’appuient sur les ressources d’autres protocoles de communication
de type UPDATE.
(que IPv4 en mode de transmission unicast), il a paru souhaitable
Afin de simplifier le contrôle de l’information de routage, le docu- d’exploiter les ressources du protocole BGP pour véhiculer des
ment [RFC-1997] introduit la notion de « groupe de destinations », informations de routage caractéristiques d’autres protocoles de
groupe pour lequel une politique de routage homogène (à l’ensem- communication et, en particulier, les protocoles IPv4 pour le mode
ble des préfixes composant ce groupe) pourra être appliquée. Dans de transmission multicast, et IPv6.
ce contexte, une communauté est un groupe de destinations (pré-
Conformément à la spécification actuelle [RFC-1771], seuls trois
fixes) qui partagent une caractéristique commune, telle que le fait
types d’information véhiculés par le protocole BGP sont caractéristi-
d’être des adresses dont la gestion a été confiée à une même entité
ques du protocole IPv4 (en mode de transmission unicast) :
administrative, ou le fait que ce groupe de destinations doit néces-
sairement être accessible moyennant la traversée d’un système — l’attribut NEXT_HOP (dans la mesure où celui-ci contient une
autonome particulier. adresse IPv4) ;
Pour ce faire, le document [RFC-1997] définit un nouvel attribut, — l’attribut AGGREGATOR (qui comporte lui aussi des adresses
de type « optional transitive », et de longueur variable : l’attribut IPv4) ;
COMMUNITIES (type code 8), pour lequel les trois valeurs suivantes — le champ NLRI contenu dans un message de type UPDATE, qui
ont déjà été spécifiées : est composé de préfixes conformes au formalisme IPv4.
— NO_EXPORT (valeur 0xFFFFFF01) : le récepteur des annonces Dans l’hypothèse (rationnelle) selon laquelle l’ensemble des rou-
qui comportent l’attribut COMMUNITIES valorisé de la sorte ne doit teurs BGP d’un système autonome est affecté d’au moins une
pas propager cette annonce en dehors d’une confédération, ou du adresse IPv4, la capacité du protocole à véhiculer des informations
système autonome auquel le récepteur appartient, si cet AS n’a pas de routage caractéristiques d’autres protocoles de communication
été décomposé en confédération ; est donc ramenée à :
— NO_ADVERTISE (valeur 0xFFFFFF02) : le récepteur des annon- — la capacité du protocole à associer un protocole de communi-
ces qui comportent l’attribut COMMUNITIES valorisé de la sorte ne cation donné à une information de type « next hop » (décrite éven-
doit en aucun cas propager cette annonce ; tuellement selon le formalisme d’adressage utilisé en relation avec
— NO_EXPORT_SUBCONFED (valeur 0xFFFFFF03) : le récepteur le protocole de communication en question) ;
des annonces qui comportent l’attribut COMMUNITIES valorisé de — la capacité du protocole à associer un protocole de communi-
la sorte ne doit en aucun cas propager cette annonce vers des rou- cation donné avec l’information consignée dans le champ NLRI
teurs avec lesquels il a établi une communication de type eBGP (ce éventuellement contenu dans un message de type UPDATE.
qui vaut en particulier pour les routeurs qui appartiennent à un sys-
tème autonome voisin du système autonome auquel appartient le Par ailleurs, l’information véhiculée dans l’attribut NEXT_HOP n’a
récepteur, mais faisant partie de la même confédération). de sens que si elle est associée à un ensemble de préfixes tels que
décrits dans le champ NLRI du message de type UPDATE... et acces-
Le récepteur d’une annonce qui ne comporte pas l’attribut COM- sibles au travers de l’utilisation du routeur défini dans l’attribut
MUNITIES a la possiblité de rajouter celui-ci dans le message de type NEXT_HOP. Cette observation suggère que l’annonce de routes per-
UPDATE correspondant à la propagation de cette annonce à ses voi- mettant d’atteindre des préfixes destination effectivement accessi-
sins. Par ailleurs, le récepteur d’une annonce qui comporte l’attribut bles soit décorrélée des annonces relatives aux routes qui ne sont
COMMUNITIES a la capacité de modifier la valeur de celui-ci, afin, plus utilisables (préfixes inaccessibles).
par exemple, d’appliquer une politique de routage locale au système
autonome auquel appartient le récepteur. C’est pourquoi le document [RFC-2283] définit deux attributs sup-
plémentaires – les attributs MP_REACH_NLRI (MultiProtocol REA-
Des exemples d’utilisation de l’attribut COMMUNITIES sont fournis CHable NLRI – qui véhicule l’information relative à l’ensemble des
dans le document [RFC-1998] qui indique en particulier que, moyen- destinations accessibles au travers du « next hop », lui-même iden-
nant un accord préalable entre un client et son fournisseur de ser- tifié dans l’attribut), et MP_UNREACH_NLRI – MultiProtocol UNREA-
vice – accord selon lequel un ensemble de communautés (groupes CHable NLRI, chargé de véhiculer les informations caractéristiques
de destinations) pourra être associé à autant de valorisations parti- de l’ensemble des destinations désormais inaccessibles (cette infor-
culières de l’attribut LOCAL_PREF –, le fournisseur pourra alors mation est complémentaire de celle consignée dans le champ
appliquer une politique de routage homogène (par exemple, déter- « withdrawn routes » d’un message de type UPDATE, parce que le
mination d’un chemin particulier qui sera emprunté par le trafic champ « withdrawn routes » ne peut consigner que des informa-
retour conséquent à une consultation de serveurs Web transatlanti- tions conformes au formalisme de l’adressage IPv4. À noter que
ques) pour l’ensemble des préfixes destinations consignés dans l’attribut MP_UNREACH_NLRI contient lui aussi un champ
chacune de ces communautés. « withdrawn routes »).
Les principaux avantages liés à l’utilisation de l’attribut COMMU- Ces deux attributs sont de type « optional non transitive », si bien
NITIES sont les suivants : qu’un routeur BGP qui ne supporte pas la fonction capable de traiter
— le client d’un fournisseur de service a la capacité de mieux con- les extensions du protocole pourra ignorer l’information véhiculée
trôler les échanges d’informations de routage entre le système auto- dans ces attributs, laquelle, dans ce cas, ne sera pas retransmise à
nome qu’il représente et celui de son fournisseur ; d’autres routeurs BGP.

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux IP 2 900 − 15
PROTOCOLE DE ROUTAGE BGP-IV _________________________________________________________________________________________________________

Address Family Identifier (2 octets) Address Family Identifier (2 octets)

Subsequent Address Family Identifier (1 octet) Subsequent Address Family Identifier (1 octet)

Length of Next Hop Network Address (1 octet) Withdrawn Routes (variable)

Network Address of Next Hop (variable)


Figure 12 – Attribut MP_UNREACH_NLRI
Number of SNPA (1 octet)

Length of first SNPAs (1 octet) auquel appartient l’annonceur, faute de quoi le récepteur devra
First SNPA (variable) envoyer un message de type NOTIFICATION qui indiquera que
l’attribut AS_PATH a été mal formé.
Length of second SNPA (1 octet)

Second SNPA (variable) 4.2.2 Attribut MP_UNREACH_NLRI

L’attribut MP_UNREACH_NLRI est constitué d’un ou plusieurs tri-


Length of Nth SNPA (1 octet) plets <Address Family Information, Unfeasible Routes Length,
Withdrawn Routes>, codés de la manière suivante (figure 12) :
Nth SNPA (of Next Hop ) (variable)
Un message de type UPDATE qui contient l’attribut
MP_UNREACH_NLRI n’est pas censé véhiculer d’autres attributs.
Length of last SNPA (1 octet)

Last SNPA (variable)


4.2.3 Intégration du formalisme IPv6 ([RFC-2545])

Network Layer Reachability Information (variable) Le formalisme IPv6 [KASSI98] définit trois types d’adresses uni-
cast [RFC-2373], les adresses globales, les adresses de type SLA
Figure 11 – Attribut MP_REACH_NLRI (Site Local Addresses) et les adresses de type « link-local ». Les
adresses de type SLA ne sauraient être exportées au-delà d’un site,
tandis que seules les adresses de type « link-local » sont utilisées
par certains protocoles de routage dynamique, tels que le protocole
4.2.1 Attribut MP_REACH_NLRI RIP adapté au formalisme IPv6 [RFC-2080].
L’attribut MP_REACH_NLRI est formé d’un ou plusieurs triplets Les adresses de type « link local » ne sont pas adaptées pour être
<Address Family Information, Next Hop Information, NLRI> dont le utilisées par l’attribut NEXT_HOP, compte tenu de sa codification,
formalisme est décrit sur la figure 11 : telle que définie par le document [RFC-1771]. Dans ces conditions,
lorsque le protocole BGP est utilisé pour véhiculer une information
— le champ AFI (Address Family Identifier) identifie le protocole
d’accessibilité de réseaux IPv6, il peut être nécessaire de renseigner
de communication utilisé auquel est associée l’adresse qui suit
le champ « Network Address of Next Hop » de l’attribut
(champ « Network Address of Next Hop »). Le protocole de commu-
MP_REACH_NLRI par une adresse globale et une adresse de type
nication est identifié conformément aux valeurs définies dans le
« link local », dans la mesure où cette dernière est utilisée par le rou-
document [RFC-1700] ;
teur IPv6 pour générer des messages de type ICMP (Internet Control
— le champ sub-AFI (Subsequent Address Family Identifier) four-
Message Protocol) de type ICMP-Redirect [RFC-2461].
nit une information complémentaire à celle consignée dans le
champ NLRI de l’attribut. Trois valeurs ont été définies dans le docu- La longueur du champ « Network Address of Next Hop » de l’attri-
ment [RFC-2283] : but MP_REACH_NLRI sera donc de 16 (lorsque le champ est valorisé
• Type 1 : l’information consignée dans le champ NLRI est asso- par une adresse globale uniquement) ou de 32 octets lorsque le
ciée à un mode de transmission unicast ; champ est valorisé par une adresse globale et une adresse de type
• Type 2 : l’information consignée dans le champ NLRI est alors « link local ».
associée à un mode de transmission multicast ; Les adresses de type « link local » ne seront insérées dans le
• Type 3 : l’information consignée dans le champ NLRI est asso- champ « Network Address of Next Hop » que si et seulement si le
ciée aux modes de transmission unicast et multicast. récepteur partage un subnet commun avec l’annonceur. Dans tous
— le champ « Nth SNPA of Next Hop » est un champ de longueur les autres cas, seule l’adresse globale devra figurer dans le champ
variable qui contient un SNPA (SubNetwork Point of Attachment) du « Network Address of Next Hop ».
routeur dont l’adresse réseau est renseignée dans le champ
« Network Address of Next Hop » de l’attribut ;
— l’information relative au « next hop » par lequel l’ensemble
des destinations consignées dans le champ NLRI est accessible, 4.3 Services de sécurité
définit l’adresse réseau du routeur qui devrait être utilisé pour
atteindre cet ensemble de destinations [se reporter au
paragraphe 2.2.2.3.5 pour la typologie des partis (« first » et C’est un truisme que d’affirmer que les réseaux IP actuellement
« third ») en fonction de la nature de l’annonceur]. déployés présentent des failles en matière de sécurité, de sorte que la
Un message de type UPDATE qui contient l’attribut confidentialité des informations véhiculées par ces réseaux oblige à
MP_REACH_NLRI doit aussi contenir les attributs ORIGIN et déployer des trésors de précaution qui s’appuient sur différentes
AS_PATH, que la communication soit de type eBGP ou de type iBGP. solutions destinées à supporter des fonctions élémentaires telles
Par ailleurs, dans le contexte d’une communication de type eBGP, le que les fonctions suivantes :
récepteur de l’annonce qui contient l’attribut MP_REACH_NLRI aura — la fourniture de certaines garanties quant à l’identité des utili-
pris soin de vérifier que le premier identifiant d’AS consigné dans sateurs d’un réseau IP, ce qui conduit à la mise en place de fonctions
l’attribut AS_PATH correspond effectivement au système autonome d’identification et d’authentification ;

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
IP 2 900 − 16 © Techniques de l’Ingénieur, traité Réseaux
_________________________________________________________________________________________________________ PROTOCOLE DE ROUTAGE BGP-IV

— la fourniture de certaines garanties quant à la protection des Ce mécanisme permet donc de fournir certaines garanties quant à
sites (et des ressources) raccordés au travers d’un réseau IP, ce qui l’identité d’un routeur BGP avec lequel un autre routeur BGP est
conduit généralement à la mise en place de solutions de type pare- censé communiquer. Il n’en reste pas moins vrai que cette solution
feu ; ne constitue que l’une des briques élémentaires à l’édifice des fonc-
— la fourniture de certaines garanties quant à la préservation de tions de sécurité lorsque l’on active le protocole BGP : à titre
la confidentialité des informations véhiculées sur un réseau IP ; d’exemple, l’utilisation de signatures ne garantit en aucune façon la
— la fourniture de certaines garanties quant à l’identité et aux validité des annonces, ce qui a conduit au développement des IRR
droits associés à une ressource de commutation IP donnée, suscep- (Internet Route Registry) [MERIT-RA], qui assurent une sorte de fonc-
tible de fournir des informations d’accessibilité de réseaux. tion d’annuaires de routes.
Pour ce qui concerne les routeurs BGP, l’une des préoccupations Ces annuaires sont consultés par certains (au moins ceux qui
en matière de sécurité porte sur la protection de la connexion TCP dépendent de la même entité administrative qui est chargée d’assu-
contre des attaques telles que des segments TCP simulés (spoofed rer la maintenance de ces serveurs) des routeurs BGP du réseau
TCP segments) [RFC-2385]. Le document [RFC-2385] propose d’utili- Internet pour alimenter les tables Adj-RIB-In, Loc-RIB et Adj-RIB-Out,
ser la signature MD5 (Message-Digest version 5) [RFC-1321], en moyennant l’utilisation d’un langage spécifique RPSL (Routing
appliquant l’algorithme (MD5) sur les entités suivantes (et selon Policy Specification Language) [RFC-2622] qui permet à l’entité ges-
l’ordre chronologique associé) : tionnaire de ces routeurs de mettre en œuvre une politique de rou-
— le pseudo-en-tête TCP (soit, dans l’ordre, l’adresse IP source, tage par l’application des instructions définies dans la syntaxe de ce
l’adresse IP destination, le champ « protocol number » valorisé à langage pour ce qui concerne les informations d’accessibilité de
« 0 », et la longueur du segment TCP) ; réseaux IP telles qu’elles sont consignées dans le serveur de routes
— l’en-tête TCP (options exclues), le checksum (le checksum – RPSL est utilisé pour mettre en forme l’information consignée et
s’appuie généralement sur l’activation d’un code de redondance maintenue par le serveur de routes. La communication entre un rou-
cyclique destiné à qualifier le taux d’erreur associé à la transmission teur BGP et le serveur de routes s’appuie encore (en dépit du fait
d’un datagramme) étant à « 0 » ; que le langage RPSL est conçu de telle sorte qu’il puisse modifier les
— les données contenues dans le segment TCP (s’il y en a) ; configurations des routeurs, moyennant une adaptation (traduction)
— une clé ou un mot de passe, connue des deux routeurs BGP, et entre ce langage et la syntaxe de configuration utilisée par tel ou tel
caractéristique de la connexion BGP. constructeur. Des expérimentations ont été menées avec certains
d’entre eux dans ce sens) sur une communication BGP
Sur réception d’un segment TCP signé, le récepteur devra le vali-
« classique ».
der en calculant son propre condensé (digest) à partir des mêmes
données, et en utilisant sa propre clé. Le résultat sera comparé avec
le condensé communiqué par son interlocuteur BGP, et si le résultat
de cette comparaison aboutit à deux condensés différents, le récep-
teur ne fournira aucune réponse à l’annonceur, la communication 5. Conclusion
TCP sera coupée et, par conséquent, la connexion BGP ne sera
jamais établie.
De cette façon, toute tentative d’attaque malicieuse devra non La richesse fonctionnelle du protocole BGP-IV justifie largement
seulement deviner les numéros de séquence TCP, mais aussi les son déploiement massif au sein du réseau Internet. Les efforts de
mots de passe/clés véhiculés dans les condensés MD5 et qui, par spécification les plus récents devraient conforter cette popularité,
nature, sont chiffrés. L’activation de ce type de mécanisme peut d’autant plus que le protocole BGP-IV permet désormais de véhicu-
avoir un impact sur le temps d’établissement de la connexion TCP, ler d’autres informations de routage que celles caractéristiques du
mais le document [RFC-2385] indique que la génération d’une signa- protocole IPv4 en mode de transmission unicast.
ture pour un segment TCP de type ACK par une machine pourvue En particulier, compte tenu des nombreuses réflexions menées
d’un processeur cadencé à 100 MHz prenait un temps moyen de actuellement au sein de la communauté Internet pour déployer des
0,0268 ms, tandis que la génération d’une signature pour un seg- réseaux IP à qualités de service différenciées, le protocole BGP-IV
ment TCP constitué d’un volume de données de 4096 octets prenait apparaît comme l’une des pierres angulaires de ce qu’il est convenu
un temps moyen de 0,8776 ms, ce qui reste acceptable dans le con- d’appeler le routage à qualité de service [RFC-2386] [RFC-2676],
texte actuel du réseau Internet. Toutefois, l’utilisation d’une signa- dans la mesure où il permet d’ores et déjà de privilégier l’emprunt
ture MD5 entraîne un overhead (l’overhead est le surplus de certains chemins pour atteindre des destinations spécifiques,
d’information induit par l’activation d’une fonction particulière, telle conformément à une politique de routage mise en place par l’entité
qu’une signature ou une encapsulation) d’au moins 18 octets plus gestionnaire d’un système autonome : dans ce cas, les concepts les
important que la longueur de l’en-tête TCP. plus élémentaires d’ingénierie de trafic et de routage par contraintes
Le document [RFC-2385] spécifie l’utilisation de signatures MD5 (par exemple, sélection d’une route spécifique en fonction de la des-
pour la protection des connexions BGP, mais une signature SHA-1 tination qu’elle permet d’atteindre, acheminement du trafic de tran-
(Secure Hashing Algorithm, version 1) pourrait aussi être utilisée, le sit au travers de systèmes autonomes particuliers, etc.) peuvent
cas échéant. déjà caractériser l’usage du protocole BGP-IV.

Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux IP 2 900 − 17

Vous aimerez peut-être aussi