Le Protocole BGP
La Topologie Internet
Internal Gateway Protocol : utiliser dans un seul ISP pour optimiser des routes
utilisées dans son propre backbone (RIP, OSPF)
External Gateway Protocol : utiliser entre deux 2 ASs pour échanger des
informations de routage (BGP : Border Gateway Protocol)
Pricipes
généraux
BGP est un protocole de routage EGP,basé sur des
algorithmes de vecteurs de distance (ex: RIP)
• Utilise le protocole de transport TCP (port 179)
• BGP se fonctionne entre 2 noeuds
– Protocole point à point entre routeurs de bordure
d’AS
• Deux routeurs établissent une session BGP en utilisant
une connexion TCP et ensuite échangent des messages BGP
• Un routeur peut participer à plusieurs sessions BGP
Initialisation
– Durant l’établissement de session, les routeurs
s’identifient eux-mêmes
– Chaque voisin peut accepter ou rejeter la connexion
– Chaque noeud annonce toutes les routes qu’il
veut que les autres connaissent (pourrait être >
50K routes)
Après l’échange des tables de routes initiales, chaque
noeud informe les autres des changements
Si aucun message n’est envoyé dans les X dernières
secondes, alors un message keepalive est envoyé pour informer le voisin que la
session est encore valide
Objectif
Echanger des routes (du traffic) entre organismes
indépendants
– Opérateurs ou gros sites
• Implémenter la politique de routage de chaque organisme
– Respect des contrats passés entre organismes !
• Etre indépendants des IGP utilisés en interne à un
organisme
• Supporter un passage à l’échelle
• Minimiser le trafic induit sur les liens
• Donner une bonne stabilité au routage
Configuration
et Politique
• Un noeud BGP a une notion de quelles routes
partagées avec ses voisins. Il peut seulement annoncer une partie de sa table
de routage à un voisin
– annoncer une route vers un réseau: accepter du
trafic à destination de ce
réseau
• Un noeud BGP n’a pas à accepter chaque route apprise
de son voisin : il peut sélectivement accepter ou refuser des messages
• Ce qui doit être partagé avec les voisins et ce qui
doit être accepté est déterminé par la politique de routage qui est spécifiée
dans un fichier de configuration : préférences commerciales entre
opérateurs
Exemple de
connexion BGP
Client connecté à un ISP
Client connecté à 2 ISPs
Client connecté à 2 ISPs par 2 routeurs
différents
Client connecté à 3 ISPs
Les
messages BGP
• Etablissement d’une session BGP en utilisant TCP :
OPEN
• Reporter des conditions inhabituelles : NOTIFICATION
• Informer le voisin que la connexion est toujours
vivante : KEEPALIVE
• Informer le voisin des nouvelles routes qui
deviennent actives et des vieilles routes qui deviennent inactives : UPDATE
Le message OPEN
• Premier message envoyé après l’ouverture de la
session TCP
• Les entités BGP échangent :
– La version de BGP (4)
– Leur numéro d’AS
– Le numéro identifiant le processus BGP (adresse IP
du routeur)
Sélection de la valeur du hold timer
– Temps maxi de maintien de la session
• Information d’authentification (optionnelle)
• Une entité BGP peut refuser une session
• Attente d’un message KEEPALIVE
Le message KEEPALIVE
• Message envoyé périodiquement
– Est réémis toutes les 30 s (suggéré)
• Réarme le minuteur qui contrôle le temps de maintien
de la session
• Message de taille minimum (19 octets)
Le message NOTIFICATION
• Ferme la session BGP et la connexion TCP
• Annule toutes les routes apprises par BGP
• Fournit au récepteur un code expliquant pourquoi la
session BGP s’est terminée
– Expiration du hold timer
– Mauvais numéro d’AS,
– Problème dans le processus BGP
Le message UPDATE
• Est envoyé uniquement en cas de changement
• Déclenche l’émission de messages UPDATE vers les
autres voisins
• Sert à échanger les informations de routage :
– Utiliser pour annoncer ou éliminer des routes (préfixes)
– Donner la liste des attributs pour les routes
UPDATE - Attributs de la route
• Trois catégories :
– Reconnus, obligatoires
• ORIGIN, AS_PATH, NEXT_HOP
– Reconnus, non obligatoires
• LOCAL_PREF, ATOMIC_AGGREGATE
– Optionnels
• MULTI_EXIT_DISC (MED), AGGREGATOR
·
UPDATE
- Attributs de la route
ORIGIN
• Précise qui est à l’origine de
l’annonce ,qui a injecté le préfixe dans
BGP
• 3 valeurs possibles :
– IGP
– EGP
– Incomplète
• L’attribut ORIGIN n’est jamais modifié
·
UPDATE
– Attributs de la route
NEXT HOP
• Pour des sessions EBGP, NEXT HOP=@IP du voisin qui a
annoncé la route
• Pour des sessions IBGP,NEXT HOP= @IP du voisin qui a
annoncé la route
• Pour des routes dont l’origine est en dehors de l’AS,
le NEXT HOP du noeud EBGP qui a appris
la route est transporté dans IBGP
• L’attribut NEXT HOP est modifié par chaque traversée
d’AS
·
UPDATE
- Attributs de la route
AS_PATH
• Précise la liste des ASs à travers laquelle l’annonce
pour un préfixe est passée
• Chaque AS rajoute son numéro d’AS à l’attribut
AS_PATH quand il diffuse
l’annonce
• Utilisé pour prévenir et détecter les boucles
·
UPDATE
- Attributs de la route
LOCAL_PREF
• Utilisé pour indiquer la préférence parmi plusieurs
chemins pour le même préfixe
– Pondère la priorité donnée aux routes en interne à l’AS
• La valeur la plus élevée est préférée
• Echangé entre entités IBGP
– local à l’AS, non transitif, jamais annoncé en E-BGP
• Souvent utilisé pour sélectionner un point de sortie
pour une destination particulière
·
UPDATE
- Attributs de la route
Multi-Exit Discriminator
• Appelé aussi MED
• Quand un AS est interconnecté via 2 ou plusieurs
liaisons
• Permet de discriminer les différents points de
connexion (plus faible valeur préférée)
• Attribut limité à l’AS voisin (qui ne le propage
pas)
Configuration
de base
Processus de Routage BGP
Différences
entre E-BGP et I-BGP
• I-BGP est utilisé pour distribuer des routes
apprises via EBGP à tous les routeurs dans un AS
• I-BGP et E-BGP sont un même protocole :
– Même type de message utilisé
– Même attributs utilisés
– Même automate
• Mais utilisation de différentes règles pour annoncer
les préfixes
– Préfixe appris d’un voisin E-BGP peut être annoncé à
un voisin
I-BGP et (vice-versa)
– Préfixe appris d’un voisin I-BGP ne peut pas être
annoncé à un
autre voisin I-BGP
Optimisations Réflecteurs de routes
• I-BGP nécessite un maillage complet des sessions
I-BGP entre toutes les paires de routeurs
• Solution :
– Grouper les routeurs dans des clusters
– Désigner un leader dans chaque cluster (RR : Route Reflector)
– Les membres du cluster sont appelés clients du RR
• Communication I-BGP
– Les clients communiquent seulement avec leur RR
– Les RR doivent être maillés
Règles des annonces
– Si route reçue d’un client ou d’une session e-BGP
• Sélectionner la meilleure route
• Annoncer la route à tous les autres clients et à
tous les non clients
– Si route reçue d’un non client (RR)
• Sélectionner la meilleure route
• Annoncer la route à tous les clients
– Un RR annonce seulement la meilleure route pour un préfixe
donné, et pas toutes les annonces reçues
Extensions Les confédérations d’AS
• Permet de réduire le nombre
de sessions I-BGP
– Division d’un AS en mini
ASs (ou sous ASs)
• Les routeurs de bord d’un
mini AS établissent des sessions
– I-BGP entre eux (maillage
complet)
– E-BGP avec leur voisins
d’autres AS
– Pseudo E-BGP avec leurs
voisins d’autres minis-AS
• Vu de l’extérieur, la
confédération d’AS apparaît comme un seul et unique AS
Bonne chance
mohameddouhaji7@gmail.com