Principes BGP et attributs de sélection
Comprendre le fonctionnement d'eBGP, les sessions inter-AS et les attributs qui déterminent le meilleur chemin.
À retenir
- BGP est un protocole à vecteur de chemin qui utilise l'AS_PATH pour éviter les boucles.
- eBGP relie des AS différents, iBGP distribue ces routes en interne via full-mesh ou route reflectors.
- L'algorithme de sélection du meilleur chemin suit un ordre strict : Weight, Local Preference, AS_PATH, MED...
- Le next-hop-self est indispensable en iBGP pour propager correctement les routes externes.
BGP, le protocole qui fait tenir Internet
Border Gateway Protocol (BGP-4, défini par la RFC 4271) est le protocole de routage inter-domaines qui échange des routes entre systèmes autonomes (AS). Contrairement à OSPF ou IS-IS qui optimisent une métrique interne, BGP est un protocole à vecteur de chemin (path-vector) : chaque route porte la liste des AS traversés (AS_PATH), ce qui permet de détecter et d'écarter les boucles.
eBGP vs iBGP
- eBGP (External BGP) : session entre deux AS différents, typiquement TTL=1 par défaut, adjacence directe attendue.
- iBGP (Internal BGP) : session entre routeurs d'un même AS, nécessite un full-mesh ou des route reflectors pour propager les routes reçues en eBGP.
Point clé
une route apprise en eBGP doit être repropagée en interne (iBGP) pour que tous les routeurs de bordure de l'AS voient le même chemin externe ; l'oubli d'un maillage iBGP correct est une cause classique de routage asymétrique.
Établissement d'une session
Une session BGP passe par les états Idle, Connect, Active, OpenSent, OpenConfirm, puis Established. Le transport est TCP port 179. À l'établissement, les routeurs échangent leur AS number, leur BGP identifier (souvent une loopback /32) et les capacités négociées (MP-BGP pour IPv6, extended community, etc.).
Attention
un mismatch d'AS déclaré côté pair (peer AS mal configuré) bloque la session dès l'échange OPEN ; c'est l'erreur numéro un en atelier d'interconnexion opérateur.
Attributs de sélection du meilleur chemin
Quand plusieurs routes existent vers la même destination, BGP applique un algorithme de décision dans un ordre strict :
| Ordre | Attribut | Règle |
|---|---|---|
| 1 | Weight (Cisco, local) | Le plus élevé gagne |
| 2 | Local Preference | Le plus élevé gagne |
| 3 | Route originée localement | Préférée |
| 4 | AS_PATH le plus court | Le plus court gagne |
| 5 | Origine (IGP < EGP < Incomplete) | La plus basse gagne |
| 6 | MED (Multi-Exit Discriminator) | Le plus bas gagne |
| 7 | eBGP préféré à iBGP | eBGP gagne |
| 8 | IGP metric la plus basse vers le next-hop | La plus basse gagne |
| 9 | Router-ID le plus bas (tie-break) | Le plus bas gagne |
Sur le terrain
en cas de perte de connectivité asymétrique vers un préfixe précis, le premier réflexe est de comparer show ip bgp <prefix> côté entrée et sortie pour identifier quel attribut (souvent Local Preference ou MED) a fait basculer le choix de chemin de façon inattendue.
Next-hop et redistribution
En eBGP, le next-hop est changé à chaque saut vers l'adresse de l'interface du pair émetteur. En iBGP, le next-hop n'est pas modifié par défaut (règle du "next-hop-self" manquant), ce qui exige que l'IGP interne connaisse les adresses next-hop externes ou que la commande next-hop-self soit appliquée sur les routeurs de bordure.
Astuce
activez systématiquement next-hop-self sur les route reflectors ; c'est l'oubli le plus fréquent lors de la mise en service d'un nouveau PoP.
Conclusion
Maîtriser l'algorithme de sélection BGP et la distinction eBGP/iBGP est le socle indispensable avant d'aborder le filtrage de préfixes et la sécurisation du routage.