Tłumaczenie adresów sieciowych

W sieciach komputerowych mówi się, że router wykonuje translację adresów sieciowych (NAT), gdy dopasowuje adresy IP do innych adresów IP. W szczególności częstym przypadkiem jest zezwalanie maszynom z adresami prywatnymi, które są częścią intranetu i nie są ani unikalne, ani obsługujące routing w całym Internecie, na komunikowanie się z resztą Internetu za pomocą robaków. Poza publicznymi, unikalnymi i routowalnymi adresami zewnętrznymi.

W ten sposób możliwe jest dopasowanie pojedynczego zewnętrznego adresu publicznego widocznego w Internecie do wszystkich adresów sieci prywatnej , aby zrekompensować wyczerpanie adresów IPv4 .

Funkcja NAT w routerze z integracją usług (ISR) tłumaczy wewnętrzny źródłowy adres IP na globalny adres IP.

Ten proces jest szeroko stosowany przez skrzynkę internetową (lub router modemowy ) dostawców dostępu do ukrywania komputerów osobistych za jedną publiczną identyfikacją. Jest również używany podobnie w wirtualnych sieciach prywatnych .

Przykład

Kampus składa się z 1000 hostów (komputerów, drukarek itp.), Rozmieszczonych w 4 podsieciach. Bez użycia NAT taki kampus wymagałby przypisania prawie 1000  unikalnych i trasowanych adresów IPv4 .

Łącząc taki kampus z Internetem za pośrednictwem routera, który implementuje NAT, można zmienić wewnętrzny plan adresowania i używać nieunikalnych (używanych gdzie indziej na świecie) i nierutowalnych adresów w Internecie (patrz RFC  1918). . Mówimy także o adresach publicznych (unikalnych na świecie) i prywatnych (unikalnych tylko w sieci prywatnej ). Jednym z celów NAT jest uczynienie prywatnych adresów niewidocznymi w Internecie.

Tylko kilkaset adresów zostanie przypisanych do wszystkich zewnętrznych adresów NAT, wiedząc, że drukarki (i niektóre inne urządzenia) nie muszą stale komunikować się z zewnętrzem (dlatego ich adresy nie muszą być tłumaczone) .

Dlatego NAT znacznie zmniejsza liczbę używanych unikalnych adresów IP.

Implementacja NAT

W korespondencji pomiędzy prywatnymi adresami (wewnętrznych) i publicznych (zewnętrzne) są przechowywane w tabeli jako pary ( wewnętrzny adres , adres zewnętrzny ). Kiedy ramka jest wysyłana z adresu wewnętrznego na zewnątrz, przechodzi przez router NAT, który zastępuje w nagłówku pakietu TCP / IP adres nadawcy zewnętrznym adresem IP. Zamiana odwrotna jest wykonywana, gdy ramka odpowiadająca temu połączeniu musi być skierowana do adresu wewnętrznego. Możemy również ponownie wykorzystać wpis w tablicy korespondencji NAT, jeśli żaden ruch z tymi adresami nie przechodził przez router przez określony czas (konfigurowalne).

Wewnętrzny adres IP Zewnętrzny adres IP Czas ( y ) Wielokrotnego użytku?
10.101.10.20 193.48.100.174 1200 Nie
10.100.54.251 193.48.101.8 3,601 tak
10.100.0.89 193.48.100.46 0 Nie

Oto na przykład uproszczona tabela NAT. Zakłada się, że o wpis można ubiegać się, jeśli tłumaczenie nie było używane przez ponad 3600 sekund.

Pierwsza linia wskazuje, że maszyna wewnętrzna o adresie IP 10.101.10.20 jest tłumaczona na 193.48.100.174, gdy komunikuje się ze światem zewnętrznym. Nie wysłała pakietu przez 1200 sekund, ale limit wynosi 3600, ten wpis w tablicy jest nadal przypisany do niej. Drugi komputer pozostawał nieaktywny przez ponad 3600 sekund, może być wyłączony, inny komputer może przejąć ten wpis (modyfikując pierwszą kolumnę, ponieważ nie będzie miała tego samego wewnętrznego adresu IP). Wreszcie ostatnia maszyna jest obecnie w trakcie rozmowy z otoczeniem, a pole Czas trwania ma wartość 0.

Większość zapór i routerów implementuje NAT, aby umożliwić wielu maszynom współdzielenie jednego publicznego adresu IP.

Korzyści z NAT

Adresy wewnętrzne można wybrać spośród adresów zdefiniowanych w dokumencie RFC 1918 . W ten sposób kilka lokalizacji może mieć takie same adresy wewnętrzne i komunikować się ze sobą za pomocą tego mechanizmu. Ponieważ adresy wewnętrzne są ponownie wykorzystywane, zapisujemy publiczne adresy IP, których zajętość w IPv4 osiąga nasycenie.

Możemy mieć mniej adresów w zbiorze adresów zewnętrznych niż te, które mamy jako adresy IP wewnątrz sieci, jeśli wprowadzimy mechanizm odzyskiwania nieużywanych adresów po określonym czasie (nazywa się to dzierżawą). Dokładniej, jeśli wpis w tablicy translacji nie jest używany przez określony czas (konfigurowalny w serwerze DHCP sieci ), ten wpis może być ponownie wykorzystany: inny komputer z adresem wewnętrznym pobierze adres zewnętrzny.

Czasami uważa się, że NAT jest korzystny z punktu widzenia bezpieczeństwa, ponieważ adresy wewnętrzne są ukryte. Jednak bezpieczeństwo urządzeń znajdujących się za NAT nie jest większe niż to, które może zapewnić stanowa zapora ogniowa.

Nieodłączne problemy

Chociaż niektóre aplikacje radzą sobie bez trudności, NAT nie jest przezroczysty dla aplikacji sieciowych i dodatkowo komplikuje działanie aplikacji ( RFC  2993, RFC  3027):

Poważny problem pojawia się, gdy protokół komunikacyjny przesyła adres IP hosta źródłowego w pakiecie lub numery portów. Ponieważ ten adres nie jest ważny po przejściu przez router NAT, nie może być używany przez maszynę docelową. Mówi się, że protokoły te „  z trudem przechodzą przez zapory ogniowe  ”, ponieważ wymieniają informacje na poziomie aplikacji (FTP) z informacjami na poziomie IP (wymiana adresów) lub na poziomie TCP (wymiana portów), co narusza zasadę separacji z warstw sieciowych .

Niektóre z takich protokołów to: FTP , H.323 , protokoły peer - to - peer ( IRC-DCC ), protokoły zarządzania siecią, DNS , niektóre komunikaty ICMP , traceroute , protokół SIP .

Aby przezwyciężyć tę wadę, routery NAT muszą sprawdzać zawartość; następnie działają jako brama na poziomie aplikacji (ALG) i obsługują pakiety, które przechodzą przez nie, w celu zastąpienia adresów IP określonych przez adresy zewnętrzne. Wymaga to znajomości formatu protokołu.

NAT powoduje , że uczestniczą w polityce bezpieczeństwa miejscu, a to nie jest jego główny cel: Gdy tłumaczenie jest ustalone, to jest dwukierunkowa. Dlatego NAT nie zastępuje zapory.

Hairpinning jest problem z NAT.

Różne typy NAT

Statyczny NAT

Gdzie zbiór adresów wewnętrznych jest tłumaczony na zbiór adresów zewnętrznych o tym samym rozmiarze. Mówi się, że te translatory NAT są statyczne, ponieważ powiązanie między adresem wewnętrznym a jego zewnętrznym urządzeniem równorzędnym jest statyczne (pierwszy adres wewnętrzny z pierwszym zewnętrznym itp.). Tabela skojarzeń jest dość prosta, jeden do jednego i zawiera tylko adresy. Te translatory NAT służą do zapewniania dostępu do serwerów wewnętrznych z zewnątrz.

Istnieją trzy typy statycznych NAT  :

Dynamiczny NAT

Gdzie zestaw adresów wewnętrznych jest przenoszony do mniejszego zestawu adresów zewnętrznych. Mówi się, że te translatory NAT są dynamiczne, ponieważ powiązanie między adresem wewnętrznym a jego zewnętrznym odpowiednikiem jest tworzone dynamicznie po zainicjowaniu połączenia. Są to numery portów, które będą identyfikować dokonane tłumaczenie: numer portu źródłowego (komputera wewnętrznego) zostanie zmodyfikowany przez router. Użyje go do zidentyfikowania wewnętrznej maszyny.

Istnieje kilka typów dynamicznych NAT  :

Inny sposób kategoryzacji NAT

Niektóre subtelności:

NAT klasy nośnej

Ze względu na wyczerpanie adresów IPv4 , dostawcy usług internetowych rozważają zastosowanie NAT na dużą skalę (NAT na poziomie operatora lub NAT na dużą skalę ), co nie jest pozbawione konsekwencji dla niektórych aplikacji.

Przechodzenie przez NAT

W przypadku braku jawnej konfiguracji translatory NAT generalnie odrzucają połączenia przychodzące, co powoduje problemy, zwłaszcza w przypadku aplikacji typu „każdy z każdym” .

Opracowano dwa protokoły, aby umożliwić stacjom roboczym klienta żądanie otwarcia i przekierowania określonych portów z routera NAT:

Oprogramowanie takie jak Skype wykorzystuje inne techniki komunikacji między równorzędnymi urządzeniami za NAT. pwnat używa wariantu, który wykorzystuje komunikaty ICMP do wykrywania klientów.

NAT i IPv6

IETF zniechęca NAT z IPv6 z powodu nieodłącznych problemów i dlatego przestrzeń adresowa IPv6 jest taka, że oszczędność adres nie jest wymagane.

Uwagi i odniesienia

  1. (w) "  Adres Alokacja dla prywatnych Internets  " Request for Comments n °  1918Luty 1996.
  2. (en) Stéphane Bortzmeyer , „  Tłumaczenie adresów (NAT), które zapewnia prawdziwe bezpieczeństwo?  " ,16 września 2012(dostęp 8 listopada 2012 )
  3. (w) "  Skutków architektury Nat  " Request for Comments n ö  2993,listopad 2000.
  4. (w) "  Powikłania Protokół z adresem IP Tłumacz Network  " Request for Comments n °  3027Styczeń 2001.
  5. (w) "  STUN - proste przeglądanie Użytkownika Datagram Protocol (UDP) poprzez translatory adresów sieciowych (NAT)  " Wniosek o komentarzach n o  3489,Marzec 2003.
  6. (w) Analiza protokołu telefonii internetowej Skype Peer-to-Peer [PDF] , Salman A. Baset i Henning Schulzrinne,15 września 2004.
  7. pwnat .
  8. RFC 3002 P26

Zobacz też

Powiązane artykuły

Linki zewnętrzne