La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento viene descritto il concetto di indirizzo di inoltro OSPF (Open Shortest Path First) sui dispositivi IOS-XR e IOS. Viene confrontato il comportamento OSPF tra i dispositivi IOS-XR e IOS.
Cisco raccomanda la conoscenza di base del protocollo OSPF.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
In questa sezione viene descritto il concetto di indirizzo di inoltro in OSPF. Se si ha già familiarità con questo argomento, è possibile passare alla sezione successiva.
Quando un router OSPF ridistribuisce una route da un altro protocollo di origine in OSPF come E1 o E2, può impostare un indirizzo di inoltro in quel particolare LSA (Link State Advertisement) esterno. Il protocollo OSPF deve soddisfare queste condizioni per poter impostare l'attributo specifico. L'indirizzo di inoltro può essere popolato (diverso da zero) o non popolato (tutti gli zeri).
Tutte le condizioni seguenti devono impostare il campo dell'indirizzo di inoltro su un indirizzo diverso da zero:
Quando l'indirizzo di inoltro è impostato su tutti gli zeri (0.0.0.0), il router deve ricorrere a quel particolare nodo nella topologia OSPF per instradare correttamente il traffico verso la destinazione. Una grande differenza con OSPF come protocollo di routing dello stato del collegamento rispetto ai protocolli del vettore di distanza è che lo stato del collegamento consente di avere una vista completa della topologia in quell'area particolare, il router può calcolare il percorso più breve a un nodo nella topologia con una vista complessiva di tutti i dispositivi e dei relativi costi. Non si dirige necessariamente verso un prefisso, ma verso un nodo, il che è una grande differenza.
Quando l'indirizzo di inoltro è impostato su un valore diverso da zero, il router controlla il percorso più breve del nodo connesso all'indirizzo di inoltro.
Per ulteriori chiarimenti, la topologia viene riesaminata in questa sezione:
Immagine 1
Nell'immagine 1, il protocollo EIGRP (Enhanced Interior Gateway Routing Protocol) viene eseguito tra R2 e R3 sul segmento condiviso 192.168.1.0/24. Anche R1 è collegato al segmento condiviso 192.168.1.0/24, sebbene non esista un protocollo EIGRP. R2 è configurato per ridistribuire 172.16.3.3/32 da EIGRP a OSPF come route E2 esterna. Il software del router XR5 è IOS-XR.
In questa sezione viene illustrata l'importanza dell'indirizzo di inoltro. Si supponga che il traffico vada verso 172.16.3.3/32 proviene dalla rete cloud, arriva sul router Transit_Router e viene inoltrato in base alla tabella di routing.
Controllare la tabella di routing di Transit_Router per individuare il prefisso 172.16.3.3/32.
Transit_Router#show ip route 172.16.3.3
Routing entry for 172.16.3.3/32 Known via "ospf 1", distance 110, metric 20, type extern 2, forward metric 2 Last update from 192.168.70.1 on GigabitEthernet1, 00:00:04 ago Routing Descriptor Blocks: * 192.168.70.1, from 2.2.2.2, 00:00:04 ago, via GigabitEthernet1 <- You see the prefix is from advertising router with router-id 2.2.2.2 Route metric is 20, traffic share count is 1 Transit_Router#
L'hop successivo è 192.168.70.1 e viene indirizzato a R1. Poiché R2 viene ridistribuito dalla rete 172.16.3.3/32 in OSPF, si può supporre che sia necessario effettuare il routing verso R2 per raggiungere la destinazione 172.16.3.3/32.
È possibile eseguire traceroute da Transit_Router verso la versione 172.16.3.3/32.
Transit_Router#traceroute 172.16.3.3 timeout 1 Type escape sequence to abort. Tracing the route to 172.16.3.3 VRF info: (vrf in name/id, vrf out name/id) 1 192.168.70.1 7 msec 5 msec 8 msec <- R1 2 192.168.1.3 10 msec 11 msec 17 msec <- R3
Quando R1 riceve il traffico destinato a 172.16.3.3/32, viene in realtà indirizzato direttamente a R3. Eseguire show ip route su R1 per visualizzare la tabella di routing verso 172.16.3.3.
R1#show ip route 172.16.3.3 Routing entry for 172.16.3.3/32 Known via "ospf 1", distance 110, metric 20, type extern 2, forward metric 1 Last update from 192.168.1.3 on GigabitEthernet0/0, 02:04:54 ago Routing Descriptor Blocks: * 192.168.1.3, from 2.2.2.2, 02:04:54 ago, via GigabitEthernet0/0 <-- Next-hop goes directly towards R3 over the shared segment Route metric is 20, traffic share count is 1
A causa dell'indirizzo di inoltro, R1 ha un hop successivo di 192.168.1.3 che va verso R3, se non si dispone di alcun protocollo di routing tra R1 e R3. Verificare l'LSA esterno su transit_Router.
Transit_Router#show ip ospf database external 172.16.3.3 OSPF Router with ID (6.6.6.6) (Process ID 1) Type-5 AS External Link States LS age: 1641 Options: (No TOS-capability, DC, Upward) LS Type: AS External Link Link State ID: 172.16.3.3 (External Network Number ) Advertising Router: 2.2.2.2 LS Seq Number: 80000004 Checksum: 0x8299 Length: 36 Network Mask: /32 Metric Type: 2 (Larger than any link state path) MTID: 0 Metric: 20 Forward Address: 192.168.1.3 <-R3 interface towards the shared segment External Route Tag: 0
Come si può vedere, l'indirizzo di inoltro è popolato con un indirizzo IP di 192.168.1.3, il che significa che se si desidera indirizzare verso 172.16.3.3/32, è necessario eseguire una ricorsione verso 192.168.1.3. Ciò significa che quando R1 riceve pacchetti destinati a 172.16.3.3/32, ha anche un LSA Type-5 per 172.16.3.3/32 con un indirizzo di inoltro di 192.168.1.3 che è connesso direttamente all'interfaccia Gi0/0. Quindi, R1 instrada i pacchetti verso 192.168.1.3.
L'indirizzo di inoltro contribuisce a ridurre il routing non ottimale. Se l'indirizzo di inoltro non è stato impostato sull'LSA Type-5, è necessario indirizzare tutti i pacchetti destinati a 172.16.3.3 tramite l'ASBR che è R2.
Per verificarlo, è possibile ripristinare l'indirizzo di inoltro a 0.0.0.0 ed eseguire traceroute da Transit_Router.
Transit_Router#show ip ospf database external 172.16.3.3 OSPF Router with ID (6.6.6.6) (Process ID 1) Type-5 AS External Link States LS age: 14 Options: (No TOS-capability, DC, Upward) LS Type: AS External Link Link State ID: 172.16.3.3 (External Network Number ) Advertising Router: 2.2.2.2 LS Seq Number: 80000005 Checksum: 0x196F Length: 36 Network Mask: /32 Metric Type: 2 (Larger than any link state path) MTID: 0 Metric: 20 Forward Address: 0.0.0.0 <- Recurse towards the ASBR (RID 2.2.2.2) External Route Tag: 0 Transit_Router#
Come accennato, l'indirizzo di inoltro è impostato su 0.0.0.0. Ciò significa che è necessario inoltrare i pacchetti all'ASBR che è R2. Quando si esegue un traceroute da Transit_Router destinato a 172.16.3.3, il traffico segue il percorso verso ASBR R2.
La schermata può essere visualizzata qui:
Transit_Router#traceroute 172.16.3.3 Type escape sequence to abort. Tracing the route to 172.16.3.3 VRF info: (vrf in name/id, vrf out name/id) 1 192.168.70.1 17 msec 12 msec 3 msec <-R1 2 192.168.14.4 3 msec 18 msec 7 msec <-R4 3 192.168.24.2 15 msec 8 msec 5 msec <-R2 4 192.168.1.3 8 msec 11 msec 7 msec <-R3 Transit_Router#
In questa sezione viene descritta una differenza tra i dispositivi IOS e IOS-XR quando si conosce l'indirizzo di inoltro tramite un'altra origine.
In IOS, se nel database è presente una route esterna OSPF e l'indirizzo di inoltro è impostato, l'indirizzo di inoltro deve essere noto tramite una route inter area OSPF o intra area OSPF. Se l'indirizzo di inoltro non è noto tramite la route interna o tra aree OSPF, il router non installa la route OSPF esterna nella base di informazioni di routing (RIB).
Verificare cosa succede quando si configura l'indirizzo di inoltro in modo che sia noto tramite una route statica.
Immagine 2
Nella topologia image 2, R2 è configurato come punto di ridistribuzione tra EIGRP e OSPF. Il router ridistribuisce 172.16.3.3/32 da EIGRP nel dominio OSPF. È possibile controllare sia R4 che XR5 per verificare quali sono le differenze quando l'indirizzo di inoltro è noto da un'altra fonte. Di seguito è riportato il database OSPF su R4.
R4# show ip ospf database external 172.16.3.3
OSPF Router with ID (4.4.4.4) (Process ID 1) Type-5 AS External Link States LS age: 4 Options: (No TOS-capability, DC, Upward) LS Type: AS External Link Link State ID: 172.16.3.3 (External Network Number ) Advertising Router: 2.2.2.2 LS Seq Number: 80000002 Checksum: 0x8697 Length: 36 Network Mask: /32 Metric Type: 2 (Larger than any link state path) MTID: 0 Metric: 20 Forward Address: 192.168.1.3 External Route Tag: 0
Controlla come ti colleghi all'indirizzo di inoltro.
R4# show ip route 192.168.1.3 Routing entry for 192.168.1.0/24 Known via "ospf 1", distance 110, metric 2, type intra area <- Here you see it is know via OSPF intra area Last update from 192.168.24.2 on GigabitEthernet0/0, 00:00:23 ago Routing Descriptor Blocks: 192.168.24.2, from 1.1.1.1, 00:00:23 ago, via GigabitEthernet0/0 Route metric is 2, traffic share count is 1 * 192.168.14.1, from 1.1.1.1, 00:04:42 ago, via GigabitEthernet0/1 Route metric is 2, traffic share count is 1 R4#
Come si può vedere, il router apprende l'indirizzo di inoltro tramite il percorso all'interno dell'area, ossia può installare l'LSA esterno in RIB. Si può vedere che l'LSA esterno è installato in RIB.
R4#show ip route 172.16.3.3 Routing entry for 172.16.3.3/32 Known via "ospf 1", distance 110, metric 20, type extern 2, forward metric 2 Last update from 192.168.24.2 on GigabitEthernet0/0, 00:01:02 ago Routing Descriptor Blocks: 192.168.24.2, from 2.2.2.2, 00:01:02 ago, via GigabitEthernet0/0 Route metric is 20, traffic share count is 1 * 192.168.14.1, from 2.2.2.2, 00:04:57 ago, via GigabitEthernet0/1 Route metric is 20, traffic share count is 1
Configurare una route statica per l'indirizzo di inoltro verso l'ASBR che è R2
R4#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R4(config)#ip route 192.168.1.0 255.255.255.0 192.168.24.2
Eseguire il comando show ip route verso l'indirizzo di inoltro.
R4# show ip route 192.168.1.3 Routing entry for 192.168.1.0/24 Known via "static", distance 1, metric 0 Routing Descriptor Blocks: * 192.168.24.2 Route metric is 0, traffic share count is 1
Come si può vedere, l'indirizzo di inoltro non viene appreso tramite OSPF ma statico, il che significa che ora l'LSA esterno per 172.16.3.3 non può superare i criteri necessari per essere utilizzato.
R4#show ip ospf database external 172.16.3.3 OSPF Router with ID (4.4.4.4) (Process ID 1) Type-5 AS External Link States LS age: 480 Options: (No TOS-capability, DC, Upward) LS Type: AS External Link Link State ID: 172.16.3.3 (External Network Number ) Advertising Router: 2.2.2.2 LS Seq Number: 80000001 Checksum: 0x8896 Length: 36 Network Mask: /32 Metric Type: 2 (Larger than any link state path) MTID: 0 Metric: 20 Forward Address: 192.168.1.3 External Route Tag: 0
Verificare infine se la route esterna è installata dal database OSPF in RIB.
R4#show ip route 172.16.3.3 % Network not in table
Come si può vedere, il router non installa l'LSA esterno dal database OSPF in RIB, in quanto l'indirizzo di inoltro è noto tramite static e non tramite OSPF intra o inter-area.
La logica è che OSPF non considera attendibile un'altra origine per il routing verso l'indirizzo di inoltro, pertanto il router non deve prendere in considerazione alcuna LSA esterna con un indirizzo di inoltro non noto tramite OSPF.
In questa sezione viene descritto lo stesso test su IOS-XR per verificarne il comportamento. Su XR5, si dispone della scheda LSA esterna:
RP/0/0/CPU0:XR4#show ospf database external 172.16.3.3 Mon Mar 26 06:26:24.656 UTC OSPF Router with ID (192.168.60.1) (Process ID 1) Type-5 AS External Link States Routing Bit Set on this LSA LS age: 930 Options: (No TOS-capability, DC) LS Type: AS External Link Link State ID: 172.16.3.3 (External Network Number) Advertising Router: 2.2.2.2 LS Seq Number: 80000001 Checksum: 0x8896 Length: 36 Network Mask: /32 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 20 Forward Address: 192.168.1.3 External Route Tag: 0
Quando si configura una route statica per l'indirizzo di inoltro verso R4, verificare se il router installa o meno la LSA esterna nel database.
RP/0/0/CPU0:XR4#show route 192.168.1.3 Mon Mar 26 06:33:21.587 UTC Routing entry for 192.168.1.0/24 Known via "static", distance 1, metric 0 <- The forwarding address is now known via static Installed Mar 26 06:31:55.133 for 00:01:26 Routing Descriptor Blocks 192.168.60.4 <- Next-hop is R4 Route metric is 0, Wt is 1 No advertising protos.
È possibile visualizzare l'indirizzo di inoltro appreso tramite static. A questo punto, verificare se l'LSA esterno è stato installato in RIB.
RP/0/0/CPU0:XR4#show route 172.16.3.3 Mon Mar 26 06:42:24.830 UTC Routing entry for 172.16.3.3/32 Known via "ospf 1", distance 110, metric 20, type extern 2 Installed Mar 26 06:25:09.841 for 00:17:15 Routing Descriptor Blocks 192.168.60.4, from 2.2.2.2, via GigabitEthernet0/0/0/0 Route metric is 20 No advertising protos. RP/0/0/CPU0:XR4#
Si vede una differenza tra IOS e IOS-XR. L'LSA esterno è stato installato in RIB anche se l'indirizzo di inoltro viene appreso tramite statico. Il router ha ancora la connettività verso il prefisso esterno.
RP/0/0/CPU0:XR4#ping 172.16.3.3 Mon Mar 26 06:44:25.772 UTC Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/9/19 ms RP/0/0/CPU0:XR4#
Sembra che IOS-XR popola la LSA esterna in RIB ma non tiene conto dell'indirizzo di inoltro per la ricorsione, il che significa che ora ricorre verso l'ASBR piuttosto che cercare in RIB per l'indirizzo di inoltro.
Il test indica che può essere preso in considerazione. È possibile configurare una route statica per l'indirizzo di inoltro verso null0 e verificare se la connettività verso il prefisso esterno esiste ancora.
RP/0/0/CPU0:XR4#show ospf database external 172.16.3.3 Mon Mar 26 06:55:36.296 UTC OSPF Router with ID (192.168.60.1) (Process ID 1) Type-5 AS External Link States Routing Bit Set on this LSA LS age: 667 Options: (No TOS-capability, DC) LS Type: AS External Link Link State ID: 172.16.3.3 (External Network Number) Advertising Router: 2.2.2.2 LS Seq Number: 80000002 Checksum: 0x8697 Length: 36 Network Mask: /32 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 20 Forward Address: 192.168.1.3 External Route Tag: 0 RP/0/0/CPU0:XR4#show route 192.168.1.3 Mon Mar 26 06:55:38.966 UTC Routing entry for 192.168.1.0/24 Known via "static", distance 1, metric 0 (connected) Installed Mar 26 06:47:15.030 for 00:08:23 Routing Descriptor Blocks directly connected, via Null0 Route metric is 0, Wt is 1 No advertising protos.
Verificare la connettività da XR5 verso 172.16.3.3.
RP/0/0/CPU0:XR4#ping 172.16.3.3 Mon Mar 26 06:56:45.261 UTC Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/7/19 ms RP/0/0/CPU0:XR4#traceroute 172.16.3.3 Mon Mar 26 06:56:51.251 UTC Type escape sequence to abort. Tracing the route to 172.16.3.3 1 192.168.60.4 0 msec 0 msec 0 msec 2 192.168.14.1 0 msec 0 msec 0 msec 3 192.168.1.3 9 msec 9 msec 0 msec RP/0/0/CPU0:XR4
Dai test effettuati è emersa l'importanza dell'indirizzo di inoltro e la modalità di interpretazione del routing quando è impostato. Inoltre, il presupposto che se l'indirizzo di inoltro è impostato, deve essere utilizzato, può essere false in quanto dipende dalla piattaforma. Quando l'indirizzo di inoltro è noto tramite l'area interna/tra OSPF, viene utilizzato, altrimenti viene popolato ma non utilizzato per la ricorsione. Il comportamento di XR garantisce un certo livello di sicurezza: nel caso in cui un indirizzo di inoltro LSA esterno venga conosciuto da un'altra fonte, il traffico non può essere bloccato.