In questo documento viene descritto come il protocollo OSPF (Open Shortest Path First) tra Nexus e la funzionalità Cisco IOS® viene implementato in Cisco IOS e Nexus Operating System (NXOS).
Cisco raccomanda la conoscenza del protocollo OSPF.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
I dispositivi Cisco IOS supportano la RFC 1583. Tuttavia, NXOS supporta la RFC 2328 e in alcuni progetti questa differenza può creare loop di routing nella rete quando vi sono route OSPF esterne nella rete.
In questa sezione viene illustrata la differenza tra la RFC 1583 e la RFC 2328 per quanto riguarda la scelta della route migliore tra più route esterne.
Per confrontare i percorsi esterni di tipo 1, considerare la somma della distanza dall'indirizzo di inoltro e della metrica di tipo 1 annunciata (X+Y). Per confrontare i percorsi esterni di tipo 2, osservare le metriche di tipo 2 annunciate e, se necessario, la distanza dagli indirizzi di inoltro.
Se il nuovo percorso è più breve, sostituisce i percorsi presenti nella voce della tabella di routing. Se il nuovo percorso ha lo stesso costo, viene aggiunto all'elenco di percorsi della voce della tabella di routing.
I percorsi interni che utilizzano aree non backbone sono sempre i più preferiti. Gli altri tracciati, quelli della backbone intra area e quelli tra aree, hanno la stessa preferenza.
R3 e R4 ridistribuiscono la stessa rete 172.16.1.0/24 con la stessa metrica della route E2 di tipo esterno OSPF. R6 preferisce la route annunciata da R3 perché la metrica di inoltro all'ASBR R3 è inferiore a R4 e l'hop successivo per 172.16.1.0/24 è R1. (In base a RFC 1583, la selezione del percorso si basa esclusivamente sul costo.)
R6#sh ip ospf border-routers
OSPF Router with ID (192.168.6.6) (Process ID 1)
Base Topology (MTID 0)
Internal Router Routing Table
Codes: i - Intra-area route, I - Inter-area route
i 192.168.4.4 [51] via 192.168.56.5, GigabitEthernet0/0, ASBR, Area 2, SPF 17
>>>> Cost is 51 to reach R4 ASBR.
i 192.168.1.1 [1] via 192.168.16.1, GigabitEthernet0/1, ABR, Area 2, SPF 17
I 192.168.3.3 [42] via 192.168.16.1, GigabitEthernet0/1, ASBR, Area 2, SPF 17
>>>> Cost is 42 to reach R3 ASBR
R6#sh ip route 172.16.1.0
Routing entry for 172.16.1.0/24
Known via "ospf 1", distance 110, metric 20, type extern 2, forward metric 42
Last update from 192.168.16.1 on GigabitEthernet0/1, 00:02:13 ago
Routing Descriptor Blocks:
* 192.168.16.1, from 192.168.3.3, 00:02:13 ago, via GigabitEthernet0/1
Route metric is 20, traffic share count is 1
R1 preferisce il percorso pubblicizzato da R4 nonostante il costo più elevato, in quanto si tratta di un percorso intra-area verso ASBR. Il percorso non passa attraverso l'area della backbone e l'hop successivo è R6 (come da RFC 2328).
R1-NXOS# sh ip ospf border-routers
OSPF Process ID 1 VRF default, Internal Routing Table
Codes: i - Intra-area route, I - Inter-area route
intra 192.168.2.2 [40], ABR, Area 0.0.0.0, SPF 18
via 192.168.12.2, Eth4/43
inter 192.168.3.3 [41], ASBR, Area 0.0.0.0, SPF 18 >>>> Cost is 41
via 192.168.12.2, Eth4/43
intra 192.168.4.4 [91], ASBR, Area 0.0.0.2, SPF 18 >>>> Cost is 91
via 192.168.16.6, Eth4/44
switch-R1-NXOS# sh ip route 172.16.1.0
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%' in via output denotes VRF
172.16.1.0/24, ubest/mbest: 1/0
*via 192.168.16.6, Eth4/44, [110/20], 00:10:41, ospf-1, type-2
Ciò provoca un loop nella rete in quanto R6 invia i pacchetti a R1 e R1 li invia nuovamente a R6.
R5#traceroute 172.16.1.1 numeric
Type escape sequence to abort.
Tracing the route to 172.16.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 192.168.56.6 4 msec 0 msec 0 msec
2 192.168.16.1 4 msec 0 msec 4 msec
3 192.168.16.6 0 msec 4 msec 0 msec
4 192.168.16.1 4 msec 0 msec 4 msec
5 192.168.16.6 0 msec 4 msec 0 msec
Come si può vedere, il pacchetto esegue un loop tra R1 e R6. Per risolvere questo problema, è necessario modificare la compatibilità RFC su NXOS.
R1-NXOS(config)# router ospf 1
R1-NXOS(config-router)# rfc1583compatibility
switch-R1-NXOS# sh ip route 172.16.1.0
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%' in via output denotes VRF
172.16.1.0/24, ubest/mbest: 1/0
*via 192.168.12.2, Eth4/43, [110/20], 00:00:40, ospf-1, type-2
Ora R1 lo punta correttamente a R2 e il loop viene rimosso dalla rete.
R5#traceroute 172.16.1.1 numeric
Type escape sequence to abort.
Tracing the route to 172.16.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 192.168.56.6 0 msec 4 msec 0 msec
2 192.168.16.1 0 msec 0 msec 0 msec
3 192.168.12.2 4 msec 0 msec 0 msec
4 192.168.23.3 4 msec 0 msec 4 msec
5 192.168.23.3 4 msec 0 msec 4 msec
R1 riceve una route NSSA-esterna (tipo 7) da R6 e una route esterna (tipo 5) da R2 per lo stesso prefisso 172.16.1.0/24. R1 preferisce il tipo 7, anche se normalmente in OSPF il tipo 5 è preferito al tipo 7.
R1-NXOS# sh ip ospf database nssa-external 172.16.1.0 detail
OSPF Router with ID (192.168.1.1) (Process ID 1 VRF default)
Type-7 AS External Link States (Area 0.0.0.2)
LS age: 914
Options: 0x28 (No TOS-capability, Type 7/5 translation, DC)
LS Type: Type-7 AS-External
Link State ID: 172.16.1.0 (Network address)
Advertising Router: 192.168.4.4 >>>>> Type 7 originated by R4
and installed in the RIB.
LS Seq Number: 0x80000001
Checksum: 0x3696
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 192.168.45.4
External Route Tag: 0>
R1-NXOS# sh ip ospf database external 172.16.1.0 detail
OSPF Router with ID (192.168.1.1) (Process ID 1 VRF default)
Type-5 AS External Link States
LS age: 853
Options: 0x2 (No TOS-capability, No DC)
LS Type: Type-5 AS-External
Link State ID: 172.16.1.0 (Network address)
Advertising Router: 192.168.1.1 >>>>> Since Type 7 is installed
in the RIB, it was converted to type 5
LS Seq Number: 0x80000001
Checksum: 0xb545
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)
TOS: 0<
Metric: 20
Forward Address: 192.168.45.4
External Route Tag: 0<
LS age: 596
Options: 0x20 (No TOS-capability, DC)
LS Type: Type-5 AS-External
Link State ID: 172.16.1.0 (Network address)
Advertising Router: 192.168.3.3 >>>>>> Type 5 is also received from R3
LS Seq Number: 0x80000002
Checksum: 0x2250
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)>
TOS: 0
Metric: 20<>
Forward Address: 0.0.0.0
External Route Tag: 0
R1-NXOS# sh ip route 172.16.1.0
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%<string>' in via output denotes VRF <string>
172.16.1.0/24, ubest/mbest: 1/0
*via 192.168.16.6, Eth4/44, [110/20], 00:16:54, ospf-1, nssa type-2 >>>> Type 7
route is installed in RIB.
Poiché R1 non dispone del comando di compatibilità rfc1583 configurato nel processo del router OSPF e l'ID adv-router della route LSA (Link State Advertisement) di tipo 5 è raggiungibile nell'area 0 (router backbone), OSPF sceglie sempre il percorso per la route tramite l'area non backbone. In questo caso, l'hop successivo viene scelto nell'area 2 (in base alla RFC 2328).
R1-NXOS(config)# router ospf 1
R1-NXOS(config-router)# rfc1583compatibility
R1-NXOS# sh ip route 172.16.1.0
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%<string>' in via output denotes VRF <string>
172.16.1.0/24, ubest/mbest: 1/0
*via 192.168.12.2, Eth4/43, [110/20], 00:00:04, ospf-1, type-2 >>>> Type 5
route is installed in RIB.
In altri scenari di progettazione o di rete, questo problema di compatibilità può causare loop o routing non ottimale nella rete se la rete dispone di NXOS e Cisco IOS che vengono eseguiti insieme a OSPFv2.
Cisco consiglia di utilizzare il comando di compatibilità RFC 1583 nella modalità di configurazione del router OSPF NXOS se la rete include dispositivi che supportano solo RFC 1583, ossia Cisco IOS.
Attualmente non è disponibile una procedura di verifica per questa configurazione.
Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi di questa configurazione.