Qu'est-ce que le BGP ? | Explication du routage BGP

Le Border Gateway Protocol (BGP) est le protocole de routage d'Internet. À l'instar du traitement du courrier par les services postaux, le protocole BGP choisit les chemins les plus efficaces pour acheminer le trafic Internet.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Définition du routage BGP
  • Examen de la relation entre les systèmes autonomes
  • Explication de l'impact du BGP sur les fonctionnalités d'Internet

Copier le lien de l'article

Qu'est ce que le BGP ?

Le Border Gateway Protocol (BGP) constitue 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 l'acheminer à son destinataire. De même, lorsqu'un utilisateur envoie des données par Internet, le BGP se charge d'examiner l'ensemble des itinéraires que les données sont susceptibles d'emprunter et de choisir le meilleur chemin, qui implique généralement des sauts réseau entre plusieurs systèmes autonomes.

Le BGP rend l'Internet possible en permettant l'acheminement des données sur Internet. Lorsqu'un utilisateur se trouvant à Singapour charge un site web dont les serveurs d'origine se situent en Argentine, le protocole BGP permet à cette communication de s'effectuer rapidement et efficacement.

Qu'est-ce qu'un système autonome ?

Internet est un réseau de réseaux. Il se divise en centaines de milliers de petits réseaux nommés systèmes autonomes (Autonomous Systems, AS). Chacun de ces réseaux constitue essentiellement un vaste ensemble de routeurs gérés par une seule organisation.

Topographie d'Internet

En poursuivant l'analogie considérant le BGP comme le service postal d'Internet, les AS représentent les bureaux de poste individuels. Une ville peut disposer de centaines de boîtes aux lettres, mais le courrier qui s'y trouve doit transiter par le bureau de poste local avant d'être acheminé vers une autre destination. Les routeurs internes d'un AS se comportent un peu comme des boîtes aux lettres. Ils transfèrent les communications sortantes à l'AS, qui s'appuie alors sur le routage BGP pour acheminer ces dernières vers leur destination.

BGP simplifié

Le schéma ci-dessus présente une version simplifiée du protocole BGP. Dans cette dernière, seuls 6 AS figurent sur le réseau Internet. Si AS1 doit acheminer un paquet vers AS3, il dispose ainsi de deux options différentes.

Sauter vers AS2, puis AS3.

AS2 → AS3

Ou sauter 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. Imaginez maintenant qu'il existe des centaines de milliers d'AS et que le nombre de sauts ne constitue qu'une partie d'un algorithme complexe de sélection d'itinéraire. C'est la réalité du routage BGP sur Internet.

La structure d'Internet change constamment, à mesure que de nouveaux systèmes apparaissent et que les systèmes existants deviennent indisponibles. Chaque AS doit ainsi être tenu à jour des nouveaux itinéraires et des itinéraires obsolètes au moyen d'un système d'information. L'opération s'effectue sous la forme de sessions de peering, lors desquelles chaque AS se connecte aux AS voisins par l'intermédiaire d'une connexion TCP/IP dans le but de partager des informations de routage. Grâce à ces informations, chaque AS 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 fait, 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 AS se facturent souvent les uns les autres pour acheminer le 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.

Qui gère les systèmes BGP autonomes ?

Les systèmes autonomes appartiennent généralement à des fournisseurs d'accès à Internet (FAI) ou à d'autres grandes organisations, telles que les sociétés de technologie, les universités, les agences gouvernementales et les institutions scientifiques. Chaque AS 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, l'autorité d'attribution des nombres sur Internet) attribue des ASN aux registres Internet régionaux (RIR), qui les attribuent ensuite aux FAI et aux réseaux. Les 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 ASN étaient en service à travers le monde. Ces ASN ne sont nécessaires que pour le routage BGP externe.

Quelle est la différence entre le BGP externe et le BGP interne ?

Les itinéraires sont échangés et le trafic transmis sur Internet à l'aide du protocole BGP externe (eBGP). Les systèmes autonomes peuvent également utiliser une version interne de BGP pour acheminer le trafic sur leurs réseaux internes, connue sous le nom de BGP interne (iBGP). Il convient de noter que l'utilisation du BGP interne N'EST PAS un prérequis à l'utilisation du 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 BGP externe ressemble à l'expédition d'un courrier à l'international. Certaines normes et directives doivent être suivies en la matière. Une fois que le courrier a rejoint son pays de destination, il doit passer 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 au sein de son propre réseau.

Les défauts du protocole BGP et la manière d'y répondre

En 2004, un FAI turc dénommé TTNet a accidentellement annoncé de mauvais itinéraires BGP à ses voisins. Ces chemins prétendaient que TTNet était la meilleure destination pour l'ensemble du trafic sur Internet. Lorsque ces chemins se sont étendus à un nombre toujours croissant de systèmes autonomes, une perturbation massive s'est produite. Il en a résulté une crise pendant laquelle de nombreuses personnes à travers le monde n'ont pas pu accéder à Internet (dans son intégralité ou en partie) pendant toute une journée.

De même, en 2008, un FAI pakistanais a tenté d'utiliser un itinéraire BGP afin d'empêcher les utilisateurs pakistanais de se rendre sur YouTube. Le FAI a alors accidentellement annoncé ces chemins à ses AS 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. En conséquence, les services de YouTube se sont retrouvés inaccessibles pendant plusieurs heures.

Il s'agit là d'exemples d'une pratique appelée détournement de BGP, bien que celui-ci ne soit pas toujours accidentel. En avril 2018, des acteurs malveillants ont délibérément créé de mauvais itinéraires BGP afin de rediriger le trafic destiné au service DNS d'Amazon. Ces pirates sont parvenus à dérober plus de 100 000 USD de cryptomonnaie en redirigeant ce trafic vers leur système.

Les incidents de ce type peuvent survenir, car la fonction de partage d'itinéraire de BGP repose sur la confiance et que les systèmes autonomes font implicitement confiance aux chemins partagés avec eux. Lorsque des pairs annoncent de mauvaises informations de routage (intentionnellement ou non), le trafic se dirige vers des endroits vers lesquels il n'est pas censé se trouver, avec des résultats potentiellement malveillants.

Fort 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 nommé Resource Public Key Infrastructure (RPKI, infrastructure de gestion de clés publiques de ressources), a été lancé en 2008. La RPKI utilise des enregistrements à signature cryptographique, appelés Route Origin Authorizations (ROA, autorisations d'origine d'itinéraire), afin de valider quels opérateurs réseau sont autorisés à annoncer les adresses IP d'une entreprise par l'intermédiaire du protocole BGP. Ce mode d'opération permet de s'assurer que les préfixes d'une entreprise ne sont annoncés que par les parties autorisées.

Toutefois, l'existence de la RPKI ne suffit pas à elle seule. Les vastes réseaux sur lesquels la RPKI n'a pas été déployée peuvent propager des attaques de détournement à grande échelle. À l'heure actuelle, plus de 50 % des plus grands fournisseurs Internet prennent en charge la RPKI dans une certaine mesure, mais l'adoption par une plus vaste majorité s'avère nécessaire pour sécuriser intégralement le protocole BGP. Les opérateurs réseau peuvent protéger leurs réseaux en mettant en œuvre la RPKI et en utilisant une technologie d'alerte réseau, comme la détection des fuites d'itinéraire de Cloudflare. Cette fonctionnalité permet d'éviter les attaques par détournement BGP en permettant aux clients d'être avertis lorsque des parties non autorisées annoncent leurs préfixes.

Service commercial