Introduction
BGP, ou Border Gateway Protocol, est le protocole de routage dynamique qui fait battre le cœur d'Internet. Contrairement aux protocoles internes comme OSPF ou RIP, qui gèrent le routage au sein d'un même réseau autonome (AS), BGP opère entre ces AS pour interconnecter le monde entier. Imaginez Internet comme un réseau de villes autonomes : BGP est le système de panneaux routiers qui décide des chemins optimaux entre elles, en tenant compte non seulement de la distance, mais aussi de politiques économiques, de sécurité et de fiabilité.
Pourquoi BGP est-il crucial en 2026 ? Avec l'explosion des clouds hybrides, des data centers mondiaux et des attaques DDoS sophistiquées, comprendre BGP permet d'éviter les pannes mondiales comme celle de 2021 chez Fastly. Ce guide débutant, 100% conceptuel, vous emmène des bases à la maîtrise théorique : sessions, attributs, algorithme de sélection. Pas de code, juste des analogies claires et des exemples concrets pour que vous puissiez bookmarker ce tutoriel comme référence. À la fin, vous saurez expliquer BGP à un collègue en 5 minutes. (248 mots)
Prérequis
- Connaissances de base en adresses IP et masques de sous-réseau.
- Compréhension du routage statique vs dynamique (ex. : OSPF pour intra-AS).
- Familiarité avec les Systèmes Autonomes (AS) : un AS est un groupe de réseaux sous une administration unique, identifié par un numéro unique (ASN, comme 15169 pour Google).
Qu'est-ce que BGP et son rôle fondamental ?
BGP est un protocole de routage path-vector, version 4 (RFC 4271), qui échange des informations de reachability entre AS. Contrairement à OSPF (link-state) ou RIP (distance-vector), BGP ne calcule pas les chemins les plus courts automatiquement : il propage des préfixes IP (ex. : 192.0.2.0/24) associés à des chemins complets (AS_PATH).
Analogie : Pensez à BGP comme un guide touristique intercontinental. Au lieu de dire "Paris est à 1000 km", il liste "Paris via Madrid (AS-Espagne) puis Lisbonne (AS-Portugal)". Cela permet d'éviter les boucles (grâce à AS_PATH) et d'appliquer des politiques.
Exemple concret : Votre FAI (AS-FAI) utilise BGP pour apprendre que google.com (AS15169) est joignable via un peer upstream (AS-Transit). Sans BGP, Internet s'effondrerait en silos isolés. BGP supporte jusqu'à 4,29 milliards d'adresses IPv4/IPv6 et gère 900 000+ préfixes dans les tables globales (données 2026 estimées via Hurricane Electric).
BGP est externe par défaut (eBGP), mais peut être interne (iBGP). Il utilise TCP port 179 pour des sessions fiables, contrairement à UDP pour OSPF.
Les deux types de sessions BGP : iBGP et eBGP
eBGP (External BGP) : Entre AS différents. TTL=1 par défaut (voisins directs), AS_PATH prépendé à l'origine. Ex. : Votre AS-Entreprise peer avec AS-FAI.
iBGP (Internal BGP) : Au sein d'un même AS. TTL=255 (routage IGP possible), pas de prépend AS_PATH. Nécessite full-mesh ou route-reflectors pour éviter les boucles.
Analogie : eBGP = appel international (frontières AS), iBGP = talkie-walkie interne à l'entreprise.
Exemple : Dans AS-Grand (3 routeurs R1,R2,R3), R1 apprend 10.0.0.0/8 via eBGP, propage à R2/R3 via iBGP. Sans full-mesh (R1-R2, R1-R3, R2-R3), R2 ne saurait pas re-router vers R3.
Différences clés :
| Aspect | eBGP | iBGP |
|---|---|---|
| -------- | ------ | ------ |
| AS | Différents | Même |
| TTL | 1 | 255 |
| Next-Hop | Changé | Inchangé |
| Loop | AS_PATH | Split-Horizon |
États de session BGP et diagnostic
Une session BGP passe par 6 états : Idle → Connect → Active → OpenSent → OpenConfirm → Established.
- Idle : Attente, pas de TCP.
- Connect/Active : Tentative TCP 179.
- OpenSent/Recv : Échange OPEN (ASN, HoldTime=90s, Capabilities).
- Established : Sessions up, échanges UPDATE/WITHDRAW.
Exemple diagnostic (show ip bgp summary) :
- Idle : Problème ACL ou interface down.
- Connect : Pas de TCP (firewall ?).
- OpenConfirm → Established fail : ASN mismatch.
Étude de cas : Panne 2021 Facebook : Sessions BGP down → 1h blackout mondial. Vérifiez toujours Keepalive (1/3 HoldTime) et Notification pour erreurs.
Attributs BGP : Les décideurs de chemins
Attributs : Métadonnées optionnelles/transitives attachées aux routes. 10+ types, mais focus sur essentiels.
Well-Known Mandatory :
- AS_PATH : Liste AS traversés (anti-loop, longueur = métrique).
- NEXT_HOP : IP du prochain saut (eBGP : peer IP ; iBGP : inchangé).
- ORIGIN : IGP (i), EGP (e), Incomplete (?).
Well-Known Discretionary : LOCAL_PREF (interne, plus haut gagne).
Optionnels : MED (Multi-Exit Discriminator, inter-AS), COMMUNITY (tags pour politiques).
Analogie : AS_PATH = CV du chemin (expérience), LOCAL_PREF = salaire interne.
Exemple : Route A : AS_PATH=100 200 (long), LOCAL_PREF=200. Route B : AS_PATH=300 (court), LOCAL_PREF=100. BGP choisit A si LOCAL_PREF prioritaire.
Algorithme de sélection BGP : Priorités pas à pas
BGP sélectionne 1 meilleure route par préfixe via 13 étapes (RFC 4271 + extensions) :
- Plus haut WEIGHT (Cisco propriétaire).
- Plus haut LOCAL_PREF.
- AS_PATH le plus court.
- ORIGIN : IGP > EGP > Incomplete.
- Plus bas MED.
- eBGP > iBGP.
- Plus bas IGP métrique au Next-Hop.
- Plus vieux route (stabilité).
- Plus bas Router ID.
Analogie : Recrutement : Expérience (LOCAL_PREF), CV court (AS_PATH), salaire bas (MED).
Exemple : 2 routes vers 8.8.8.8/32 :
- Route1 : LOCAL_PREF=200, AS_PATH=65001.
- Route2 : LOCAL_PREF=100, AS_PATH=65002 65003.
Bonnes pratiques essentielles
- Limitez les annonces : Prefix-list pour n'annoncer que vos propres /24+, évitez full-tables (900k routes = RAM intensive).
- Utilisez Route Reflectors pour iBGP : Évite full-mesh O(n²), cluster-id unique.
- Appliquez communautés : ex. NO_EXPORT pour bloquer export eBGP.
- Monitorez : BGPmon, Looking Glass publics ; alertez sur flaps (>3/min).
- Sécurisez : TTL-Security (GTSM), MD5 auth, RPKI pour ROA validation (anti-hijack).
Erreurs courantes à éviter
- Oublier Next-Hop self en iBGP : Route apprise mais non routable (IGP missing).
- Boucles AS_PATH : Ne pas filtrer vos propres AS en import.
- Blackhole par défaut : Pas de blackhole-community configurée → DDoS amplifié.
- Full BGP table sans filtres : Routeur crash (mémoire épuisée) ; utilisez IRR/RPKI.
- Ignore MED : Ajoutez always-compare-med pour consistence multi-homing.
Pour aller plus loin
- RFC 4271/7450/8205 : Standards BGP4/IPv6.
- Livre : "Internet Routing Architectures" de Halabi (Cisco Press).
- Outils : Hurricane Electric BGP Toolkit (bgp.he.net), BGPStream.
- Formations pros : Découvrez nos formations Learni sur les réseaux avancés.
- Pratique : Labs gratuits sur GNS3 avec images Cisco/Juniper.