Specificare un indirizzo IP Next Hop per le rotte statiche
Introduzione
Questo documento descrive il concetto base delle rotte statiche. Viene utilizzato uno scenario problematico per dimostrare le circostanze in cui diventa desiderabile specificare l’interfaccia attraverso la quale l’indirizzo IP del next hop può essere raggiunto quando si configura una rotta statica. In caso contrario si può avere un comportamento indesiderato e uno stato della rete interrotto.
Informazioni di base
Le rotte statiche sono usate per una varietà di ragioni e sono spesso usate quando non c’è una rotta dinamica per l’indirizzo IP di destinazione, o quando si vuole sovrascrivere la rotta appresa dinamicamente.
Per default, le rotte statiche hanno una distanza amministrativa di uno, che dà loro la precedenza sulle rotte di qualsiasi protocollo di routing dinamico. Quando si aumenta la distanza amministrativa a un valore maggiore di quello di un protocollo di routing dinamico, la rotta statica può essere una rete di sicurezza nel caso in cui il routing dinamico fallisca. Per esempio, le rotte derivate dall’Enhanced Interior Gateway Routing Protocol (EIGRP) hanno una distanza amministrativa predefinita di 90 per le rotte interne e 170 per quelle esterne. Per configurare una rotta statica che sia sovrascritta da una rotta EIGRP, specificare una distanza amministrativa maggiore di 170 per la rotta statica.
Questo tipo di rotta statica con un’alta distanza amministrativa è chiamata una rotta statica fluttuante. Viene installata nella tabella delle rotte solo quando la rotta appresa dinamicamente scompare. Un esempio di una rotta statica fluttuante è ip route 172.31.10.0 255.255.255.0 10.10.10.2 101.
Nota: Una distanza amministrativa di 255 è considerata irraggiungibile, e le rotte statiche con una distanza amministrativa di 255 non sono mai inserite nella tabella di routing.
Rotta statica verso un’interfaccia senza indirizzo IP Next Hop
Se si punta una rotta statica verso un’interfaccia e non si specifica l’indirizzo IP Next Hop, la rotta viene inserita nella tabella di routing solo quando l’interfaccia è attiva. Questa configurazione non è raccomandata perché quando la rotta statica punta ad un’interfaccia e non ha informazioni sull’hop successivo, il router considera ogni host all’interno dell’intervallo della rotta come direttamente connesso attraverso quell’interfaccia. Un esempio di una tale rotta statica è ip route 0.0.0.0 0.0.0.0 Ethernet0.
Con questo tipo di configurazione, un router esegue l’Address Resolution Protocol (ARP) sulla Ethernet per ogni destinazione che il router trova attraverso la rotta predefinita perché il router considera tutte queste destinazioni come direttamente connesse a Ethernet 0. Questo tipo di rotta statica, specialmente se è usata da molti pacchetti verso molte diverse sottoreti di destinazione, può causare un alto utilizzo del processore e una cache ARP molto grande (insieme a fallimenti nell’allocazione della memoria). Pertanto, questo tipo di percorso statico non è raccomandato.
Quando si specifica l’indirizzo dell’hop successivo su un’interfaccia collegata direttamente, il router non esegue ARP per ogni indirizzo di destinazione. Un esempio è ip route 0.0.0.0 0.0.0.0 Ethernet0 192.168.1.1. Puoi specificare solo l’indirizzo dell’hop successivo direttamente connesso, ma questo non è raccomandato per ragioni che sono descritte in questo documento. Non è necessario specificare l’indirizzo dell’hop successivo collegato direttamente. Puoi specificare l’indirizzo dell’hop successivo remoto e l’interfaccia su cui l’hop successivo remoto ricorre.
Se c’è la possibilità che l’interfaccia con l’hop successivo vada giù e l’hop successivo diventi raggiungibile attraverso una rotta ricorsiva, allora dovresti specificare sia l’indirizzo IP dell’hop successivo che l’interfaccia alternativa attraverso cui l’hop successivo dovrebbe essere trovato. Per esempio, ip route 10.0.0.1 255.255.255.255 Serial 3/3 192.168.20.1. L’aggiunta dell’interfaccia alternativa permette all’installazione della rotta statica di diventare più deterministica.
Esempio di rotta statica flottante
Questo esempio descrive l’uso delle rotte statiche flottanti e illustra la necessità di specificare sia l’interfaccia in uscita che l’indirizzo dell’hop successivo con il comando di rotta statica.
Problema
Con la configurazione di rete che è illustrata nella prossima immagine, un host 172.31.10.1 ha connettività a Internet. In questo esempio, l’host si connette all’host Internet remoto 10.100.1.1:
Con questa configurazione, il collegamento primario è il collegamento tra la porta seriale 1/0 su R1 alla porta seriale 1/0 su R2 per il traffico da e verso l’host 172.31.10.1 verso Internet. L’host 10.100.1.1 è usato qui come esempio di un host Internet. Il collegamento tra la porta seriale 2/0 su R1 e la porta seriale 2/0 su R2 è il collegamento di backup. Il link di backup dovrebbe essere usato solo se il link primario fallisce. Questo è implementato con l’uso di rotte statiche che puntano al link primario e l’uso di rotte statiche fluttuanti che puntano al link di backup.
Ci sono due rotte statiche verso la stessa destinazione (172.31.10.0/24) su R1. Una rotta è la rotta statica regolare e un’altra rotta è una rotta statica fluttuante, che è il percorso di backup, o ridondante, verso la rete di destinazione sulla LAN. Il problema in questo scenario è che la rotta statica fluttuante non viene mai installata nella tabella di routing quando il collegamento primario è fuori uso.
Questa è la configurazione su R1:
hostname R1
!
interface Serial1/0
ip address 10.10.10.1 255.255.255.252
!
interface Serial2/0
ip address 10.10.20.1 255.255.255.252
!
ip route 10.0.0.0 255.0.0.0 192.168.10.2
! This is the primary route to get to hosts on the Internet.
ip route 172.31.10.0 255.255.255.0 10.10.10.2
! This is the preferred route to the LAN.
ip route 172.31.10.0 255.255.255.0 10.10.20.2 250
! This is the floating static route to the LAN.
Questa è la configurazione su R2:
hostname R2
!
interface Serial1/0
ip address 10.10.10.2 255.255.255.252
!
interface Serial2/0
ip address 10.10.20.2 255.255.255.252
!
ip route 0.0.0.0 0.0.0.0 10.10.10.1
ip route 0.0.0.0 0.0.0.0 10.10.20.1 250
!
Questa è la tabella di routing per R1:
R1#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
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 5 subnets, 3 masks
S 10.0.0.0/8 via 192.168.10.2
C 10.10.10.0/30 is directly connected, Serial1/0
L 10.10.10.1/32 is directly connected, Serial1/0
C 10.10.20.0/30 is directly connected, Serial2/0
L 10.10.20.1/32 is directly connected, Serial2/0
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 via 10.10.10.2
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/30 is directly connected, Serial3/0
L 192.168.10.1/32 is directly connected, Serial3/0
Quando viene eseguito un ping dall’host all’host Internet 10.100.1.1, funziona come previsto:
host#ping 10.100.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 73/78/80 ms
Un traceroute dall’host all’host Internet 10.100.1.1 mostra questo:
host#traceroute 10.100.1.1
Type escape sequence to abort.
Tracing the route to 10.100.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.31.10.2 1 msec 1 msec 1 msec
2 10.10.10.1 31 msec 39 msec 39 msec
3 192.168.10.2 80 msec * 80 msec
Si usa principalmente il link 10.10.10.0/30.
Se si spegne la porta seriale 1/0 su R1 per testare il failover, ci si dovrebbe aspettare che R1 installi la rotta statica flottante verso la LAN locale 172.31.10.0, e che R2 installi la rotta statica flottante verso 0.0.0.0 attraverso 10.10.20.1. Ci si dovrebbe aspettare che il traffico fluisca sul link di backup.
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#interface serial1/0
R1(config-if)#shutdown
R1(config-if)#end
R1#
Tuttavia, la rotta statica per la LAN 172.31.10.0/24 rimane nella tabella di routing per R1:
R1#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
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 3 subnets, 3 masks
S 10.0.0.0/8 via 192.168.10.2
C 10.10.20.0/30 is directly connected, Serial2/0
L 10.10.20.1/32 is directly connected, Serial2/0
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 via 10.10.10.2
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/30 is directly connected, Serial3/0
L 192.168.10.1/32 is directly connected, Serial3/0
R1#show ip route 172.31.10.0
Routing entry for 172.31.10.0/24
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
* 10.10.10.2
Route metric is 0, traffic share count is 1
R1#show ip route 10.10.10.2
Routing entry for 10.0.0.0/8
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
* 192.168.10.2
Route metric is 0, traffic share count is 1
I ping e traceroute dall’host non funzionano più:
host#ping 10.100.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
host#traceroute 10.100.1.1
Type escape sequence to abort.
Tracing the route to 10.100.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.31.10.2 1 msec 1 msec 1 msec
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
…
La rotta statica fluttuante non è installata su R1 e la rotta statica primaria è ancora nella tabella di routing per R1, anche se il collegamento della porta seriale 1/0 è spento. Questo accade perché le route statiche sono di natura ricorsiva. Si mantiene sempre la rotta statica nella tabella di routing finché si ha una rotta verso l’hop successivo.
In questo scenario problematico, ci si potrebbe aspettare che, poiché il link primario è fuori uso, si dovrebbe avere la rotta statica fluttuante con distanza amministrativa 250 installata nella tabella di routing su R1. Tuttavia, la rotta statica fluttuante non è installata nella tabella di routing poiché la rotta statica regolare rimane nella tabella di routing. L’indirizzo dell’hop successivo 10.10.10.2 è ricorsivo con successo (a 192.168.10.2) attraverso la rotta statica 10.0.0.0/8, che è presente nella tabella di routing.
Soluzione
Configura una rotta statica su R1 dove l’hop successivo non può essere ricorsivo ad un’altra rotta statica. Cisco raccomanda di configurare sia l’interfaccia in uscita che l’indirizzo dell’hop successivo per una rotta statica. Nel caso di un’interfaccia seriale, la specifica dell’interfaccia in uscita è sufficiente perché un’interfaccia seriale è un’interfaccia punto a punto. Se l’interfaccia in uscita è un’interfaccia Ethernet, allora devi configurare sia l’interfaccia in uscita che l’indirizzo dell’hop successivo.
Qui, una rotta statica per la LAN è configurata con la specifica dell’interfaccia in uscita:
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#no ip route 172.31.10.0 255.255.255.0 10.10.10.2
R1(config)#ip route 172.31.10.0 255.255.255.0 Serial1/0
R1(config)#end
R1#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
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 3 subnets, 3 masks
S 10.0.0.0/8 via 192.168.10.2
C 10.10.20.0/30 is directly connected, Serial2/0
L 10.10.20.1/32 is directly connected, Serial2/0
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 via 10.10.20.2
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/30 is directly connected, Serial3/0
L 192.168.10.1/32 is directly connected, Serial3/0
Il ping e il traceroute dall’host all’host Internet ora funzionano e il link di backup è usato:
R1#show ip route 172.31.10.0
Routing entry for 172.31.10.0/24
Known via "static", distance 250, metric 0 (connected)
Routing Descriptor Blocks:
* 10.10.20.2
Route metric is 0, traffic share count is 1
host#ping 10.100.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 76/79/80 ms
host#traceroute 10.100.1.1
Type escape sequence to abort.
Tracing the route to 10.100.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.31.10.2 1 msec 1 msec 1 msec
2 10.10.20.1 38 msec 39 msec 40 msec
3 192.168.10.2 80 msec * 80 msec
Conclusione
Cisco raccomanda vivamente di specificare l’interfaccia di uscita e l’indirizzo IP dell’hop successivo quando si configurano le route statiche. Quando l’interfaccia in uscita è un collegamento di tipo point-to-point (per esempio, un collegamento seriale), la specificazione dell’indirizzo dell’hop successivo non è necessaria.