5.1 Wprowadzenie do NAT-u

Kolejnym bardzo ciekawym tematem jest NAT. NAT to skrót od Network Address Translation (translacja adresów sieciowych) i zwykle występuje w każdym routerze jako usługa. Czym więc jest i dlaczego jest potrzebny?

NAT to punkt, za pomocą którego sieci lokalne mogą być łączone z sieciami globalnymi, takimi jak na przykład Internet.

Jak już wiesz, w sieciach lokalnych wszystkie komputery (i inne urządzenia podłączone do sieci) mają własne lokalne adresy IP. A żeby wymieniać dane z serwerem w Internecie, konieczne jest, aby nasz komputer mógł wysłać żądanie do serwera, a serwer mógł wysłać nam odpowiedź. A gdzie ma wysłać odpowiedź, jeśli nasz adres IP jest nieznany poza naszą siecią lokalną?

Wyobraź sobie, że piszesz papierowy list do Donalda Trumpa. Trump jest osobą publiczną, jest jedyny - to jest nasz publiczny serwer. A w liście jako adres zwrotny podajesz Maszę. Dużo masuj. Której Maszy należy wysłać odpowiedź?

Wysyłasz więc list do swojego znajomego w Waszyngtonie, również osoby publicznej, z surowymi instrukcjami, aby wysłać go do Trumpa. Twój przyjaciel otrzymuje list, wysyła go do Trumpa i jako adres zwrotny podaje swój adres w Waszyngtonie.

Następnie, po otrzymaniu odpowiedzi od Trumpa, znajomy przekazuje ją Tobie. To samo z pakietami IP...

Aby umożliwić urządzeniu z prywatnym adresem IPv4 dostęp do urządzeń i zasobów poza siecią lokalną, należy najpierw zmienić adres prywatny na publiczny adres publiczny.

Just NAT tłumaczy adresy prywatne na publiczne. Dzięki temu urządzenie z lokalnym adresem IP może uzyskiwać dostęp do zasobów poza swoją siecią prywatną. NAT w połączeniu z lokalnymi adresami IP okazał się użyteczną metodą utrzymywania publicznych adresów IPv4.

Na świecie jest 8 miliardów ludzi, a urządzeń sieciowych jest już znacznie więcej: telefonów, laptopów, inteligentnych zegarków, serwerów, wszelkich inteligentnych urządzeń. A adresów IP jest tylko 4 miliardy. Kiedyś wydawało się to dużo, ale wraz z szybkim rozwojem Internetu stało się jasne dla wszystkich, że to nie wystarczy.

Tutaj z pomocą przychodzi NAT: jeden publiczny adres IPv4 może być używany przez setki, a nawet tysiące urządzeń, z których każde ma lokalny adres IPv4. NAT ma tę dodatkową zaletę, że zwiększa stopień prywatności i bezpieczeństwa sieci, ponieważ ukrywa wewnętrzne adresy IPv4 przed sieciami zewnętrznymi.

5.2 Podsieci w NAT

Sieci LAN są zwykle projektowane z prywatnymi adresami IP. Są to adresy z prywatnych podsieci 10.0.0.0/8i 172.16.0.0/12. 192.168.0.0/16Te adresy IP są używane wewnętrznie przez organizację lub witrynę, aby umożliwić urządzeniom komunikację lokalną, nie można ich rutować w Internecie.

Routery z włączoną funkcją NAT można skonfigurować z jednym lub większą liczbą ważnych publicznych adresów IPv4. Te adresy publiczne są nazywane pulą NAT.

Gdy urządzenie w sieci wewnętrznej wysyła ruch z sieci na zewnątrz, router obsługujący NAT tłumaczy wewnętrzny adres IP urządzenia na publiczny adres IP z puli NAT. Dla urządzeń zewnętrznych cały ruch przychodzący i wychodzący z sieci wydaje się mieć publiczny adres IP.

Router NAT zwykle działa na obrzeżach sieci pośredniczącej. Sieć pośrednicząca to termin z teorii sieci: sieć pośrednicząca, która ma jedno połączenie z sąsiednią siecią, jedno wejście i wyjście z sieci.

Gdy urządzenie w sieci Stub chce komunikować się z urządzeniem spoza swojej sieci, pakiet jest przekazywany do routera, który przeprowadza proces NAT, tłumacząc wewnętrzny adres prywatny urządzenia na publiczny, zewnętrzny adres rutowalny.

5.3 Terminologia NAT

Jeśli zagłębisz się w teorię sieci, to NAT jest siecią wewnętrzną, która jest zbiorem podsieci do przetłumaczenia. Sieć zewnętrzna odnosi się do wszystkich innych sieci.

Podczas korzystania z NAT adresy IP mają różne oznaczenia w zależności od tego, czy znajdują się w sieci prywatnej, czy w sieci publicznej (w Internecie) oraz od tego, czy ruch jest przychodzący, czy wychodzący.

NAT obejmuje cztery typy adresów:

  • Wewnętrzny adres lokalny (wewnętrzny adres lokalny);
  • Wewnętrzny adres globalny (wewnętrzny adres globalny);
  • Zewnętrzny adres lokalny ;
  • Zewnętrzny adres globalny (zewnętrzny adres globalny);

Przy określaniu, jaki typ adresu jest używany, należy pamiętać, że terminologia NAT jest zawsze stosowana z punktu widzenia urządzenia z przetłumaczonym adresem:

  • Adres wewnętrzny (Inside address) - adres urządzenia tłumaczony przez NAT;
  • Adres zewnętrzny – adres urządzenia docelowego;
  • Adres lokalny to dowolny adres pojawiający się wewnętrznie w sieci;
  • Adres globalny to dowolny adres, który pojawia się poza siecią.

Spójrzmy na to na przykładzie diagramu.

Komputer na rysunku po lewej ma wewnętrzny adres lokalny ( Inside local ) 192.168.1.5, az jego punktu widzenia serwer WWW ma adres zewnętrzny ( zewnętrzny ) 208.141.17.4. Kiedy pakiety danych są wysyłane z komputera na globalny adres serwera WWW, wewnętrzny lokalny ( Inside local ) adres komputera jest tłumaczony na 208.141.16.5( wewnątrz globalny ). Adres urządzenia zewnętrznego zwykle nie jest tłumaczony, ponieważ jest to publiczny adres IPv4.

Warto zauważyć, że komputer ma niejako dwa adresy: lokalny i globalny, podczas gdy serwer WWW ma ten sam publiczny adres IP. Z jego punktu widzenia ruch pochodzący z komputera pochodzi z wewnętrznego adresu globalnego 208.141.16.5. Router NAT jest punktem separacji między sieciami wewnętrznymi i zewnętrznymi oraz między adresami lokalnymi i globalnymi.

Terminy wewnątrz i na zewnątrz są łączone z terminami lokalny i globalny , aby odnosić się do określonych adresów. Na rysunku router jest skonfigurowany do zapewniania NAT i ma pulę adresów publicznych, które można przypisać do hostów wewnętrznych.

5.4 Ścieżka pakietu

Jeśli jesteś już zmęczony, przejdź do następnego wykładu. Jeśli nadal jesteś zainteresowany, witaj dalej w tunelu czasoprzestrzennym.

Poniższy rysunek pokazuje, w jaki sposób ruch jest wysyłany z komputera wewnętrznego do zewnętrznego serwera WWW przez router obsługujący NAT, wysyłany i przekazywany z powrotem.

Podsieci w NAT 3
tablica NAT routera
komputer serwer internetowy
Insde Global Wewnątrz lokalny poza lokalnym Poza globalnym
208.141.17.4 192.168.1.5 208.141.16.5 208.141.16.5

Wewnętrzny adres lokalny — adres źródłowy widziany z sieci wewnętrznej. Na rysunku adres 192.168.1.5jest przypisany do komputera - jest to jego wewnętrzny adres lokalny.

Wewnętrzny adres globalny — adres źródłowy widziany z sieci zewnętrznej. Na rysunku, gdy ruch z komputera jest wysyłany do serwera WWW o adresie 208.141.17.4, router tłumaczy wewnętrzny adres lokalny (adres lokalny) na wewnętrzny adres globalny (wewnętrzny adres globalny). W takim przypadku router zmienia źródłowy adres IPv4 z 192.168.1.5na 208.141.16.5.

Zewnętrzny adres globalny — adres miejsca docelowego widziany z sieci zewnętrznej. Jest to globalnie rutowalny adres IP przypisany do hosta w Internecie. Na diagramie serwer WWW jest dostępny pod adresem 208.141.17.4. Najczęściej zewnętrzne adresy lokalne i zewnętrzne adresy globalne są takie same.

Zewnętrzny adres lokalny — Adres odbiorcy widziany z sieci wewnętrznej. W tym przykładzie komputer wysyła ruch do serwera WWW pod adresem208.141.17.4

Teraz spójrzmy na całą ścieżkę pakietu. Komputer o podanym adresie 192.168.1.5próbuje komunikować się z serwerem WWW 208.141.17.4. Gdy pakiet dociera do routera obsługującego NAT, odczytuje docelowy adres IP pakietu, aby określić, czy pakiet spełnia kryteria określone dla translacji. W tym przykładzie adres źródłowy spełnia kryteria i jest tłumaczony z 192.168.1.5(wewnątrz lokalnego adresu) na 208.141.16.5(wewnątrz globalnego adresu).

Router dodaje to mapowanie adresów lokalnych na globalne do tablicy NAT i wysyła pakiet z przetłumaczonym adresem źródłowym do miejsca docelowego. Serwer WWW odpowiada pakietem zaadresowanym na wewnętrzny adres globalny komputera ( 208.141.16.5).

Router odbiera pakiet z adresem docelowym 208.141.16.5i sprawdza tablicę NAT w poszukiwaniu wpisu dla tego mapowania. Wykorzystuje te informacje i tłumaczy z powrotem wewnętrzny adres globalny ( 208.141.16.5) na wewnętrzny adres lokalny ( 192.168.1.5), pakiet jest przekierowywany do komputera.

5.5 Zalety i wady NAT

Usługa NAT to bardzo wydajne rozwiązanie, które jest używane wszędzie. NAT zapewnia wiele korzyści , w tym:

  • NAT utrzymuje zarejestrowany schemat adresowania, zapewniając elastyczne działanie sieci LAN. Dzięki NAT hosty wewnętrzne mogą współdzielić jeden publiczny adres IP dla całej komunikacji zewnętrznej. Ten typ konfiguracji wymaga bardzo niewielu adresów zewnętrznych do obsługi wielu hostów wewnętrznych.
  • NAT zwiększa elastyczność połączeń internetowych. Można zaimplementować wiele pul, pul kopii zapasowych i pul równoważenia obciążenia, aby zapewnić niezawodne połączenia sieci publicznej.
  • NAT zapewnia spójność wewnętrznych schematów adresowania sieci. W sieci, która nie korzysta z prywatnych adresów IP i NAT, zmiana ogólnego schematu adresów IP wymaga przekierowania wszystkich hostów w istniejącej sieci. Koszt przekierowania hosta może być znaczny. NAT pozwala na zachowanie istniejącego schematu adresowania prywatnego IPv4, jednocześnie umożliwiając łatwą zmianę nowego schematu adresowania publicznego. Oznacza to, że organizacja może zmieniać dostawców i nie musi zmieniać żadnego ze swoich klientów wewnętrznych.
  • NAT zapewnia bezpieczeństwo sieci . Ponieważ sieci prywatne nie ogłaszają swoich adresów ani topologii wewnętrznej, pozostają dość niezawodne, gdy są używane w połączeniu z NAT w celu uzyskania kontrolowanego dostępu zewnętrznego. Musisz jednak zrozumieć, że NAT nie zastępuje firewalli.

Ale NAT ma pewne wady . Fakt, że hosty w Internecie wydają się komunikować bezpośrednio z urządzeniem obsługującym NAT, a nie z rzeczywistym hostem w sieci prywatnej, stwarza szereg problemów:

  • Jedna z wad używania NAT ma związek z wydajnością sieci, szczególnie w przypadku protokołów czasu rzeczywistego, takich jak VoIP. NAT zwiększa opóźnienia przełączania, ponieważ translacja każdego adresu IP w nagłówkach pakietów wymaga czasu.
  • Inną wadą używania NAT jest utrata adresowania typu end-to-end. Wiele protokołów i aplikacji internetowych opiera się na adresowaniu typu end-to-end od źródła do miejsca docelowego. Niektóre aplikacje nie współpracują z NAT. Aplikacje używające adresów fizycznych zamiast kwalifikowanej nazwy domeny nie docierają do miejsc docelowych, które są tłumaczone przez router NAT. Czasami można tego uniknąć, wdrażając statyczne mapowania NAT.
  • Traci się również kompleksowe śledzenie IPv4. Trudniej jest śledzić pakiety, które przechodzą wiele zmian adresów pakietów w wielu przeskokach NAT, co utrudnia rozwiązywanie problemów.
  • Korzystanie z NAT utrudnia również protokoły tunelowania, takie jak IPsec, ponieważ NAT zmienia wartości w nagłówkach, które zakłócają sprawdzanie integralności wykonywane przez IPsec i inne protokoły tunelowania.
  • Usługi wymagające inicjowania połączeń TCP z sieci zewnętrznej lub protokoły bezstanowe, takie jak te korzystające z protokołu UDP, mogą nie działać. Jeśli router NAT nie jest skonfigurowany do obsługi tych protokołów, pakiety przychodzące nie mogą dotrzeć do miejsca docelowego.