Les bases du protocole BGP
# Le Protocole BGP : L'Articulation du Routage Internet
## Introduction
Le **Border Gateway Protocol (BGP)** est le protocole de routage inter-domaine qui
fait fonctionner Internet. Souvent décrit comme le "système nerveux central"
d'Internet, BGP est responsable de l'échange d'informations de routage entre les
systèmes autonomes (AS) - les grands réseaux qui composent Internet.
Contrairement aux protocoles de routage internes comme OSPF ou EIGRP, BGP est
un protocole de **routage externe** conçu spécifiquement pour interconnecter des
réseaux administrés de manière indépendante.
## Concepts Fondamentaux
### Système Autonome (AS)
Un AS est un ensemble de réseaux IP et de routeurs sous le contrôle d'une ou
plusieurs entités qui appliquent des politiques de routage communes. Chaque AS se
voit attribuer un numéro unique (ASN) par l'IANA.
### Types de Sessions BGP
- **eBGP (External BGP)** : Entre routeurs de différents AS
- **iBGP (Internal BGP)** : Entre routeurs d'un même AS
### Caractéristiques Clés
- **Protocol de vecteur de chemins** : Transmet des informations sur les chemins
complets
- **Utilise TCP sur le port 179** : Garantit une livraison fiable des messages
- **Incremental updates** : N'envoie que les changements, pas des mises à jour
complètes périodiques
- **Politique-based** : Le routage est basé sur des politiques plutôt que sur des
métriques techniques simples
## Fonctionnement de BGP
### Établissement des Sessions
1. **Établissement TCP** : Création d'une connexion TCP sur le port 179
2. **Open Message** : Échange des paramètres BGP (version, ASN, etc.)
3. **Keepalive Messages** : Maintenir la session active
4. **Update Messages** : Échange des informations de routage
### Tables de Routage BGP
Chaque routeur BGP maintient trois tables distinctes :
1. **Table de voisinage** : Informations sur les sessions BGP établies
2. **Base d'informations de routage (RIB)** : Toutes les routes apprises
3. **Table de transfert (FIB)** : Routes sélectionnées pour le transfert effectif des
paquets
### Types de Messages BGP
- **OPEN** : Initialise la session BGP
- **UPDATE** : Annonce ou retire des préfixes
- **KEEPALIVE** : Maintenir la session active
- **NOTIFICATION** : Signaler des erreurs et fermer la session
## Attributs BGP et Processus de Sélection
### Attributs BGP
Les attributs sont les critères utilisés pour déterminer le meilleur chemin :
1. **WEIGHT (Cisco)** : Attribut local au routeur (non propagé)
2. **LOCAL_PREF** : Priorité au sein d'un AS
3. **AS_PATH** : Liste des AS traversés
4. **ORIGIN** : Source de l'information de routage
5. **MED (Multi-Exit Discriminator)** : Indique le chemin préféré vers un AS
6. **COMMUNITIES** : Étiquettes pour appliquer des politiques
### Algorithme de Sélection du Meilleur Chemin
Lorsqu'un routeur reçoit plusieurs chemins vers le même préfixe, il applique cet ordre
de préférence :
1. **Poids le plus élevé** (propre au routeur)
2. **LOCAL_PREF le plus élevé**
3. **Routes originaires localement**
4. **AS_PATH le plus court**
5. **ORIGIN le plus bas** (IGP < EGP < INCOMPLET)
6. **MED le plus bas**
7. **Préférer eBGP sur iBGP**
8. **Chemin avec l'IGP metric le plus bas vers le next-hop**
9. **Plus ancien chemin eBGP**
10. **Plus bas router ID**
## Sécurité et Vulnérabilités de BGP
### Problèmes Majeurs
1. **Hijacking de préfixes** : Annonce frauduleuse de préfixes IP
2. **Route leaks** : Propagation accidentelle de routes
3. **Déni de service par épuisement de ressources** : Tables de routage
surchargées
### Mécanismes de Sécurité
- **ROV (Route Origin Validation)** : Validation de l'origine des routes
- **RPKI (Resource Public Key Infrastructure)** : Infrastructure de certification pour
les ressources Internet
- **Filtrage BGP** : Filtres basés sur les listes de préfixes autorisés
- **Session MD5** : Authentification des sessions BGP (obsolète, remplacé par TCP-
AO)
- **BGPsec** : Extension pour sécuriser les annonces de routes
## Configuration BGP (Exemple Cisco)
```cisco
! Configuration de base eBGP
router bgp 64512
router-id [Link]
neighbor [Link] remote-as 64513
neighbor [Link] description Lien vers Fournisseur
network [Link] mask [Link]
! Politique de filtrage
ip prefix-list PERMIT_LOCAL seq 5 permit [Link]/16
route-map FILTER_IN deny 10
match ip address prefix-list PERMIT_LOCAL
neighbor [Link] route-map FILTER_IN in
```
## Cas d'Utilisation Réels
### Connexions Multi-Fournisseurs
Les entreprises utilisent BGP pour :
- **Multihoming** : Connexion à plusieurs fournisseurs pour la redondance
- **Load balancing** : Répartition de charge entre différents liens
- **Traffic engineering** : Contrôle du trafic sortant et entrant
### Points d'Échange Internet (IXP)
Les IXP utilisent BGP pour :
- Faciliter l'échange de trafic entre membres
- Réduire les coûts de transit
- Améliorer les performances par peering direct
## BGP dans les Réseaux Modernes
### Évolutions Récentes
- **MP-BGP (Multiprotocol BGP)** : Support de multiples adressages (IPv6, VPN)
- **BGP-LS** : Diffusion d'informations topologiques pour les contrôleurs SDN
- **BGP FlowSpec** : Contrôle de trafic basé sur les flux
- **Segment Routing over BGP** : Intégration avec les technologies de segment
routing
### Défis Contemporains
1. **Croissance exponentielle des tables de routage** (plus de 900,000 routes en
2024)
2. **Convergence lente** lors de changements majeurs
3. **Complexité des politiques** dans les grands réseaux
4. **Dépendance critique** pour l'infrastructure Internet mondiale
## Bonnes Pratiques Opérationnelles
### Monitoring et Maintenance
- **Monitoring continu** avec outils comme Bird's Eye, BGPlay
- **Logging détaillé** des changements de sessions
- **Filtrage rigoureux** des annonces reçues
- **Préfix-limit** sur les sessions pour éviter les attaques
### Planification
- **Documentation complète** des politiques et configurations
- **Plan de reprise** pour les incidents BGP
- **Tests réguliers** des changements de configuration
- **Coordination** avec les pairs et fournisseurs
## L'Importance Sociétale de BGP
BGP n'est pas seulement un protocole technique ; il a des implications sociétales
majeures :
- **Résilience d'Internet** : Dépend de la stabilité de BGP
- **Souveraineté numérique** : Les politiques BGP peuvent contrôler les flux
d'information
- **Économie d'Internet** : Détermine les coûts et relations entre fournisseurs
- **Censorship** : Peut être utilisé pour bloquer l'accès à des ressources
## Conclusion
BGP est l'un des protocoles les plus critiques d'Internet, permettant l'interconnexion
de plus de 70,000 systèmes autonomes à travers le monde. Sa conception basée
sur la confiance et les politiques, plutôt que sur des métriques techniques simples,
reflète la nature décentralisée et hétérogène d'Internet.
Alors que BGP approche de ses 35 ans d'existence, il continue d'évoluer pour
répondre aux défis modernes de sécurité, d'échelle et de performance. La
communauté réseau mondiale travaille constamment à améliorer sa sécurité et sa
fiabilité, reconnaissant que la stabilité de BGP est essentielle à la stabilité d'Internet
lui-même.
Comprendre BGP n'est pas seulement une compétence technique pour les
ingénieurs réseau, mais une nécessité pour quiconque cherche à comprendre
comment fonctionne véritablement l'infrastructure mondiale d'Internet.