Cisco, Routage et Switching

BGP : principes fondamentaux et cas d'utilisation

BGP relie les réseaux qui composent Internet et sert aussi en entreprise pour le multi-opérateur ou le cloud. Systèmes autonomes, sessions, attributs, sélection du chemin et bonnes pratiques de filtrage.

Systèmes autonomes reliés par des sessions BGP échangeant des préfixes réseau

BGP (Border Gateway Protocol, version 4, RFC 4271) est le protocole qui relie entre eux les dizaines de milliers de réseaux indépendants qui forment Internet. Contrairement à OSPF, il ne cherche pas le chemin le plus court au sens technique : il applique des politiques fondées sur des attributs. En entreprise, on le rencontre pour la connexion à plusieurs opérateurs, l'interconnexion avec le cloud et dans les réseaux de centres de données.

Objectif : comprendre les concepts fondamentaux de BGP, la sélection du meilleur chemin et les bonnes pratiques de configuration et de filtrage, avec un exemple de base sur Cisco.

Plateforme : routeurs Cisco sous IOS XE 17.x / IOS 15.x. Configuration de laboratoire : les numéros d'AS 64496–64511 et 65536–65551 sont réservés à la documentation (RFC 5398), et les plages 64512–65534 sont privées (RFC 6996). Les préfixes utilisés sont des plages de documentation.

Systèmes autonomes

Un système autonome (AS) est un ensemble de réseaux sous une administration et une politique de routage communes, identifié par un numéro d'AS (ASN), sur 16 ou 32 bits. Les ASN publics sont attribués par les registres régionaux (le RIPE NCC pour l'Europe).

BGP est un protocole à vecteur de chemin : chaque annonce de préfixe transporte la liste des AS traversés (attribut AS_PATH). Un routeur qui voit son propre AS dans le chemin rejette l'annonce, ce qui empêche les boucles entre AS.

eBGP et iBGP

  • eBGP (externe) : session entre deux AS différents, généralement entre routeurs directement connectés.
  • iBGP (interne) : session entre routeurs d'un même AS, pour propager les routes apprises de l'extérieur.

Règle importante de l'iBGP : un routeur ne réannonce pas à un pair iBGP une route apprise d'un autre pair iBGP. Il faut donc un maillage complet des sessions iBGP, ou des réflecteurs de routes (route reflectors) dans les réseaux plus grands.

Les sessions BGP

BGP fonctionne au-dessus de TCP, port 179. Les voisins (neighbors ou peers) sont configurés explicitement : BGP ne découvre pas ses voisins automatiquement.

État Signification
Idle Inactif, en attente
Connect / Active Tentative d'établissement de la connexion TCP
OpenSent / OpenConfirm Échange des paramètres (AS, temporisateurs, capacités)
Established Session établie, échange de routes

Une session qui reste en Active signifie généralement que la connexion TCP n'aboutit pas : adresse de voisin erronée, filtrage du port 179, route absente vers le voisin, ou numéro d'AS mal configuré de l'autre côté.

Une fois établie, la session échange les préfixes par messages UPDATE, puis des KEEPALIVE périodiques. Seuls les changements sont transmis.

Les attributs principaux

Attribut Portée Rôle
Weight Local au routeur (propriétaire Cisco) Préférence locale sur un seul routeur ; plus élevé = préféré
LOCAL_PREF Propagé dans l'AS (iBGP) Choisir le point de sortie de l'AS ; plus élevé = préféré
AS_PATH Transitif Liste des AS ; plus court = préféré ; prévention des boucles
ORIGIN Transitif Origine de la route (IGP, EGP, incomplete)
MED Vers un AS voisin Suggérer au voisin le point d'entrée préféré ; plus faible = préféré
NEXT_HOP Transitif Adresse du prochain saut
Communautés Transitif (optionnel) Étiquettes servant à appliquer des politiques (RFC 1997, RFC 8092 pour les grandes communautés)

La sélection du meilleur chemin

Lorsqu'un routeur reçoit plusieurs chemins vers un même préfixe, il les compare dans un ordre précis. Version simplifiée de l'algorithme utilisé par Cisco :

  1. Prochain saut joignable (sinon la route est inutilisable).
  2. Weight le plus élevé.
  3. LOCAL_PREF le plus élevé.
  4. Route originée localement.
  5. AS_PATH le plus court.
  6. ORIGIN le plus faible (IGP < EGP < incomplete).
  7. MED le plus faible.
  8. eBGP préféré à iBGP.
  9. Coût IGP le plus faible vers le prochain saut.
  10. Critères de départage (route la plus ancienne, router-id le plus faible…).

Retenez surtout : LOCAL_PREF contrôle le trafic sortant, AS_PATH (allongement par « prepending ») et MED influencent le trafic entrant, mais l'entrant dépend toujours des politiques des autres AS.

Cas d'utilisation en entreprise

  • Double opérateur avec adresses propres : l'entreprise dispose d'un bloc d'adresses et d'un ASN publics, et annonce son préfixe aux deux opérateurs. En cas de panne de l'un, le trafic bascule automatiquement.
  • Connexion au cloud : les liaisons dédiées et VPN vers AWS, Azure ou Google Cloud utilisent BGP pour échanger les routes. Voir VPN cloud et connectivité hybride.
  • SD-WAN et réseaux de centres de données : BGP sert souvent de protocole de contrôle, y compris à l'intérieur d'un même site (architectures « BGP partout », EVPN).

Configuration de base sur Cisco

Scénario : l'entreprise (AS 64500, préfixe 198.51.100.0/24) se connecte à un opérateur (AS 64501) via le lien 203.0.113.0/30.

ip prefix-list PL-ANNONCE seq 10 permit 198.51.100.0/24
ip prefix-list PL-DEFAUT seq 10 permit 0.0.0.0/0
!
route-map RM-SORTIE permit 10
 match ip address prefix-list PL-ANNONCE
!
route-map RM-ENTREE permit 10
 match ip address prefix-list PL-DEFAUT
!
router bgp 64500
 bgp router-id 198.51.100.1
 bgp log-neighbor-changes
 neighbor 203.0.113.1 remote-as 64501
 neighbor 203.0.113.1 description Operateur-A
 neighbor 203.0.113.1 password <secret-convenu>
 !
 address-family ipv4
  network 198.51.100.0 mask 255.255.255.0
  neighbor 203.0.113.1 activate
  neighbor 203.0.113.1 route-map RM-SORTIE out
  neighbor 203.0.113.1 route-map RM-ENTREE in
  neighbor 203.0.113.1 maximum-prefix 10
 exit-address-family
!
ip route 198.51.100.0 255.255.255.0 Null0

Points essentiels :

  • la commande network annonce un préfixe seulement s'il existe à l'identique dans la table de routage : d'où la route vers Null0, qui garantit sa présence ;
  • le filtre de sortie garantit que l'entreprise n'annonce que son propre préfixe. Sans lui, un routeur relié à deux opérateurs pourrait réannoncer les routes de l'un à l'autre et devenir un transit involontaire ;
  • le filtre d'entrée n'accepte ici que la route par défaut ;
  • maximum-prefix coupe la session si le voisin envoie trop de préfixes ;
  • le mot de passe (authentification TCP MD5) protège la session ; TCP-AO (RFC 5925) est l'alternative moderne lorsqu'elle est prise en charge.

Sécurité du routage BGP

BGP fait confiance aux annonces de ses voisins. Les erreurs de configuration ou les détournements de préfixes (route hijacking) peuvent rendre des services injoignables à l'échelle mondiale. Bonnes pratiques, résumées par l'initiative MANRS :

  • filtrer systématiquement en entrée et en sortie ;
  • RPKI et validation de l'origine des routes (ROV, RFC 6811) : le détenteur d'un préfixe publie des objets ROA indiquant quel AS est autorisé à l'annoncer ; les routeurs rejettent les annonces invalides ;
  • documenter ses politiques dans les bases de routage (IRR) ;
  • filtrage anti-usurpation (BCP 38).

Créez des ROA pour vos préfixes auprès de votre registre régional dès que vous annoncez des adresses propres.

Vérifier et dépanner

show ip bgp summary                       ! état des sessions et nombre de préfixes reçus
show ip bgp                               ! table BGP ; ">" indique le meilleur chemin
show ip bgp 198.51.100.0/24               ! détail des chemins pour un préfixe
show ip bgp neighbors 203.0.113.1 advertised-routes
show ip bgp neighbors 203.0.113.1 received-routes   ! nécessite soft-reconfiguration inbound
clear ip bgp 203.0.113.1 soft             ! réappliquer les politiques sans couper la session

Erreurs courantes

  • Absence de filtre de sortie, transformant l'entreprise en transit.
  • network annonçant un préfixe absent de la table de routage.
  • Session bloquée en Active à cause d'un filtrage du port TCP 179.
  • Réinitialisation brutale des sessions (clear ip bgp *) en production au lieu d'un soft.
  • Ne pas créer de ROA pour ses préfixes.

Conclusion

BGP est un protocole de politiques : sessions explicites, attributs, sélection du chemin selon des règles ordonnées. En entreprise, l'essentiel tient en quelques principes : annoncer uniquement ses préfixes, filtrer ce que l'on reçoit, limiter le nombre de préfixes, authentifier les sessions et publier des ROA.

Références