In questo documento viene descritto il comportamento della ridistribuzione di Open Shortest Path First (OSPF) in Border Gateway Protocol (BGP) sui router Cisco.
Cisco raccomanda la conoscenza dei tipi di route OSPF, dei concetti fondamentali BGP e della ridistribuzione delle route prima di usare questo documento.
Il documento può essere consultato per tutte le versioni software o hardware.
Nota: Gli esempi riportati in questo documento utilizzano la sintassi dei comandi del software Cisco IOS.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Questa nota tecnica spiega il comportamento della ridistribuzione da OSPF a BGP sui router Cisco. La RFC 1403 documenta le linee guida cronologiche per l'interazione tra OSPF e BGP.
Esistono diversi tipi di route OSPF:
Intra-Area: in una rete OSPF multiarea, le route che hanno origine all'interno di un'area sono note ai router della stessa area come route Intra-Area. Queste route sono contrassegnate come O nell'output del comando show ip route.
Inter-Area: quando una route attraversa un router ABR (Area Border Router) OSPF, è nota come route inter-area OSPF. Queste route sono contrassegnate come O IA nell'output del comando show ip route.
Le route intra e inter-area sono anche denominate route interne OSPF, in quanto rappresentano prefissi originati nel dominio OSPF anziché route ridistribuite in OSPF.
Tipo esterno 2 o Tipo esterno 1: le route ridistribuite in OSPF, ad esempio Connected, Static o other Routing Protocol, sono note come Tipo esterno 2 o Tipo esterno 1. Queste route sono contrassegnate come O E2 o O E1 nell'output del comando show ip route.
NSSA External Type-2 o NSSA External Type-1: quando un'area è configurata come Not-So-Stub Area (NSSA) e le route vengono ridistribuite in OSPF, le route sono note come NSSA External Type-2 o NSSA External Type-1. Queste route sono contrassegnate come O N2 o O N1 nell'output del comando show ip route.
La spiegazione delle differenze tra External e NSSA Type 2 o 1 esula dall'ambito di questo documento. Per ulteriori informazioni, consultare la guida alla progettazione di OSPF.
Per impostazione predefinita, non viene ridistribuita alcuna route da OSPF a BGP. È necessario configurare la ridistribuzione. È possibile utilizzare il comando route-map per filtrare le route durante la ridistribuzione da OSPF a BGP. Per selezionare i tipi di route in modo esplicito, utilizzare l'opzione interna, corrispondenza esterna applicabile o corrispondenza nssa-esterna. Senza opzioni di corrispondenza, per impostazione predefinita ridistribuisci ospf ridistribuisce le route interne OSPF.
In questo documento vengono illustrati cinque casi primari di ridistribuzione da OSPF a BGP. La topologia A si applica ai primi quattro casi. La topologia B si applica al caso di route esterna NSSA descritto nella sezione Ridistribuire le route esterne NSSA OSPF in BGP.
Ridistribuzione da OSPF a topologia BGP A
Se si configura la ridistribuzione di OSPF in BGP senza parole chiave, per impostazione predefinita solo le route intra-area e inter-area OSPF vengono ridistribuite in BGP. Per ridistribuire le route intra-area e inter-area dell'OSPF, è possibile utilizzare la parola chiave internal con il comando redistribute in bgp del router.
Questa configurazione del router B (RTB) ridistribuisce i prefissi interni OSPF 10.2.2.0/24, 10.108.1.0/24 e 10.108.2.0/24 in BGP:
| RTB |
|---|
hostname RTB ! |
Il router B ridistribuisce solo le route interne OSPF:
RTB#show ip bgp BGP table version is 12, local router ID is 10.3.3.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.2.2.0/24 0.0.0.0 0 32768 ? *> 10.108.1.0/24 10.2.2.2 3 32768 ? *> 10.108.2.0/24 10.2.2.2 2 32768 ? RTB#
Il router C apprende queste route dal protocollo BGP:
RTC#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks B 10.2.2.0/24 [20/0] via 10.3.3.1, 00:07:07 C 10.3.3.0/24 is directly connected, GigabitEthernet0/0 L 10.3.3.2/32 is directly connected, GigabitEthernet0/0 B 10.108.1.0/24 [20/3] via 10.3.3.1, 00:07:07 B 10.108.2.0/24 [20/2] via 10.3.3.1, 00:07:07 RTC# RTC#show ip bgp BGP table version is 8, local router ID is 10.3.3.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.2.2.0/24 10.3.3.1 0 0 100 ? *> 10.108.1.0/24 10.3.3.1 3 0 100 ? *> 10.108.2.0/24 10.3.3.1 2 0 100 ? RTC#
Per ridistribuire le route esterne OSPF in BGP, utilizzare la parola chiave external con il comando redistribute in bgp del router. La parola chiave external consente di scegliere tra tre opzioni:
Ridistribuisci tipo esterno 1 e tipo esterno 2 (impostazione predefinita)
Ridistribuisci tipo 1
Ridistribuisci tipo 2
Immettere i comandi nella modalità di configurazione descritta di seguito:
RTB(config)#router bgp 100 RTB(config-router)#redistribute ospf 1 match external
Questa configurazione del router B ridistribuisce solo le route esterne OSPF, incluse le route di tipo 1 e 2:
| RTB |
|---|
|
Il router B ridistribuisce solo le route esterne OSPF:
RTB#show ip bgp BGP table version is 25, local router ID is 10.3.3.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 10.2.2.2 20 32768 ? *> 192.168.2.0 10.2.2.2 23 32768 ? RTB#
Il router C viene a conoscenza delle seguenti due route esterne OSPF da BGP:
RTC#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.3.3.0/24 is directly connected, GigabitEthernet0/0 L 10.3.3.2/32 is directly connected, GigabitEthernet0/0 B 192.168.1.0/24 [20/20] via 10.3.3.1, 00:02:16 B 192.168.2.0/24 [20/23] via 10.3.3.1, 00:02:16
RTC#show ip bgp BGP table version is 21, local router ID is 10.3.3.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 10.3.3.1 20 0 100 ? *> 192.168.2.0 10.3.3.1 23 0 100 ? RTC#
Per ridistribuire solo le route OSPF esterne di tipo 1, immettere questo comando in router bgp 100 sul router B:
RTB(config)#router bgp 100RTB(config-router)#redistribute ospf 1 match external 1
Nella configurazione precedente, la tabella BGP del router B (RTB) mostra che il router B ridistribuisce solo le route esterne di tipo 1 in BGP e tutte le altre route OSPF non vengono ridistribuite in BGP:
RTB#show ip bgp BGP table version is 28, local router ID is 10.3.3.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.2.0 10.2.2.2 23 32768 ? RTB#
Per ridistribuire solo le route OSPF esterne di tipo 2, immettere questo comando in router bgp 100 sul router B:
RTB(config)#router bgp 100RTB(config-router)#redistribute ospf 1 match external 2
In questo caso, le route interne OSPF e le route esterne OSPF di tipo 1 e tipo 2 vengono ridistribuite in BGP con le opzioni di corrispondenza interna ed esterna, come mostrato nella seguente configurazione del router B:
| RTB |
|---|
|
Anche in questo caso, nella configurazione l'opzione External viene sostituita con external 1 external 2. Si tratta di un comportamento normale a meno che non si specifichino le route esterne specifiche da ridistribuire in BGP. Dopo la modifica della configurazione, il router B ridistribuisce le route interne ed esterne selezionate e il router C le apprende tramite BGP:
RTB#show ip bgp BGP table version is 6, local router ID is 10.3.3.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.2.2.0/24 0.0.0.0 0 32768 ? *> 10.108.1.0/24 10.2.2.2 3 32768 ? *> 10.108.2.0/24 10.2.2.2 2 32768 ? *> 192.168.1.0 10.2.2.2 20 32768 ? *> 192.168.2.0 10.2.2.2 23 32768 ? RTB#RTC#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks B 10.2.2.0/24 [20/0] via 10.3.3.1, 00:03:27 C 10.3.3.0/24 is directly connected, GigabitEthernet0/0 L 10.3.3.2/32 is directly connected, GigabitEthernet0/0 B 10.108.1.0/24 [20/3] via 10.3.3.1, 00:03:27 B 10.108.2.0/24 [20/2] via 10.3.3.1, 00:03:27 B 192.168.1.0/24 [20/20] via 10.3.3.1, 00:03:27 B 192.168.2.0/24 [20/23] via 10.3.3.1, 00:03:27 RTC#
Si tratta di un caso speciale in cui solo le route NSSA vengono ridistribuite in BGP. Questo caso è molto simile al caso descritto nella sezione Ridistribuisci solo route esterne OSPF (tipo 1 e 2) in route BGP. L'unica differenza consiste nel fatto che OSPF ora corrisponde a route esterne NSSA anziché a semplici route esterne. La tabella di routing del router B mostra le seguenti route esterne NSSA OSPF:
RTB#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks C 10.2.2.0/24 is directly connected, GigabitEthernet0/1 L 10.2.2.3/32 is directly connected, GigabitEthernet0/1 C 10.3.3.0/24 is directly connected, GigabitEthernet0/0 L 10.3.3.1/32 is directly connected, GigabitEthernet0/0 O IA 10.108.1.0/24 [110/3] via 10.2.2.2, 00:05:00, GigabitEthernet0/1 O 10.108.2.0/24 [110/2] via 10.2.2.2, 00:05:00, GigabitEthernet0/1 O N2 192.168.1.0/24 [110/20] via 10.2.2.1, 00:10:14, GigabitEthernet0/1 O N1 192.168.2.0/24 [110/22] via 10.2.2.2, 00:03:43, GigabitEthernet0/1 RTB#
Questo diagramma di rete viene utilizzato in questo caso:
Ridistribuzione da OSPF a BGP Topology B
Il diagramma di rete mostra che il router B riceve entrambe le route OSPF N1 e N2. Il comportamento predefinito prevede la ridistribuzione di entrambe le route N1 e N2 se viene utilizzata solo la parola chiave nssa-external. Questa configurazione consente a RTB di ridistribuire le route OSPF N2 (192.168.1.0/24) e OSPF N1 (192.168.2.0/24) in BGP:
| RTB |
|---|
|
Dopo la modifica della configurazione sul router B, ridistribuisce le route esterne NSSA OSPF e il router C apprende le route esterne NSSA OSPF da BGP:
RTB#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks C 10.2.2.0/24 is directly connected, GigabitEthernet0/1 L 10.2.2.3/32 is directly connected, GigabitEthernet0/1 C 10.3.3.0/24 is directly connected, GigabitEthernet0/0 L 10.3.3.1/32 is directly connected, GigabitEthernet0/0 O IA 10.108.1.0/24 [110/3] via 10.2.2.2, 00:09:40, GigabitEthernet0/1 O 10.108.2.0/24 [110/2] via 10.2.2.2, 00:09:40, GigabitEthernet0/1 O N2 192.168.1.0/24 [110/20] via 10.2.2.1, 00:14:54, GigabitEthernet0/1 O N1 192.168.2.0/24 [110/22] via 10.2.2.2, 00:08:23, GigabitEthernet0/1 RTB# RTB#show ip bgp BGP table version is 17, local router ID is 10.3.3.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 10.2.2.1 20 32768 ? *> 192.168.2.0 10.2.2.2 22 32768 ? RTB#RTC#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.3.3.0/24 is directly connected, GigabitEthernet0/0 L 10.3.3.2/32 is directly connected, GigabitEthernet0/0 B 192.168.1.0/24 [20/20] via 10.3.3.1, 00:01:29 B 192.168.2.0/24 [20/22] via 10.3.3.1, 00:01:29 RTC# RTC#show ip bgp BGP table version is 41, local router ID is 10.3.3.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 10.3.3.1 20 0 100 ? *> 192.168.2.0 10.3.3.1 22 0 100 ? RTC#
Come per le route esterne OSPF, per ridistribuire solo le route OSPF N1, immettere questo comando in router BGP 100 sul router B:
RTB(config)#router bgp 100
RTB(config-router)#redistribute ospf 1 match nssa-external 1
!--- This redistributes only OSPF NSSA-external Type-1 routes into BGP.
Per ridistribuire solo le route OSPF N2, immettere questo comando in router bgp 100 sul router B:
RTB(config)#router bgp 100redistribute ospf 1 match nssa-external 2
RTB(config-router)#
!--- This redistributes only OSPF NSSA-external Type-2 routes into BGP.
È importante capire in che modo le successive modifiche alla configurazione alterano la configurazione. Un nuovo comando con l'opzione match non sovrascrive il precedente, ma viene aggiunto ad esso. L'esempio successivo spiega come la sequenza di comandi di configurazione può influire sulla ridistribuzione:
R4#configure terminal R4(config)#router bgp 100 R4(config-router)#redistribute ospf 1 match internal R4(config-router)#^Z !--- Initially, you redistribute internal OSPF routes into BGP 100. R4#show run | include redistribute ospf redistribute ospf 1 match internal R4#configure terminal R4(config)#router bgp 100 R4(config-router)#redistribute ospf 1 match external R4(config-router)#^Z !--- With this second command, you tell BGP to also redistribute external OSPF routes. R4#show run | include redistribute ospf redistribute ospf 1 match internal external 1 external 2 R4# R4#configure terminal R4(config)#router bgp 100 R4(config-router)#no redistribute ospf 1 match external 2 R4(config-router)#^Z !--- With this no command, you only disable the redistribution of external type 2 into BGP.
!--- All other types of routes previously configured remain. R4#show run | include redistribute ospf redistribute ospf 1 match internal external 1 !--- As you can see, internal and external type 1 remain. R4#configure terminal R4(config)#router bgp 100 R4(config-router)#no redistribute ospf 1 match internal external 1 R4(config-router)#^Z !--- This no command removes all explicit match options but does not disable redistribution
!--- The remaining redistribute ospf 1 command uses the default behavior and redistributes
!--- internal routes only. R4#show run | include redistribute ospf redistribute ospf 1 R4#configure terminal R4(config)#router bgp 100 R4(config-router)#no redistribute ospf 1 !--- Use no redistribute ospf <process> command in order to disable OSPF-to-BGP redistribution completely. R4(config-router)# ^Z R4#show run | include redistribute ospf R4#
La ridistribuzione delle route propaga le route apprese tramite un protocollo a un altro protocollo di routing. Quando BGP viene ridistribuito in un IGP, per impostazione predefinita vengono ridistribuite solo le route apprese da eBGP. Le route iBGP apprese e note sul router non vengono introdotte nell'IGP per impedire la creazione di loop di routing.
Per impostazione predefinita, la ridistribuzione iBGP in IGP è disabilitata. Eseguire il comando bgp redistribute-internal per abilitare la ridistribuzione delle route iBGP in un protocollo IGP. È necessario adottare precauzioni per ridistribuire route specifiche con l'utilizzo di route map in IGP.
Di seguito è riportato un esempio di configurazione per la ridistribuzione delle route iBGP in OSPF:
Router(config)#router bgp 65345 Router(config-router)#bgp redistribute-internal ! Router(config)#router ospf 100 Router(config-router)#redistribute bgp 65345 subnets
Attenzione: La ridistribuzione delle route iBGP in un IGP può creare loop di routing all'interno del sistema autonomo. Ridistribuisce solo prefissi approvati in modo esplicito con una mappa route.
Per ridistribuire una route predefinita appresa da OSPF in BGP, consentire solo 0.0.0.0/0 in una mappa delle route, applicare la mappa delle route alla ridistribuzione OSPF e abilitare la ridistribuzione della route predefinita con origine delle informazioni predefinite:
! route-map map_default_only permit 10 match ip address acl_default_only ! ip access-list standard acl_default_only permit 0.0.0.0 ! router bgp 64601 redistribute ospf 1 route-map map_default_only default-information originate !
!--- Distributes the default route in bgp
Il comando network 0.0.0.0 è un metodo di origine separato e richiede una route predefinita esatta nella tabella di routing:
!
router bgp 64601
network 0.0.0.0
!
Dopo la configurazione, verificare la route predefinita con show ip bgp 0.0.0.0 e l'annuncio con show ip bgp neighbors <neighbor-address> advertising-route.
Nota: Normalmente BGP annuncia la nuova route senza reimpostare la sessione. Per richiedere uno scambio di aggiornamenti immediato e senza interruzioni, eseguire il comando clear ip bgp * soft. Questo comando mantiene le sessioni BGP stabilite.
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
3.0 |
08-Sep-2026
|
Nuova certificazione - SEO e formattazione aggiornati |
2.0 |
22-Apr-2025
|
Titoli, intestazioni e formattazione. |
1.0 |
11-Oct-2001
|
Versione iniziale |