w przypadku translacji adresów portów (PAT) dla wszystkich wewnętrznych prywatnych adresów IP używany jest jeden publiczny adres IP, ale do każdego prywatnego adresu IP przypisany jest inny port. Ten typ NAT jest również znany jako przeciążenie NAT i jest typową formą NAT używaną w dzisiejszych sieciach. Jest nawet obsługiwany przez większość routerów klasy konsumenckiej.
PAT pozwala na obsługę wielu hostów z tylko kilkoma publicznymi adresami IP. Działa poprzez tworzenie dynamicznego mapowania NAT, w którym wybierany jest globalny (publiczny) adres IP i unikalny numer portu. Router przechowuje wpis tabeli NAT dla każdej unikalnej kombinacji prywatnego adresu IP i portu, z tłumaczeniem na adres globalny i unikalnym numerem portu.
użyjemy poniższej przykładowej sieci, aby wyjaśnić korzyści płynące z używania PAT:
jak widać na powyższym obrazku, PAT używa unikalnych numerów portów źródłowych na wewnętrznym globalnym (publicznym) adresie IP, aby odróżnić tłumaczenia. Na przykład, jeśli host z adresem IP 10.0.0.101 chce uzyskać dostęp do serwera S1 w Internecie, prywatny adres IP hosta zostanie przetłumaczony przez R1 na 155.4.12.1: 1056, a żądanie zostanie wysłane do S1. S1 odpowie na 155.4.12.1: 1056. R1 otrzyma tę odpowiedź, zajrzy do tabeli translacji NAT i przekaże żądanie do hosta.
aby skonfigurować PAT, wymagane są następujące polecenia:
- skonfiguruj wewnętrzny Interfejs routera za pomocą polecenia ip nat inside.
- skonfiguruj zewnętrzny interfejs routera za pomocą polecenia IP nat outside.
- skonfiguruj listę dostępu, która zawiera listę wewnętrznych adresów źródłowych, które mają być przetłumaczone.
- włącz PAT z IP nat wewnątrz listy źródeł Typ interfejsu acl_number przeciążenie globalne polecenie konfiguracyjne.
oto jak skonfigurowalibyśmy PAT dla powyższego obrazka sieciowego.
najpierw zdefiniujemy interfejsy zewnętrzne i wewnętrzne na R1:
R1(config)#int Gi0/0 R1(config-if)#ip nat inside R1(config-if)#int Gi0/1 R1(config-if)#ip nat outside
następnie zdefiniujemy listę dostępu, która będzie zawierać wszystkie prywatne adresy IP, które chcemy przetłumaczyć:
R1(config-if)#access-list 1 permit 10.0.0.0 0.0.0.255
zdefiniowana powyżej lista dostępu zawiera wszystkie adresy IP z zakresu 10.0.0.0 – 10.0.0.255.
teraz musimy włączyć NAT i odwołać się do ACL utworzonego w poprzednim kroku i do interfejsu, którego adres IP będzie używany do tłumaczeń:
R1(config)#ip nat inside source list 1 interface Gi0/1 overload
aby zweryfikować tłumaczenia NAT, możemy użyć polecenia show ip nat translations po tym, jak hosty zażądają zasobów internetowych z S1:
R1#show ip nat translations Pro Inside global Inside local Outside local Outside globaltcp 155.4.12.1:1024 10.0.0.100:1025 155.4.12.5:80 155.4.12.5:80tcp 155.4.12.1:1025 10.0.0.101:1025 155.4.12.5:80 155.4.12.5:80tcp 155.4.12.1:1026 10.0.0.102:1025 155.4.12.5:80 155.4.12.5:80