High-TechProtocole BGP : à quoi sert-il ?

Protocole BGP : à quoi sert-il ?

Le Border Gateway Protocol (BGP) a été conçu pour prendre en charge le routage entre systèmes autonomes sur de très grands réseaux. Il permet aux sous-réseaux de partager des informations d’accessibilité dans cet écosystème. Ainsi, le mécanisme convient parfaitement au Web. Il s’agit d’ailleurs du seul protocole de routage externe utilisé actuellement par les nombreux réseaux connectés à Internet. 

Comment fonctionne le protocole BGP ?

Le protocole BGP occupe une place cruciale dans les interactions entre systèmes autonomes en ligne. En effet, il permet d’annoncer la présence, les adresses IP et l’interconnexion des réseaux. Le mécanisme fournit aussi aux routeurs les itinéraires pouvant être utilisés pour l’acheminement des paquets de données. Ces instructions doivent toutefois être à jour pour assurer la circulation des informations.

Un problème de mise à jour BGP a d’ailleurs provoqué la panne Facebook d’octobre 2021. Après les modifications, le protocole n’a pas annoncé la nouvelle route menant vers les serveurs distants du groupe. De ce fait, les autres réseaux n’arrivaient plus à trouver ses différentes plateformes (Facebook, Messenger, Instagram, WhatsApp…). Ces services étaient devenus indisponibles pour tous les AS (Autonomous Systems). 

Pour rappel, un système autonome est un réseau soumis à la même autorité. Il peut s’agir d’un fournisseur d’accès, d’un réseau d’entreprise, d’infrastructures publiques, d’un opérateur Cloud… En tout cas, chaque entité applique la même politique de routage et est identifiée par un ASN (Autonomous System Number). 

Un AS est supposé contrôler son parc d’adresses IP (préfixes) et savoir comment se connecter aux autres réseaux. De plus, chaque ASN doit transmettre les itinéraires de routage de ses préfixes DNS à l’ensemble du Web via BGP. Ainsi, tous les systèmes en ligne pourront trouver et joindre le réseau lié à l’identifiant ASN.

Comment fonctionne le protocole BGP ?
Par GaudiLab / Shutterstock

Quels sont les autres protocoles de routage ?

Le protocole BGP joue le rôle de passerelle d’échange d’informations de routage entre les AS. Il s’agit ainsi d’un EGP (Exterior Gateway Protocol). Sur Internet, cette catégorie se résume actuellement au BGP. Ce protocole de routage externe a succédé à l’EGP d’ARPANET et au GGP (Gateway-to-Gateway Protocol). À part BGP, il existe une myriade de protocoles de routage sur la Toile. 

Bien qu’incontournable, IP (Internet Protocol) est assez méconnu en tant que protocole de routage. Il permet de spécifier la source et le destinataire des paquets réseau. L’entête IP sert d’ailleurs à identifier la destination de chaque paquet au niveau des routeurs. Les autres protocoles couvrent le routage interne des AS. La catégorie IGP (Interior Gateway Protocol) inclut notamment : 

  • OSPF (Open Shortest Path First) ;
  • RIP (Routing Information Protocol) ;
  • IGRP (Interior Gateway Routing Protocol) ;
  • EIGRP (Enhanced Interior Gateway Routing Protocol) ;
  • Integrated IS-IS (Integrated Intermediate System to Intermediate System).

OSPF fait aujourd’hui partie des protocoles les plus utilisés par les routeurs de réseau. Il permet d’identifier les itinéraires les plus rapides (et éventuellement courts) pour transmettre les paquets à destination. Le protocole RIP est également courant au sein des AS. Ici, les routeurs privilégient les routes les plus courtes en comptant le nombre de sauts (passages d’un réseau à un autre). 

Quels sont les autres protocoles de routage ?
Par simona pilolla 2 / Shutterstock

Comment deux routeurs BGP peuvent-ils établir une relation de voisinage ?

Un routeur BGP doit créer une session TCP pour établir une relation avec son voisin. Les deux pourront ensuite communiquer via le port 179. Au cours des connexions, ils seront identifiés à l’aide de leur routeur ID respectif. Il s’agit d’un identifiant unique de quatre octets permettant de différencier les routeurs d’un AS. L’ID utilisé correspond le plus souvent à l’adresse IPv4 (ou IPv6) loopback du routeur

BGP fonctionne selon deux modes, à savoir eBGP (exterior BGP) et iBGP (interior BGP). Ce dernier est utilisé au sein de l’AS comme un IGP dynamique. Toutefois, sa fonction reste tournée vers les échanges avec d’autres systèmes autonomes. Le routage interne vise surtout à maintenir la connexion externe en cas d’interruption de liaisons physiques. Il se base ainsi sur des adresses IP logiques (loopback). 

Avec un routage direct eBGP, la session est rompue simultanément avec les liens physiques. Ainsi, les préfixes appris entre-temps seront supprimés et disparaîtront de la table de routage. Ce mode se base généralement sur des réseaux locaux ou des connexions point à point. Par ailleurs, les routeurs fixent souvent le TTL des paquets à 1 pour ce type de session. 

Une fois appariés, les voisins BGP pourront partager les informations relatives aux routes prises en charge. Ils échangeront également divers attributs liés à ces réseaux. Concrètement, la création d’une relation de voisinage permet d’éviter les boucles et d’optimiser le choix de routage des paquets transmis. Cette solution améliore donc la réactivité du réseau et accélère la transmission des données. 

Comment deux routeurs BGP peuvent-ils établir une relation de voisinage ?
Par Septian K / Shutterstock

Comment configurer le protocole BGP ?

La configuration du protocole BGP dépend foncièrement de la topologie du réseau. Dans tous les cas, vous devrez configurer manuellement les routeurs après avoir ouvert la session TCP. Voici les commandes de base, pour créer par exemple un eBGP avec lookback entre les routeurs R1 et R3 : 

Routeur 1 :

  • R1>enable
  • R1#config
  • R1(config)#loopback0
  • R1(config-if)#ip address [adresse IP loopback0]
  • R1(config-if)#no shutdown
  • R1(config)#interface serial 0/0/0
  • R1(config-if)#ip address [adresse IP routeur 1]
  • R1(config-if)#no shutdown
  • R1(config-if)#exit
  • R1(config)#router bgp [ASN de R1]
  • R1(config-router)#neighbor [adresse IP voisin R3] remote-as [ASN de R3]
  • R1(config-router)#neighbor [adresse IP voisin R3] update-source loopback0
  • R1(config-router)#end
  • R1#

 

Routeur 3 :

  • R3>enable
  • R3#config
  • R3(config)#loopback1
  • R3(config-if)#ip address [adresse IP loopback1]
  • R3(config-if)#no shutdown
  • R3(config)#interface serial 0/0/0
  • R3(config-if)#ip address [adresse IP routeur 3]
  • R3(config-if)#no shutdown
  • R3(config-if)#exit
  • R3(config)#router bgp [ASN de R3]
  • R3(config-router)#neighbor [adresse IP voisin R1] remote-as [ASN de R1]
  • R3(config-router)#neighbor [adresse IP voisin R1] update-source loopback1
  • R3(config-router)#end
  • R3#

 

Il suffit de supprimer les lignes associées au loopback pour les connexions directes. D’autre part, les commandes sont globalement les mêmes sur une relation de voisinage en mode iBGP. L’ASN sera seulement identique pour R1 et R3, car ils appartiennent au même réseau. 

Vous pouvez par ailleurs utiliser le protocole OSPF, si vous souhaitez configurer un loopback entre deux routeurs d’un même AS. Pour ce faire, entrez au niveau du Routeur 1 :

  • R1>enable
  • R1#config
  • R1(config)#interface loopback 0
  • R1(config-if)#ip address [adresse IP routeur 1]
  • R1(config)#router ospf 1
  • R1(config-router)#network [adresse IP de loopback] area 0
  • R1(config-router)#end
  • R1#

 

Réitérez l’opération sur le routeur R2 :

  • R2>enable
  • R2#config
  • R2(config)#interface loopback 0
  • R2(config-if)#ip address [adresse IP routeur 2]
  • R2(config)#router ospf 1
  • R2(config-router)#network [adresse IP de loopback] area 0
  • R2(config-router)#end
  • R2#

 

Dans la pratique, il existe une myriade de combinaisons possibles avec autant de loopbacks que nécessaire. Restez toutefois vigilant par rapport à la correspondance des adresses. 

Image de couverture Par designium / Shutterstock