NAT translacja adresów sieciowych

Technologia NAT jest bardzo przydatna, jednak czasem może być źródłem pewnych trudności dla niedoświadczonych użytkowników Internetu. Ponadto, prawie każdy abonent używa routera działającego w trybie NAT, świadomie lub nie. Omówimy pokrótce na czym polega natywna translacja adresów sieciowych  oraz jakie płyną z niej ograniczenia i możliwości.

Urządzenia będące członkami sieci komputerowej z założenia miały mieć swój własny, niepowtarzalny adres IP identyfikujący je na skalę globalną. Przydziałem i regulacją adresów zajmuje się parę organizacji, takich jak IANA, RIPE NCC czy wreszcie lokalni bądź ogólnokrajowi dostawcy internetowi. 32-bitowa natura adresów protokołu IP w wersji czwartej (obecnie najbardziej rozpowszechnionej) sprawia że możliwe jest współistnienie około 4,3 biliona urządzeń podłączonych bezpośrednio do Internetu (w praktyce liczba ta jest nieco mniejsza). Twórcy pierwszych protokołów internetowych uważali że tyle w zupełności wystarczy, jednak teraz już wiemy że istnieje realne ryzyko wyczerpania się puli dostępnych adresów. To spowodowało, że usługa posiadania na własność adresu IP jest dosyć kosztowna. Teoretycznie powinniśmy posiadać adres IP dla każdego urządzenia w naszej sieci domowej, jednak kto chce płacić pięciokrotność abonamentu internetowego? Na szczęście z pomocą przychodzi NAT.

NAT to w rozwinięciu „Network Address Translation”, czyli konwersja adresów sieciowych. Pozwala ona wielu urządzeniom, najczęściej połączonym za pomocą sieci lokalnej, na korzystanie z jednego adresu widocznego w Internecie. Obecnie nawet dostawcy internetowi oferują wypożyczenie lub kupno routera domowego z obsługą NAT. Sprawia to, że dostawca usług może przydzielić nam ze swojej skromnej puli tylko jeden adres IP, a my możemy korzystać z domowego Internetu przy użyciu nieograniczonej (w praktyce ograniczonej, ale bardzo dużej) liczby urządzeń.

Router działający w trybie NAT musi posiadać przynajmniej dwa interfejsy sieciowe: jeden dla połączenia z internetem, drugi dla połączenia z siecią lokalną. W praktyce nasze domowe punkty dostępowe posiadają wiele portów ethernet a dodatkowo oferują połączenie bezprzewodowe. Urządzenia wewnątrz sieci korzystają z ukrytej, „prywatnej” adresacji. Adresy wewnętrzne, nawet adres samego routera, nie są widoczne dla innych użytkowników Internetu. To pozwala na użycie tej samej adresacji, w naszym przykładzie 192.0.2.0/24 (adresy 192.0.2.1 do 192.0.2.254), w innej sieci LAN należącej do innego abonenta. Na poniższym schemacie widzimy przykładową konfigurację sieci lokalnej ukrytej za NATem.

Konfigurcja sieci za NAT. Translacja adresów sieciowych

Korzystanie przez wiele urządzeń z jednego publicznego adresu IP oznacza, że w standardowej konfiguracji możliwe są tylko połączenia wychodzące z sieci lokalnej – nie można zainicjować połączenia z adresem, którego nie znamy. Kiedy klient próbuje połączyć śię z serwerem, NAT tworzy dynamiczny (najczęściej mamy do czynienia z takim typem NAT) wpis, który przepuszcza pakiety należące do danego połączenia. W naszym przypadku jest to połączenie TCP do portu 80 (HTTP), czyli najprawdopodobniej na komputerze „Klient 1” działa przeglądarka internetowa, a na Serwerze 1 – serwer WWW. Drugi schemat przedstawia owo połączenie. Inicjacja przez klienta ma kolor jasno zielony, zaś odpowiedź serwera ciemno zielony.

Schemat NAT. Translacja adresów sieciowych

 

Z zewnątrz możemy połączyć się jedynie z samym routerem. Najczęściej jednak firewall (zapora sieciowa) na urządzeniu NAT jest skonfigurowana tak aby odrzucała wszystkie połączenia przychodzące na interfejsie podłączonym do Internetu. Możemy to zmienić, na przykład jeżeli chcemy konfigurować nasz router zdalnie. Wtedy odblokowujemy port 80 (HTTP, najczęściej konfiguracja routera) na połączenia przychodzące z sieci zewnętrznej. Dodawanie takich reguł w zaporze routera nie pozwoli nam jednak na połączenia przychodzące z zewnątrz skierowane do komputerów w sieci lokalnej. Komputer należący do naszej sieci lokalnej na którym działa serwer gry sieciowej dalej będzie nieosiągalny dla innych urządzeń podłączonych do Internetu w innych sieciach LAN. W takim przypadku należy przekierować poszczególne port aby umożliwić połączenia przychodzące do konkretnej maszyny w sieci wewnętrznej. O tym, jak to zrobić, dowiesz się tutaj.

Podziel się wiedzą z innymi

Komentarz do postu