NAT overload

Port Address Translation (PAT), även känd som NAT overload, binder flera privata IPv4-adresser ihop till en enda publik IPv4-adress eller till en pool med några publika IP-adresser. Detta är exempelvis vad de flesta hemroutrar gör. Internetleverantören tilldelar en publik adress till routern med vilken kan flera medlemmar i hemnätet samtidigt få tillgång till Internet. Detta är den vanligaste formen av NAT.

Med PAT kan flera interna eller privata adresser associeras till en eller till några interna globala publika IPv4 adresser genom att använda olika portnummer. När en nätverksenhet initierar en TCP/IP-session genererar den ett TCP- eller UDP-portnummer (source port number) som identifierar sessionen. En TCP/IP-session kan också identifieras med ett speciellt tilldelat query-ID för ICMP för att unikt identifiera sessionen. När NAT-routern tar emot ett paket från en lokal nätverksenhet använder NAT-router klientens portnummer för att identifiera klientens NAT-översättningen.

På bilden nedan kan vi analysera ankommande paket på routern:

  • PC1 och PC2 vill komma åt webb-servrar Svr1 och Svr2.
  • PC1 identifieras med IPv4 adress 192.168.10.10 och portnummer 1555
  • PC2 identifieras med IPv4 adress 192.168.10.11 och portnummer 1331
  • PC1 har paket med destination 209.165.201.1 och portnummer 80 (HTTP)
  • PC2 har paket med destination 209.165.201.129 och portnummer 80 (HTTP)

Routern som är också en NAT server översätter adresserna:

  • PC1 – 192.168.10.10 översätts till 209.165.200.226 och samma portnummer 1555
  • PC2 – 192.168.10.11 översätts till 209.165.200.226 och samma portnummer 1331
  • PC1 och PC2 destination-adresser ändras inte

När webb-servrar svarar gör det med paket adresserade till destinationen 209.165.200.226 och specifikt portnummer.

Portnummer hantering

En NAT-router sammanbinder specifika portnummer till varje NAT-klient och använder samma förbindelse så länge det är möjligt. Det kan hända att vissa portnummer är redan kopplade till andra NAT-klienter vilket kan orsaka följande situationer:

  • När det inte finns fler tillgängliga portar och när det finns mer än en inside global adresser i adresspolen, använder NAT-routern nästa inside global adress för att associera med samma kopplat portnummer.
  • När två eller flera NAT-klienter använder samma portnummer ändrar NAT-routern till andra portnummer så att varje paket kan identifieras.

Exempel

Alla nätverksenheter i det lokala nätverk (INSIDE) 192.168.0.0/16 som skickar paket till R2 kommer att översättas till adressen 209.165.200.225 vilket ska styras med en access list.

Konfigurationer

  • Identifiera outside-interface som inside global och som det interfacet som ska översätta inside adresser.
  • R2(config)# ip nat inside source list 1 interface serial 0/1/0 overload
  • Konfigurera ACL 1 som ska tillåta adressöversättningar för 192.168.0.0/16
  • R2(config)# access-list 1 permit 192.168.0.0  0.0.255.255
  • PAT tillämpas på interfacen:
  • R2(config)# interface S0/0/0
  • R2(config-if)# ip nat inside
  • R2(config-if)# exit
  • R2(config)# interface s0/1/0
  • R2(config-if)# ip nat outside
  • R2(config-if)# end