Le protocole BGP

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













4 messages de base :

• 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