Introduzione alla configurazione della NAT Overload e Statica

Continuiamo con la nostra serie di articoli che, attraverso esempi pratici e semplificati, dimostrano l’applicazioni di strumenti fondamentali nei rispettivi ambiti. È il turno di introdurre alla Configurazione della NAT Overload e Statica. Questo argomento è di fondamentale importanza sopratutto nell’ambito della connessione alla rete Internet. Come sappiamo bene, gli indirizzi IP Privati non sono instradabili su internet, pertanto è necessario tradurli e sostituirli con indirizzi IP Pubblici. Nel seguente laboratorio, tutti i device hanno una configurazione di base relativa agli indirizzi IP già assegnati alle interfacce. Router R1 riceve la default route dal router R2 in DHCP. Dovremo procedere a implementare NAT. Nello specifico una NAT statica per SRV1. Un mapping 1 a 1 per ottenere la raggiungibilità di un servizio pubblico collocato all’interno della LAN (DMZ). Ecco la topologia esaminata:

PC1: 
IP Address –> 10.10.1.10/24
Default gateway –> 10.10.1.1
SRV1: 
IP Address –> 10.10.2.20/24
Default gateway –> 10.10.2.1
SRV2: 
IP Address –> 203.0.113.30/24
Default gateway –> 203.0.113.1
R1:
E0/0 IP address –> 10.10.1.1/24
E0/1 IP address –> 10.10.2.1/24
E0/3 IP address –> 198.51.100.101/24
R2:
E0/0 IP address –> 203.0.113.1/24
E0/3 IP address –> 198.51.100.1/24

Iniziamo il nostro LAB con alcuni test. Possiamo notare come R1 abbia la possibilità di raggiungere gli indirizzi IP pubblici. Mentre i client nella LAN, configurati con gli indirizzi Privati, no. Proviamo ad eseguire un Ping da PC1 a SRV2. Vedremo che il ping fallisce. Nello specifico il ping nella sua parte echo request (andata) raggiunge il server SRV2. Il problema è il reply. Infatti il server SRV2 si vede recapitare un pacchetto il cui IP source è 10.10.1.10. Nel tentare di rispondere, SRV2 crea un pacchetto verso 10.10.1.10 che si blocca sul Router R2 che non ha modo di instradare tale pacchetto. La mancanza della NAT è il problema. Il mondo esterno non è in grado di conoscere come raggiungere gli IP privati e viceversa:

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

Ora configuriamo il Router R1, implementando sulle interfacce NAT. In particolare Ethernet0/0 and Ethernet0/1 sono INSIDE ed Ethernet0/3 è l’interfaccia OUTSIDE. Specificheremo attraverso l’access list 10 quale Range di IP potrà essere “Nattato”. Infine attiveremo la NAT di tipo PAT (overload). Essa permetterà a tutti gli ip del range specificato dall’access list di essere tradotti con l’IP assegnato all’interfaccia E0/3. Ecco di seguito i comandi:

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# int e0/0
R1(config-if)# ip nat inside
*Dec 3 20:19:13.670: %LINEPROTO-5-UPDOWN: Line protocol on Interface NVI0, changed
state to up
R1(config-if)# int e0/1
R1(config-if)# ip nat inside
R1(config-if)# int e0/3
R1(config-if)# ip nat outside
R1(config-if)# end
R1(config)# access-list 10 permit 10.10.0.0 0.0.255.255
R1(config)# ip nat inside source list 10 interface e0/3 overload
R1(config)# end
R1#

Adesso riproponiamo il ping precedentemente fallito:

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

Ricordando che nel laboratorio preso in considerazione, i client e i server sono dei Router facente funzione di End Device, procediamo ad un test semplice ma significativo. Colleghiamoci in telnet dal PC1 al Server SRV2. Interroghiamo sul Server SRV2 lo stato dei socket apprezzando come, il server “veda” il PC1. Cioè che IP address attribuisca al PC1. In effetti potremo verificare che il PC1 si presenta all’esterno con l’IP 198.51.100.101 detenuto dall’interfaccia E0/3 del Router R1. Esattamente come voluto:

SRV2> show control-plane host open-ports
Active internet connections (servers and established)
Prot Local Address Foreign Address Service
State
tcp *:23 *:0 Telnet
LISTEN
tcp *:23 198.51.100.101:12959 Telnet
ESTABLISH

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.

Facciamo esattamente la stessa cosa dal SRV1, e visualizziamo ancora lo stato del socket del server SRV2. Noteremo 2 connessioni telnet persistenti. PC1 e SRV1. Entrambi visti da SRV2 con l’indirizzo 198.51.100.101 :

SRV2> show control-plane host open-ports
Active internet connections (servers and established)
Prot Local Address Foreign Address Service
State
tcp *:23 *:0 Telnet
LISTEN
tcp *:23 198.51.100.101:21299 Telnet
ESTABLIS
tcp *:23 198.51.100.101:34023 Telnet
ESTABLISH

Lasciando entrambe le connessioni telnet attive e accedendo alla console di R1 possiamo interrogare la tabella di NAT. Ricordiamo che la porta sorgente in una connessione TCP (telnet) è scelta dinamicamente. Il meccanismo di NAT overload (PAT) fa leva sulla porta sorgente per ricondurre le risposte dall’esterno (OUTSIDE) al giusto client che le ha generate. Nel caso seguente l’indirizzo 203.0.113.30 dalla porta 23 risponderà alla richiesta proveniente dall’indirizzo 198.51.100.101 in entrambi i casi. La discriminante è proprio la porta sorgente che determina la consegna di tale risposta al 10.10.1.10 anziché al 10.10.2.20. E se capitasse che i client di una LAN generassero una richiesta verso lo stesso IP Pubblico con porte sorgenti uguali ? In questo caso il router opererebbe PORT Translation (PAT). Alla richiesta pervenuta in ordine temporale successivo aggiungerebbe +1 per distinguerla. Ovviamente alla risposta di ritorno, il meccanismo di NAT, opererebbe al contrario sottraendo -1 e rendendo questa funzione del tutto trasparente al client: 

R1# show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 198.51.100.101:21299 10.10.1.10:21299 203.0.113.30:23 203.0.113.30:23
tcp 198.51.100.101:34023 10.10.2.20:34023 203.0.113.30:23 203.0.113.30:23

Adesso configuriamo la NAT Statica per attribuire all’ IP 10.10.2.20 della LAN (INSIDE) permanentemente l’IP pubblico (OUTSIDE) 198.51.100.20. Come già detto questa operazione si realizza per i server che ospitano servizi pubblici raggiungibili dall’esterno. Ricordiamo che nella prima parte del LAB il router R1 otteneva dinamicamente l’indirizzo sulla e0/3 via DHCP. Procediamo ad una attribuzione statica. Successivamente definiamo una default route che punti il traffico verso R2 e verifichiamo quanto fatto. Riproponiamo per convenienza la topologia laboratoriale:

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config-if)# int e0/3
R1(config-if)# ip address 198.51.100.2 255.255.255.0
R1(config-if)# exit
R1(config)#

R1(config)# do show ip int brief
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 10.10.1.1 YES NVRAM up up
Ethernet0/1 10.10.2.1 YES NVRAM up up
Ethernet0/2 unassigned YES NVRAM administratively down down
Ethernet0/3 198.51.100.2 YES manual up up
Serial1/0 unassigned YES NVRAM administratively down down
Serial1/1 unassigned YES NVRAM administratively down down
Serial1/2 unassigned YES NVRAM administratively down down
Serial1/3 unassigned YES NVRAM administratively down down
NVI0 10.10.1.1 YES unset up up

R1(config)# ip route 0.0.0.0 0.0.0.0 198.51.100.1

R1(config)# do 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 198.51.100.1 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 198.51.100.1
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.10.1.0/24 is directly connected, Ethernet0/0
L 10.10.1.1/32 is directly connected, Ethernet0/0
C 10.10.2.0/24 is directly connected, Ethernet0/1
L 10.10.2.1/32 is directly connected, Ethernet0/1
198.51.100.0/24 is variably subnetted, 2 subnets, 2 masks
C 198.51.100.0/24 is directly connected, Ethernet0/3
L 198.51.100.2/32 is directly connected, Ethernet0/3

Rimuoviamo la NAT overload (PAT) per imputare la NAT statica. Successivamente vediamone l’effetto sulla tabella di NAT. Vediamo come la NAT statica a differenza di quelle dinamiche persista nella tabella di NAT anche se non utilizzata:

R1(config)# no ip nat inside source list 10 interface Ethernet0/3 overload
R1(config)# ip nat inside source static 10.10.2.20 198.51.100.20
R1(config)# end
R1#
R1# show ip nat translations
Pro Inside global Inside local Outside local Outside global
— 198.51.100.20 10.10.2.20 — —

Proviamo a connetterci in telnet da SRV1 (10.10.2.20) a SRV2. Noteremo nella tabella di NAT che , oltre alla entry di NAT Statica compare anche una entry dinamica che estende le informazioni della entry statica specificando il Protocollo usato (TCP) e le Porte: 

R1# show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 198.51.100.20:23024 10.10.2.20:23024 203.0.113.30:23 203.0.113.30:23
— 198.51.100.20 10.10.2.20 — —

Ora Proviamo a connetterci in telnet da SRV2 a SRV1. Chiaramente SRV2 non conosce l’indirizzo IP privato e punterà a quello Pubblico (198.51.100.20). In virtù della NAT statica il telnet raggiungerà 10.10.2.20. Visualizziamo per completezza le informazioni contenute nella tabella di NAT:

R1# show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 198.51.100.20:23 10.10.2.20:23 203.0.113.30:46401 203.0.113.30:46401
tcp 198.51.100.20:29158 10.10.2.20:29158 203.0.113.30:23 203.0.113.30:23
— 198.51.100.20 10.10.2.20 — —

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.