BGP - Border Gateway Protocol

De M82 - DIMA's wiki
Aller à la navigation Aller à la recherche

BGP est un protocole de routage* entre Systèmes Autonomes* (AS), il est défini par le standard RFC* 4271. BGP est donc responsable du routage sur Internet entre opérateurs, il échange des informations entre routeurs sur l’accessibilité entre AS (les préfixes*). Ces informations permettent aux routeurs de connaître les « parcelles » d’Internet accessibles à chaque AS. Les routeurs voisins BGP utilisent TCP* comme protocole de transport via une session* sur le port* 179. Les routeurs BGP sont appelés annonceurs (ils annoncent des routes à leurs voisins). BGP n’est pas directement accessible aux particuliers, il constitue l’ossature du transit Internet mondial. La sécurité de ce protocole est essentielle à la bonne connectivité mondiale et la moindre défaillance de BGP a des conséquences importantes.

Pour aller plus loin

BGP se divise en réalité en deux familles, eBGP et iBGP pour exterior BGP et interior BGP. La première gérant les liaisons entre AS et iBGP les annonces de routes entre routeurs au sein d’un même AS. Ainsi, les routeurs de bord d’AS échangent leurs informations de routage en iBGP, alors que eBGP relie point à point des routeurs d’AS différents (mais également sur la périphérie). Un processus BGP échange 5 types de messages distincts :

  • OPEN : message initial pour échanger les numéros d’AS ;
  • KEEPALIVE : demande de maintien de session ouverte (l’absence de message KEEPALIVE ou UPDATE pendant 90 secondes entraine la fermeture de la session) ;
  • UPDATE : mise à jour - annonce ou retrait de routes ;
  • NOTIFICATION : fin de session BGP ;
  • ROUTE REFRESH : demande de ré-annonce de route. [RFC 2918]. Les informations de routes sont associées à des attributs de types différents qui serviront ensuite à déterminer les meilleures routes. Les 4 types d’attributs sont :
  • WM : well known mandatory : ces attributs doivent être pris en charge et diffusés ;
  • WD : Well known discretionary : attributs qui doivent être pris en charge mais dont la propagation est optionnelle ;
  • OT Optional Transitive : attribut qui n’est pas nécessairement pris en charge mais à propager ;
  • ON Optional Nontransitive : pas nécessairement pris en charge ni propagés, ces attributs peuvent être ignorés.

Exemple d’attributs :

L’AS PATH est un attribut WM, donc à prendre en charge et à diffuser, il liste et ordonne les différents AS traversés. Il permet ainsi de rejeter des routes qui seraient reçues d’un voisin mais qui contiendrait déjà le numéro d’AS. Ce rejet évite la création de boucles dans le routage. Next Hop, est de type WM également, il précise l’adresse IP du « voisin » eBGP (donc sur l’AS suivant).

Weight est un attribut spécifique de type ON (extension CISCO) qui pondère les routes afin de créer de préférences locales. Local pref est un attribut WD pour les routeurs internes afin de préférer certaines routes externes. Pour effectuer des choix, lorsque plusieurs routes vers une destination sont possibles, BGP utilise les attributs spécifiques pour effectuer le choix de la meilleure route.