Redistribuer vers et depuis OSPF — mots-clés obligatoires, types de routes externes E1/E2/N1/N2, ASBR multiples, filtrage à la redistribution et vérification.
| Mot-clé | Obligatoire ? | Effet |
|---|---|---|
| subnets | Quasi-obligatoire | Sans ce mot-clé, seules les routes classful sont redistribuées. Tous les sous-réseaux sont ignorés silencieusement. |
| metric <val> | Optionnel | Seed metric de la route externe. Défaut : 20 pour E2. Si absent, OSPF utilise 20. |
| metric-type {1|2} | Optionnel | Type E1 (cumulatif) ou E2 (fixe). Défaut : E2. Voir onglet E1/E2. |
| tag <val> | Optionnel | Tag 32-bit transporté dans le LSA. Utilisé pour anti-loop en redistribution mutuelle. |
| route-map <nom> | Optionnel | Filtrage et modification des attributs (metric, metric-type, tag) par route. |
| match {internal|external|nssa-external} | Optionnel | Quand la source est OSPF lui-même (redistribution inter-process) — filtre par type de route OSPF source. |
! Toujours sous le processus OSPF cible router ospf 1 redistribute <source> [subnets] [metric <val>] [metric-type {1|2}] \ [tag <val>] [route-map <nom>]
! Minimal (déconseillé — metric-type E2 par défaut, metric 20) router ospf 1 redistribute eigrp 100 subnets ! Recommandé — E1, metric explicite, tag anti-loop router ospf 1 redistribute eigrp 100 subnets metric-type 1 metric 20 tag 100 ! Avec route-map pour filtrage sélectif ip prefix-list PFX-EIGRP seq 5 permit 10.0.0.0/8 le 24 route-map EIGRP-TO-OSPF deny 10 match tag 200 ! bloquer routes déjà venant d'OSPF (anti-loop) route-map EIGRP-TO-OSPF permit 20 match ip address prefix-list PFX-EIGRP set metric-type type-1 set metric 20 set tag 100 router ospf 1 redistribute eigrp 100 subnets route-map EIGRP-TO-OSPF
! Redistribuer toutes les routes BGP best-path dans OSPF router ospf 1 redistribute bgp 65001 subnets metric-type 1 metric 10 ! Avec filtre — redistribuer seulement certains préfixes BGP route-map BGP-TO-OSPF permit 10 match ip address prefix-list PFX-BGP-INTERNE set metric 10 set metric-type type-1 set tag 300 router ospf 1 redistribute bgp 65001 subnets route-map BGP-TO-OSPF ! ⚠️ Attention : redistribuer toute la table BGP dans OSPF ! peut injecter des milliers de routes — toujours filtrer !
! Routes statiques router ospf 1 redistribute static subnets metric-type 1 metric 5 ! Routes connectées (interfaces avec ip address) router ospf 1 redistribute connected subnets metric 1 ! Les deux avec route-map commun route-map STATIC-CONN-TO-OSPF permit 10 match ip address prefix-list PFX-AUTORISE set metric 1 set metric-type type-1 router ospf 1 redistribute static subnets route-map STATIC-CONN-TO-OSPF redistribute connected subnets route-map STATIC-CONN-TO-OSPF
! Cas : deux process OSPF sur le même routeur (VRF, migration…) router ospf 2 redistribute ospf 1 subnets ! Avec match pour ne redistribuer que les routes internes du process 1 router ospf 2 redistribute ospf 1 subnets match internal ! Options de match disponibles : ! match internal → intra-area + inter-area ! match external 1 → routes E1 du process source ! match external 2 → routes E2 du process source ! match nssa-external 1 → routes N1 ! match nssa-external 2 → routes N2 ! (combinables : match internal external 1 external 2)
redistribute ospf <pid>
est placée sous le protocole cible, pas sous OSPF. OSPF lui-même ne "pousse" pas
ses routes — c'est le protocole receveur qui les "tire" depuis la RIB OSPF.
! Seed metric EIGRP obligatoire (5 composantes) router eigrp 100 redistribute ospf 1 metric 10000 100 255 1 1500 ! Ou avec default-metric pour tous les redistribute router eigrp 100 default-metric 10000 100 255 1 1500 redistribute ospf 1 ! Filtrer : ne redistribuer que les routes internes OSPF route-map OSPF-TO-EIGRP deny 10 match tag 100 ! anti-loop : bloquer routes venant d'EIGRP route-map OSPF-TO-EIGRP permit 20 match route-type internal ! uniquement intra/inter-area set tag 200 route-map OSPF-TO-EIGRP permit 30 match route-type external ! E1 et E2 aussi si voulu set tag 200 router eigrp 100 redistribute ospf 1 metric 10000 100 255 1 1500 route-map OSPF-TO-EIGRP
! ⚠️ COMPORTEMENT PAR DÉFAUT SOUS BGP : ! redistribute ospf ne redistribue que les routes INTERNES ! (intra-area O + inter-area O IA) — les E1/E2 sont EXCLUES ! Routes internes uniquement (comportement par défaut) router bgp 65001 address-family ipv4 unicast redistribute ospf 1 ! Équivalent explicite : redistribute ospf 1 match internal ! Pour inclure aussi les routes externes E1 et E2 : router bgp 65001 address-family ipv4 unicast redistribute ospf 1 match internal external 1 external 2 ! Pour inclure également les routes NSSA : router bgp 65001 address-family ipv4 unicast redistribute ospf 1 match internal external 1 external 2 \ nssa-external 1 nssa-external 2 ! Avec route-map — filtrage sélectif + attributs BGP route-map OSPF-TO-BGP permit 10 match route-type internal set metric 100 ! MED dans BGP set origin igp ! forcer origin IGP au lieu de incomplete (?) router bgp 65001 address-family ipv4 unicast redistribute ospf 1 route-map OSPF-TO-BGP ! Note : avec route-map, le match internal/external de redistribute ! est ignoré — c'est la route-map qui contrôle tout
! Redistribuer OSPF dans IS-IS (routes externes IS-IS) router isis CORE redistribute ospf 1 metric 50 metric-type external level-2 ! metric-type : internal (défaut) ou external ! level-1, level-2, ou level-1-2
match route-type fait référence au type de route dans OSPF
(internal, external, nssa-external). Elle n'est disponible que quand la source est OSPF.
Ne pas confondre avec match ip route-source ou match interface.
Seed metric fixe. La métrique ne change pas en traversant le domaine OSPF. Tous les routeurs voient la même métrique E2 quelle que soit leur distance à l'ASBR.
LSA : Type 5 ou Type 7 (NSSA)
Sélection : Si deux ASBR ont la même métrique E2, le choix est fait sur le coût interne OSPF jusqu'à l'ASBR — mais uniquement comme tie-breaker.
Métrique cumulative = seed metric + coût interne OSPF jusqu'à l'ASBR. Reflète le vrai coût end-to-end.
Recommandé quand plusieurs ASBR redistribuent les mêmes préfixes — la sélection est déterministe basée sur le coût total.
Préférence : E1 est toujours préféré sur E2 pour le même préfixe.
Équivalent E2 mais dans une zone NSSA. Généré par un LSA Type 7 dans la NSSA, converti en Type 5 à l'ABR vers le reste du domaine. Métrique fixe.
Équivalent E1 dans une zone NSSA. Métrique cumulative. Converti en E1 (Type 5) à l'ABR. Préféré sur N2 pour le même préfixe.
! Dans la commande redistribute router ospf 1 redistribute eigrp 100 subnets metric-type 1 metric 20 ! Via route-map (plus fin, par préfixe) route-map RM-E1 permit 10 set metric-type type-1 set metric 20 router ospf 1 redistribute eigrp 100 subnets route-map RM-E1
show ip ospf database external ! Chercher : LS Type = AS External Link ! Metric Type = 2 (E2) ou 1 (E1) ! Metric = valeur ! Tag = valeur du tag show ip route ospf ! Routes E1 : O E1 10.1.1.0/24 ! Routes E2 : O E2 10.1.1.0/24 ! Routes N1 : O N1 10.1.1.0/24 ! Routes N2 : O N2 10.1.1.0/24
! Topologie : R1 (ASBR, coût=5) et R2 (ASBR, coût=50) redistribuent 10.1.1.0/24 ! Les deux avec metric=20 ! Avec E2 (défaut) : ! R3 voit : O E2 10.1.1.0/24 [110/20] via R1 ET via R2 ! Tie-break sur coût interne → R1 gagne (coût 5 vs 50) ! Mais si le coût interne est le même → choix arbitraire (RID) ! Avec E1 : ! Via R1 : métrique = 20 + 5 = 25 ! Via R2 : métrique = 20 + 50 = 70 ! R3 choisit R1 → déterministe et reflète le vrai coût ✓
redistribute ospf <pid>, ce match permet de sélectionner
uniquement certains types de routes OSPF — internes, externes, ou NSSA.
Particulièrement utile pour ne pas redistribuer les routes déjà externes
(éviter de propager des routes tier depuis un autre domaine).
| Valeur | Routes incluses | Cas d'usage |
|---|---|---|
| internal | Intra-area (O) + Inter-area (O IA) | Ne redistribuer que les routes natives OSPF |
| external 1 | Routes O E1 | Redistribuer uniquement les routes E1 du process OSPF source |
| external 2 | Routes O E2 | Redistribuer uniquement les routes E2 |
| nssa-external 1 | Routes O N1 | Redistribuer uniquement les routes NSSA E1 |
| nssa-external 2 | Routes O N2 | Redistribuer uniquement les routes NSSA E2 |
! Objectif : redistribuer dans EIGRP uniquement les routes OSPF ! natives (intra + inter-area), pas les routes déjà externes (E1/E2) route-map OSPF-INTERNAL-ONLY permit 10 match route-type internal set tag 200 set metric 10000 100 255 1 1500 router eigrp 100 redistribute ospf 1 route-map OSPF-INTERNAL-ONLY ! Résultat : les routes O et O IA sont redistribuées ! les routes O E1, O E2 ne le sont pas
! On peut cumuler plusieurs match route-type dans la MÊME clause route-map OSPF-SELECTIVE permit 10 match route-type internal external 1 set tag 200 ! → match si la route est internal OU external 1 ! → les external 2 tombent dans le deny implicite ! Alternative : deux clauses séparées route-map OSPF-SELECTIVE permit 10 match route-type internal set tag 200 route-map OSPF-SELECTIVE permit 20 match route-type external 1 set tag 200 ! external 2 et nssa-external → non redistribuées
show ip route ospf ! O = intra-area (internal) ! O IA = inter-area (internal) ! O E1 = external type 1 ! O E2 = external type 2 ! O N1 = nssa-external type 1 ! O N2 = nssa-external type 2 show ip ospf database ! Type 1 = Router LSA (intra-area) ! Type 2 = Network LSA (intra-area) ! Type 3 = Summary LSA (inter-area) ! Type 5 = AS External LSA (E1/E2) ! Type 7 = NSSA External LSA (N1/N2)
! Sur ASBR-1 et ASBR-2 — même configuration router ospf 1 redistribute eigrp 100 subnets metric-type 1 metric 20 tag 100 ! R3 calcule : ! Via ASBR-1 : 20 (seed) + coût-vers-ASBR-1 ! Via ASBR-2 : 20 (seed) + coût-vers-ASBR-2 ! → Toujours le chemin le moins coûteux, déterministe ✓
! Deux ASBR avec metric E2 = 20 ! R3 voit : O E2 10.1.1.0/24 [110/20] via ASBR-1 ET ASBR-2 ! ! Tie-break OSPF pour E2 (dans l'ordre) : ! 1. Coût interne OSPF vers l'ASBR (forwarding address si set) ! 2. RID de l'ASBR (plus petit RID préféré) ! ! → Résultat dépend de la topologie et du RID, pas du coût réel ! → Risque de sélection sous-optimale
Quand l'ASBR a une interface vers la source (EIGRP) qui est aussi dans OSPF, le LSA Type 5 contient une forwarding address non-nulle. Les routeurs OSPF routent vers cette adresse, pas vers l'ASBR lui-même.
show ip ospf database external 10.1.1.0 ! Chercher : Forwarding Address ! 0.0.0.0 → routez vers l'ASBR ! 192.168.1.1 → routez vers cette adresse (FA non-nulle) ! FA non-nulle si : ! L'interface OSPF de l'ASBR est dans le même sous-réseau que ! le next-hop EIGRP ET cette interface n'est pas passive dans OSPF ! Pour forcer FA = 0.0.0.0 : router ospf 1 no capability transit ! ou rendre l'interface passive dans OSPF
! Sur l'ASBR : vérifier que les routes sont dans la DB OSPF show ip ospf database external ! Doit lister les préfixes redistribués avec leur metric, type, tag show ip ospf database external 10.1.1.0 ! Détail d'un préfixe spécifique ! Si absent → redistribution ne fonctionne pas (seed metric ? subnets ?)
show ip route ospf ! Chercher O E1, O E2, O N1, O N2 ! Si absent sur un routeur distant : ! → Zone stub ? (Type 5 bloqué) ! → distribute-list ou area filter-list ? ! → Forwarding address injoignable ? show ip route 10.1.1.0 255.255.255.0 ! Vérifier AD, metric, next-hop, tag
show ip ospf database external | include Tag ! Vérifier que le tag est bien présent show route-map ! Vérifier les compteurs de match/set ! Si policy matches = 0 → aucune route n'a traversé la route-map
! Activer le debug (très verbeux — usage lab uniquement) debug ip ospf redistribute ! Montre les préfixes acceptés/refusés à la redistribution ! Alternativement : vérifier la RIB source EIGRP show ip eigrp topology ! Les routes doivent être en état Passive (P) pour être redistribuées ! Vérifier la config effective show running-config | section router ospf
Router# show ip ospf database external OSPF Router with ID (1.1.1.1) (Process ID 1) Type-5 AS External Link States LS age: 42 Options: (No TOS-capability, DC) LS Type: AS External Link Link State ID: 10.1.1.0 ← préfixe redistribué Advertising Router: 2.2.2.2 ← RID de l'ASBR Network Mask: /24 Metric Type: 2 (Larger than any link state path) ← E2 Metric: 20 ← seed metric Forward Address: 0.0.0.0 ← FA nulle = routez vers l'ASBR External Route Tag: 100 ← tag anti-loop
Sans subnets, OSPF ne redistribue que les réseaux classful. 10.1.1.0/24 dans la classe A n'est pas redistribué. Aucun message d'erreur. La commande show ip ospf database external sera vide ou n'affichera que les /8, /16, /24 classful. Toujours vérifier.
Deux ASBR redistribuant le même préfixe en E2 avec la même métrique. Si le coût interne vers les deux ASBR est aussi identique, OSPF utilise le RID le plus bas comme tie-breaker. En exam, la question peut demander "quel ASBR sera sélectionné" — répondre avec le plus petit RID (pas le plus grand, contrairement à ce qu'on pense parfois).
Si la Forwarding Address dans le LSA Type 5 est une adresse qui n'est pas dans la table de routage des routeurs OSPF, la route externe sera installée mais inaccessible (next-hop unreachable). Toujours vérifier la FA avec show ip ospf database external et s'assurer qu'elle est joignable ou forcer FA=0.0.0.0.
Les zones STUB et TOTALLY STUB bloquent les LSA Type 5. Les routeurs dans ces zones ne voient jamais les routes redistribuées. Si un routeur dans une stub area doit atteindre les routes externes, il utilise la route par défaut injectée par l'ABR. Ne pas tenter de redistribuer dans OSPF depuis un routeur dans une stub area — cela n'est pas permis (un ASBR ne peut pas être dans une stub area).
Quand deux process OSPF se redistribuent mutuellement (ospf 1 ↔ ospf 2), sans match internal, les routes déjà externes (E1/E2) du process 2 sont redistribuées dans le process 1 et vice-versa. Ces routes re-redistribuées créent des routes externes avec une métrique croissante — potentiellement une boucle ou une convergence infinie. Toujours utiliser match internal ou des tags.
Dans une NSSA avec plusieurs ABR, un seul ABR fait la traduction LSA Type 7 → Type 5 : celui avec le RID le plus élevé. Si cet ABR tombe, un autre prend le relai. En exam, si la question demande "quel ABR convertit le LSA Type 7", répondre le RID le plus haut (contrairement à la sélection DR/BDR).
La commande match route-type (internal, external 1, external 2…) n'est interprétée que quand la route-map est appliquée à redistribute ospf. Utilisée sur un autre redistribute (EIGRP, BGP…), elle ne matche rien — toutes les routes passent si la clause est permit, ou aucune si deny.
Contrairement à EIGRP ou IS-IS où redistribute ospf prend toute la RIB OSPF, sous BGP le comportement par défaut est équivalent à match internal — seules les routes intra-area et inter-area sont redistribuées. Les routes E1 et E2 sont silencieusement ignorées. Pour les inclure, il faut écrire explicitement : redistribute ospf 1 match internal external 1 external 2.
subnets, seules les routes classful sont redistribuées (/8, /16, /24 exactement). Tous les sous-réseaux sont ignorés silencieusement. Avec subnets, tous les préfixes sont redistribués.O E2 [110/20].match internal dans la redistribution : redistribute ospf 1 subnets match internal. Ou utiliser des tags : tagger les routes redistribuées et les filtrer avec une route-map deny à l'autre ASBR.