I det här avsnittet får du lära dig hur man konfigurerar och verifierar dynamisk NAT. Avsnittet innehåller även en Packet Tracer-aktivitet där du får testa dina kunskaper.
Till skillnad från statisk NAT, som skapar en permanent mappning mellan en inside local adress och en inside global adress, skapar dynamisk NAT automatiskt mappningar från interna till publika adresser. Dessa inside global adresser är oftast publika IPv4-adresser.
Precis som med statisk NAT behöver man konfigurera vilka interface som är inside och vilka som är outside, med kommandona ip nat inside och ip nat outside i interface-läget. Men där statisk NAT gör en fast mappning till en enda adress, använder dynamisk NAT en adress-pool.
I topologin som visas i figuren används ett internt nätverk med adresser ur RFC 1918:s privata adress intervall. Till router R1 är två LAN anslutna: 192.168.10.0/24 och 192.168.11.0/24. Router R2, som är gräns-routern, är konfigurerad med dynamisk NAT med en pool av publika IPv4-adresser: 209.165.200.226–209.165.200.240.

Adress-poolen (inside global address pool) är tillgänglig för enheter på det interna nätverket enligt först till kvarn-principen. Med dynamisk NAT översätts en intern adress till en unik extern adress. För att detta ska fungera måste poolen innehålla tillräckligt många adresser för att stödja alla enheter som behöver tillgång till det externa nätverket samtidigt. Om alla adresser används måste en enhet vänta tills en adress blir ledig innan den kan skicka trafik utåt.
Obs: Den vanligaste användningen av NAT är att översätta mellan privata och publika IPv4-adresser. Men NAT kan även konfigureras för översättning mellan två godtyckliga adresser.
Konfigurera dynamisk NAT
Figuren visar en topologi där NAT-konfigurationen tillåter översättning för alla host i nätverket 192.168.0.0/16, vilket omfattar både 192.168.10.0 och 192.168.11.0. När dessa enheter genererar trafik som går in via S0/1/0 och ut via S0/1/1, översätts deras interna adresser till adresser i poolen 209.165.200.226–209.165.200.240.

Stegvis konfiguration av Dynamisk NAT
Steg 1. Definiera adresspoolen – Skapa en pool med publika adresser som ska användas för översättning med kommandot ip nat pool. Adress intervallet anges med en start- och en slut-adress. Du specificerar också nätmasken som gäller för adressområdet.
R2(config)# ip nat pool NAT-POOL1 209.165.200.226 209.165.200.240 netmask 255.255.255.224
Steg 2. Skapa en standard-ACL – Konfigurera en standard access list som definierar vilka interna adresser som får översättas. En alltför generös ACL kan ge oförutsägbara resultat. Kom ihåg att det alltid finns ett implicit deny all i slutet av varje ACL.
R2(config)# access-list 1 permit 192.168.0.0 0.0.255.255
Steg 3. Knyt ACL till adresspoolen – Använd följande kommando för att binda ACL till adress-poolen:
R2(config)# ip nat inside source list 1 pool NAT-POOL1
Detta talar om för routern att de adresser som tillåts enligt ACL 1 ska översättas med hjälp av adresserna i poolen NAT-POOL1.
Steg 4. Definiera inside-interface – Identifiera de interface som är kopplade till det interna nätverket. I exemplet konfigureras Serial 0/1/0 som inside:
R2(config)# interface serial 0/1/0
R2(config-if)# ip nat inside
Steg 5. Definiera outside-interface – Identifiera de interface som är kopplade till det externa nätverket. I exemplet konfigureras Serial 0/1/1 som outside:
R2(config)# interface serial 0/1/1
R2(config-if)# ip nat outside
Analysera dynamisk NAT – Inifrån och ut
Utifrån tidigare konfiguration visar de två följande figurerna översättningsprocessen i dynamisk NAT mellan två klienter och en webbserver. Den första figuren illustrerar trafikflödet från det interna nätverket till det externa:

- Klienterna med IPv4 source-adresserna 192.168.10.10 (PC1) och 192.168.11.10 (PC2) skickar paket för att ansluta till servern med publik IPv4-adress 209.165.200.254.
- R2 tar emot det första paketet från 192.168.10.10. Eftersom paketet kommer in på ett interface som är konfigurerat som inside, kontrollerar R2 NAT-konfigurationen för att avgöra om paketet ska översättas. ACL 1 tillåter detta, så R2 fortsätter. R2 kontrollerar sin NAT-tabell. Eftersom ingen befintlig översättning finns för 192.168.10.10, tilldelar R2 nästa tillgängliga adress i adress-poolen: 209.165.200.226. Den privata adressen 192.168.10.10 är då inside local, och den publika blir inside global. Samma process upprepas för 192.168.11.10, som får översättas till 209.165.200.227.
- R2 byter ut PC1:s adress 192.168.10.10 mot 209.165.200.226 innan paketet vidarebefordras till internet. Samma sker för PC2 med adressen 209.165.200.227.
Analysera dynamisk NAT – Utifrån och in
Den andra figuren illustrerar återvändande trafik från det externa nätverket till det interna.

- Servern tar emot paketet från PC1 och svarar med destination 209.165.200.226. När servern svarar på PC2:s paket använder den destination 209.165.200.227.
- Vad händer nu?
- När R2 tar emot ett paket med destination 209.165.200.226, gör den en NAT-uppslagning och hittar en mappning till 192.168.10.10, vilket är PC1. Paketet vidarebefordras inåt.
- Samma process sker för 209.165.200.227, vilket översätts till 192.168.11.10 (PC2).
- Både PC1 (192.168.10.10) och PC2 (192.168.11.10) tar emot sina respektive svars paket och kommunikationen fortsätter. R2 upprepar steg 2–5 för varje nytt paket. (Steg 6 visas inte i figurerna.)
Verifiera dynamisk NAT
Kommandot show ip nat translations visar alla översättningar – både statiska och dynamiska:
R2# show ip nat translations Pro Inside global Inside local Outside local Outside global --- 209.165.200.228 192.168.10.10 --- --- --- 209.165.200.229 192.168.11.10 --- ---
Lägg till nyckelordet verbose för att visa mer information om varje översättning, inklusive när posten skapades och senast användes:
R2# show ip nat translation verbose
Pro Inside global Inside local Outside local Outside global
tcp 209.165.200.228 192.168.10.10 --- ---
create 00:02:11, use 00:02:11 timeout:86400000, left 23:57:48, Map-Id(In): 1,
flags:
none, use_count: 0, entry-id: 10, lc_entries: 0
tcp 209.165.200.229 192.168.11.10 --- ---
create 00:02:10, use 00:02:10 timeout:86400000, left 23:57:49, Map-Id(In): 1,
flags:
none, use_count: 0, entry-id: 12, lc_entries: 0
R2#
Obs: Standardtiden för översättningar är 24 timmar (timeout). Den kan ändras med kommandot ip nat translation timeout i globalt läge.
För att manuellt rensa dynamiska översättningar innan deras timeout löper ut:
R2# clear ip nat translation * R2# show ip nat translation
Detta är särskilt användbart när du testar en ny NAT-konfiguration. Du kan även rensa specifika översättningar med mer precisa kommandon:
| Kommando | Beskrivning |
|---|---|
| clear ip nat translation * | Rensar alla dynamiska översättningar från NAT-tabellen. |
| clear ip nat translation inside global-ip local-ip [outside local-ip global-ip] | Rensar en specifik enkel dynamisk översättning. |
| clear ip nat translation protocol inside global-ip global-port local-ip local-port [outside local-ip local-port global-ip global-port] | Rensar en specifik utökad (extended) dynamisk översättning. |
Obs: Endast dynamiska översättningar rensas. Statiska översättningar kvarstår i tabellen.
Andra användbara kommandon
R2# show ip nat statistics
Total active translations: 4 (0 static, 4 dynamic; 0 extended)
Peak translations: 4, occurred 00:31:43 ago
Outside interfaces:
Serial0/1/1
Inside interfaces:
Serial0/1/0
Hits: 47 Misses: 0
CEF Translated packets: 47, CEF Punted packets: 0
Expired translations: 5
Dynamic mappings:
-- Inside Source
[Id: 1] access-list 1 pool NAT-POOL1 refcount 4
pool NAT-POOL1: netmask 255.255.255.224
start 209.165.200.226 end 209.165.200.240
type generic, total addresses 15, allocated 2 (13%), misses 0
(output omitted)
Du kan också granska NAT-konfigurationen i den aktuella konfigurationen med:
R2# show running-config | include NAT ip nat pool NAT-POOL1 209.165.200.226 209.165.200.240 netmask 255.255.255.224 ip nat inside source list 1 pool NAT-POOL1