network vs redistribute, injection IGP → BGP, redistribution BGP → IGP, impact sur l'attribut Origin, MED depuis la métrique IGP, pièges CCIE.
BGP dispose de deux mécanismes pour injecter des routes dans la table BGP. Comprendre leur différence est critique pour le CCIE.
| Critère | Comportement |
|---|---|
| Condition | Le préfixe doit exister dans la RIB (table de routage) |
| Origin | i — IGP (code le plus propre) |
| Mask | Exact match obligatoire (sauf auto-summary) |
| Usage | Préfixes locaux, agrégats, routes propres à l'AS |
| Critère | Comportement |
|---|---|
| Condition | Route présente dans la table du protocole source |
| Origin | ? — incomplete (pénalise critère #5) |
| Mask | Tous les préfixes du protocole source |
| Usage | Migration, interconnexion, routes apprises d'un IGP |
? (incomplete). Au critère #5 de la sélection BGP, i > e > ?. Une route injectée via network (origin i) sera toujours préférée à la même route redistribuée (origin ?) si tous les autres critères sont égaux.
match, redistribute ospf dans BGP ne redistribue que les routes internes (O intra-area et O IA inter-area). Les routes externes (O E1, O E2, O N1, O N2) sont ignorées par défaut.| Commande | Routes redistribuées dans BGP |
|---|---|
redistribute ospf 1 | O + O IA uniquement (défaut — internal) |
redistribute ospf 1 match internal | O + O IA (explicite, identique au défaut) |
redistribute ospf 1 match external | O E1 + O E2 uniquement |
redistribute ospf 1 match external 1 | O E1 uniquement |
redistribute ospf 1 match external 2 | O E2 uniquement |
redistribute ospf 1 match internal external | Tout — O, O IA, E1, E2 |
redistribute ospf 1 match nssa-external | O N1 + O N2 uniquement |
redistribute ospf 1 match internal external nssa-external | Tout — internal + external + NSSA |
match s'ajoutent — elles ne se remplacent pas. Si on configure successivement match internal puis match external, le résultat final est match internal external 1 external 2. Pour retirer un type, utiliser no redistribute ospf 1 match ... avec les mots-clés précis.
Le routeur qui fait la redistribution entre BGP et un IGP est l'ASBR. Il participe simultanément aux deux protocoles. La redistribution est unidirectionnelle par configuration — redistribuer OSPF dans BGP ne redistribue pas automatiquement BGP dans OSPF.
redistribute dans BGP ne redistribue PAS les routes apprises via iBGP — uniquement les routes des protocoles IGP locaux et les routes connectées/statiques. Pour redistribuer des routes iBGP, il faut utiliser bgp redistribute-internal.
! ── Redistribution OSPF dans BGP ───────────────────────────────────── router bgp 65001 address-family ipv4 unicast ! Par défaut : routes internes seulement (O + O IA) ← doc Cisco TAC #5242 redistribute ospf 1 ! Identique au défaut — explicite redistribute ospf 1 match internal ! Redistribuer TOUTES les routes (internal + external E1 + E2) redistribute ospf 1 match internal external 1 external 2 ! Redistribuer uniquement les externes (E1 + E2) redistribute ospf 1 match external ! Redistribuer avec un filtre route-map redistribute ospf 1 match internal external route-map OSPF-TO-BGP ! ── Route-map pour contrôler l'injection ───────────────────────────── route-map OSPF-TO-BGP permit 10 match ip address prefix-list PREFIXES-AUTORISES set metric 100 ! devient le MED dans BGP set community 65001:100 ip prefix-list PREFIXES-AUTORISES permit 10.0.0.0/8 le 24
match, BGP redistribue uniquement les routes internes (O + O IA). Pour inclure les externes (E1, E2), il faut explicitement ajouter match external. Pour tout redistribuer : match internal external 1 external 2. En production, toujours ajouter une route-map pour éviter de réinjecter des routes externes OSPF déjà venues de BGP.router bgp 65001 address-family ipv4 unicast redistribute eigrp 100 ! Avec filtre et manipulation de métrique redistribute eigrp 100 route-map EIGRP-TO-BGP route-map EIGRP-TO-BGP permit 10 match ip address prefix-list EIGRP-PREFIXES set metric 200 ! MED BGP set origin incomplete ! déjà ? par défaut — explicite ici
EIGRP n'a pas de mot-clé match comme OSPF — toutes les routes EIGRP (internes et externes D EX) sont redistribuées. Utiliser une route-map ou prefix-list pour filtrer.
router bgp 65001 address-family ipv4 unicast redistribute isis CORE ! Redistribuer uniquement Level 2 redistribute isis CORE ip ! routes IP IS-IS
router bgp 65001 address-family ipv4 unicast ! Routes statiques redistribute static route-map STATIC-TO-BGP ! Routes connectées redistribute connected route-map CONNECTED-TO-BGP ! Méthode préférée : network avec route statique vers Null0 network 203.0.113.0 mask 255.255.255.0 ! origin = i (propre) ! Route statique vers Null0 pour que network fonctionne ip route 203.0.113.0 255.255.255.0 Null0
network + route statique Null0 plutôt que redistribute connected. L'origin sera i au lieu de ? et vous contrôlez exactement ce qui est annoncé.! ── Redistribution BGP dans OSPF ───────────────────────────────────── router ospf 1 ! Redistribuer toutes les routes BGP → routes externes OSPF (E2 par défaut) redistribute bgp 65001 subnets ! E1 — métrique cumulative (recommandé pour avoir le vrai coût) redistribute bgp 65001 subnets metric-type 1 ! Avec metric fixe et tag redistribute bgp 65001 subnets metric 100 metric-type 1 tag 200 ! Avec filtre route-map (OBLIGATOIRE en production) redistribute bgp 65001 subnets route-map BGP-TO-OSPF route-map BGP-TO-OSPF permit 10 match ip address prefix-list BGP-PREFIXES set metric-type type-1 set metric 50 set tag 100 ! pour identifier les routes BGP dans OSPF ! ── Default route BGP → OSPF ───────────────────────────────────────── router ospf 1 default-information originate ! si 0.0.0.0/0 dans la RIB default-information originate always ! même sans 0.0.0.0/0 default-information originate always metric 10 metric-type 1
subnets, seules les routes classful sont redistribuées — en pratique ça ne redistribue presque rien.! ── Redistribution BGP dans EIGRP ──────────────────────────────────── router eigrp 100 ! Seed metric OBLIGATOIRE — sans ça, les routes ne passent pas redistribute bgp 65001 metric 10000 100 255 1 1500 ! BW delay rel load MTU ! Avec default-metric (équivalent) default-metric 10000 100 255 1 1500 redistribute bgp 65001 ! Avec filtre route-map redistribute bgp 65001 metric 10000 100 255 1 1500 route-map BGP-TO-EIGRP ! ── En named mode ──────────────────────────────────────────────────── router eigrp CAMPUS address-family ipv4 unicast autonomous-system 100 topology base redistribute bgp 65001 metric 10000 100 255 1 1500
show ip eigrp topology | include D EX — les routes n'y apparaissent pas.router isis CORE redistribute bgp 65001 ip ! Uniquement vers Level 2 redistribute bgp 65001 ip level-2 ! Avec metric redistribute bgp 65001 ip metric 50 level-2 redistribute bgp 65001 ip route-map BGP-TO-ISIS
! ── OSPF ────────────────────────────────────────────────────────────── router ospf 1 default-information originate ! si 0.0.0.0/0 existe dans la RIB default-information originate always ! inconditionnellement ! ── EIGRP ───────────────────────────────────────────────────────────── router eigrp 100 ! Via redistribution d'une route statique 0.0.0.0/0 redistribute static metric 10000 100 255 1 1500 ip route 0.0.0.0 0.0.0.0 Null0 ! Ou via ip summary-address sur l'interface vers les PE interface GigabitEthernet0/0 ip summary-address eigrp 100 0.0.0.0 0.0.0.0 ! ── IS-IS ───────────────────────────────────────────────────────────── router isis CORE default-information originate
| Code | Valeur | Source | Critère #5 |
|---|---|---|---|
| i | IGP | Injecté via network ou aggregate-address | Préféré (1er) |
| e | EGP | Héritage protocole EGP (obsolète) | 2ème |
| ? | Incomplete | Redistribué via redistribute | Moins préféré (3ème) |
igp sur une route redistribuée via set origin igp dans une route-map. Utile pour normaliser l'origin sans changer la méthode d'injection.route-map FIX-ORIGIN permit 10 set origin igp ! force origin = i même pour une route redistribuée
Le MED (critère #6) peut être automatiquement rempli depuis la métrique du protocole source lors de la redistribution.
! ── MED depuis la métrique OSPF ────────────────────────────────────── router bgp 65001 address-family ipv4 unicast redistribute ospf 1 metric 0 ! metric 0 = hériter la metric OSPF comme MED ! ── Résultat dans la table BGP ──────────────────────────────────────── ! Route OSPF avec metric 30 redistribuée dans BGP : ! Metric (MED) dans BGP = 30 ! → Annoncé au peer eBGP avec MED=30 ! ── MED explicite via route-map ────────────────────────────────────── route-map OSPF-TO-BGP permit 10 set metric 100 ! MED fixe = 100 ! ── MED automatique depuis la metric EIGRP ─────────────────────────── router bgp 65001 address-family ipv4 unicast redistribute eigrp 100 ! metric EIGRP composite → MED BGP
La metric OSPF (cost) est directement utilisée comme MED. Cost 10 → MED 10. Permet aux peers eBGP de choisir le meilleur point d'entrée dans l'AS en fonction du coût interne.
La metric composite EIGRP (souvent > 100 000) devient le MED. Des valeurs MED très élevées peuvent être inattendues pour les peers eBGP. Préférer une route-map pour normaliser.
| Commande | Résultat dans OSPF | Comportement métrique |
|---|---|---|
metric-type 1 (E1) | Route externe type 1 | Métrique cumulative — coût interne + coût externe |
metric-type 2 (E2) | Route externe type 2 | Métrique fixe — coût externe seulement (défaut) |
! Voir toutes les routes BGP avec leur origin show ip bgp ! Network Next Hop Metric LocPrf Path ! 10.1.1.0/24 0.0.0.0 10 i ← network (origin IGP) ! 10.2.2.0/24 0.0.0.0 110 ? ← redistribute (incomplete) ! Voir uniquement les routes redistribuées (origin ?) show ip bgp regexp \? ! Détail d'une route — voir l'origin et la metric (MED) show ip bgp 10.1.1.0/24 ! BGP routing table entry for 10.1.1.0/24 ! Origin IGP, metric 30, localpref 100, weight 32768, valid, sourced, best ! ───────────────────────────────────────────────────────── ! Origin = i (IGP) metric = MED = 30 (depuis OSPF cost) ! Voir les routes BGP annoncées à un peer show ip bgp neighbors 203.0.113.1 advertised-routes ! Vérifier que les routes OSPF sont bien dans BGP show ip bgp | include ? ! routes incomplete = redistribuées
! Routes BGP redistribuées dans OSPF (O E1 ou O E2) show ip ospf database external ! LSA type 5 générés par l'ASBR show ip route ospf ! routes O E1 / O E2 ! O E2 10.100.0.0/24 [110/20] via 10.0.0.1, 00:01:23, Gi0/0 ! Routes BGP redistribuées dans EIGRP (D EX) show ip eigrp topology | include D EX show ip route eigrp ! D EX 10.100.0.0/24 [170/28160] via 10.0.0.1, Gi0/0 ! Vérifier les LSA type 5 générés par l'ASBR show ip ospf database external 10.100.0.0 ! Voir les tags (utile pour détecter les boucles) show ip route 10.100.0.0 255.255.255.0 ! Tag 100, type extern 1
! Voir la config redistribute dans BGP show running-config | section router bgp show running-config | section router ospf ! Vérifier qu'une route-map s'applique correctement show route-map BGP-TO-OSPF ! route-map BGP-TO-OSPF, permit, sequence 10 ! Match clauses: ip address prefix-lists: BGP-PREFIXES ! Set clauses: metric-type type-1 metric 50 ! Policy routing matches: 0 packets, 0 bytes ! Vérifier le prefix-list show ip prefix-list
subnetsSans le mot-clé subnets, OSPF ne redistribue que les routes classful (/8, /16, /24). En pratique, la quasi-totalité des routes BGP (VLSM) est silencieusement ignorée. Symptôme : redistribute bgp configuré mais aucune route O E1/E2 visible chez les voisins OSPF.
! ❌ INCORRECT — routes VLSM ignorées redistribute bgp 65001 ! ✓ CORRECT redistribute bgp 65001 subnets
EIGRP ne peut pas calculer sa métrique composite sans les 5 paramètres (BW, delay, reliability, load, MTU). Sans seed metric, les routes sont acceptées par EIGRP mais jamais installées. Aucun message d'erreur — elles disparaissent silencieusement.
! ❌ INCORRECT — routes perdues silencieusement redistribute bgp 65001 ! ✓ CORRECT redistribute bgp 65001 metric 10000 100 255 1 1500
Un ASBR redistribue OSPF → BGP et BGP → OSPF. Si un deuxième ASBR fait la même chose, les routes peuvent "revenir" dans BGP depuis OSPF, créant des boucles ou des instabilités. Utiliser des tags pour identifier et filtrer les routes déjà redistribuées.
! ── ASBR — redistribution OSPF → BGP avec tag route-map OSPF-TO-BGP permit 10 match tag 0 ! accepter uniquement les routes sans tag BGP ! ── ASBR — redistribution BGP → OSPF avec tag route-map BGP-TO-OSPF permit 10 set tag 100 ! tagger les routes BGP redistribuées dans OSPF ! ── Bloquer les routes taguées de revenir dans BGP route-map OSPF-TO-BGP deny 5 match tag 100 ! rejeter les routes qui ont le tag BGP route-map OSPF-TO-BGP permit 10 ! tout le reste passe
bgp redistribute-internal oubliéPar défaut, redistribute dans BGP ne redistribue pas les routes apprises via iBGP. Si vous voulez redistribuer des routes iBGP dans un IGP, il faut activer bgp redistribute-internal.
router bgp 65001 bgp redistribute-internal ! permet de redistribuer les routes iBGP address-family ipv4 unicast redistribute ospf 1 ! maintenant inclut aussi les routes iBGP
bgp redistribute-internal peut injecter des milliers de routes iBGP dans l'IGP. Toujours combiner avec une route-map de filtrage.? et impact sur best-pathDeux chemins vers le même préfixe : un appris via eBGP (origin i) et un redistribué localement (origin ?). Si tous les critères #1 à #4 sont égaux, le chemin avec origin i sera préféré au critère #5. Une route redistribuée ne sera jamais préférée à une route reçue via eBGP avec origin i.
! Fix : forcer l'origin à igp sur les routes redistribuées route-map OSPF-TO-BGP permit 10 set origin igp
network ?network injecte une route avec origin i. C'est le code le plus propre, préféré au critère #5 sur e et ?.redistribute ?redistribute a l'origin ?. Moins préférée que i au critère #5. Peut être changée avec set origin igp dans une route-map.redistribute bgp X dans OSPF ?subnets, seules les routes classful sont redistribuées. En pratique, presque rien ne passe. Toujours ajouter subnets.redistribute bgp dans EIGRP ?router ospf, la commande default-information originate injecte une route par défaut si 0.0.0.0/0 existe dans la RIB. Avec always, elle est injectée inconditionnellement.redistribute ignore les routes iBGP. Il faut activer bgp redistribute-internal dans le processus BGP. À utiliser avec un filtre — sinon toute la table iBGP entre dans l'IGP.metric 0 dans la redistribution OSPF→BGP indique à BGP d'utiliser la métrique OSPF comme valeur MED. Permet aux peers eBGP de choisir le meilleur point d'entrée.set tag 100), puis dans OSPF→BGP rejeter les routes qui portent ce tag (match tag 100 → deny). Empêche les routes BGP de revenir dans BGP via OSPF.match internal, match external 1, match external 2.subnets obligatoire pour VLSM. Ajouter metric-type 1 pour E1 (recommandé avec plusieurs ASBRs).always : nécessite 0.0.0.0/0 dans la RIB.i, e, ?) et la colonne Metric pour le MED.