SONiC Dell Networking: NAT (Network Address Translation)
Riepilogo: Questo articolo spiega la traduzione degli indirizzi di rete (NAT) in Dell Networking SONiC. Questo articolo utilizza uno switch con Dell SONiC 4.1.
Istruzioni
|
Prerequisiti
La denominazione dell'interfaccia standard viene utilizzata per dimostrare i concetti. Consultare l'articolo Dell 202172 Dell Networking serie S: Configurazione dell'interfaccia di base - SONiC 4.0 per ulteriori informazioni sulla denominazione dell'interfaccia |
Indice
- Introduzione
- Abilita NAT
- Ordine di configurazione NAT
- Zone NAT
- Voce NAT statica
- Esempio di NAT statico
- NAT dinamico
- Pool di indirizzi NAT
- NAT Binding
- Timeout NAT dinamico
- Esempio di NAT dinamico
- Comandi di visualizzazione della configurazione NAT
Introduzione
La traduzione dell'indirizzo di rete abilita il processo che assegna un indirizzo IP pubblico ai dispositivi che accedono alle risorse all'esterno della rete. Il NAT conserva l'utilizzo dell'indirizzo IP nella rete locale.
Il NAT non è richiesto all'interno della rete per instradare il traffico tra indirizzi IP privati. Un gateway NAT traduce gli indirizzi IP privati dei dispositivi di rete locali in un indirizzo IP pubblico univoco a livello globale quando comunicano con i dispositivi remoti.
Abilita NAT
Per abilitare nat e immettere i comandi di configurazione NAT in modalità di configurazione NAT:- Per abilitare NAT:
sonic(config-nat)# enable admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# enable
-
Per disabilitare NAT:
DELLSONiC(config-nat)# no enable
Ordine di configurazione NAT
Una volta abilitata la funzione NAT, è possibile completare i seguenti passaggi in qualsiasi ordine:- Configurazione delle zone NAT
- Aggiungere una voce NAT statica
- Aggiungere una voce NAT statica con una porta L4
- Creazione di un pool di indirizzi NAT
- Configurare il binding NAT
- Configurazione di un timeout NAT dinamico
Creare zone NAT
Per configurare una zona NAT nelle interfacce L3 in modo che la traduzione degli indirizzi NAT venga eseguita sui pacchetti quando un pacchetto attraversa una zona nelle interfacce configurate. Una zona NAT può essere configurata su qualsiasi interfaccia Ethernet, VLAN, port channel o loopback configurata con un indirizzo IP. L'intervallo di numeri di zona NAT è compreso tra 0 e 3.La zona di origine di un pacchetto è la zona dell'interfaccia in entrata su cui viene ricevuto il pacchetto. La zona di destinazione del pacchetto è la zona dell'interfaccia dell'hop successivo L3 dalla ricerca della route L3 dell'indirizzo di destinazione.
- Il traffico in entrata su un'interfaccia di origine viene inoltrato tramite la traduzione statica del DNAT (Destination Network Address Translation).
- Il traffico in uscita inviato su un'interfaccia di destinazione viene tradotto dinamicamente tramite Source Network Address Translation (SNAT).
- Le interfacce L3 sono nella zona NAT 0 per impostazione predefinita. La zona 0 NAT è considerata una zona interna.
- Per creare una zona NAT:
sonic(conf-if-interface)# nat-zone <0..3> admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC (config)# interface Eth1/2 DELLSONiC (conf-if-Eth1/2)# ip address 20.20.20.20/24 DELLSONiC (conf-if-Eth1/2)# nat-zone 1 DELLSONiC (conf-if-Eth1/2)# exit DELLSONiC (config)# interface Vlan 5 DELLSONiC (conf-if-Vlan5)# ip address 23.23.23.23/24 DELLSONiC (conf-if-Vlan5)# nat-zone 1 DELLSONiC (conf-if-Vlan5)# exit DELLSONiC (config)# interface PortChannel 2 DELLSONiC (conf-if-po2)# ip address 25.25.25.25/24 DELLSONiC (conf-if-po2)# nat-zone 1 DELLSONiC (conf-if-po2)# exit DELLSONiC (config)# interface Loopback 1 DELLSONiC (conf-if-lo1)# ip address 10.10.10.10/32 DELLSONiC (conf-if-lo1)# nat-zone 2
-
Eliminare una zona NAT:
sonic(conf-if-interface)# no nat-zone <0..3> DELLSONiC (conf-if-lo1)# no nat-zone 2
Creare una voce NAT statica.
Per comunicare all'esterno della rete tramite Internet, un utente può configurare manualmente una voce NAT statica per sostituire un indirizzo IP locale con un indirizzo IP univoco a livello globale. Le unità NAT statiche possono essere create con o senza traduzione delle porte L4. Le unità NAT statiche con riferimento a una porta L4 possono convertire un indirizzo IP locale e un numero di porta TCP o UDP in un indirizzo IP globale con un numero di porta TCP o UDP.- Per creare un NAT statico senza traduzione della porta L4:
sonic(conf-nat)# static basic global-ip local-ip [snat | dnat] [twice_nat_id value]
- NAT (SNAT) di origine - Converte un indirizzo IP di origine nella rete locale in un indirizzo IP globale inviato a una rete esterna. I dispositivi remoti nelle reti esterne utilizzano l'indirizzo globale per accedere al dispositivo locale.
- NAT di destinazione (DNAT): converte un indirizzo IP di destinazione in pacchetti, ricevuti da una rete esterna e attraversano la rete locale, in un indirizzo IP locale utilizzato nella rete locale. DNAT è l'impostazione predefinita.
- twice_nat_id value - Esegue la traduzione degli indirizzi negli indirizzi IP di origine e di destinazione per le voci statiche con lo stesso valore.
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# static basic 125.4.4.4 12.1.1.1 DELLSONiC(config-nat)# static basic 100.100.100.100 15.15.15.15 snat twice-nat-id 5 DELLSONiC(config-nat)# static basic 200.200.200.5 17.17.17.17 dnat twice-nat-id 5
- Per creare un NAT statico con traduzione della porta L4:
sonic(conf-nat)# static {tcp | udp} global-ip global-port local-ip local-port [snat | dnat] [twice_nat_id value]
- NAT di origine (SNAT) - Converte un indirizzo IP di origine e una porta TCP/UDP nella rete locale in un indirizzo IP globale e una porta TCP/UDP che viene inviata a una rete esterna. I dispositivi remoti nelle reti esterne utilizzano l'indirizzo globale e la porta L4 per accedere al dispositivo locale.
- NAT di destinazione (DNAT) - Converte un indirizzo IP di destinazione e una porta TCP/UDP in pacchetti, ricevuti da una rete esterna e attraversano la rete locale, in un indirizzo IP locale e una porta TCP/UDP utilizzata nella rete locale. DNAT è l'impostazione predefinita.
- twice_nat_id value - Esegue la traduzione degli indirizzi negli indirizzi IP di origine e di destinazione per le voci statiche con lo stesso valore ID.
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# static udp 148.56.7.7 8991 10.11.1.12 2000 DELLSONiC(config-nat)# static tcp 123.3.4.1 901 11.11.1.1 1000 DELLSONiC(config-nat)# static tcp 65.55.46.6 106 20.0.0.6 206 dnat twice-nat-id 200 DELLSONiC(config-nat)# static tcp 65.55.45.5 100 20.0.0.5 200 snat twice-nat-id 200
- Eliminare una voce statica NAT:
sonic(conf-nat)# no static basic global-ip
sonic(conf-nat)# no static {tcp | udp} global-ip global-port
DELLSONiC(config-nat)# no static basic 125.4.4.4
DELLSONiC(config-nat)# no static basic 100.100.100.100
DELLSONiC(config-nat)# no static basic 200.200.200.5
DELLSONiC(config-nat)# no static udp 148.56.7.7 8991
DELLSONiC(config-nat)# no static tcp 123.3.4.1 901
DELLSONiC(config-nat)# no static tcp 65.55.46.6 106
DELLSONiC(config-nat)# no static tcp 65.55.45.5 100
Esempio di NAT statico
L'esempio riportato di seguito mostra che la rete A che utilizza un router con NAT abilitato. Quando Host 100.100.100.101 sul segmento LAN invia il traffico verso una destinazione esterna (200.200.200.201), il traffico viene inviato verso il router NAT per essere instradato verso l'host 200.200.200.201 da Internet. Il router NAT converte l'IP di origine (SRC IP) 100.100.100.101 in un nuovo IP di origine 1.1.1.2. Il router NAT sta eseguendo un SNAT (Source Network Address Translation) in cui l'indirizzo privato interno 100.100.100.101 viene tradotto nell'indirizzo esterno 1.1.1.2. Il router NAT esegue un DNAT (Destination Network Address Translation) per il traffico restituito dall'host 200.200.200.201 nella rete A all'host 100.100.100.101.
- Configurare le zone NAT:
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC (config)# interface Eth1/10 DELLSONiC (conf-if-Eth1/10)# ip address 100.100.100.1/24 DELLSONiC (conf-if-Eth1/10)# nat-zone 0 DELLSONiC (conf-if-Eth1/10)# exit DELLSONiC (config)# interface Eth1/20 DELLSONiC (conf-if-Eth1/20)# ip address 1.1.1.2/30 DELLSONiC (conf-if-Eth1/20)# nat-zone 1 DELLSONiC (conf-if-Eth1/20)# exit
-
Abilitare NAT:
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# enable
- Creare un NAT statico senza traduzione della porta L4:
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# static basic 1.1.1.2 100.100.100.101
Creare un NAT dinamico.
La funzionalità NAT dinamica sostituisce un indirizzo locale con un indirizzo proveniente da un pool di indirizzi globali.
La traduzione dinamica è utile quando più utenti su una rete privata accedono a Internet.
Configurazione del pool di indirizzi NAT
Configurare un pool di indirizzi globali disponibili definendo l'intervallo di indirizzi IP globali e, facoltativamente, l'intervallo di porte TCP/UDP utilizzato per la traduzione degli indirizzi locali.
- Creare un pool di indirizzi NAT:
sonic(conf-nat)# pool pool-name global-ip-range [global-port-range]
- Immettere l'intervallo di indirizzi IP globali nel formato ip-address-ip-address.
- Immettere l'intervallo di numeri di porta TCP/UDP nel formato port-number-port-number.
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# pool Pool1 19.19.19.19 DELLSONiC(config-nat)# pool Pool2 20.0.0.7 1024-65535 DELLSONiC(config-nat)# pool Pool3 65.55.45.10-65.55.45.15 500-1000
- Eliminare un pool di indirizzi NAT:
sonic(conf-nat)# no pool pool-name DELLSONiC(config-nat)# no pool Pool1
- Eliminare tutti i pool di indirizzi NAT:
sonic(conf-nat)# no pools
Configurare il binding NAT
- Creare un binding NAT a un pool di indirizzi NAT:
sonic(conf-nat)# binding binding-name pool-name [acl-name] [snat | dnat] [twice_nat_id value]
- SNAT - Converte un indirizzo IP di origine in un indirizzo IP globale nel pool. SNAT è l'impostazione predefinita nel binding NAT.
- DNAT - Converte un indirizzo IP di destinazione in un indirizzo IP globale nel pool.
- twice_nat_id value - Esegue la traduzione degli indirizzi sugli indirizzi IP di origine e di destinazione utilizzando il pool di indirizzi per le voci statiche con lo stesso valore ID.
- acl-name - Per limitare gli indirizzi IP in un pool di indirizzi NAT globale, è possibile utilizzare un ACL (Access Control List). Un'istruzione permit consente agli indirizzi IP con gli attributi configurati nella regola di autorizzazione. Un'istruzione di negazione nega i pacchetti con gli attributi configurati nella regola di negazione. In un ACL, la voce do_not_nat consente di instradare i pacchetti anziché tradotti.
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# binding Bind1 Pool1 10_ACL_IPV4 DELLSONiC(config-nat)# binding Bind2 Pool2 12_ACL_IPV4 snat twice-nat-id 25 DELLSONiC(config-nat)# binding Bind3 Pool3 15_ACL_IPV4 dnat twice-nat-id 25
- Eliminare un binding NAT:
sonic(conf-nat)# no binding binding-name DELLSONiC(config-nat)# no binding Bind1
- Eliminare tutti i binding NAT:
sonic(conf-nat)# no bindings
Configurare il timeout NAT dinamico
Per impostazione predefinita, solo le configurazioni di traduzione dinamica degli indirizzi vengono timeout dopo 10 minuti (600 secondi) di assenza di traffico
attivo. Non vi è alcun timeout per le voci NAT statiche. Per modificare il valore di timeout NAT dinamico, specificare un nuovo valore in secondi (da 300 a 432000).
- Modifica del timeout delle configurazioni di traduzione dinamica degli indirizzi:
sonic(conf-nat)# timeout <300..432000> admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# timeout 1200
È possibile regolare anche i timeout di voce NAT per le voci UDP L4 e TCP NAT.
Per modificare il timeout TCP per la traduzione dell'indirizzo, immettere un nuovo valore di timeout in secondi (da 300 a 432000, valore predefinito 86400). Per modificare il timeout UDP per la traduzione degli indirizzi, immettere un nuovo valore in secondi (da 120 a 600; valore predefinito 300).
- Modificare le configurazioni di traduzione dinamica degli indirizzi timeout UDP/TCP:
sonic(conf-nat)# udp-timeout <120..600> sonic(conf-nat)# tcp-timeout <300..432000> admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# udp-timeout 600 DELLSONiC(config-nat)# tcp-timeout 66460
Esempio di NAT dinamico
L'esempio riportato di seguito mostra che la rete A che utilizza un router con NAT abilitato. Quando Host 100.100.100.101 sul segmento LAN invia il traffico verso una destinazione esterna (200.200.200.201), il traffico viene inviato verso il router NAT per essere instradato verso l'host 200.200.200.201 da Internet. Il router NAT converte l'IP di origine (SRC IP) 100.100.100.101 in un nuovo IP di origine 1.1.1.2. Il router NAT sta eseguendo un SNAT (Source Network Address Translation) in cui l'indirizzo privato interno 100.100.100.101 viene tradotto nell'indirizzo esterno 1.1.1.2. Il router NAT esegue un DNAT (Destination Network Address Translation) per il traffico restituito dall'host 200.200.200.201 nella rete A all'host 100.100.100.101. La stessa traduzione NAT si verifica per la comunicazione di PC2 con PC3.

Figura 2. Esempio di traduzione dell'indirizzo di rete dinamico
- Configurare le zone NAT:
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC (config)# interface Vlan 100 DELLSONiC (conf-if-Vlan100)# ip address 100.100.100.1/24 DELLSONiC (conf-if-Vlan100)# nat-zone 0 DELLSONiC (conf-if-Vlan100)# exit DELLSONiC (config)# interface Vlan 300 DELLSONiC (conf-if-Vlan300)# ip address 300.300.300.1/24 DELLSONiC (conf-if-Vlan300)# nat-zone 0 DELLSONiC (conf-if-Vlan300)# exit DELLSONiC (config)# interface Eth1/20 DELLSONiC (conf-if-Eth1/20)# ip address 1.1.1.2/30 DELLSONiC (conf-if-Eth1/20)# nat-zone 1 DELLSONiC (conf-if-Eth1/20)# exit
- Abilitare NAT:
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# enable
- Creare un pool NAT:
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# pool Pool1 1.1.1.2
- Creare un binding NAT:
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# nat DELLSONiC(config-nat)# binding Bind1 Pool1
Visualizzare la configurazione NAT
Utilizzare questi comandi per visualizzare la configurazione e il funzionamento NAT e le voci della tabella NAT.
- Visualizza la tabella di traduzione NAT:
S5296F-Mid-SPINE# show nat translations Protocol Source Destination Translated Source Translated Destination ---------------------------------------------------------------------------------------------------------------------------- all 10.32.20.3 ---- 100.100.100.1 ---- all ---- 100.100.100.1 ---- 10.32.20.3 udp ---- 10.32.20.2:311 ---- 100.100.100.100:63 udp 100.100.100.100:63 ---- 10.32.20.2:311 ----
- Per cancellare le voci di traduzione NAT:
DELLSONiC# clear nat translations
- Visualizzare le statistiche di traduzione NAT:
DELLSONiC# show nat statistics ----------------------------------------------------------------------------- Protocol Source Destination Packets Bytes ----------------------------------------------------------------------------- udp 100.100.100.100:63 --- 15522575563164 993444836042496
- Visualizzare la configurazione NAT e NAT:
DELLSONiC# show nat config static --------------------------------------------------------------------------------------------------------------------- Nat Type IP Protocol Global IP Global L4 Port Local IP Local L4 Port Twice-Nat Id ---------------------------------------------------------------------------------------------------------------------------- dnat all 100.100.100.1 ---- 10.32.20.3 ---- ----
- Visualizzazione dei pool NAT:
DELLSONiC# show nat config pool Pool Name Global IP Range Global L4 Port Range ----------------------------------------------------------------------------- POOL1 100.100.100.2 1024-6034 POOL2 100.100.100.3-100.100.100.4 ----
- Visualizzare la configurazione del binding NAT:
DELLSONiC# show nat config bindings Binding Name Pool Name Access-List Nat Type Twice-Nat Id ----------------------------------------------------------------------------- EXT1 POOL1 ---- ---- --- EXT2 POOL2 NAT_IPS ---- ---
- Visualizzare la configurazione NAT globale:
DELLSONiC# show nat config globalvalues Admin Mode : enabled Global Timeout : 600 secs TCP Timeout : 86400 secs UDP Timeout : 300 secs
- Visualizzare le zone di interfaccia L3:
DELLSONiC# show nat config zones Port Zone ------------------------------------------------- Eth1/1 2 PortChannel12 2 Vlan200 1 Loopback1 1
-
Visualizzare il numero di traduzioni NAT:
DELLSONiC# show nat translations count Static NAT Entries ................. 2 Static NAPT Entries ................. 0 Dynamic NAT Entries ................. 0 Dynamic NAPT Entries ................. 2 Static Twice NAT Entries ................. 0 Static Twice NAPT Entries ................. 0 Dynamic Twice NAT Entries ................. 0 Dynamic Twice NAPT Entries ................ 0 Total SNAT/SNAPT Entries ................ 2 Total DNAT/DNAPT Entries ................ 2 Total Entries .......................... 4