Académique Documents
Professionnel Documents
Culture Documents
Supports Mooc Sem2 Routage Externe
Supports Mooc Sem2 Routage Externe
Automne 2015
Table des matières
1.
Leçon 1 : Introduction à la structure d’Internet - Internet en quelques
chiffres
....................................................................................................................................
3
2.
Leçon 2 : Interconnexion des systèmes autonomes – Transit et peering
...
14
3.
Leçon 3 : Principes du routage externe – Stratégies de routage
...................
26
4.
Leçon 4 : Principes du protocole BGP – Sessions et messages BGP
.........
35
5.
Leçon 5 : Attributs du protocole BGP
...................................................................
47
6.
Leçon 6 : Processus de sélection dans BGP – Critères de sélection et
informations de routage
...................................................................................................
57
7.
Leçon 7 : Exemples de stratégies de routage – Peering et transit avec BGP
74
2
Commençons par un exemple simple d’un ordinateur à Rennes qui se connecte sur le
site www.example.com.
Les outils habituels de diagnostic des réseaux permettent de révéler les adresses IP
des routeurs traversés. En effet, les paquets de données échangés lors de cette
connexion traversent dix routeurs. Le premier est situé à Caen, le deuxième à Rouen,
le troisième à Paris. Ces trois premiers routeurs sont gérés par RENATER : Le Réseau
National de télécommunications pour la Technologie l'Enseignement et la Recherche.
Ensuite, les paquets de données traversent deux routeurs de l’opérateur Vodafone,
puis le réseau de l’opérateur TeliaSonera pour atteindre un routeur situé à Washington
aux Etats-Unis. Finalement, les paquets de données arrivent au serveur
www.example.com hébergé par le fournisseur de contenu EdgeCast.
Cet exemple simple permet de révéler une propriété importante de la structure
d’Internet : Internet est un ensemble de réseaux gérés par différents opérateurs qui
s’interconnectent afin de fournir la connectivité globale.
3
Dans la suite, quand il s’agit d’étudier le routage externe et l’interconnexion des
réseaux, nous adoptons un point de vue macroscopique : cela nous permet de
masquer la complexité interne des réseaux traversés et de considérer chacun comme
une seule entité.
Dans la réalité, l’interconnexion entre les réseaux est plus complexe. En effet,
RENATER dispose aussi d’un lien d’interconnexion avec le réseau de l’opérateur GTT.
Par conséquent, les paquets de données échangés entre l’ordinateur à Rennes et le
site www.example.com peuvent emprunter plusieurs chemins. A titre d’exemple, cela
peut être le chemin constaté dans les mesures précédentes, ou un chemin qui passe
par GTT puis TeliaSonera, ou même un chemin sans intersection avec le premier et
qui passe par les réseaux des opérateurs GTT puis NTT.
4
A l’aide de l’exemple précédent, nous pouvons révéler les principales composantes du
routage externe. Ces composantes font l’objet des prochaines leçons et répondent aux
questions suivantes :
Premièrement, comment se propage l’information de routage qui permet d’annoncer
l’accessibilité à un réseau ?
Quel protocole et quels mécanismes sont-ils mis en place à travers les différents
réseaux des opérateurs ?
Deuxièmement, une fois l’information de routage propagée, qui décide du chemin à
suivre et quels sont les critères utilisés pour faire ce choix ?
5
Le défi principal du routage externe est l’implication de plusieurs opérateurs. Dans ce
contexte, les réseaux de ces opérateurs sont appelés systèmes autonomes. Un
système autonome est un ensemble de réseaux connectés généralement gérés par
une même entité administrative et qui se comporte comme une seule entité pour le
routage externe.
Qui joue alors le rôle d’un système autonome en pratique ? Et de quel type
d’infrastructure de réseau dispose-t-il ?
Un système autonome peut être le réseau d’un fournisseur de contenu, d’un
fournisseur d’accès à Internet, ou de toute entreprise avec un accès à Internet, …
6
Certains systèmes autonomes comme RENATER assurent une couverture nationale.
RENATER dispose d’une infrastructure de transmission en fibres optiques et de points
de présence dans plusieurs villes en France. Certains points stratégiques tels que
Paris, Lyon ou Marseille permettent l’interconnexion avec d’autres systèmes
autonomes tels que les fournisseurs d’accès à Internet en France ou le réseau
européen pour l’éducation et la recherche GEANT.
7
D’autres systèmes autonomes comme TeliaSonera assurent une couverture
internationale avec des points de présence sur plusieurs continents. TeliaSonera
dispose de liens d’interconnexion avec un très grand nombre de systèmes autonomes,
par exemple des fournisseurs d’accès à Internet en Amérique du Nord, en Europe ou
en Asie.
8
Dans le routage externe, un système autonome est identifié par un numéro unique.
Comme pour les adresses IP, la gestion des numéros de systèmes autonomes est
faite par l’IANA (Internet Assigned Numbers Authority), un organisme mondial. L’IANA
délègue son autorité à des registres régionaux appelés Regional Internet Registry qui
attribuent les numéros de systèmes autonomes dans leur zone géographique. Il existe
cinq registres régionaux dans le monde. En Europe, les numéros de systèmes
autonomes s’obtiennent auprès de RIPE NCC.
Un numéro de système autonome est codé sur 16 bits, entre 1 et 65534. Par exemple,
RENATER dispose du numéro de système autonome 2200. Notons que les 1024
derniers numéros (64512 à 65534) sont destinés à un usage privé.
9
Aujourd’hui, il existe plus de 51 000 systèmes autonomes dans l’Internet. Pour
accompagner cette évolution, qui est une image de l’évolution de l’Internet, les
numéros de systèmes autonomes passent de 16 à 32 bits. Par conséquent, les
numéros attribués à partir de janvier 2009 sont notés sous le format X.Y avec X et Y
des entiers sur 16 bits. Par exemple, l’Assistance publique - Hôpitaux de Paris dispose
du numéro 3.2267 attribué en 2012.
10
Analysons quelques chiffres clés liés aux systèmes autonomes dans l’Internet en
2015. Dans ce contexte, on appelle systèmes autonomes voisins des systèmes
autonomes qui ont établi un lien d’interconnexion pour échanger le trafic.
Généralement, ce voisinage est établi sur des bases géographiques. Tout d’abord, on
note que 80% des systèmes autonomes sur Internet sont des réseaux terminaux. Ces
réseaux ne font pas transiter du trafic d’autres systèmes autonomes. De plus, 64% de
systèmes autonomes ont un ou deux voisins, la moyenne géométrique globale du
nombre de voisins sur Internet étant 2.55. Si on observe les systèmes autonomes avec
le plus grand nombre d’interconnexions, on note que 1% ont plus de 100 voisins et
que seulement 46 systèmes autonomes (près de 1 pour mille) ont plus de 1000 voisins.
11
Il est donc intéressant de pouvoir schématiser l’Internet à l’échelle des systèmes
autonomes. Cependant, tracer un tel graphe est une tâche complexe et nécessite de
placer un grand nombre des sondes pour révéler la structure d’interconnexion. Le
centre pour l’analyse appliquée des données de l’Internet (CAIDA) fournit un graphe
représentant l’Internet en 2014. Sur ce graphe, les nœuds représentent des systèmes
autonomes et les liens représentent les interconnexions. Les nœuds sont regroupés
par zone géographique et le rayon est proportionnel au nombre de voisinages : plus
un système autonome a des voisins, plus il est proche du centre du graphe. Cette
représentation synthétique permet de révéler deux propriétés importantes de la
structure de l’Internet appuyées par les chiffres analysés précédemment.
Premièrement, la densité des nœuds centraux est faible : très peu de systèmes
autonomes disposent d’un très grand nombre de connexion. Cela peut constituer une
sorte de cœur de l’Internet sans toutefois enlever sa caractéristique décentralisée. Il
s’agit par exemple de Level3, TeliaSonera, Cogent, …
Deuxièmement, la densité des nœuds se trouvant près de la frontière du graphe est
très élevée. En effet, la majorité des systèmes autonomes dans l’Internet sont
interconnectés avec un ou deux voisins.
12
A ce stade, nous pouvons établir les enjeux du routage externe. Premièrement, le
routage externe doit offrir la connectivité globale en rendant possibles les échanges
entre différents systèmes autonomes. Deuxièmement, le routage externe doit être
appliqué à l’échelle de l’Internet et permettre l’échange d’informations de routage entre
un très grand nombre de systèmes autonomes. Finalement, le routage externe doit
préserver l’autonomie : chaque système autonome doit pourvoir prendre les décisions
d’acheminement du trafic et établir ses propres stratégies de routage.
13
Dans cette leçon, nous avons analysé la structure de l’Internet sous l’angle du routage
externe. Nous avons identifié la notion de système autonome qui sera l’entité
élémentaire pour étudier le routage externe. De plus, nous avons découvert quelques
chiffres marquants qui révèlent les principales propriétés de l’Internet : on y trouve un
petit nombre de systèmes autonome avec un très grand nombre d’interconnexions et
une majorité de systèmes autonomes avec un ou deux liens d’interconnexion. Nous
avons conclu en formulant les principaux enjeux du routage externe à savoir fournir
une connectivité globale, assurer le passage à l’échelle, et préserver l’autonomie.
14
Il existe deux types d’accords entre systèmes autonomes : le transit et le peering.
Le transit est un accord commercial entre un client et un fournisseur qui assure
l’acheminement du trafic du client vers ou depuis le reste de l’Internet. Le fournisseur
appelé aussi opérateur de transit facture à son client le trafic échangé. Dans l’exemple
suivant, le système autonome A a conclut un accord de transit avec B. Par conséquent,
B fournit l’accès à Internet et facture le trafic échangé sur le lien avec A.
15
Sachant que le trafic présente des alternances de période de pointe et de périodes
creuses, comment peut-on établir la facturation d’un accord de transit ? Cette
facturation est généralement établie selon la règle du 95ème centile. Pour ce faire, le
débit du lien d’interconnexion entre le client et le fournisseur est mesuré toutes les cinq
minutes. Les échantillons mensuels sont classés par ordre croissant et les 5% des
valeurs de débit les plus élevées sont écartées : la valeur suivante est notée 95ème
centile. Le maximum entre le 95ème centile du trafic sortant et entrant sert alors de
base de facturation.
16
Le peering est un accord d’échange direct de trafic entre deux systèmes autonomes
et entre leurs clients.
Supposons que les systèmes autonomes A et B sont des fournisseurs de C et D
respectivement. Si A et B concluent un accord de peering, le trafic en provenance de
l’un des quatre systèmes autonomes cités et à destination de l’un d’eux peut emprunter
le lien d’interconnexion : c’est le cas par exemple du trafic de A vers B ou de C vers
D.
17
En général, le trafic échangé selon un accord de peering n’est pas facturé. Cependant,
les deux systèmes autonomes partagent le coût de la mise en place et du maintien de
l’interconnexion.
Un accord de peering est généralement conclu entre deux systèmes autonomes
équivalents. Les principales caractéristiques utilisées pour comparer les systèmes
autonomes sont l’étendue géographique, la capacité des liens, le nombre de clients,
ou le trafic généré. En effet, même si le trafic n’est pas facturé sur un lien de peering,
les deux systèmes autonomes veillent à garder un ratio équilibré des débits de trafic
échangé.
18
Que se passe-t-il si les règles d’équilibre de trafic ne sont pas respectées dans un
accord de peering ?
Ce déséquilibre est de plus en plus fréquent depuis la forte augmentation du trafic
vidéo sur Internet. Prenons l’exemple d’un fournisseur d’accès à Internet A et d’un
fournisseur de contenu vidéo B. Lorsque les clients de A accèdent à un contenu vidéo
hébergé par B, leurs requêtes génèrent un débit faible comparé à celui généré par le
trafic de retour transportant les vidéos.
En général, si le débit moyen du trafic envoyé de B vers A dépasse largement celui
envoyé de A vers B, A peut demander de renégocier l’accord de peering : soit pour
facturer à B l’extension de la capacité du lien d’interconnexion, soit pour lui facturer le
trafic échangé. On parle alors d’accord de peering payant.
Historiquement, les règles des accords de peering et les conditions d’équilibre de trafic
associées ont provoqué de nombreux conflits entre systèmes autonomes allant jusqu’à
la rupture des accords.
19
Supposons maintenant que deux systèmes autonomes C et D ont signé des accords
de transit avec A et B respectivement. Initialement, le trafic échangé entre C et D passe
par A et B ainsi que d’autres systèmes autonomes qui assurent l’interconnexion entre
ces deux derniers.
Si C et D mettent en place un accord de peering, cela permettra d’échanger
directement leur trafic sans passer par leurs fournisseurs. Quels sont alors les
avantages de la mise en place d’un tel accord de peering ?
Premièrement, le délai de bout en bout des communications entre C et D est réduit, et
la qualité de service proposée par les systèmes autonomes améliorée.
Deuxièmement, C et D réduisent la dépendance à leurs fournisseurs respectifs et
peuvent profiter d’une tolérance aux pannes dans l’interconnexion : si le lien direct de
peering tombe en panne, le trafic échangé entre C et D peut repasser par les
fournisseurs.
Finalement, échanger le trafic directement selon un accord de peering peut réduire les
coûts de transit payés par C et D. A la différence du trafic échangé en transit et facturé
en fonction du débit, le peering induit uniquement des coûts de mise en place et de
maintien de l’interconnexion. Pour cela, au delà d’un débit moyen de trafic échangé,
le peering devient une solution rentable pour les systèmes autonomes.
20
Dans les exemples précédents, nous avons vu que les interconnexions de peering
sont réalisées au travers d’un lien direct entre les infrastructures propres des deux
systèmes autonomes. Autrement, la mise en place des interconnexions de peering
peut être réalisée via des points d’échange ou Internet Exchange (IX). Un point
d’échange est une infrastructure d’interconnexion distribuée sur plusieurs centres
d’hébergement de données qui permet à des systèmes autonomes d’échanger
directement leur trafic. Le schéma logique d’un point d’échange est une plateforme de
commutation sur laquelle se connecte un routeur de chaque système autonome
membre. Généralement, chaque système autonome membre paie des frais
d’installation et des frais mensuels pour s’interconnecter au point d’échange.
Comparé à un lien de peering direct entre systèmes autonomes, le point d’échange
peut s’avérer comme un solution plus économique. Précisément, un système
autonome qui devient membre d’un point d’échange a la possibilité d’échanger le trafic
directement avec l’ensemble des autres membres et ce moyennant un seul lien
d’interconnexion avec la plateforme de commutation.
Les points d’échanges deviennent des éléments importants de la structure de
l’Internet. Un point d’échange comme FranceIX réunit plus de 250 systèmes
autonomes membres et le débit moyen du trafic échangé est près de 250 Gbits/s.
21
En considérant les accords de peering et de transit, nous pouvons établir une
classification des systèmes autonomes dans l’Internet. Cette classification fait
apparaître trois niveaux de systèmes autonomes. Ces niveaux sont appelés Tier en
anglais : nous avons donc des systèmes autonomes Tier 1, Tier 2 ou Tier 3. Notons
que cette classification reste néanmoins approximative du fait de la confidentialité de
certains accords.
22
Un système autonome de niveau 1 ou Tier 1 fournit un transit pour ses clients et
dispose d’un ensemble d’accord de peering. Ces deux types d’accord lui permettent
de joindre tous les systèmes autonomes de l’Internet. Par conséquent, les systèmes
autonomes de niveau 1 ont des accords de peering mutuels, et constituent une sorte
de cœur de l’Internet. AT&T, TeliaSonera, Level3, Cogent, sont quelques exemples
de systèmes autonomes de niveau 1. Particulièrement, Level3 est fournisseur de près
de 4000 clients et il a conclut des accords de peering avec près de 70 systèmes
autonomes.
La stratégie de peering appliquée par les systèmes autonomes de niveau 1 est dite
restrictive. Cela impose à tout système autonome candidat pour un accord de peering
des contraintes très strictes de couverture géographique, de capacité, et d’équilibre de
trafic échangé.
23
Les systèmes autonomes de niveau 2 ou Tier 2 sont mixtes : ils dépendent d’un
fournisseur de transit, généralement de niveau 1, et proposent à leur tour une offre de
transit à leurs clients. Un système autonome de niveau 2 applique une stratégie de
peering sélective. Il négocie pour conclure des accords de peering avec des systèmes
autonomes équivalents, ce qui permet de réduire les factures de transit.
24
Les systèmes autonomes de niveau 3 ou Tier 3 sont clients de fournisseurs de transit
de niveau supérieur. Ils ne proposent pas d’offre de transit. Un système autonome de
niveau 3 applique généralement une stratégie de peering ouverte et cherche à
s’interconnecter aux points d’échange pour réduire les factures de transit.
25
Dans cette leçon, nous avons introduit et analysé les types accords entre systèmes
autonomes. L’accord de transit est un accord payant de type client/fournisseur qui
permet au client de joindre le reste de l’Internet. L’accord de peering est un accord
généralement non payant d’échange de trafic entre deux systèmes autonomes ou
entre leurs clients. Nous avons aussi souligné l’importance des points d’échange dans
la structure de l’Internet. Finalement, nous avons présenté la classification des
systèmes autonomes en trois niveaux selon les accords conclus.
26
Sur Internet, chaque système autonome gère un ou plusieurs blocs contigus
d’adresses IP appelés préfixes. Ces préfixes servent à numéroter les équipements du
système autonome ou ceux de ses clients. La mise en place du routage externe permet
de rendre joignables ces préfixes sur Internet.
Considérons le système autonome A qui gère les préfixes 10.1.0.0/16 et
192.168.1.0/24. Grâce à un protocole de routage externe, le routeur du système
autonome A annonce ses préfixes au voisin B.
Suite à la réception des annonces du protocole de routage externe, le routeur du
système autonome B met en place deux entrées dans la table de routage qui
permettent de router le trafic vers les préfixes de A. Lors de l’envoi de trafic depuis le
système autonome B vers l’adresse 10.1.0.1 par exemple, cette table de routage
permettra de router le trafic vers A.
Bien évidemment, pour avoir des échanges bidirectionnels, B doit annoncer le préfixe
192.168.2.0/24 qu’il gère. A la réception des annonces du protocole de routage, le
routeur de A met en place une entrée correspondante dans la table de routage pour
joindre le préfixe de B.
27
Comme il n’existe pas de système autonome central dans l’Internet, le relayage des
annonces de préfixes est une fonction importante du routage externe : elle permet à
un système autonome de propager l’information de ses préfixes en ayant un nombre
réduit de voisins directs.
Supposons que le système autonome A a deux voisins B et C. Grâce au protocole de
routage externe, les routeurs du système autonome A annoncent ses préfixes aux
voisins B et C. De même, les routeurs de B et C peuvent relayer l’information vers les
systèmes autonomes D et E. Ainsi, de proche en proche l’information se propage pour
atteindre tous les systèmes autonomes de l’Internet.
28
Suite à la réception des annonces du protocole de routage externe, les systèmes
autonomes B, C, D, et E peuvent mettre en place des entrées dans leur table de
routage qui permettent de router le trafic vers les préfixes de A.
Par exemple, C a reçu l’annonce des préfixes de A via B. Il met alors en place une
entrée dans la table de routage sur son routeur qui indique que pour joindre les préfixes
de A il faut envoyer le trafic vers B. Si un équipement du système autonome C essaie
de joindre l’adresse 10.1.0.1, le routeur de C consulte les informations de routage et
transmets le trafic vers B. A son tour, le routeur consulte la table de routage et
transmets vers la destination dans le système autonome A.
29
La possibilité de mettre en place des stratégies de routage est une caractéristique
principale du routage externe. D’une manière simple, une stratégie de routage externe
consiste à contrôler l’envoi des annonces de préfixes et le traitement des annonces
reçues. Une stratégie de routage est décidée par chacun des systèmes autonomes.
Considérons le système autonome A qui annonce ses deux préfixes vers son voisin
B. Ce dernier met donc en place des entrées dans la table de routage de son routeur
pour joindre les préfixes de A.
Un premier exemple de stratégie de routage mise en place par A consiste à annoncer
uniquement son préfixe 10.1.0.0/16 et bloquer l’annonce de 192.168.1.0/24. Cette
stratégie a un impact sur B qui ne pourra plus joindre le préfixe filtré par A.
Un deuxième exemple de stratégie de routage mise en place par par B consiste à ne
pas sélectionner l’annonce du préfixe 10.1.0.0/16 en provenance de A. En effet, B peut
décider tout simplement de ne pas envoyer de trafic vers ce préfixe ou alors préférer
passer par un autre système autonome qui a relayé une annonce du même préfixe.
30
Observons la mise en place de ses stratégies de routage sur un exemple de cinq
systèmes autonomes.
Commençons par l’annonce sélective de préfixes qui permet à un système autonome
de contrôler le trafic entrant. En particulier, le système autonome A choisit d’annoncer
le préfixe 10.1.0.0/16 vers son voisin B, et le préfixe 192.168.1.0/24 vers son voisin D.
L’annonce du préfixe 192.168.1.0/24 peut être relayée de D, vers E, C, puis vers B.
Les routeurs de B peuvent maintenant mettre en place des entrées dans leur table de
routage vers les deux préfixes de A. Ainsi, le trafic du système autonome B à
destination de 10.1.0.0/16 sera transmis directement vers A, alors que le trafic à
destination de 192.168.1.0/24 sera transmis vers C puis E, D, et enfin A.
Avec la stratégie d’annonce sélective, le système autonome A partage le trafic à
destination de ses deux préfixes : une partie du trafic entrant sur le lien avec B, une
autre sur le lien avec D.
31
Prenons maintenant l’exemple d’une stratégie de routage basée sur la sélection des
annonces reçues.
Le système autonome A annonce ses deux préfixes aux voisins B et D. Ce dernier
relaye l’annonce qui arrive de proche en proche jusqu’à B. Ainsi, B reçoit les annonces
des préfixes de A via ses deux voisins.
B peut mettre en place une stratégie de routage basée sur la préférence des annonces
reçues. Il peut sélectionner l’annonce en provenance de A. Dans ce cas, le trafic vers
les préfixes de A sera acheminé sur le lien direct de B vers A. Autrement, B peut
sélectionner l’annonce en provenance de C, et le trafic vers les préfixes de A sera
acheminé via C, E et D. B a même la possibilité de préférer l’annonce en provenance
de A pour le préfixe 10.1.0.0/16 et celle en provenance de C pour le préfixe
192.168.1.0/24. Le trafic en sortie de B vers A sera donc partagé sur les deux chemins
possibles.
32
Grâce aux informations de routage externe, le système autonome A achemine son
trafic via B pour atteindre C. Supposons que les routeurs B1 et B5 qui assurent
l’échange d’informations de routage externe et l’échange de trafic ne sont pas
directement connectés. Le système autonome B dispose d’une infrastructure avec cinq
points de présence qui sont les routeurs B1 à B5. Comment est routé le trafic qui va
de A vers C lorsqu'il passe par le système autonome B ?
En plus du routage externe, le système autonome B déploie un routage interne qui
permet de calculer les meilleurs chemins entre ses différents routeurs. Ce calcul
considère des métriques techniques telles que la capacité des liens. De plus,
l’opérateur du système autonome B a le contrôle total sur le routage interne : il peut
choisir le protocole, la métrique, ou le plan d’adressage associés. Considérons que le
meilleur chemin entre B1 et B5 passe par B2. Ce segment de chemin permet de
traverser B et vient donc compléter le chemin de bout en bout entre A et C.
33
Routage externe et interne sont donc deux fonctions complémentaires mais
indépendantes. Ceci nous permet de dresser un tableau comparatif des leurs
principales caractéristiques :
Premièrement, le routage externe est déployé entre deux systèmes autonomes
différents. Ceci impose des règles de contrôle des annonces de routage reçues depuis
les voisins. Dans le routage interne, les routeurs voisins sont forcément de confiance
puisqu’ils font partie d’un même système autonome.
Deuxièmement, le routage externe offre la possibilité de mettre en place des stratégies
de routage en filtrant les annonces envoyées ou reçues. Au contraire, le routage
interne est basé sur le principe de la diffusion des informations de routage entre tous
les routeurs.
Finalement, le routage externe se base sur les stratégies de routage et les types
d’accords entre les systèmes autonomes pour calculer le meilleur chemin. Alors que
ce même calcul repose sur des métriques techniques telles que le nombre de routeurs
traversés ou la capacité des liens dans le cas du routage interne.
34
Dans cette leçon, nous avons introduit les principes du routage externe. Nous avons
analysé les mécanismes d’annonce de préfixes et de mise en place de tables de
routage. Nous avons introduit la notion de stratégie de routage et donné deux
exemples : le premier est basé sur le contrôle des annonces de routage envoyées, le
deuxième sur la sélection des annonces reçues. Nous avons terminé la leçon par un
comparatif entre le routage externe et le routage interne. Ces deux mécanismes sont
indépendants mais se complètent pour assurer l’acheminement du trafic de bout en
bout sur Internet.
35
BGP ou Border Gateway Protocol est le seul protocole de routage externe déployé sur
Internet. La version 4 actuellement utilisée est définie dans le RFC 4271 de l’IETF.
Les systèmes autonomes utilisent BGP pour annoncer leurs préfixes d’adresses IP et
pour mettre en place leurs stratégies de routage.
36
Quels sont les cas de figure qui nécessitent la mise en place de BGP ?
Lorsqu'un un réseau dispose d’un seul fournisseur, et qu’il n’a pas besoin d’établir une
stratégie de routage externe, la mise en place de BGP n’est pas nécessaire. Cette
mise en place devient nécessaire quand un système autonome dispose de plusieurs
fournisseurs, on parle alors de multi-domiciliation. BGP permet dans ce cas d’appliquer
des stratégies de routage telles que la mise en place d’un lien nominal et d’un lien de
secours ou le partage de trafic sur les différents liens.
37
Le deuxième cas de figure qui nécessite typiquement la mise en place de BGP est
celui d’un fournisseur qui offre le transit à d’autres systèmes autonomes ou d’un
fournisseur de services qui offre par exemple la mise en place de réseaux privés
virtuels (VPN) à ses clients.
38
BGP est un protocole de type vecteur chemin ou « path-vector ». Le message BGP
qui annonce un préfixe contient aussi la liste des systèmes autonomes à traverser
pour atteindre ce préfixe.
Prenons l’exemple du système autonome A qui gère le préfixe 10.1.0.0/16. Le
message BGP envoyé par le routeur A1 vers le routeur B1 permet d’annoncer le
préfixe de A. La liste de systèmes autonomes à traverser contient le numéro de A.
Si la stratégie de routage de B le permet, un message BGP envoyé par B2 vers C1
annoncera le préfixe de A. Dans ce message, la liste de systèmes autonomes à
traverser contient le numéro de B suivi par celui de A.
C a maintenant appris qu’il peut joindre le préfixe 10.1.0.0/16 et il dispose du chemin
de systèmes autonomes pour atteindre A.
Les propriétés d’un protocole de type vecteur chemin permettent à BGP de répondre
à deux enjeux importants du routage externe :
Premièrement, l’information du chemin de systèmes autonomes à traverser est une
information macroscopique. Elle permet de masquer toute le complexité interne et les
états de liens dans chaque système autonome. Ceci permet à BGP de passer à
l’échelle pour un déploiement sur Internet.
Deuxièmement, chaque système autonome décide des annonces de préfixes et du
traitement des annonces reçues par BGP. Ceci permet la mise en place de stratégies
de routage et préserve l’autonomie des décisions.
39
Pour annoncer leurs préfixes, les systèmes autonomes établissent une session BGP
entre leurs routeurs. Dans l’exemple des systèmes autonomes A et B, une session
BGP est établie entre les routeurs A1 et B1. Cette session permet d’échanger des
messages BGP : un message est envoyé de A1 vers B1 pour annoncer le préfixe
10.1.0.0/16 de A. Un autre message est envoyé de B1 vers A1 pour annoncer le préfixe
10.2.0.0/16 de B.
40
Le protocole BGP appartient à la couche applicative selon le modèle TCP/IP. Il
s’appuie sur le protocole de transport TCP. Ceci permet de s’affranchir de la nécessité
de supporter explicitement les fonctions de fragmentation, de retransmission,
d’acquittement et de séquencement qui sont des fonctions naturellement supportées
par le protocole TCP.
Les messages BGP sont donc transportés dans des segments TCP, auxquels
s’ajoutent les entêtes des couches inférieures (IP et Ethernet par exemple) avant d’être
transmis sur la couche physique.
41
Prenons l’exemple de quatre systèmes autonomes A, B, C, et D. En particulier, le
système autonome A gère le préfixe 10.1.0.0/16. Les routeurs A1 et B1 établissent
une session BGP qui permet à A1 d’annoncer le préfixe de A. Supposons que la
stratégie de routage de B consiste à annoncer le préfixe de A vers C et D, comment
les routeurs B2 et B3 sont-ils informés de ce préfixe ? En effet, les routeurs B1, B2, et
B3 du système autonome B établissent des sessions BGP. Ainsi, B1 peut envoyer un
message BGP vers B2 pour lui annoncer le préfixe de A. B2 peut maintenant annoncer
le préfixe vers C1. De même, B1 annonce le préfixe de A vers B3 qui peut relayer
l’information vers le système autonome D.
42
Il existe donc deux types de sessions BGP qui servent à échanger les préfixes :
Les sessions entre routeurs de deux systèmes autonomes différents par exemple A1
et B1. Ces sessions sont appelées eBGP ou external BGP.
Les sessions entre routeurs du même système autonome par exemple B1 et B2. Ces
sessions sont appelées iBGP ou internal BGP.
Afin de garder une vue cohérente des préfixes appris par BGP, les systèmes
autonomes mettent en place des sessions iBGP entre tous leurs routeurs BGP.
43
Quelle relation existe entre iBGP et le routage interne ? Même si les sessions iBGP
sont établies entre les routeurs d’un même système autonome, il s’agit toujours de
sessions de routage externe.
Supposons qu’après l’établissement des sessions eBGP et iBGP, le système
autonome C reçoit l’annonce du préfixe 10.1.0.0/16 de A. C peut maintenant joindre A
à travers B.
En particulier, l’échange iBGP permet de déterminer que le trafic doit être routé de B2
vers B1.
Reste donc la question du calcul du chemin interne entre B2 et B1 : ce calcul est
effectué par le protocole de routage interne de B et prend en compte des métriques
techniques telles que la capacité ou les délais des liens. Considérons que le meilleur
chemin calculé par le routage interne entre B1 et B2 passe par B4. Ce segment permet
de traverser le système autonome B et vient compléter le chemin de bout en bout de
C vers A.
44
Intéressons-nous maintenant aux types de messages. Le protocole BGP est constitué
de quatre messages servant à l’établissement de session, son maintien, à l’échange
de préfixes et à la fermeture de session.
Le message OPEN sert à ouvrir la session BGP, il permet d’annoncer les numéros de
systèmes autonomes et les identifiants des routeurs. Rappelez-vous que les routeurs
qui échangent des informations par BGP sont explicitement paramétrés par
l’administrateur du système autonome. L’ouverture de la session fait suite à un accord
entre les deux systèmes autonomes et une désignation des équipements pour la
mettre en œuvre.
Le message KEEPALIVE est envoyé périodiquement afin de maintenir la session
BGP. Celle-ci est fermée si aucun message KeepAlive n’est reçu pendant une période
prédéfinie.
Le message NOTIFICATION sert à signaler des erreurs. La session est
immédiatement fermée suite à l’émission de ce message.
Le message UPDATE constitue la pierre angulaire du routage BGP. Il contient la liste
des préfixes qu’un routeur souhaite annoncer (ou dont il souhaite supprimer l’annonce)
ainsi que les différents attributs associés qui seront explorés dans une prochaine
leçon.
45
Schématisons les phases d’un échange protocolaire BGP entre deux routeurs.
Au préalable, une connexion TCP sur le port serveur 179 est établie entre les deux
routeurs. Sur cette connexion le routeur A et le routeur B envoient des message
d’ouverture de session. Si l’ouverture de session est acceptée, les routeurs acquittent
par des messages keepalive. Ces messages keepalive sont envoyés périodiquement
pour maintenir la session BGP entre les routeurs.
Ensuite, chaque routeur annonce la liste de préfixes joignables dans des messages
update. Dorénavant, si un changement a lieu pour un préfixe (dû une suppression ou
une modification des attributs), seul le préfixe modifié sera annoncé par un message
update.
46
Dans cette leçon, nous avons analysé les différents principes du protocole BGP. BGP
est un protocole de routage externe de type vecteur chemin. Chaque préfixe annoncé
est accompagné de la liste de systèmes autonomes à traverser pour atteindre ce
préfixe.
Nous avons identifié les deux types de sessions BGP entre les routeurs : les sessions
iBGP entre les routeurs d’un même système autonome et les sessions eBGP entre les
routeurs de deux systèmes autonomes différents.
Ensuite, nous avons défini les différents types de messages BGP dont principalement
le message UPDATE qui permet d’annoncer les préfixes. Finalement nous avons mis
en place un exemple d’échange protocolaire entre deux routeurs BGP.
47
Dans les messages BGP, les routeurs annoncent obligatoirement pour chaque préfixe
un attribut qui renseigne le chemin de systèmes autonomes. Cet attribut est noté
AS_PATH.
Comment l’attribut AS_PATH est-il construit ?
Prenons l’exemple du système autonome A qui gère le préfixe 10.1.0.0/16. Le
message BGP envoyé par le routeur A1 vers le routeur B1 permet d’annoncer le
préfixe de A. L’attribut AS_PATH contient le numéro de A.
Ensuite, cette annonce est relayée par iBGP jusqu’à B2, sans modification de
l’AS_PATH.
Si la stratégie de routage de B le permet, un message BGP envoyé par B2 vers C1
annoncera le préfixe de A. Dans ce message, l’AS_PATH contient le numéro de B
suivi par celui de A.
Ainsi, de proche en proche l’AS_PATH contiendra pour chaque préfixe l’ensemble des
numéros de systèmes autonomes à traverser pour atteindre ce préfixe.
48
Comment est utilisé l’attribut AS_PATH dans le routage externe ?
Premièrement, l’AS PATH est utilisé dans la détection des boucles dans le chemin de
systèmes autonomes. Supposons que le système autonome A annonce le préfixe
10.1.0.0/16 et que cette annonce est relayée par les systèmes autonomes B, C, et D,
puis transmise vers A.
Lorsque le routeur A2 reçoit l’annonce BGP, l’AS_PATH contient (D C B A). A2 note
la présence de son propre numéro de système autonome dans l’AS_PATH. Une
boucle est alors détectée et l’information de routage reçue par A2 est ignorée.
49
Deuxièmement, l’attribut AS_PATH est utilisé dans la mise en place de stratégies de
routage. Supposons que le système autonome C a reçu deux annonces de routage
concernant le préfixe 10.1.0.0/16 géré par A : une première annonce via le chemin (A
B), une deuxième via (A E D).
Le système autonome C peut préférer le chemin de systèmes autonomes le plus court.
Dans ce cas, la première annonce sera choisie et le trafic empruntera le chemin (C B
A).
Notons bien que rien ne garantit que le chemin avec l’AS_PATH le plus court soit le
meilleur, que ce soit en débit ou en latence ou en nombre de routeurs traversés. Mais
c’est la seule information de topologie que BGP connaisse.
Autrement, C peut appliquer une stratégie de routage pour exclure le chemin qui
contient B. De cette façon le trafic de C empruntera le chemin (C D E A).
50
Analysons maintenant l’attribut NEXT_HOP. Cet attribut obligatoire permet de
désigner le prochain saut pour joindre une destination.
Lorsque le routeur A1 annonce le préfixe 10.1.0.0/16 l’attribut NEXT_HOP contient
l’adresse IP de A1. Par défaut, cet attribut n’est pas modifié par iBGP dans le système
autonome B.
Cependant, lorsque B2 annonce le préfixe de A vers C1, il modifie la valeur du
NEXT_HOP pour mettre sa propre adresse.
Notons que pour les routeurs de B, en particulier B2, A1 est le prochain saut vers
10.1.0.0/16.
Le routeur B2 doit donc pouvoir joindre A1 qui est dans un autre système autonome.
Comment cela est-il possible en pratique ? Il existe deux solutions à ce problème. La
première consiste à annoncer l’adresse IP de A1 dans le protocole de routage interne
du système autonome B. Ainsi, B2 peut joindre A1 via le meilleur chemin calculé selon
les métriques du routage interne. La deuxième consiste à configurer B1 pour mettre
son adresse IP dans l’attribut NEXT_HOP de l’annonce iBGP.
51
Le troisième attribut que nous analysons est la préférence locale notée LOCAL_PREF.
Cet attribut iBGP facultatif permet de contrôler la route empruntée par le trafic en sortie
d’un système autonome.
Supposons que le système autonome C a reçu deux annonces de routage pour le
préfixe 10.1.0.0/16 : un première via les systèmes autonomes A et B, une deuxième
via A et D.
L’opérateur du système autonome C peut configurer ces routeurs C1 et C2 de la sorte
: C1 ajoute une préférence locale égale à 300 dans les annonces iBGP, alors que C2
ajoute une préférence local égale à 200.
Les routeurs C1, C2 et C3 recevant les deux informations sélectionnent celle qui a la
préférence locale la plus élevée.
Ainsi, tout le trafic du système autonome C à destination de 10.1.0.0/16 sortira par le
routeur C1 pour traverser ensuite les systèmes autonomes B puis A.
52
Intéressons-nous maintenant à l’attribut Multi-Exit Discriminator ou MED. Cet attribut
optionnel eBGP permet de contrôler la route empruntée par le trafic en entrée d’un
système autonome. Généralement, l’attribut MED est utilisé dans le cas de deux
systèmes autonomes qui ont mis en place plusieurs liens d’interconnexion.
Supposons que les systèmes autonomes A et B disposent de deux liens
d’interconnexion. A peut choisir de configurer ses routeurs pour envoyer dans les
annonces de préfixe un attribut MED égal à 2000 pour A1 et 1000 pour A2. B1 et B2
reçoivent ces messages et échangent l’information de routage par iBGP avec l’attribut
MED non modifié.
Les routeurs du système autonome B disposant des deux informations sélectionnent
celle qui a l’attribut MED le plus petit. Ainsi, tout le trafic du système autonome B à
destination de 10.1.0.0/16 arrivera vers A via le lien A2-B2.
53
Abordons maintenant l’attribut ORIGIN. Cet attribut obligatoire permet de décrire
l’origine de l’information de routage pour le préfixe annoncé. Trois valeurs possibles
ont été définies :
1- Lorsque l’attribut a pour valeur « 0 », le préfixe annoncé par BGP est interne au
système autonome qui a généré l’information.
2- Lorsque l’attribut a pour valeur « 1 », le préfixe annoncé par BGP est externe au
système autonome qui a généré l’information.
3- Lorsque l’attribut a pour valeur « 2 », l’origine de l’information est incomplète. Le
préfixe correspondant a par exemple été injecté dans BGP par un processus de
redistribution statique ou dynamique.
Pour un même préfixe, une annonce avec l’attribut ORIGIN égal à 0 est préférée à une
annonce avec l’attribut égal à 1, qui à son tour est préférée à une annonce avec la
valeur 2.
54
Le dernier attribut que nous analysons est la communauté BGP notée
COMMUNITIES. La communauté, attribut optionnel, est une étiquette qui permet
d’appliquer une même stratégie à un groupe de préfixes annoncés par BGP. Cette
stratégie peut consister à contrôler l’acceptation, le relayage, ou la modification des
attributs du groupe de préfixes.
L’objectif principal de la mise en place des communautés est la simplification de
configuration des routeurs BGP. En particulier, il est d’usage de mettre en place des
communautés par types de clients, par région géographique, ou selon l’accord
d’échange de trafic entre les voisins.
Il existe des communautés prédéfinies telles que la communauté no-export. Les
préfixes annoncés avec une telle communauté ne sont pas relayés vers les voisins
eBGP.
Dans l’exemple du système autonome A qui annonce à B son préfixe 10.1.0.0/16 avec
la communauté no-export. Les routeurs de B relayent cette information par iBGP mais
ne l’annoncent pas par eBGP à C. Ainsi, C dispose uniquement du chemin via D et E
pour atteindre le préfixe de A. Alors que B peut utiliser le lien direct avec A pour joindre
ce préfixe.
55
D’autres communautés peuvent être définies par les systèmes autonomes.
Généralement, les communautés sont notées sous le format
« numéro_de_système_autonome (2 octets):numéro_communauté (2 octets) ».
Prenons l’exemple du système autonome B qui déclare les communautés B:100 et
B:200. Ces communautés lui permettent de fixer la préférence locale à 100 et 200
respectivement.
Un système autonome voisin A peut annoncer son préfixe 10.1.0.0/16 avec la
communauté B:100 vers B1, et B:200 vers B2. Les routeurs de B sont configurés pour
appliquer la préférence locale selon la communauté transportée. Par conséquent, B2
sera la sortie préférée du trafic de B vers le préfixe de A.
56
Dans cette leçon, nous avons analysé les différents attributs des préfixes annoncés
par BGP et identifié leur utilisation dan le routage BGP.
Ainsi, l’attribut AS_PATH permet de détecter les boucles de routage ou d’appliquer
des stratégies en fonction des systèmes autonomes traversés. Le NEXT_HOP permet
d’identifier le prochain saut pour joindre le préfixe destination. Le LOCAL_PREF
permet de contrôler le routage du trafic sortant d’un système autonome. Le MED
permet de préférer une entrée dans un système autonome lorsque deux voisins
disposent de plusieurs liens d’interconnexion. L’attribut ORIGIN identifie l’origine de
l’information de routage sur le système autonome qui gère le préfixe. Finalement, la
communauté BGP est un attribut flexible qui permet d’appliquer une même stratégie à
un groupe de préfixes annoncés par BGP.
57
Bonjour et bienvenue dans cette leçon, dans laquelle nous abordons le processus de
sélection dans BGP. Nous traitons ici des différentes étapes qui permettent de
comparer les annonces de préfixes et du traitement des informations de routage
obtenues par BGP.
Sur Internet, l’interconnexion entre systèmes autonomes offre une diversité des
chemins : il existe souvent plusieurs chemins qui permettent de joindre un même
préfixe. Cette diversité rend le routage externe robuste en cas de pannes dans l’un
des systèmes autonomes.
Prenons l’exemple du système autonome C qui reçoit l’annonce du préfixe de A via le
chemin (B A), et via le chemin (D E A). C doit sélectionner une des annonces pour
mettre en place une entrée correspondante dans sa table de routage. Cette entrée
servira à router le trafic de C vers A.
Dans ce contexte, nous dégageons la problématique suivante : comment un système
autonome sélectionne-t-il une annonce parmi celles reçues ? Quels sont les critères
qui sont pris en compte ? Quels sont les attributs transportés dans les messages BGP
qui interviennent dans cette sélection ?
58
Considérons un exemple de cinq systèmes autonomes A, B, C, D et E, et un préfixe
10.1.0.0/16 géré par A. Les sessions eBGP permettent de relayer les annonces du
préfixe de A jusqu’à C. Ensuite, les sessions iBGP permettent de faire parvenir à C3
deux annonces de ce préfixe : l’une en provenance de C1, l’autre de C2.
Dans la suite, nous allons dérouler le processus de sélection sur les routeurs du
système autonome C.
59
Le processus de sélection prend en compte une suite de critères. Les annonces
candidates sont comparées en utilisant chacun des critères dans l’ordre indiqué. Au
début du processus, les annonces candidates correspondent à toutes les annonces
reçues pour un même préfixe. A chaque critère, certaines annonces peuvent être
écartées. Le processus s’arrête alors lorsque le résultat de la comparaison permet de
sélectionner une et une seule annonce.
60
Le premier critère de comparaison est la valeur de l’attribut de préférence locale ou
LOCAL_PREF transporté dans les messages iBGP. L’annonce avec la valeur de
préférence locale la plus élevée est sélectionnée.
61
Dans l’exemple étudié, le routeur C3 reçoit deux annonces en provenance de C1 et
C2 avec une valeur de l’attribut de préférence locale égal à 200 et 100 respectivement.
Dans ce cas, l’annonce en provenance de C1 est sélectionnée et le processus s’arrête.
62
Le premier critère étudié peut ne pas aboutir à la sélection d’une seule annonce : ceci
se présente lorsque l’attribut de préférence locale n’est pas utilisé ou lorsque plusieurs
annonces vers le même préfixe ont la même valeur de LOCAL_PREF.
Dans ce cas, le processus de sélection passe au deuxième critère. Ce critère
correspond à la longueur du chemin de systèmes autonomes pour joindre le préfixe
annoncé. L’annonce avec le chemin de système autonome le plus court est
sélectionnée.
63
Dans notre exemple, l’annonce en provenance de C1 indique qu’il faut traverser deux
systèmes autonomes pour joindre le préfixe de A. Celle en provenance de C2 indique
un chemin de trois systèmes autonomes. Par conséquent, la première annonce est
sélectionnée. Rappelons-nous que rien ne garantit que le chemin le plus court en
termes de systèmes autonomes soit le meilleure, que ce soit en débit ou en latence
ou en termes de routeurs traversés.
64
Après l’AS_PATH, on compare l’attribut ORIGIN des annonces candidates restantes.
Selon cet attribut, les annonces sont sélectionnées dans l’ordre suivant:
Un préfixe interne au système autonome qu’il l’a généré l’emporte sur un préfixe
externe à ce système autonome, qui à son tour l’emporte sur un préfixé appris par un
processus de redistribution statique ou dynamique.
65
Le processus peut maintenant passer à la comparaison de l’attribut MED contenu dans
les annonces candidates. L’annonce avec la valeur MED la plus petite est
sélectionnée. Rappelons-que l’attribut MED permet de proposer à un système
autonome voisin un lien préféré pour le trafic entrant.
66
Ensuite, la comparaison porte sur le type de session BGP. L’annonce du préfixe en
provenance d’un routeur d’un système autonome différent est préférée à une annonce
en provenance du même système autonome.
67
Dans notre exemple, le routeur C1 reçoit une annonce eBGP du préfixe de A en
provenance de B2, et deux annonces iBGP en provenance de C2 et C3. Selon le
critère étudié, l’annonce en provenance de B2 est sélectionnée. Ainsi, C1 route le trafic
vers A en passant par B2 au lieu de passer par C2 ou C3.
Globalement, ce critère permet de préserver les ressources du système autonome qui
déroule le processus de sélection en préférant router le trafic directement vers le
voisin.
68
En poursuivant sur le même objectif de préservation des ressources, le prochain
critère de comparaison est le coût du chemin interne. L’annonce qui utilise le chemin
le plus court vers le prochain saut est sélectionnée. En général, le coût du chemin est
évalué selon la métrique du routage interne.
69
Revenons au routeur C3 qui reçoit deux annonces du préfixe de A. La première indique
un prochain saut qui est C1, la deuxième C2. C1 compare les coûts selon le protocole
de routage interne pour atteindre le prochain saut. Supposons que le coût du chemin
pour atteindre C1 est égal à 10, alors que pour atteindre C2, ce coût est égal à 100.
Dans ce cas, l’annonce en provenance du routeur C1 est sélectionnée. Comme
indiqué, ce critère permet de joindre le plus rapidement la sortie du système autonome,
afin de minimiser l’utilisation des ressources internes telles que la capacité sur les
liens.
70
Si le processus ne réussit pas à départager les annonces candidates après la suite
des critères analysés précédemment, un dernier critère est introduit. Ce critère est
typiquement basé sur les identifiants ou les adresses IP inclut dans l’attribut
NEXT_HOP. Par exemple, l’annonce en provenance du routeur avec l’identifiant le
plus petit est sélectionnée et le processus s’arrête.
71
Analysons maintenant le traitement des informations de routage effectué par un
routeur BGP.
A la réception des annonces de préfixes, un routeur BGP applique des stratégies
d’import. Ces stratégies de routage peuvent consister par exemple en un filtrage de
certaines annonces, ou la modification d’attributs tels que la communauté ou la
préférence locale, …
Après passage par les stratégies d’import, les annonces BGP sont stockées dans une
table dédiée par voisin. L’ensemble de ces annonces alimentent le processus de
sélection étudié précédemment. Ce processus sélectionne la meilleure annonce par
préfixe.
Cette dernière génère alors une information de routage constituée par le préfixe
destination et le prochain saut hérité de l’attribut NEXT_HOP. L’information de routage
s’ajoute dans la table de routage du routeur BGP et peut désormais servir à acheminer
les paquets vers la destination.
Suite à l’apparition ou au changement d’une entrée dans la table de routage, le routeur
applique des stratégies d’export et décide des informations à annoncer à chaque
voisin. Ces annonces sont stockées dans des tables dédiées puis transmises dans
des messages BGP vers les voisins correspondants.
72
Cet exemple permet d’illustrer le traitement des informations de routage dans BGP.
Considérons cinq routeurs qui ont établi des sessions de routage BGP. Le routeur R2
annonce à R1 le préfixe 10.1.0.0/16 avec un AS_PATH contenant deux systèmes
autonomes. Le routeur R3 annonce à R1 le même préfixe avec un AS_PATH
contenant trois systèmes autonomes.
A la réception de ces annonces, R1 applique les stratégies d’import. Supposons que
ces stratégies sont transparentes dans cet exemple. Par conséquent, R1 stocke les
annonces reçues dans les tables dédiées à chaque voisin R2 et R3. Le processus de
sélection traite ensuite l’ensemble des annonces reçues pour le préfixe 10.1.0.0/16.
En comparant la longueur des chemins de systèmes autonomes, R1 sélectionne
l’annonce en provenance de R2. Cette annonce est injectée dans la table de routage
de R1 qui peut désormais router les paquets vers 10.1.0.0/16 en passant par R2.
L’étape suivante consiste à annoncer ce préfixe aux voisins de R1. Supposons que la
stratégie d’export lui autorise uniquement d’annoncer ce préfixe vers R4. Dans ce cas,
cette annonce est stockée dans la table d’annonces envoyées dédiée à R4 en mettant
un attribut NEXT_HOP qui correspond à l’adresse de R1. Cette information est enfin
envoyée dans un message BGP vers R4.
73
Dans cette leçon, nous avons analysé les différentes étapes de sélection des
annonces BGP. Le processus prend en compte un ensemble de critères qui
proviennent des attributs transportés (tels que la préférence locale ou le chemin de
systèmes autonomes) ou des configurations des routeurs (tels que le type de session
ou le coût du routage interne). Ce processus a pour objectif de sélectionner une
annonce par préfixe. Les critères sont alors utilisés successivement afin d’atteindre
cet objectif.
Nous avons aussi révélé les différentes étapes de traitement des informations de
routage depuis la réception jusqu’à l’envoi des annonces BGP en passant par la
sélection et la mise en place de la table de routage.
74
Prenons l’exemple de cinq systèmes autonomes A, B, C, D, et E. Des accords de
transit sont conclus entre les différents systèmes autonomes : A est fournisseur de
transit de B, B est fournisseur de C, et D est fournisseur de E. De plus, un accord de
peering est conclu entre B et D pour échanger leur trafic ainsi que celui de leurs clients.
Dans un tel schéma, comment sont établies les stratégies de routage BGP ?
Quels sont les préfixes annoncés entre les différents systèmes autonomes ?
75
Prenons le point de vue du système autonome B et notons les annonces de préfixes
reçues. B reçoit un message BGP de C qui lui annonce son préfixe 10.2.0.0/16.
Il reçoit sur le lien de peering l’annonce du préfixe de D 192.168.1.0/24 et de son client
E 192.168.2.0/24.
Finalement, il reçoit de la part de son fournisseur A la table globale de l’Internet. Cette
table contient tous les préfixes d’adresses publiques annoncés par tous les systèmes
autonomes.
76
A ce stade, B a reçu toutes les annonces de préfixes via A, D, et C. Établissons donc
les annonces de préfixes envoyés par B. Ce dernier met en place des stratégies
d’export afin de relayer convenablement les préfixes vers les voisins.
En particulier, B annonce son préfixe interne à son fournisseur A afin de le rendre
joignable depuis Internet. De plus, B annonce à A le préfixe de son client C
conformément à l’accord de transit. C peut alors recevoir du trafic depuis l’Internet via
B.
Notons que B ne doit en aucun cas annoncer à A les préfixes de son voisin en peering
D ni de son client E. Sinon, B recevra du trafic depuis l’Internet à destination de D ou
de E. Ce trafic lui sera facturé par A alors qu’il ne pourra pas recevoir une
compensation de la part D. En effet, l’accord de peering avec D est un accord non
payant.
Selon les règles de l’accord de peering, B annonce à D son préfixe et celui de son
client C. B et D peuvent donc maintenant échanger directement du trafic vers leurs
préfixes et ceux de leurs clients sans passer par les fournisseurs.
Finalement, B envoie la table globale de l’Internet vers son client C. Ce dernier peut
donc joindre l’ensemble des préfixes sur Internet via B.
77
Autrement, B peut choisir de remplacer l’annonce de la table globale par une route par
défaut. Cette solution réduit les possibilités de mise en place de stratégies de routage
sur C mais allège d’une manière significative la charge de son routeur.
Ajoutons à l’exemple précédent un accord de transit établi entre C et D. Le système
autonome B reçoit maintenant trois annonces pour le préfixe 10.2.0.0/16: une annonce
en provenance directe de son client C. Une deuxième en provenance de son voisin D
en peering. Plus précisément, D annonce son préfixe interne et les préfixes de ses
clients C et E. Une troisième annonce en provenance de A et inclue dans la table
globale de l’Internet.
Dans ce cas de figure, comment peut-on traduire les préférences de B entre les
différents accords ?
Quelle annonce sera sélectionnée par B afin de router le trafic vers le préfixe de C ?
B a donc reçu l’annonce du préfixe de C via trois types d’accords différents : client,
fournisseur et peering. En prenant en compte les types de facturation de chacun de
ces accords, B préfère en premier lieu envoyer le trafic directement vers C. Sur ce lien,
il facture le débit échangé avec C selon l’accord de transit. En deuxième lieu, B peut
choisir de passer par D pour atteindre C. Sur ce lien de peering, il n’y a pas de
facturation mise en place. En dernier lieu, B peut envoyer le trafic vers C en passant
par A: dans ce cas, il sera facturé selon l’accord de transit signé conclu avec A.
78
A l’aide de BGP, la mise en place de cet ordre de préférence est simple. Il suffit de
configurer l’attribut de préférence locale à une valeur élevée pour l’annonce arrivant
depuis C. Une valeur moyenne peut être choisie pour les annonces en provenance de
D. Enfin, une valeur faible est réservée aux préfixes de la table globale de l’Internet
annoncés par A.
Les échanges iBGP dans le système autonome B permettent de sélectionner
l’annonce en provenance de C avec la valeur de la préférence locale la plus élevée.
Par conséquent, le trafic de B vers C sera routé sur le lien direct. Si ce lien tombe en
panne, le trafic bascule sur le lien de peering et atteindra C via le voisin D. Finalement,
si les deux liens précédents sont en panne, le trafic ira vers A qui offre le transit vers
tous les préfixes de l’Internet.
Dans les exemples précédents, nous avons mentionné la table globale de l’Internet.
Cette table contient les préfixes routés de tous les systèmes autonomes. Il existe
actuellement près de 560 000 entrées dans cette table de routage. En observant
attentivement l’évolution de cette table, on peut retracer globalement l’évolution de
l’Internet.
Au début, la progression dans les années 90 est lente. En particulier un palier est
constaté entre 1997 et 1999;; ce palier est dû à la mise en place du routage de préfixes
sans classes d’adresses et de l’agrégation de préfixes contigus. On note un autre
palier en 2001 qui fait suite à l’éclatement de la bulle technologique. Finalement, la
croissance à partir de 2010 est exponentielle et témoigne de l’augmentation du nombre
de préfixes annoncés, et donc des équipements connectés à Internet.
79
Dans cette leçon, nous avons analysé la mise en place des accords de peering et de
transit avec BGP. En particulier, nous avons établi les stratégies d’annonce de préfixes
et de sélection des annonces reçues. Ces stratégies renforcent les accords conclus et
satisfont les intérêts et les engagements des systèmes autonomes. Par exemple, un
système autonome peut mettre en place des préférences locales pour privilégier le lien
vers les clients, par rapport à celui avec les voisins en peering, et en dernier lieu le lien
de transit payant.
80