NAT Overloading eller Port Address Translation (PAT) är en modifierad form av dynamisk NAT där antalet interna lokala adresser är större än antalet interna globala adresser. Oftast finns det bara en enda global IP-adress på insidan som ger alla värddatorer på insidan tillgång till Internet. NAT-överbelastning är den enda form av NAT som faktiskt sparar IP-adresser och det är också den mest populära formen av NAT.
Figur 10-4 Portadressöversättning (PAT)
PAT tillåter överbelastning eller mappning av mer än en inre lokal adress till samma inre globala adress. Men detta innebär också att returpaketen alla skulle ha samma destinationsadress när de når NAT-routern. Hur skulle routern veta vilken inre lokal adress varje returpaket tillhör? För att hantera detta scenario är NAT-posterna i översättningstabellen utökade poster; posterna spårar inte bara de relevanta IP-adresserna utan även protokolltyperna och portarna. Genom att översätta både IP-adressen och portnumret för ett paket kan upp till 65535 interna lokala adresser teoretiskt sett mappas till en enda inisde global adress (baserat på 16-bitars portnumret).
Men kom ihåg att en enskild NAT-post använder ungefär 160 byte av routerns minne, så 65535 poster skulle ta över 10 MB minne i anspråk och även stora mängder processorkraft. I praktiska PAT-konfigurationer mappas inte alls i närheten av detta antal adresser, men det är definitivt en teoretisk gräns.
Här är en exempelkonfiguration för NAT-överbelastning eller PAT enligt figur 10-4.
R1>
R1>enable
R1#configure terminal
Gå in i konfigurationskommandon, ett per rad. Avsluta med CNTL/Z.
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 ?
netmask Ange nätverksmask
prefix-längd Ange prefixlängd
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 nätmask 255.255.255.0
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R1(config)#ip nat inside source list 1 pool MyPool overload
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#interface FastEthernet0/1
R1(config-if)#ip address 67.210.97.1 255.255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#end
R1#
Ovanstående konfiguration kan tyckas vara mycket lik konfigurationen för dynamisk NAT, men det finns viktiga skillnader. För det första har poolen av IP-adresser krympt till en enda IP-adress som tilldelats det yttre gränssnittet för router R1.
För det andra matchar åtkomstlista 1 hela klass C-nätverket 192.168.1.0/24, vilket innebär att alla lokala inomhusadresser från det här nätverket kommer att översättas. Om du vill att en viss värddator från det här nätverket inte ska översättas måste du ange det uttryckligen genom att lägga till ett deny-uttalande i åtkomstlistan. Låt oss anta att vi vill neka översättning till en enda värd 192.168.1.2 medan vi tillåter alla andra värdar:
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.0.255
Det finns också ett tillägg av nyckelordet overload med kommandot ip nat inside source list 1 pool MyPool.
Låt oss börja vår vanliga verifiering genom att utfärda kommandot show ip nat translations:
R1#show ip nat translations
R1#
Det finns inga statiska mappningar och därav den tomma utmatningen ovan. Låt oss generera lite trafik från innevärdar till servern och utfärda kommandot show ip nat translations igen:
Pro Inside global Inside local Outside local Outside global
icmp 67.210.91.1:18 192.168.1.2:18 173.194.67.102:18 173.194.67.102:18
icmp 67.210.91.1:19 192.168.1.3:19 173.194.67.102:19 173.194.67.102:19
icmp 67.210.91.1:20 192.168.1.4:20 173.194.67.102:20 173.194.67.102:20
Som du kan se i utmatningen ovan översätts alla lokala adresser på insidan till samma globala adress på insidan, vilket är själva kärnan i NAT overload eller PAT. Du kanske har lagt märke till att routern har bevarat källportnumren när lokala inside-adresser översattes till globala inside-adresser. Detta är det vanliga beteendet, men när routern skapar en ny översättningspost så att källportnumret redan används, översätts portnumret också till ett annat nummer. Det är inte särskilt vanligt att två interna värdar väljer samma källportnummer, men det kan ändå hända, särskilt när antalet anslutningar från insidan till utsidan är betydande.
Låt oss också utfärda kommandot show ip nat statistics:
Total aktiva översättningar: 3 (0 statiska, 3 dynamiska; 3 utökade)
Outside interfaces:
Serial1/0
Inside interfaces:
FastEthernet0/0
Hits: 135 Misses: 15
CEF Översatta paket: 150, CEF Punted packets: 150, CEF Punted packets: 150: 0
Upphörda översättningar: 12
Dynamiska mappningar:
– Inside Source
access-list 1 pool MyPool refcount 3
pool MyPool: netmask 255.255.255.255.0
start 67.210.91.1 slut 67.210.91.1
typ generisk, totalt antal adresser 1, allokerat 1 (100 %), missar 0
Köade paket: 12
– Inside Source
– Inside Source
– Access-list 1 pool MyPool refcount 3
0
Du bör tänka på två saker. För det första är NAT-överbelastning användbart i alla situationer när antalet interna värdar är större än de offentliga adresser du har. I många situationer har du bara en enda offentlig IP-adress som är tilldelad det yttre gränssnittet på din router som vetter mot Internet. I det här fallet skulle din pool bestå av en enda IP-adress som konfigurationen ovan visar. Det kan dock hända att du har fler än en offentlig IP-adress tillgänglig, varav en kan tilldelas routerns gränssnitt mot Internet. I så fall kan din NAT-pool bestå av fler än en IP-adress och fortfarande använda NAT-överbelastning för att ta emot ett större antal interna värdar som vill ansluta till Internet. Kort sagt, du kan ha en enda överbelastad offentlig adress eller flera överbelastade offentliga adresser.
NAT Overload eller PAT är den vanligaste NAT-konfigurationen av den uppenbara anledningen att det är den variant av NAT som faktiskt bevarar globala IP-adresser, vilket är den primära anledningen till NAT-användning.