Routing statico manuale IPv4

Continuiamo con la nostra serie di articoli che, attraverso esempi pratici e semplificati, dimostrano l’applicazioni di strumenti fondamentali nei rispettivi ambiti. È il turno del Routing Statico Manuale IPv4 attraverso l’imputazione di rotte in maniera manuale. Stiamo parlando di un fondamentale indispensabile nella professionalità di chiunque abbia a che fare direttamente o indirettamente con il networking a qualsiasi livello. Nessun ragionamento successivo e più complesso potrà essere sviluppato se non si ha la piena consapevolezza del comportamento packet-switching di un router. La trattazione presuppone la padronanza della struttura e della sintassi degli indirizzi IPv4. Ma come al solito non vogliamo affrontare la trattazione dal punto di vista teorico ma lavorare su un esempio laboratoriale pratico di immediata comprensione. Di seguito una topologia e relativo diagramma degli indirizzi su cui sviluppare le successive considerazioni. Tutti i dispositivi intermediari (router e switch) sono configurati con settaggi di base, mentre gli end device hanno configurato il gateway (rispettivamente gli indirizzi IP delle interfacce dei router a cui fanno capo). Null’altra configurazione di routing è stata impostata:

PC1: 
IP Address –> 10.10.1.10/24
Default gateway –> 10.10.1.1
PC2: 
IP Address –> 10.10.2.20/24
Default gateway –> 10.10.2.1
SRV1: 
IP Address –> 10.10.3.30/24
Default gateway –> 10.10.3.1
SW1: 
VLAN 1 IP Address –> 10.10.1.4/24
Default gateway –> 10.10.1.1
SW2: 
VLAN 1 IP Address –> 10.10.2.4/24
Default gateway –> 10.10.2.1
SW3: 
VLAN 1 IP Address –> 10.10.3.4/24
Default gateway –> 10.10.3.1
R1: 
E0/0 IP address –> 10.10.1.1/24
S1/1 IP address –> 10.1.1.2/30
S1/2 IP address –> 10.1.1.10/30
R2: 
E0/0 IP address –> 10.10.2.1/24
S1/2 IP address –> 10.1.1.9/30
S1/3 IP address –> 10.1.1.6/30
R3: 
E0/0 IP address –> 10.10.3.1/24
S1/1 IP address –> 10.1.1.1/30
S1/3 IP address –> 10.1.1.5/30

È bene ricordare che il laboratorio usato per la dimostrazione usa dei router per simulare i PC e il Server. Quindi i test saranno effettuati attraverso gli stessi comandi Cisco usati per gli apparati intermediari. 

Prima di iniziare la configurazione delle rotte statiche, è utile osservare la situazione di partenza, quando le politiche di routing non sono ancora configurate su nessuno dei router. Accediamo alla console del PC1 e eseguiamo il ping agli apparati SW1 e R1. Rispetto al PC1 gli indirizzi di SW1 e R1 si trovano sulla stessa subnet, quindi ci aspettiamo che il ping vada a buon fine. Infatti in questo caso non abbiamo bisogno del “routing, perchè la comunicazione viene risolta a livello 2, attraverso l’arp protocol.

PC1# ping 10.10.1.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.1.4, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms
PC1# ping 10.10.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.1.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/2 ms3

Adesso procediamo a pingare dal PC1 le interfacce S1/1 e S1/2 del router R1. Rispettivamente configurate con gli indirizzi 10.1.1.2 e 10.1.1.10. Nonostante si tratti di indirizzi IP appartenenti a una subnet differente da quella del PC1, e il Router R1 non abbia configurata nessuna regola di routing … il ping va a buon fine in entrambi i casi. Questo potrebbe essere considerato strano, ma è perfettamente logico. La spiegazione è nel fatto che il PC1 invia tutto il traffico, verso indirizzi non appartenenti alla propria subnet, al router R1 (il suo Gateway). R1, avendo una conoscenza diretta delle reti 10.10.1.0/24 ; 10.1.1.0/30 ; 10.1.1.8/30,  è in grado di instradare i pacchetti correttamente senza ulteriori configurazioni e istruzioni di routing.

PC1# ping 10.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/201/1002 ms
PC1# ping 10.1.1.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

CORSI CORRELATI:

Consulta il nostro Catalogo Corsi per Tecnologia oppure fai una Ricerca per Vendor o ancora trova uno specifico corso attraverso il motore di ricerca interno: Ricerca Corsi. Contattaci ora al Numero Verde 800-177596, il nostro team saprà supportarti nella scelta del percorso formativo più adatto alla tue esigenze.

Adesso proviamo a pingare dal PC1 la seriale1/2 del router R2. In pratica la seriale di R2 collegata a R1. Scopriremo che il ping fallirà. In realtà i pacchetti generati dal ping (echo requests) raggiungono R2. Questo perchè R1 è in grado di instradarli verso la rete 10.1.1.8/30, quindi verso l’IP 10.1.1.9. Il problema si riscontra in R2 che non ha la rotta di ritorno, non conoscendo come raggiungere la rete 10.10.1.0/24, cioè l’IP del PC1 dove il ping ha avuto luogo. Il risultato è che il router R2 non potrà rispondere agli echo requests determinando il fallimento della comunicazione:

PC1# ping 10.1.1.9
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.9, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)

È tempo di operare attraverso le rotte statiche rendendo noto ai router R1 e R2 l’esistenza delle LAN nella topologia e come raggiungerle. Il comando è “ip route” che richiede come primo argomento la rete da raggiungere e come secondo argomento il next hop, ovvero il prossimo router a cui riferirsi per raggiungere tale rete. Volutamente evitiamo di imputare rotte sul router R3 verificando l’effetto complessivo del nostro operato: 

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# ip route 10.10.2.0 255.255.255.0 10.1.1.9
R1(config)# ip route 10.10.3.0 255.255.255.0 10.1.1.1
R1(config)# end
R1#

R2# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)# ip route 10.10.1.0 255.255.255.0 10.1.1.10
R2(config)# ip route 10.10.3.0 255.255.255.0 10.1.1.5
R2(config)# end
R2#

Proviamo a pingare il PC2 dal PC1. Noteremo come la comunicazione avrà successo. Questo implica che quanto realizzato è corretto sia sul router R1 che sul router R2 almeno rispetto le reti Lan che fanno capo a questi 2 router. Provando a pingare il server  SRV1 dal PC1 invece apprezzeremo un “fail”. Ciò è dovuto allo stesso motivo visto in precedenza; L’echo request raggiungerà il SRV1 che risponderà correttamente ma il tutto si bloccherà sul router R3 che non conosce il modo di raggiungere la rete di appartenenza del PC1. Ricordiamo che i puntini indicano un time-out:

PC1# ping 10.10.3.30
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.3.30, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)

Proviamo a pingare dal PC1 l’interfaccia 10.1.1.6. In pratica un IP della rete seriale che separa R2 da R3. il router R1 non è stato istruito per raggiungere tale rete quindi non sarà in grado di instradare. Notare un messaggio di errore diverso caratterizzato dalle “U” che indica un destination unreachable. Il PC1 in questo caso riceve una palese risposta di errore prodotta dal router R1:

PC1# ping 10.1.1.6
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.6, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)

Consultando il diagramma della topologia, troviamo sei subnet. Ogni router ha una connettività diretta a tre di quelle sottoreti con le restanti tre sottoreti che sono “remote” rispetto al router. Per la piena connettività, ogni router deve avere una rotta definita per ciascuna delle 3 sottoreti. Configuriamo la terza route statica mancante su R1 e R2 e configuriamo tutti le tre rotte mancanti su R3:

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# ip route 10.1.1.4 255.255.255.252 10.1.1.9
R1(config)# end
R1#

R2# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)# ip route 10.1.1.0 255.255.255.252 10.1.1.10
R2(config)# end
R2#

R3# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)# ip route 10.10.1.0 255.255.255.0 10.1.1.2
R3(config)# ip route 10.10.2.0 255.255.255.0 10.1.1.6
R3(config)# ip route 10.1.1.8 255.255.255.252 10.1.1.2 (la scelta di passare da R1 è puramente arbitraria)
R3(config)# end
R3#

Adesso consultiamo la tabella di routing di R1. I router R2 e R3 avranno una tabella di routing complementare:

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
+ – replicated route, % – next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 9 subnets, 3 masks
C 10.1.1.0/30 is directly connected, Serial1/1
L 10.1.1.2/32 is directly connected, Serial1/1
S 10.1.1.4/30 [1/0] via 10.1.1.9
C 10.1.1.8/30 is directly connected, Serial1/2
L 10.1.1.10/32 is directly connected, Serial1/2
C 10.10.1.0/24 is directly connected, Ethernet0/0
L 10.10.1.1/32 is directly connected, Ethernet0/0
S 10.10.2.0/24 [1/0] via 10.1.1.9
S 10.10.3.0/24 [1/0] via 10.1.1.1
R1# show running-config | include route
ip route 10.1.1.4 255.255.255.252 10.1.1.9
ip route 10.10.2.0 255.255.255.0 10.1.1.9
ip route 10.10.3.0 255.255.255.0 10.1.1.1

A questo punto tutti i 3 router avranno le rotte per raggiungere le 6 reti della topologia. Siano rotte definite dalla diretta connessione o definite manualmente con le statiche, i router sono pienamente connessi. Dal PC1 possiamo pingare tutte le direttrici in gioco:

PC1# ping 10.10.2.20
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.2.20, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
PC1# ping 10.10.3.30
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.3.30, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
PC1# ping 10.1.1.6
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
PC1# ping 10.1.1.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms

Utilizziamo il comando traceroute (tracert su windows) verificare che il percorso del traffico sia quello voluto.
Testiamo dal PC1 –> PC2 verificando il passaggio da R1 e R2;
Testiamo dal PC1 –> SRV1 verificando il passaggio da R1 e R3;

PC1# traceroute 10.10.2.20
Type escape sequence to abort.
Tracing the route to 10.10.2.20
VRF info: (vrf in name/id, vrf out name/id)
1 10.10.1.1 1 msec 1 msec 1 msec
2 10.1.1.9 1 msec 0 msec 1 msec
3 10.10.2.20 2 msec * 2 msec

PC1# traceroute 10.10.3.30
Type escape sequence to abort.
Tracing the route to 10.10.3.30
VRF info: (vrf in name/id, vrf out name/id)
1 10.10.1.1 1 msec 1 msec 1 msec
2 10.1.1.1 1 msec 0 msec 0 msec
3 10.10.3.30 1 msec * 1 msec

Prima di concludere facciamo un breve focus sulla rotta statica “Default Route”. Essa ha come rete argomento 0.0.0.0 con subnet mask 0.0.0.0. Ciò rappresenta tutte le reti. Il senso di tale rotta è dare una strada per tutte le destinazioni. Più precisamente il suo significato è “per tutto il resto c’è la default route”. Là dove il router non avesse una rotta più specifica per cui inoltrare il pacchetto, utilizzerà in ultima istanza la default route. Questa rotta la troviamo su tutti i router di confine che instradano il traffico verso internet. La troviamo anche nelle reti di tipo “hub and spoke” dove tutto il traffico generato da un ufficio periferico (spoke) deve essere instradato verso il quartier generale (hub) che provvederà ad instradare verso altri uffici o verso internet o servire il traffico con i servizi collocati nel datacenter tipicamente presente presso l’hub. Procediamo a vederne un’applicazione pratica sulla rete oggetto del nostro esempio, anche se la struttura rappresentata non si presta perfettamente all’implementazione della default route.

Accediamo al router R1 e rimuoviamo le rotte statiche specifiche precedentemente inserite. Dopo verifichiamo che il router R1 abbia solo le rotte derivanti dall’attribuzione degli indirizzi IP alle interfaccia fisiche (direttamente connesse). In fine imputiamo la default route verificando che sia presente nella tabella di routing. In pratica la default route girerà tutto il traffico verso il router R3 (10.1.1.1). Quindi R1 punterà al router R3 come next hop anche per il traffico verso la Lan facente capo al router R2:

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# no ip route 10.1.1.4 255.255.255.252 10.1.1.9
R1(config)# no ip route 10.10.2.0 255.255.255.0 10.1.1.9
R1(config)# no ip route 10.10.3.0 255.255.255.0 10.1.1.1
R1(config)# end
R1#

R1# show running-config | include route
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
+ – replicated route, % – next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 6 subnets, 3 masks
C 10.1.1.0/30 is directly connected, Serial1/1
L 10.1.1.2/32 is directly connected, Serial1/1
C 10.1.1.8/30 is directly connected, Serial1/2
L 10.1.1.10/32 is directly connected, Serial1/2
C 10.10.1.0/24 is directly connected, Ethernet0/0
L 10.10.1.1/32 is directly connected, Ethernet0/0

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# ip route 0.0.0.0 0.0.0.0 10.1.1.1
R1(config)# end
R1#

R1# show running-config | include route
ip route 0.0.0.0 0.0.0.0 10.1.1.1
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
+ – replicated route, % – next hop override
Gateway of last resort is 10.1.1.1 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 10.1.1.1
10.0.0.0/8 is variably subnetted, 6 subnets, 3 masks
C 10.1.1.0/30 is directly connected, Serial1/1
L 10.1.1.2/32 is directly connected, Serial1/1
C 10.1.1.8/30 is directly connected, Serial1/2
L 10.1.1.10/32 is directly connected, Serial1/2
C 10.10.1.0/24 is directly connected, Ethernet0/0
L 10.10.1.1/32 is directly connected, Ethernet0/0

Analizziamo gli effetti dei nostri cambiamenti attraverso dei test:

PC1# ping 10.10.3.30
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.3.30, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 10/10/10 ms
PC1# ping 10.10.2.20
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.2.20, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/13/15 ms
PC1# ping 10.1.1.9
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.9, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/9/10 ms

PC1# traceroute 10.10.2.20
Type escape sequence to abort.
Tracing the route to 10.10.2.20
VRF info: (vrf in name/id, vrf out name/id)
1 10.10.1.1 1 msec 0 msec 1 msec
2 10.1.1.1 9 msec 5 msec 9 msec
3 10.1.1.6 13 msec 13 msec 13 msec
4 10.10.2.20 14 msec * 15 msec

Le rotte statiche sono semplici da implementare e hanno il pregio di non consumare alcuna risorsa del router nell’essere applicate. Di contro le rotte statiche manuali hanno una serie di “Drawbacks”. Tra i più importanti aspetti negativi vi è senza dubbio la scarsa scalabilità. Al crescere delle reti la gestione del routing statico diventa sempre più difficile e prone all’errore. Un altro aspetto negativo è intrinseco proprio nella loro essenza di staticità. A differenza dei protocolli di routing non c’è alcuna possibilità di adattarsi dinamicamente ai problemi di rete elaborando rotte alternative in maniera appunto “dinamica”. Tutto deve essere configurato preventivamente. Il fatto di dimostrare l’argomento su sistemi Cisco non deve trarre in inganno. Quanto trattato ha una valenza generale e può essere applicato su tutte le piattaforme dei diversi vendor. Nei prossimi articoli sull’argomento tratteremo le rotte ridondanti (floating static routee le rotte IPV6.

Consulta il nostro Catalogo Corsi per Tecnologia oppure fai una Ricerca per Vendor o ancora trova uno specifico corso attraverso il motore di ricerca interno: Ricerca Corsi. Contattaci ora al Numero Verde 800-177596, il nostro team saprà supportarti nella scelta del percorso formativo più adatto alla tue esigenze.

RICHIEDI ORA IL SUPPORTO DI UN NOSTRO SPECIALISTA

Il nostro team, da anni impegnato nella progettazione di piani formativi strutturati nell’ambito dell’ IT, ti supporterà ad orientarti verso la scelta di un percorso formativo certificato rispondente alle tue esigenze.