Il Natting

Sito: Materiali Didattici
Corso: (Classe 5a) - Sistemi e Reti
Libro: Il Natting
Stampato da: Utente ospite
Data: mercoledì, 15 maggio 2024, 03:26

1. Introduzione

Nel campo delle reti telematiche, il network address translation o NAT, ovvero traduzione degli indirizzi di rete, conosciuto anche come network masquerading, è una tecnica che consiste nel modificare gli indirizzi IP contenuti negli header dei pacchetti in transito su un sistema che agisce da router all'interno di una comunicazione tra due o più host.

Sono molto note anche alcune tipologie specifiche di NAT, come l'IP masquerading e il port forwarding.


2. Tipi di NAT

Il NAT è soprattutto implementato dai router e dai firewall.

Si può distinguere tra source NAT (SNAT) e destination NAT (DNAT), a seconda che venga modificato l'indirizzo sorgente o l'indirizzo destinazione del pacchetto che inizia una nuova connessione.

I pacchetti che viaggiano in senso opposto verranno modificati in modo corrispondente, in modo da dare ad almeno uno dei due computer che stanno comunicando l'illusione di parlare con un indirizzo IP diverso da quello effettivamente utilizzato dalla controparte.

Per implementare il NAT, un router ha quindi bisogno di effettuare il tracciamento delle connessioni, ovvero di tenere traccia di tutte le connessioni che lo attraversano. Per "connessione" in questo contesto si intende un flusso bidirezionale di pacchetti tra due host, identificati da particolari caratteristiche a livelli superiori a quello di rete (IP):

  • nel caso di TCP è una connessione TCP in senso proprio, caratterizzata da una coppia di porte.
  • nel caso di UDP, per quanto UDP sia un protocollo di trasporto senza connessione, viene considerata connessione uno scambio di pacchetti UDP tra due host che usino la stessa coppia di numeri di porta.
  • altri protocolli vengono gestiti in modo analogo, usando caratteristiche del pacchetto a livelli superiori ad IP per identificare i pacchetti che appartengono ad una stessa connessione.

3. Comandi CLI e definizioni

Definizioni

  • Inside LOCAL address: indirizzi della rete interna, unici soltanto all'interno della sottorete in cui si trovano.
  • Outside LOCAL address: indirizzo dell'host di destinazione, visto dalla rete interna. Generalmente coincide con l'outside global address.
  • Inside GLOBAL address: indirizzi (generalmente pubblici) assegnati agli host della rete interna attraverso il NAT. Il caso più diffuso è quello in cui tutta la rete locale esce con unico inside global address, ossia con NAT overload. Pertanto gli indirizzi inside global sono quelli con cui i PC di una rete privata si presentano su Internet.
  • Outside GLOBAL address: indirizzo dell'host di destinazione, cos' come viene visto nella rete esterna (global).

 


 Impostare l’interfaccia come NAT inside

Router(config-if)#ip nat inside

Impostare l’interfaccia come NAT outside

Router(config-if)#ip nat outside

 NAT statico (one to one)

Il NAT statico associa un IP della lan con un IP della WAN. L’associazione vale sia in ingresso che in uscita: la macchina interna sarà infatti raggiungibile dall’esterno con l’ip globale.

Router(config)#ip nat inside source static IP_locale IP_globale

Nel dettaglio:

ip nat inside source static

  • Traduce l'indirizzo sorgente dei pacchetti che vanno dall'interno all'esterno.
  • Traduce l'indirizzo destinazione dei pacchetti che vanno dall'esterno all'interno.

ip nat outside source static

  • Traduce l'indirizzo destinazione dei pacchetti che vanno dall'interno verso l'esterno.
  • Traduce l'indirizzo sorgente dei pacchetti che vanno dall'esterno verso l'interno.

Esempio:
Router(config)#ip nat inside source static 192.168.100.1 88.88.88.1

NAT dinamico (many to many)

Il NAT dinamico associa gli indirizzi IP della rete interna a degli indirizzi pubblici compresi in un determinato range di IP (pool). Le associazioni saranno dinamiche, nel senso che ogni host interno che accede a Internet sarà traslato nel primo IP pubblico disponibile all'interno del range di IP pubblici disponibili.

Router(config)#ip nat pool nome_pool ip_iniziale ip_finale netmask maschera
Router(config)#access-list numero_ACL permit ip_rete maschera-wildcard
Router(config)#ip nat inside source list numero_ACL pool nome_pool

Con il primo comando si definisce un NAT pool, ossia un gruppo di IP “outside” da usare per la translation. Con il secondo comando si definisce, tramite una ACL, il gruppo di IP “inside” che verranno traslati. Il terzo comando applica la NAT.

Esempio:
Router(config)#ip nat pool TEST-POOL 88.88.88.1 88.88.88.10
Router(config)#access-list 1 permit 192.168.100.0 0.0.0.255
Router(config)#ip nat inside source list 1 pool TEST-POOL

Considerazioni:

Nel momento in cui i PC si presenteranno su Internet, si potranno avere in modo contemporaneo un massimo di 10 PC con 10 IP pubblici diversi. L' undicesimo PC non potrà navigare finché non si libera una sessione.

 

NAT Overload (many to one)

Il NAT overload associa una lista di ip sulla rete “inside” all’unico IP dell’interfaccia “outside”. E' la funzione di NAT più utilizzata, da abilitare quando si ha a disposizione un solo indirizzo IP pubblico, o comunque quando si vuole che tutti gli host si presentino su Internet sempre con lo stesso IP.

Router(config)#access-list numero_ACL permit ip_rete maschera-wildcard
Router(config)#ip nat inside source list 1 interface interfaccia overload

Esempio:
Router(config)#access-list 1 permit 192.168.8.0 0.0.0.255
Router(config)#ip nat inside source list 1 interface serial 0/0 overload

 

Rimuovere le informazioni dalla tabella di NAT (translation table)

Router#clear ip nat translation *


4. Esempio (Filmato)


5. Esempio (Packet Tracer)

Scarica il file