Na Styku SieciNa Styku Sieci
Aa
  • Start
  • Routing & Switching
  • Wireless
  • Certyfikacja
  • Wokół sieci
Czytasz: NAT od podszewki
Udostępnij
Na Styku SieciNa Styku Sieci
Aa
Szukaj
  • Start
  • Kategorie
    • Routing & Switching
    • Wireless
    • Certyfikacja
    • Wokół sieci
  • Linki
    • Tagi
    • Kontakt
Routing & Switching

NAT od podszewki

Damian Michalak
Damian Michalak 8 stycznia 2019 Komentarze: 4

Kiedy w latach 90. ubiegłego wieku nastąpił szybki rozwój Internetu dość szybko zorientowano się, że pula adresów IPv4 będzie niewystarczająca i w pewnym momencie się skończy. Inżynierowie na całym świecie zakasali rękawy i zaczęli szukać rozwiązania tego problemu. Jednym z nich okazał się NAT – Network Address Translation, czyli translacja adresów sieciowych. Rozwiązanie na tyle skuteczne, że dzięki niemu IPv4 został z nami dłużej niż przypuszczano – mimo upływu ponad 20 lat (2022 rok) od jego opracowania IPv6 stanowi około 40% globalnie używanych adresów.

W artykule:
Wprowadzenie do NATStatic NATDynamic NATNAT Overload/PAT

Wprowadzenie do NAT

Translacja adresów sieciowych umożliwia używanie prywatnych adresów IP (czyli adresów, które są przeznaczone do używania wyłącznie w sieciach wewnętrznych i nie mogą być rozgłaszane globalnie w Internecie – są to adresy o prefixach 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) i jednocześnie komunikowanie się ze wszystkimi urządzeniami w Internecie. Jest to możliwe dzięki zamianie prywatnych adresów IP na publiczne zarejestrowane adresy, zarówno jeden do jednego, jak i jeden do wielu, co będzie bardziej szczegółowo omówione w dalszej części artykułu.

Router mapuje prywatny adres wewnętrzny oraz adres publiczny i dokonuje zamiany adresu IP zarówno, gdy pakiet wychodzi z sieci jak również gdy do niej wraca. Dzięki temu na przykład posiadając nawet jeden publiczny adres IP firma może zapewnić komunikację z Internetem wielu hostom znajdującym się w sieci firmowej.

NAT przyczynił się do żywotności protokołu IPv4, ale ma on również inne zastosowania. Pozwala on dodatkowo na ukrycie informacji o sieci wewnętrznej. Osoba będąca na zewnątrz sieci nie ma informacji na temat adresacji wewnętrznej, widzi tylko adres publiczny, czyli już po tłumaczeniu NAT.NAT daje również możliwość używania pokrywających się podsieci – taka sytuacja może mieć miejsce np. gdy dojdzie do połączenia dwóch korporacji – dzięki translacji adresów możliwe będzie używanie takich samych podsieci, a jednocześnie zapewnienie komunikacji między nimi.

NAT nie jest jednak pozbawiony wad. Użycie translacji może utrudnić bądź uniemożliwić inicjalizowanie połączeń z zewnątrz – domyślnie NAT dopuszcza połączenia z sieci wewnętrznej do zewnętrznej, w przypadku niezestawionych sesji będzie blokować połączenia z zewnątrz do wewnątrz. Nie da się ukryć, że wprowadza on również dodatkową złożoność w sieci. Trzeba wiedzieć, gdzie i jak jest skonfigurowany, by nie doprowadzić do błędów w konfiguracji. Kolejną rzeczą, na którą należy zwrócić uwagę to zwiększone zużycie zasobów urządzenia dokonującego translacji NAT. Mapowanie dużej puli adresów może wyraźnie zwiększyć wymagania w zakresie mocy obliczeniowej urządzenia, co naturalnie może się przełożyć na jego koszt.

Możemy wyróżnić 3 rodzaje NAT, z czego każda z nich oferuje inne możliwości i ma różne zastosowania:

  • Static NAT,
  • Dynamic NAT
  • NAT overload, nazywany wymiennie Port Address Translation (PAT).

Static NAT

Statyczny NAT to dość proste rozwiązanie, które polega na translacji adresów jeden do jednego. Oznacza to, że jeden adres prywatny z sieci wewnętrznej tłumaczony jest na jeden adres publiczny dostępny w Internecie. Co ważne Static NAT w przeciwieństwie do pozostałych odmian jest dwukierunkowy – umożliwia również działanie odwrotne, czyli mapowanie IP publicznego na prywatne. Ta metoda oczywiście nie zwiększa nam dostępnej puli adresów, ale przede wszystkim umożliwia ukrycie faktycznego adresu naszego urządzenia. Typowym przykładem użycia będą serwery. W przeciwieństwie do zwykłych hostów, zmiana adresu serwera może mieć duży wpływ na dostępność usług, więc jest niepożądana. Statycznie przypisanie zarówno adresu prywatnego jak i publicznego gwarantuje, że serwer będzie osiągalny wewnątrz i na zewnątrz sieci.

Wiemy już czym jest Static NAT, zanim jednak przejdziemy do pierwszej konfiguracji musimy poznać podstawowe terminy z nim związane. Terminologia NAT wyróżnia 4 rodzaje adresów:

  • Inside local – rzeczywisty adres IP przydzielony hostowi znajdującemu się w sieci wewnętrznej
  • Outside local – adres IP zewnętrznego hosta widziany z perspektywy sieci wewnętrznej
  • Inside global – jest to adres hosta znajdującego się w sieci wewnętrznej, ale widziany z poziomu Internetu
  • Outside global – rzeczywisty adres hosta znajdującego się poza siecią wewnętrzną

Niestety na pierwszy rzut oka może się to wydawać zawiłe, dlatego zobaczmy jak wygląda to na przykładzie:

Teraz możemy przejść do konfiguracji Static NAT. Do adresacji użyjemy powyższego przykładu:

  • Pierwszy krokiem w konfiguracji jest stworzenie mapowania adresu prywatnego na publiczny.
R1(config)#ip nat inside source static 10.1.4.112 198.4.2.56
  • Następnie określamy, który port będzie interfacem wewnętrznym.
R1(config)#interface GigabitEthernet 0/0 
R1(config-if)#ip nat inside
  • Oraz analogicznie określamy port zewnętrzny.
R1(config-if)#interface GigabitEthernet 0/1 
R1(config-if)#ip nat outside

Dynamic NAT

Powiązane publikacje

Czym jest APIPA?
Jak działa komunikacja DNS?
Ataki i ochrona w warstwie drugiej – ARP
DHCP dla IPv4 – czym jest i jak działa?
Czym jest domena rozgłoszeniowa i kolizyjna?

W przypadku dynamicznego NATu również mamy mapowanie adresu prywatnego na publiczny. Tutaj jednak w przeciwieństwie do Static NAT mamy translację wiele do wielu. Router zamiast jednego adresu ma skonfigurowaną pulę wielu możliwych do wykorzystania adresów. Wybiera on wolny adres z puli i przydzielenie go hostowi. Jeśli przez określony czas host nie będzie aktywny w sieci adres ten zostaje zwolniony (lub jeśli wpisy w tablicy adresów zostaną usunięte ręcznie) i może być przydzielony innemu hostowi. W Dynamic NAT może się zdarzyć tak, że pula adresów lokalnych będzie większa niż liczba dostępnych adresów globalnych. Router będzie przydzielać kolejne adresy globalne, aż do ich wyczerpania. Jeśli zabraknie adresu dla hosta, będzie on musiał czekać, aż zwolni się miejsce w tablicy adresów NAT.

Dynamic NAT nie jest rozwiązaniem spotykanym dość często. Najczęściej będzie używany w firmach mających duże pule publicznych adresów IP, co wiąże się z wysokimi kosztami.

Na powyższym przykładzie widzimy grupę hostów w podsieci 10.1.4.0/24, które mają korzystać z puli publicznych adresów w zakresie od 192.4.2.60/24 do 198.4.2.100/24. Konfiguracja Dynamic NAT przebiega następująco:

  • Poprzez access listę określamy listę adresów wewnętrznych, dla których ma być wykonana translacja NAT.
R1(config)#access-list 1 permit 10.1.4.0 0.0.0.255
  • Definiujemy pulę adresów publicznych, które będą służyły do translacji.
R1(config)#ip nat pool NAT_POOL 198.4.2.60 198.4.2.100 netmask 255.255.255.0
  • Kolejnym poleceniem włączamy Dynamic NAT, gdzie odwołujemy się do puli adresów i access listy utworzonych w poprzednich krokach.
R1(config)#ip nat inside source list 1 pool NAT_POOL
  • Następnie określamy, który port będzie interfacem wewnętrznym.
R1(config)#interface GigabitEthernet 0/0
R1(config-if)#ip nat inside
  • Oraz analogicznie określamy port zewnętrzny.
R1(config-if)#interface GigabitEthernet 0/1 
R1(config-if)#ip nat outside

NAT Overload/PAT

To właśnie NAT Overload jest funkcją, dzięki której udaje się tak długo wykorzystywać adresację IPv4. Dzięki mapowaniu wiele-do-jednego PAT umożliwia dynamiczne mapowanie wielu prywatnych IP na jeden publiczny adres, dzięki temu może być używany nawet w małych firmach. Takie rozwiązanie jest możliwe dzięki przydzieleniu do prywatnego adresu IP dynamicznego numeru portu. Dzięki takiemu zabiegowi jeden adres publiczny może obsługiwać 65 000 adresów wewnętrznych!

Zobaczmy jak w tym przypadku wygląda mapowanie adresów. Szczególną uwagę należy przywiązać do portów, które są przypisane do komunikacji. Przykładowo podczas pierwszej sesji NAT dokonywanej przez router host 10.1.4.108 z przypisanym portem dynamicznym 21567 otrzymał adres publiczny 198.4.2.56 z tożsamy numerem portu – 21567. Kolejna sesja została nawiązana przez hosta 10.1.4.109 z portem 28954. Dostał on również adres 198.4.2.56, ale port został zmieniony na kolejny następujący po wcześniejszym, czyli 21568.

Przejdźmy do konfiguracji PAT:

  1. Poprzez access listę określamy listę adresów wewnętrznych, dla których ma być wykonana translacja NAT.
R1(config-if)#access-list 1 permit 10.1.4.0 0.0.0.255
  • Kolejnym poleceniem włączamy NAT overload, gdzie odwołujemy się do ACL utworzonej w poprzednim kroku.
R1(config)#ip nat inside source list 1 interface Gi0/1 overload
  • Następnie określamy, który port będzie interfacem wewnętrznym.
R1(config)#interface GigabitEthernet 0/0 
R1(config-if)#ip nat inside
  • Oraz analogicznie określamy port zewnętrzny.
R1(config-if)#interface GigabitEthernet 0/1 
R1(config-if)#ip nat outside

TAGI: NAT, PAT
Damian Michalak 8 stycznia 2019
Udostępnij ten materiał
Facebook Twitter Whatsapp Whatsapp LinkedIn
Poprzedni artykuł Konfiguracja i troubleshooting klienta Wi-Fi z wiersza poleceń
Następny artykuł Kiedy mogę powiedzieć, że dużo zarabiam?
Komentarze: 4
Zaloguj się
guest

guest

4 - Ilość komentarzy
Sortuj wg najlepszych
Sortuj wg najnowszych Sortuj wg najstarszych
Inline Feedbacks
View all comments
loockas
loockas
4 lat temu

Cześć. NAT bardzo często wykorzystywany jest również w sieciach wewnętrznych do komunikacji z innymi sieciami wewnątrz. Wszędzie tam gdzie nie możemy użyć bramy, możemy skorzystać z NAT. Generalnie fajny blog. Też jestem sieciowcem, ale w branży ISP. Będę zaglądał 🙂

0
0
Odpowiedz
Damian Michalak
Autor
Damian Michalak
4 lat temu
Odpowiedź do  loockas

Cześć loockas – dobre uzupełnienie, faktycznie zabrakło tego w materiale. Dzięki!

0
0
Odpowiedz
Slawek
Slawek
2 lat temu
Odpowiedź do  Damian Michalak

Dobrze się zapowiada. Proponuję rozbudować temat o temat Identity NAT.

0
0
Odpowiedz
Sebastian
Sebastian
11 miesięcy temu

60-100 to jest akurat 41 😉

0
0
Odpowiedz

NA STYKU SIECI

Tworzymy społeczność sieciowców skupioną dookoła rozwiązań oraz certyfikacji firmy Cisco Systems.
Przydatne linki
  • Tagi
Nasze projekty
  • Szkoła Sieci

© Na Styku Sieci 2022 - powered by Alvortech

  • Kontakt
Witaj ponownie!

Zaloguj się na swoje konto

Zapomniałeś/aś hasło?