BGP — Cheat Sheet Cisco IOS
Configuration pratique de BGP sur Cisco IOS (eBGP, iBGP, annonce de réseaux, filtrage, sélection de chemin). Pour la théorie (attributs, algorithme de sélection de chemin, types de pairs), voir BGP : le protocole de routage d'Internet et BGP : configuration et algorithme de sélection de chemin.
eBGP — voisinage entre AS différents
router bgp 65001
bgp router-id 1.1.1.1
neighbor 203.0.113.2 remote-as 65002
neighbor 203.0.113.2 description LIEN-VERS-AS65002
network 198.51.100.0 mask 255.255.255.0
router bgp <ASN>: démarre le processus BGP local, un seul par routeur.neighbor <ip> remote-as <ASN>: un AS différent de l'AS local ⇒ eBGP (voisinage direct requis, TTL 1 par défaut).network <prefix> mask <mask>: annonce un préfixe déjà présent dans la table de routage (BGP n'injecte pas de route, il l'annonce).
iBGP — voisinage au sein du même AS
router bgp 65001
neighbor 10.0.0.2 remote-as 65001
neighbor 10.0.0.2 update-source Loopback0
- Même ASN local et distant ⇒ iBGP.
update-source Loopback0: source la session sur une interface loopback (toujours up) plutôt que sur une interface physique — pratique standard pour la résilience.- iBGP exige un maillage complet (full-mesh) entre tous les routeurs iBGP, ou un mécanisme de contournement (route reflector, confédération) — non pratiqué nativement par iBGP lui-même.
Authentification de session (MD5)
router bgp 65001
neighbor 203.0.113.2 password <MotDePasseSolide>
Filtrage de préfixes
! Prefix-list : filtrage simple par préfixe
ip prefix-list PL-ANNONCE seq 5 permit 198.51.100.0/24
router bgp 65001
neighbor 203.0.113.2 prefix-list PL-ANNONCE out
! Route-map : filtrage + manipulation d'attributs
route-map RM-VERS-ISP permit 10
match ip address prefix-list PL-ANNONCE
set local-preference 200
router bgp 65001
neighbor 203.0.113.2 route-map RM-VERS-ISP out
- Toujours filtrer en sortie (
out) vers un pair externe : ne jamais annoncer plus que ce qui est légitime (évite de devenir un point de transit involontaire). local-preference(iBGP uniquement) etweight(local au routeur) sont les deux premiers attributs consultés par l'algorithme de sélection de chemin — les manipuler via route-map permet d'influencer le chemin de sortie préféré.
AS-path prepending (influencer l'entrée du trafic)
route-map RM-PREPEND permit 10
set as-path prepend 65001 65001 65001
Allonge artificiellement le chemin annoncé pour rendre une route moins préférée par les AS distants (utile pour équilibrer le trafic entrant sur plusieurs liens).
Vérification
show ip bgp summary ! état des voisins (Idle/Active/Established), préfixes reçus
show ip bgp neighbors <ip> ! détail d'un voisin : capacités négociées, timers
show ip bgp ! table BGP complète, avec attributs (>, *, i)
show ip route bgp ! routes BGP effectivement installées dans la RIB
:::tip Lire show ip bgp summary
- Idle / Active / Connect : la session TCP (port 179) n'est pas encore établie — vérifier routage, ACL,
remote-ascorrect. - Established suivi d'un nombre : la session fonctionne, le nombre indique les préfixes reçus.
- Une colonne "State/PfxRcd" à
0alors que le voisin est Established signale souvent un problème de filtrage (networkmanquant, prefix-list trop stricte). :::
:::warning Pièges fréquents
networksans route correspondante dans la table de routage → le préfixe n'est jamais annoncé (BGP ne fait pas de redistribution automatique).- eBGP multihop : si les voisins eBGP ne sont pas directement connectés, ajouter
neighbor <ip> ebgp-multihop <ttl>(sinon les paquets sont droppés au TTL). - Split horizon iBGP : une route apprise par iBGP n'est jamais réannoncée à un autre pair iBGP — nécessite route reflector ou full-mesh. :::
📝 Tester ses connaissances
1. Qu'est-ce qui distingue eBGP d'iBGP dans la commande `neighbor <ip> remote-as <ASN>` ?
2. Que signifie la commande `network 198.51.100.0 mask 255.255.255.0` sous BGP ?
3. Pourquoi utilise-t-on `update-source Loopback0` pour une session iBGP ?
4. Que se passe-t-il si un préfixe est annoncé avec `network` sans route correspondante dans la table de routage ?