In questo documento vengono descritti i concetti e il problema associato all'indirizzo di inoltro OSPF (Open Shortest Path First). Per ulteriori informazioni, vedere Perché alcune route OSPF sono presenti nel database ma non nella tabella di routing? per ulteriori informazioni sulla risoluzione dei problemi relativi a OSPF.
Il problema illustrato in questo documento è osservabile solo con le versioni del software Cisco IOS® precedenti alla 12.1(3). Il comportamento della ridistribuzione è cambiato a partire dal software Cisco IOS versione 12.1(3). Per ulteriori informazioni, fare riferimento all'ID bug Cisco CSCdp72526 (solo utenti registrati). Con questo bug, vengono elencate le versioni del software Cisco IOS interessate e le versioni corrette. Fare riferimento anche alla sezione Ridistribuzione di reti connesse in OSPF in cui viene spiegata la modifica del comportamento di Cisco IOS.
Questo documento è utile per conoscere i seguenti argomenti:
Routing IP generale.
Concetti e termini del protocollo di routing OSPF.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
Cisco 2503 router
Software Cisco IOS® versione 12.2(24a) in esecuzione su tutti i router
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.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Il concetto di indirizzo di inoltro OSPF è stato introdotto per evitare hop aggiuntivi quando il traffico viene instradato a un sistema autonomo esterno (AS), come mostrato nella figura.
Nella figura, il dominio OSPF contiene due router che si connettono al dominio esterno. Tuttavia, solo il router 1 scambia le informazioni di routing con il router 100. Il router 1 ridistribuisce le informazioni apprese dal router 100 in OSPF e le annuncia al resto del dominio OSPF. In questo modo, il router 1 diventa l'hop successivo (o indirizzo di inoltro) per le informazioni che ridistribuisce al dominio OSPF. Quando il router 2 riceve un pacchetto dal dominio OSPF destinato a un indirizzo nel dominio esterno, inoltra il pacchetto al router 1. Il router 1 lo inoltra quindi al router 100. Il concetto dell'indirizzo di inoltro consente di evitare questo hop aggiuntivo poiché consente al router 1 di specificare l'indirizzo IP di un altro router come indirizzo di inoltro. Nella figura, il router 1 può specificare il router 100 come indirizzo di inoltro per le informazioni esterne che il router 1 ridistribuisce nel dominio OSPF. Quando il router 2 riceve un pacchetto dal dominio OSPF destinato a un indirizzo nel dominio esterno, inoltra il pacchetto al router 100. Il risultato è che l'hop aggiuntivo viene evitato tramite il router 1.
Il valore dell'indirizzo di inoltro specificato dall'ASBR (Independent System Boundary Router) (router 1 nella figura precedente) può essere 0.0.0.0 o diverso da zero. L'indirizzo 0.0.0.0 indica che il router di origine (ASBR) è l'hop successivo. L'indirizzo di inoltro è determinato dalle seguenti condizioni:
L'indirizzo di inoltro è impostato su 0.0.0.0 se l'ASBR ridistribuisce le route e OSPF non è abilitato sull'interfaccia dell'hop successivo per tali route. Nella figura, ciò è vero se il router 1 non ha un protocollo OSPF abilitato sull'interfaccia Ethernet.
Queste condizioni impostano il campo dell'indirizzo di inoltro su un indirizzo diverso da zero:
OSPF è abilitato sull'interfaccia dell'hop successivo e
L'interfaccia hop successivo di ASBR è non passiva in OSPF AND
L'interfaccia dell'hop successivo di ASBR non è un'interfaccia AND point-to-point
L'interfaccia hop successivo di ASBR non è un AND point-to-multipoint
L'indirizzo dell'interfaccia dell'hop successivo di ASBR è compreso nell'intervallo di rete specificato nel comando router ospf.
Qualsiasi altra condizione oltre a queste, imposta l'indirizzo di inoltro su 0.0.0.0.
Per informazioni sull'impostazione dell'indirizzo di inoltro e sugli effetti sulla selezione del percorso, vedere Effetti dell'indirizzo di inoltro sulla selezione del percorso LSA di tipo 5.
Il router R2513, che esegue solo RIP (e può essere connesso a una rete solo RIP), viene aggiunto alla rete Token Ring nella figura. Quando le route apprese da R2513 vengono ridistribuite in OSPF dall'ASBR (R2515), alcune di esse non vengono installate nella tabella di routing di alcuni router. Le informazioni di configurazione appropriate per ciascuno dei router sono riportate in queste tabelle.
hostname R2504 |
---|
interface Serial0 ip address 1.1.1.2 255.255.255.0 interface TokenRing0 ip address 3.3.4.2 255.255.255.0 router ospf 1 network 1.1.1.0 0.0.0.255 area 0 network 3.0.0.0 0.255.255.255 area 1 area 1 range 3.0.0.0 255.0.0.0 |
hostname R2507 |
---|
interface Serial0 ip address 1.1.1.1 255.255.255.0 interface Serial1 ip address 7.7.7.1 255.255.255.0 router ospf 1 network 1.1.1.1 0.0.0.0 area 0 default- information originate metric 20 ip route 0.0.0.0 0.0.0.0 Serial1 |
hostname R2513 |
---|
interface TokenRing0 ip address 3.3.4.4 255.255.255.0 interface ethernet 0 ip address 200.1.1.4 255.255.255.0 router rip network 3.0.0.0 network 200.1.1.0 |
hostname R2515 |
---|
interface TokenRing0 ip address 3.3.4.3 255.255.255.0 interface ethernet 0 ip address 3.44.66.3 255.255.255.0 interface ethernet 1 ip address 3.22.88.3 255.255.255.0 router ospf 1 redistribute rip metric 20 subnets network 0.0.0.0 255.255.255.255 area 1 router rip network 3.0.0.0 passive-interface ethernet 0 passive-interface ethernet 1 |
Le configurazioni nelle tabelle mostrano che R2515 ridistribuisce RIP in OSPF e che R2504 (il router di confine area [ABR]) crea una rete di riepilogo 3.0.0.0/8.
Le tabelle di routing per ciascun router abilitato per OSPF sono le seguenti:
R2507# show ip route Gateway of last resort is 0.0.0.0 to network 0.0.0.0 1.0.0.0/ 24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Serial0 3.0.0.0/ 8 is variably subnetted, 4 subnets, 2 masks O IA 3.0.0.0/ 8 [110/ 70] via 1.1.1.2, 00: 15: 37, Serial0 O E2 3.3.4.0/ 24 [110/ 20] via 1.1.1.2, 00: 06: 37, Serial0 O E2 3.22.88.0/ 24 [110/ 20] via 1.1.1.2, 00: 06: 37, Serial0 O E2 3.44.66.0/ 24 [110/ 20] via 1.1.1.2, 00: 06: 37, Serial0 7.0.0.0/ 24 is subnetted, 1 subnets C 7.7.7.0 is directly connected, Serial1 S* 0.0.0.0/ 0 is directly connected, Serial1 R2504# show ip route Gateway of last resort is 1.1.1.1 to network 0.0.0.0 1.0.0.0/ 24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Serial0 3.0.0.0/ 8 is variably subnetted, 4 subnets, 2 masks S 3.0.0.0/ 8 is directly connected, Null0 C 3.3.4.0/ 24 is directly connected, TokenRing0 O 3.22.88.0/ 24 [110/ 11117] via 3.3.4.3, 00: 15: 16, TokenRing0 O 3.44.66.0/ 24 [110/ 11117] via 3.3.4.3, 00: 15: 16, TokenRing0 O E2 200.1.1.0/ 24 [110/ 20] via 3.3.4.4, 00: 06: 16, TokenRing0 O* E2 0.0.0.0/ 0 [110/ 20] via 1.1.1.1, 00: 15: 16, Serial0 R2515# show ip route Gateway of last resort is 3.3.4.2 to network 0.0.0.0 1.0.0.0/ 24 is subnetted, 1 subnets O IA 1.1.1.0 [110/ 70] via 3.3.4.2, 00: 10: 28, TokenRing0 3.0.0.0/ 24 is subnetted, 3 subnets C 3.3.4.0 is directly connected, TokenRing0 R 200.1.1.0/ 24 [120/ 1] via 3.3.4.4, 00: 00: 10, TokenRing0 O* E2 0.0.0.0/ 0 [110/ 20] via 3.3.4.2, 00: 10: 28, TokenRing0
R2515 dispone di una route derivata da RIP (R) per la rete 200.1.1.0/24. R2515 è l'ASBR e ridistribuisce il protocollo RIP in OSPF. R2504 apprende la rete 200.1.1.0/24 da R2515 e la installa nella relativa tabella di routing come route OSPF esterna di tipo 2 (E2). Il problema è che R2507 non dispone della tabella di routing 200.1.1.0/24.
R2507 dispone di route esterne per le reti 3.3.4.0/24, 3.22.88.0/24 e 3.44.66.0/24, anche se tutte queste reti devono essere incluse nel riepilogo della versione 3.0.0.0/8.
Il motivo per cui queste route esterne vengono visualizzate è che l'ASBR, che ridistribuisce RIP in OSPF, ha RIP in esecuzione su queste tre subnet. Le subnet vengono quindi ridistribuite come route esterne in OSPF. Poiché queste subnet sono route esterne, non vengono riepilogate da ABR (R2504). Le route OSPF esterne possono essere riepilogate solo dall'ASBR. In questo caso, R2515. ABR riepiloga solo le route OSPF interne dall'area 1 all'area 0.
Nota: con la correzione dell'ID bug Cisco CSCdp72526 (solo utenti registrati), OSPF non genera un annuncio link-state type-5 (LSA) di una rete esterna sovrapposta. R2507 dispone solo di una route di inoltro di riepilogo 3.0.0.0/8. Quindi, R2507 installa 200.1.1.0/24 come indirizzo di inoltro ed è raggiungibile tramite la route di inoltro 3.0.0.0/8. Ciò è conforme alla RFC 2328 .
Questo output mostra l'LSA esterno per la rete 200.1.1.0/24 nel database OSPF di R2507:
R2507# show ip ospf data external 200.1.1.0 OSPF Router with ID (7.7.7.1) (Process ID 1) Type- 5 AS External Link States LS age: 72 Options: (No TOS- capability, DC) LS Type: AS External Link Link State ID: 200.1.1.0 (External Network Number ) Advertising Router: 3.44.66.3 LS Seq Number: 80000001 Checksum: 0xF161 Length: 36 Network Mask: /24 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 20 Forward Address: 3.3.4.4 External Route Tag: 0
OSPF consente all'ASBR di specificare un altro router come indirizzo di inoltro alle route esterne. In questo caso, l'ASBR (R2515) ha specificato 3.3.4.4 come indirizzo di inoltro per la rete esterna 200.1.1.0.
La RFC 2328 , sezione 16.4 (Calculating AS external route), afferma:
"Se l'indirizzo di inoltro è diverso da zero, cercarlo nella tabella di routing. La voce della tabella di routing corrispondente deve specificare un percorso intra-area o inter-area; se tale percorso non esiste, non eseguire alcuna operazione con LSA e considerare il percorso successivo nell'elenco."
Nell'esempio, il percorso all'indirizzo di inoltro 3.3.4.4 è mostrato di seguito:
R2507# show ip route 3.3.4.4 Routing entry for 3.3.4.0/ 24 Known via "ospf 1", distance 110, metric 20,type extern 2, forward metric 70 Redistributing via ospf 1 Last update from 1.1.1.2 on Serial0, 00: 00: 40 ago Routing Descriptor Blocks: * 1.1.1.2, from 3.44.66.3, 00: 00: 40 ago, via Serial0 Route metric is 20, traffic share count is 1
L'indirizzo di inoltro della versione 3.3.4.4 corrisponde alla route esterna 3.3.4.0/24 anziché alla route di riepilogo tra aree 3.0.0.0/8 a causa della regola di corrispondenza più lunga. Poiché il router non dispone di una route OSPF interna per l'indirizzo di inoltro, non installa la route esterna 200.1.1.0/24 nella tabella di routing. L'utilizzo di un percorso esterno per raggiungere un altro percorso esterno può causare loop. Pertanto OSPF non lo consente.
Come è possibile garantire che l'indirizzo di inoltro diverso da zero esista nella tabella di routing come percorso intra-area o inter-area?
La prima soluzione non è riepilogare sulla ABR.
La seconda soluzione non è configurare alcun filtro LSA di tipo 3. Se le route di tipo 3 sono filtrate, l'indirizzo di inoltro visualizzato nell'output del comando show ip ospf database external non è raggiungibile. In questo modo la rete esterna non è raggiungibile. In questo caso, R2504. In questo modo, i router nell'area 0 hanno route tra aree (anziché route esterne) per tutte le subnet specifiche nelle altre aree.
Utilizzare questi comandi per rimuovere il riepilogo in ABR:
R2504(config)# router ospf 1 R2504(config- router)# no area 1 range 3.0.0.0 255.0.0.0
I risultati di questo comando nella tabella di routing di R2507 sono riportati di seguito:
R2507# show ip route Gateway of last resort is 0.0.0.0 to network 0.0.0.0 1.0.0.0/ 24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Serial0 3.0.0.0/ 24 is subnetted, 3 subnets O IA 3.3.4.0 [110/ 70] via 1.1.1.2, 00: 00: 48, Serial0 O IA 3.22.88.0 [110/ 80] via 1.1.1.2, 00: 00: 48, Serial0 O IA 3.44.66.0 [110/ 80] via 1.1.1.2, 00: 00: 48, Serial0 7.0.0.0/ 24 is subnetted, 1 subnets C 7.7.7.0 is directly connected, Serial1 O E2 200.1.1.0/ 24 [110/ 20] via 1.1.1.2, 00: 00: 48, Serial0 S* 0.0.0.0/ 0 is directly connected, Serial1 R2507# show ip route 3.3.4.4 Routing entry for 3.3.4.0/24 Known via "ospf 1", distance 110, metric 70, type inter area Last update from 1.1.1.2 on Serial1, 00:03:52 ago Routing Descriptor Blocks: * 1.1.1.2, from 3.3.4.2, 00:03:52 ago, via Serial1 Route metric is 74, traffic share count is 1
Dall'output, si può vedere che l'indirizzo 3.3.4.4 è raggiungibile tramite un percorso tra aree alla rete 3.3.4.0/24 . Il router R2507 apprende il percorso verso questa rete tramite un LSA Type-5 e un LSA Type-3, dopo la rimozione del riepilogo su ABR R2504. Poiché OSPF preferisce una route tra aree su una route esterna alla stessa rete, la installa come route tra aree. Poiché R2507 dispone ora di un percorso tra aree all'indirizzo di inoltro 3.3.4,4, anche la rete esterna 200.1.1.0/24 viene installata nella relativa tabella di routing.
Nota: se si utilizza NSSA (Not So Stubby Area) e il filtro LSA di tipo 3 viene applicato a NSSA ABR, esiste lo stesso problema Indirizzo di inoltro non raggiungibile.
Un'altra soluzione consiste nell'impedire che la subnet 3.3.4.0 venga ridistribuita in OSPF come route esterna, poiché OSPF viene eseguito su tale subnet. Questi comandi di configurazione in ASBR (R2515) creano una route-map. Questa opzione viene utilizzata dal comando redistribute per consentire solo la ridistribuzione di network 200.1.1.0/24 in OSPF. L'ABR (R2504) riassume ancora le route OSPF interne dall'area 1 all'area 0.
R2515# configure terminal R2515(config)# router ospf 1 R2515(config-router)# redistribute rip metric 20 subnets route-map rip_to_ospf_filter R2515(config-router)# exit R2515(config)# access-list 28 permit 200.1.1.0 0.0.0.255 R2515(config)# route-map rip_to_ospf_filter permit 10 R2515(config-route-map)# match ip address 28
I risultati di questo comando nella tabella di routing di R2507 sono riportati di seguito:
R2507# show ip route Gateway of last resort is 0.0.0.0 to network 0.0.0.0 1.0.0.0/ 24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Serial0 O IA 3.0.0.0/ 8 [110/ 70] via 1.1.1.2, 00: 07: 05, Serial0 7.0.0.0/ 24 is subnetted, 1 subnets C 7.7.7.0 is directly connected, Ethernet0 O E2 200.1.1.0/ 24 [110/ 20] via 1.1.1.2, 00: 00: 21, Serial0 S* 0.0.0.0/ 0 is directly connected, Ethernet0
L'unico percorso esterno nella tabella di routing è 200.1.1.0/24. Questa rete è inclusa nella tabella di routing perché l'indirizzo di inoltro di questa rete esterna (3.3.4.1) è incluso nel percorso di riepilogo 3.0.0.0/8, che è un percorso interarea.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
29-Dec-2005 |
Versione iniziale |