Přetížení NAT neboli překlad adres portů (PAT) je modifikovaná forma dynamického NAT, kdy je počet vnitřních lokálních adres větší než počet vnitřních globálních adres. Většinou existuje pouze jedna vnitřní globální IP adresa, která poskytuje přístup k internetu všem vnitřním hostitelům. Přetížení NAT je jedinou variantou NAT, která skutečně šetří adresy IP, a je také nejoblíbenější formou NAT.
Obrázek 10-4 Překlad adres portů (PAT)
PAT umožňuje přetížení neboli mapování více než jedné vnitřní lokální adresy na stejnou vnitřní globální adresu. To však také znamená, že všechny zpětné pakety by měly stejnou cílovou adresu, jakmile by dorazily ke směrovači NAT. Jak by směrovač poznal, ke které vnitřní lokální adrese patří každý návratový paket? Aby bylo možné tento scénář řešit, jsou položky NAT v překladové tabulce rozšířenými položkami; tyto položky sledují nejen příslušné IP adresy, ale také typy protokolů a porty. Překladem IP adresy i čísla portu paketu by teoreticky bylo možné namapovat až 65535 vnitřních místních adres na jedinou vnitřní globální adresu (na základě 16bitového čísla portu).
Nezapomeňte však, že jeden záznam NAT využívá přibližně 160 bajtů paměti směrovače, takže 65535 záznamů by zabralo více než 10 MB paměti a také velké množství výkonu procesoru. V praktických konfiguracích PAT se ani zdaleka nemapuje takový počet adres, ale rozhodně se jedná o teoretický limit.
Ukázka konfigurace pro přetížení NAT nebo PAT podle obrázku 10-4.
R1>
R1>enable
R1#configure terminal
Zadejte konfigurační příkazy, jeden na řádek. Ukončete klávesou CNTL/Z.
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 ?
netmask Zadejte masku sítě
prefix-length Zadejte délku prefixu
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 netmask 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.0
R1(config-if)#ip nat outside
R1(config-if)#end
R1#
Výše uvedená konfigurace se může zdát velmi podobná konfiguraci pro dynamický NAT, jsou zde však důležité rozdíly. Zaprvé, fond IP adres byl zmenšen na jedinou IP adresu přidělenou vnějšímu rozhraní směrovače R1.
Druhé, přístupový seznam 1 odpovídá celé síti třídy C 192.168.1.0/24, což znamená, že bude přeložena jakákoli vnitřní místní adresa z této sítě. Pokud chcete, aby konkrétní hostitel z této sítě nebyl přeložen, musíte to explicitně určit přidáním příkazu deny do přístupového seznamu. Předpokládejme, že chceme zakázat překlad jedinému hostiteli 192.168.1.2 a zároveň povolit všechny ostatní hostitele:
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Také je zde přidání klíčového slova overload s příkazem ip nat inside source list 1 pool MyPool.
Začněme naše obvyklé ověřování příkazem show ip nat translations:
R1#show ip nat translations
R1#
Neexistuje žádné statické mapování, a proto je výše uvedený výstup prázdný. Vygenerujme nějaký provoz z vnitřních hostitelů na server a znovu zadejme příkaz show ip nat translations:
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
Jak je vidět z výše uvedeného výstupu, všechny vnitřní lokální adresy jsou přeloženy na stejnou vnitřní globální adresu, což je podstatou přetížení NAT neboli PAT. Možná jste si všimli, že směrovač zachoval čísla zdrojových portů, protože vnitřní lokální adresy byly přeloženy na vnitřní globální adresy. To je obvyklé chování, ale když směrovač vytvoří novou položku překladu tak, že číslo zdrojového portu je již používáno, číslo portu se také přeloží na jiné číslo. Výskyt dvou vnitřních hostitelů, kteří si zvolí stejné číslo zdrojového portu, není příliš častý, ale přesto k němu může dojít, zejména pokud je počet spojení zevnitř ven značný.
Vydáme také příkaz show ip nat statistics:
Celkový počet aktivních překladů: 3 (0 statických, 3 dynamické; 3 rozšířené)
Vnější rozhraní:
Serial1/0
Vnitřní rozhraní:
FastEthernet0/0
Hits: 135 Misses: Přeložené pakety: 15
CEF: CEF Punted packets: 150, CEF Punted packets: 150, CEF Punted packets: 150, CEF Punted packets: 150 Překlady: 0
Vypršely překlady: Vnitřní zdroj
access-list 1 pool MyPool refcount 3
pool MyPool: netmask 255.255.255.0
start 67.210.91.1 end 67.210.91.1
type generic, total addresses 1, allocated 1 (100%), misses 0
Queued packets: 0
Měli byste mít na paměti dvě věci. Za prvé, přetížení NAT je užitečné v každé situaci, kdy je počet vnitřních hostitelů větší než počet veřejných adres, které máte k dispozici. V mnoha situacích máte pouze jednu veřejnou IP adresu, která je přiřazena vnějšímu rozhraní vašeho směrovače směřujícího do Internetu. V takovém případě by se váš pool skládal z jediné IP adresy, jak ukazuje konfigurace výše. Můžete však mít k dispozici více než jednu veřejnou IP adresu, z nichž jedna může být přiřazena rozhraní směrovače směřujícímu do internetu. V takovém případě se váš pool NAT může skládat z více než jedné adresy IP, a to i při použití přetížení NAT, abyste mohli přijmout větší počet vnitřních hostitelů, kteří se chtějí připojit k Internetu. Stručně řečeno, můžete mít jednu přetíženou veřejnou adresu nebo můžete mít více než jednu přetíženou veřejnou adresu.
NAT Overload nebo PAT je nejrozšířenější konfigurací NAT ze zřejmého důvodu, že se jedná o variantu NAT, která skutečně zachovává globální IP adresy, což je hlavní důvod použití NAT.
.