Border Gateway Protocol (BGP) est le protocole de routage d'Internet. De la même manière que les services postaux traitent le courrier, le protocole BGP sélectionne les itinéraires les plus efficaces pour acheminer le trafic Internet.
Cet article s'articule autour des points suivants :
Contenu associé
Pourquoi utiliser HTTPS ?
Qu'est-ce qu'une violation de données ?
Qu'est-ce que le protocole SSL ?
VPN
Qu'est-ce que le protocole TLS ?
Abonnez-vous à theNET, le récapitulatif mensuel par Cloudflare des informations les plus populaires sur Internet !
Copier le lien de l'article
Border Gateway Protocol (BGP) est le service postal d'Internet. Lorsqu'un usager dépose une lettre dans une boîte aux lettres, le service postal traite ce courrier et choisit un itinéraire rapide et efficace pour acheminer la lettre à son destinataire. De même, lorsqu'un utilisateur envoie des données par Internet, le protocole BGP est chargé d'examiner l'ensemble des itinéraires que les données sont susceptibles d'emprunter et de choisir le meilleur itinéraire, qui implique généralement des sauts entre différents systèmes autonomes.
Le BGP est le protocole qui permet le fonctionnement d'Internet en assurant le routage des données. Lorsqu'un utilisateur à Singapour charge un site web dont les serveurs d'origine se situent en Argentine, le protocole BGP permet à cette communication de se dérouler rapidement et efficacement.
Internet est un réseau constitué de réseaux. Il se divise en centaines de milliers de réseaux plus petits, appelés systèmes autonomes (Autonomous Systems, AS). Chacun de ces réseaux est essentiellement un vaste ensemble de routeurs gérés par une organisation unique.
Si nous poursuivons l'analogie comparant le protocole BGP au service postal d'Internet, les systèmes autonomes représentent des bureaux de poste individuels. Une ville peut disposer de centaines de boîtes aux lettres, mais le courrier qu'elles contiennent doit transiter par le bureau de poste local avant d'être acheminé vers une autre destination. Les routeurs internes d'un système autonome se comportent comme des boîtes aux lettres. Ils transfèrent les communications sortantes au système autonome, qui utilise alors le routage BGP pour acheminer ces transmissions vers leur destination.
Le schéma ci-dessus présente une version simplifiée du protocole BGP. Dans cette version, Internet ne comporte que 6 systèmes autonomes. Si AS1 doit acheminer un paquet vers AS3, il dispose de deux options différentes :
Effectuer un saut vers AS2, puis AS3.
AS2 → AS3
Ou effectuer un saut vers AS6, puis AS5, AS4 et enfin AS3.
AS6 → AS5 → AS4 → AS3
Dans ce modèle simplifié, la décision semble simple. L'itinéraire par AS2 nécessite moins de sauts que l'itinéraire par AS6 : il s'agit donc du chemin le plus rapide et le plus efficace. Imaginons maintenant qu'il existe des centaines de milliers de systèmes autonomes et que le nombre de sauts ne constitue qu'une partie d'un algorithme complexe de sélection d'itinéraires. C'est la réalité du routage BGP sur Internet.
La structure d'Internet évolue continuellement, à mesure que de nouveaux systèmes apparaissent et que des systèmes existants deviennent indisponibles. Chaque système autonome doit donc être tenu informé des nouveaux itinéraires, mais également des itinéraires obsolètes. Cela se déroule sous forme de sessions de peering, pendant lesquelles chaque système autonome se connecte aux systèmes autonomes voisins par l'intermédiaire d'une connexion TCP/IP, afin de diffuser les informations de routage. Grâce à ces informations, chaque système autonome est équipé pour acheminer correctement les transmissions de données sortantes provenant de l'intérieur de leur réseau.
C'est là qu'une partie de notre analogie s'effondre. Contrairement aux bureaux de poste, les systèmes autonomes ne font pas tous partie de la même organisation. En réalité, ils appartiennent bien souvent à des entreprises concurrentes. C'est la raison pour laquelle les itinéraires BGP tiennent parfois compte de considérations commerciales. Les systèmes autonomes se facturent souvent mutuellement l'acheminement du trafic sur leurs réseaux, et le prix de l'accès peut être pris en compte dans le choix final de l'itinéraire.
Les systèmes autonomes appartiennent généralement à des fournisseurs d'accès à Internet (FAI) ou à d'autres grandes organisations, telles que des sociétés de technologie, des universités, des agences gouvernementales et des institutions scientifiques. Chaque système autonome souhaitant échanger des informations de routage doit disposer d'un numéro de système autonome enregistré (ASN, Autonomous System Number). L'IANA (Internet Assigned Numbers Authority) attribue des numéros ASN aux registres Internet régionaux (RIR, Regional Internet Registry), qui les attribuent ensuite aux FAI et aux réseaux. Les numéros ASN se présentent sous la forme de nombres au format 16 bits compris entre 1 et 65534, ainsi que de nombres au format 32 bits compris entre 131072 et 4294967294. En 2018, près de 64 000 numéros ASN étaient en service à travers le monde. Ces numéros ASN ne sont nécessaires que pour le routage BGP externe.
Les itinéraires sont échangés et le trafic est transmis sur Internet à l'aide du protocole BGP externe (eBGP). Les systèmes autonomes peuvent également utiliser une version interne de BGP, appelée BGP interne (iBGP), pour acheminer le trafic sur leurs réseaux internes. Il convient de noter que l'utilisation du protocole BGP interne n'est pas une condition préalable à l'utilisation du protocole BGP externe. Les systèmes autonomes peuvent choisir parmi un certain nombre de protocoles internes pour connecter les routeurs sur leur réseau interne.
Le protocole BGP externe s'apparente à l'expédition d'un courrier international. Certaines normes et directives doivent être suivies à cette fin. Une fois que le courrier a rejoint le pays de destination, il doit transiter par le service postal local du pays avant d'atteindre sa destination finale. Chaque pays dispose de son propre service postal interne, qui ne suit pas nécessairement les mêmes directives que celles des autres pays. De même, chaque système autonome peut disposer de son propre protocole de routage interne pour l'acheminement des données sur son propre réseau.
Dans l'ensemble, le protocole BGP essaie de trouver le chemin le plus efficace pour le trafic réseau. Toutefois, comme nous l'avons expliqué ci-dessus, le nombre de sauts n'est pas l'unique facteur pris en compte par les routeurs BGP pour trouver ces chemins. BGP définit des attributs pour chaque chemin, et ce sont ces attributs qui aident les routeurs à sélectionner un chemin lorsque plusieurs options sont disponibles. De nombreux routeurs permettent aux administrateurs de personnaliser les attributs, afin de contrôler plus précisément la circulation du trafic sur leurs réseaux. Voici quelques exemples d'attributs BGP :
Il existe également plusieurs autres attributs BGP. Tous ces attributs sont classés par ordre de priorité pour les routeurs BGP. Par exemple, un routeur BGP vérifie d'abord quel itinéraire a la pondération la plus élevée, puis la préférence locale, et enfin, il vérifie si le routeur est à l'origine de l'itinéraire, et ainsi de suite. (Ainsi, si tous les itinéraires reçus ont la même pondération, le routeur sélectionne un chemin en fonction de la préférence locale.)
En 2004, un FAI turc dénommé TTNet a accidentellement annoncé des itinéraires BGP incorrects à ses voisins. Ces itinéraires indiquaient que TTNet était la meilleure destination pour l'ensemble du trafic sur Internet. Lorsque ces itinéraires ont été propagés à un nombre toujours croissant de systèmes autonomes, une énorme perturbation s'est produite, entraînant une crise durant laquelle, pendant une journée, de nombreuses personnes dans le monde n'ont pas pu accéder à Internet, en totalité ou en partie.
De même, en 2008, un FAI pakistanais a tenté d'utiliser un itinéraire BGP afin d'empêcher les utilisateurs pakistanais d'accéder à YouTube. Le FAI a alors accidentellement annoncé ces chemins à ses systèmes autonomes voisins, et l'itinéraire s'est rapidement répandu sur le réseau BGP d'Internet. Cet itinéraire conduisait les utilisateurs qui tentaient d'accéder à YouTube dans une impasse, rendant les services de YouTube inaccessibles pendant plusieurs heures.
Un autre incident similaire s'est produit en juin 2019, lorsqu'une petite entreprise de Pennsylvanie, États-Unis, est devenue le chemin privilégié pour les itinéraires transitant par le réseau de Verizon, rendant une grande partie de l'Internet inaccessible aux utilisateurs pendant plusieurs heures.
Il s'agit là d'exemples d'une pratique appelée détournement de BGP, qui n'est pas toujours accidentelle. En avril 2018, des acteurs malveillants ont délibérément créé des itinéraires BGP incorrects afin de rediriger le trafic destiné au service DNS d'Amazon. En redirigeant ce trafic vers leur système, ces acteurs malveillants sont parvenus à dérober plus de 100 000 USD en cryptomonnaie.
Le détournement de BGP peut être utilisé pour lancer plusieurs types d'attaques :
De tels incidents peuvent se produire, car la fonction de partage d'itinéraires du protocole BGP repose sur la confiance, et les systèmes autonomes font implicitement confiance aux itinéraires qui leur sont communiqués. Lorsque des pairs annoncent (intentionnellement ou non) des informations de routage incorrectes, le trafic est acheminé là où il ne devrait pas l'être, avec des résultats potentiellement malveillants.
Heureusement, des progrès ont été effectués en matière de sécurisation du protocole BGP. Le plus notable, un cadre de sécurité du routage appelé Resource Public Key Infrastructure(RPKI), a été lancé en 2008. RPKI utilise des enregistrements à signature cryptographique, appelés Route Origin Authorizations (ROA) pour valider les opérateurs réseau autorisés à annoncer les adresses IP d'une entreprise par l'intermédiaire du protocole BGP. Il permet ainsi d'assurer que les préfixes d'une entreprise sont uniquement annoncés par les parties autorisées.
Toutefois, l'existence de RPKI ne suffit pas, à elle seule. Si les grands réseaux n'adhèrent pas aux bonnes pratiques en matière de sécurité du protocole BGP, ils peuvent propager des attaques de détournement de grande ampleur. Actuellement, plus de 50 % des principaux fournisseurs d'accès Internet prennent en charge RPKI dans une certaine mesure, mais l'adoption par une majorité plus importante est indispensable pour sécuriser pleinement le protocole BGP. Les opérateurs réseau peuvent protéger leurs réseaux en mettant en œuvre RPKI et en utilisant une technologie d'alerte réseau, telle que Cloudflare Route Leak Detection. Cette fonctionnalité permet de prévenir les attaques par détournement BGP en informant les clients lorsque des parties non autorisées diffusent leurs préfixes.