Tutoriel BGP : Comprendre le protocole de routage qui fait fonctionner Internet (1/2)
Border Gateway Protocol (BGP) est le protocole de routage complexe qui est au coeur du fonctionnement d'Internet. Ce tutoriel en deux parties vous explique tout d'abord les bases de BGP, puis vous propose plusieurs options de dépannage en cas de problème.
Les fournisseurs de services travaillant avec des réseaux IP sont très clairs sur le fait que le protocole BGP (Border Gateway Protocol) est le protocole Internet le plus complexe mais aussi celui qui est le plus difficile à configurer. L'accent mis sur la sécurité et la « scalabilité » le rend cependant essentiel. Dans cet article en deux parties, nous vous proposons tout d’abord un aperçu détaillé du fonctionnement de BGP puis un ensemble d’options simples et avancées de dépannage BGP, afin que vos routeurs compatibles BGP puissent échanger des informations en toute sécurité avec plusieurs centaines de milliers de préfixes IP et assurer la connectivité Internet.
Si vous devez expliquer ce qu'est BGP à quelqu’un qui connait peu le monde des fournisseurs de services et des opérateurs, la meilleure définition est que c'est le protocole de routage qui fait fonctionner Internet. Comme l'attribution d'adresses sur Internet n'est pas un mécanisme aussi hiérarchique que le plan de numérotation téléphonique, la plupart des routeurs de cœur de réseau des fournisseurs de services doivent s’échanger des informations sur plusieurs centaines de milliers de préfixes IP. BGP est toujours capable d'accomplir cette tâche, alors que l’Internet ne cesse de se développer, ce qui prouve qu'il s'agit d'un protocole de routage hautement évolutif.
Les informations de routage BGP sont généralement échangées entre des entités commerciales concurrentes comme les fournisseurs de services Internet (FAI), les opérateurs de services cloud ou les opérateurs télécoms dans un environnement ouvert et hostile - l'Internet public. BGP est très axé sur la sécurité - par exemple, tous les routeurs adjacents doivent être configurés manuellement - et les implémentations BGP décentes fournissent un riche ensemble de filtres d'itinéraires pour permettre aux FAI de défendre leurs réseaux et contrôler les routes qu'ils annoncent à leurs concurrents.
Comment fonctionne BGP
Dans la terminologie BGP, un domaine de routage indépendant, ce qui correspond presque toujours au réseau d’un FAI, est appelé un système autonome (ou AS pour Autonomous System).
BGP est toujours utilisé comme le protocole de routage de choix entre FAI (on parle alors de BGP externe), mais il est également mis en œuvre comme protocole de routage au cœur des grands réseaux ISP (on parle alors de BGP interne).
Tous les autres protocoles de routage ne se préoccupent que de la recherche du chemin optimal vers toutes les destinations connues. BGP ne peut pas adopter cette approche simpliste car les accords de peering noués entre FAI aboutissent presque toujours à des politiques de routage complexes. Pour aider les opérateurs réseau à implémenter ces stratégies, BGP propose un grand nombre d'attributs avec chaque préfixe IP, par exemple:
- Chemin du système autonome (AS) - le chemin complet documentant quels systèmes autonomes un paquet devrait traverser pour atteindre la destination.
- Préférence locale - le coût interne d'une destination, qui est utilisé pour assurer la cohérence à l'échelle de l'AS.
- Discriminateur à sorties multiples - cet attribut donne aux FAI adjacents la possibilité de préférer un point de peering à un autre.
- Communautés: un ensemble de balises génériques pouvant être utilisées pour signaler diverses stratégies administratives entre les routeurs BGP.
Parce que les éléments qui ont guidé la conception et l'implémentation de BGP ont toujours été la sécurité et l'évolutivité, BGP est plus difficile et plus complexe à configurer que d'autres protocoles de routage, surtout lorsque vous commencez à configurer diverses stratégies de routage. Il est également l'un des protocoles de routage les plus lents à converger.
La lenteur de convergence de BGP amène la plupart des FAI à appuyer leurs archictures réseaux sur deux protocoles distincts :
- Un protocole de routage interne : le plus souvent, OSPF (Open Shortest Path First) ou IS-IS (Intermediate System to Intermediate System) - sont utilisés pour obtenir une convergence rapide pour les routes internes, y compris les adresses IP des routeurs BGP.
- Un protocole de routage externe : BGP est utilisé pour échanger des routes Internet.
Une défaillance au sein du cœur de réseau peut ainsi être rapidement contournée, grâce aux capacités de convergence rapide d'OSPF ou d'IS-IS, tandis que BGP au dessus du protocole de routage interne répond aux exigences de « scalabilité », de sécurité et de politique. Plus encore, si vous migrez tous vos routes clients vers BGP, les problèmes du client - par exemple, une instabilité des liens entre votre routeur et le routeur du client - n'affecteront pas la stabilité de votre réseau central.
En raison de la complexité intrinsèque de BGP, les clients et les petits FAI ne déploient en général le protocole que lorsque cela est nécessaire - par exemple, sur des points de peering et sur un sous-ensemble minimal de routeurs de cœur de réseau (ceux entre les points de peering) comme l’illustre le diagramme suivant.
Les routeurs parlant BGP doivent aussi générer une route par défaut vers le protocole de routage interne pour attirer Internet vers des destinations inconnues des autres routeurs de votre réseau.
Imaginons le cas d’un FAI en croissance. Au fur et à mesure du développement de son activité, ses clients commenceront à avoir besoin de connectivité BGP : tout client souhaitant bénéficier d'un accès Internet véritablement redondant doit disposer de son propre système autonome et échanger des informations BGP avec ses FAI. Le FAI devra donc déployer BGP sur de plus en plus de routeurs de cœur et de bordure (voir le diagramme suivant). Pour un tel fournisseur d’accès Internet, il est donc préférable d'inclure BGP sur l’intégralité des routeurs de cœur de réseau et sur les principaux routeurs de bordure dans le cadre de la conception initiale de son réseau. Même s’il n’est pas possible de déployer BGP partout, partir d’un bon design sera utile lorsqu’il faudra faire évoluer la partie du réseau de FAI parlant BGP.
BGP nécessite un maillage complet des sessions BGP internes - des sessions entre routeurs dans le même système autonome. Il est possible d’utiliser des réflecteurs de route BGP ou des confédérations BGP pour rendre votre réseau évolutif.
Une autre excellente raison le déploiement de BGP sur votre réseau est que les réseaux privés virtuels MPLS, les déploiements de qualité de service à grande échelle ou les implémentations de cache Web différenciées à grande échelle s'appuient sur BGP pour transporter les informations dont ils ont besoin.
BGP est, sans aucun doute, le protocole de routage IP le plus complexe actuellement déployé sur Internet. Sa complexité est principalement due à l’accent mis sur la gestion des politiques de sécurité et de routage. BGP est utilisé pour échanger des informations coopératives (routes Internet) entre des entités concurrentes (fournisseurs de services) et doit être capable de mettre en œuvre tout ce qui a été convenu dans les accord de peering entre fournisseurs. Ces accords ont souvent peu de chose à voir avec la fourniture de services techniquement optimaux (comme le montrent les restrictions techniques de trafic mises en œuvre par certains FAI français au trafic de NetFlix ou Apple faute d’accord commercial satisfaisant, N.D.L.R.).
En cas de problème, une approche systématique du dépannage BGP peut vous mener rapidement du diagnostic initial à la solution. Dans la seconde partie de cet article, nous nous concentrerons sur un scénario simple avec un seul routeur parlant BGP dans votre réseau (voir le diagramme suivant). Des conceptions similaires sont couramment utilisées par les clients multirésidents et les petits fournisseurs de services Internet qui n'offrent pas de connectivité BGP à leurs clients.