NAT (Network Address Translation)

ITpedia

NAT jest jednym z tych protokołów, które niwelują skutki początkowo niefrasobliwego przydzielania adresów IP, kiedy to ich liczba – teoretycznie ponad 4,2 mld – wydawała się przesadnie duża. Nieco podobną rolę spełniają CIDR, DHCP, a teraz eksperymentalny RSIP (Realm-Specific Internet Protocol).

Rola NAT sprowadza się do poszerzenia przestrzeni adresowej IPv4 przez translację kilku milionów adresów prywatnych nie wykorzystanych przez IETF na adresy publiczne, niezbędne do komunikacji w Internecie. Dzięki temu wszystkie urządzenia w sieci wewnętrznej jakiegoś przedsiębiorstwa, nawet w liczbie odpowiadającej klasie C, mogą być reprezentowane na zewnątrz przez jeden adres publiczny. Komputery w różnych sieciach organizacji mogą mieć identyczne adresy prywatne.

Translacja NAT jest przezroczysta. Serwer NAT przechwytuje każdy pakiet wychodzący na zewnątrz. W polu Adres źródłowy takiego pakietu znajduje się prywatny adres komputera źródłowego, np. 10.50.101.44 – nie do przyjęcia w Internecie. Serwer musi go zmienić na adres publiczny w rodzaju 191. 144. 121. 21. I oczywiście zmienia go, ale musi jeszcze dokonać kilku innych zmian:

  • Serwer NAT w trybie podstawowym Basic NAT – konwersja na poziomie warstwy sieciowej – musi zawsze zmienić Sumę kontrolną w nagłówku IP, wspomniany adres źródłowy i Sumę kontrolną w nagłówku TCP. Czasami musi dodatkowo zmienić Długość całkowitą w IP, Przesunięcie fragmentu, Numer sekwencyjny i Numer ACK.
  • W trybie NAPT (Network Address Port Translation) – na poziomie warstwy transportowej – zmiany zawsze obejmują: Sumę kontrolną IP, Adres źródłowy, Port źródłowy i Sumę kontrolną TCP, a czasami jeszcze pola wymienione w Basic NAT. NAPT jest wariantem dynamicznego NAT. Bywa implementowany w ruterach SOHO.

Wszystkie zmiany, zwłaszcza wyliczanie sum kontrolnych, obniżają wydajność sieci. Ponadto NAT nie może funkcjonować z niektórymi aplikacjami i nie zawsze dwukierunkowo. Bardzo słabym punktem tego protokołu są wirtualne sieci prywatne (VPN). Na przykład IPSec negocjuje początkowe warunki kodowania w trybie bezpośrednim end-to-end. Pakiety IPSec po zakodowaniu w systemie klient nie będą rozpoznawane i modyfikowane przez NAT.

Prawdopodobnie NAT zostanie wyparty przez RSIP, który nie tylko wspiera IPSec, ale zawiera także mechanizm sygnalizacji niezbędny do przetwarzanie opartego na regułach. RSIP jest wstecznie kompatybilny z NAT, a więc migracja będzie bezkolizyjna.

-
-