NAT-T (eventuelně NAT-Traversal ) je zkratka pro Network Address Translation Traversal. NAT je technologie, která slouží ke sdílení jedné veřejné IP adresy skupinou počítačů ve vnitřní síti s neveřejným IP rozsahem. Více zde
NAT.
Klasický NAT neumožňuje provozovat klienty protokolu IPSec ( Internet Protocol SECurity ) na počítačích ve vnitřní síti. Protokol IPSec slouží k ochraně (utajení a integrita) dat přenášených po IP sítích ( typicky po internetu ).
Proč nefunguje IPSec přes klasický NAT ?
Tři důvody : změna ip hlavičky, tcp/udp checksum, čisla tcp/udp portů
IPSec nejen že šifruje přenášená data (utajení), ale zaroveň zajištuje integritu dat a autencitu (pravost) odesilatele (klienta). Tedy zajištuje, že se data "po cestě" nezmění a že se baví s tím správným klientem a né někým, kdo použije klientovu ip adresu. Problém s klasickým NATem je tedy následující - ten funguje tak, že mění hlavičky paketů: Mění ip adresy počítačů z vnitřní sítě na svoji vlastní adresu (veřejnou). IKE protokol ( Internet Key Exchange ), využívaný IPSecem, uvadí ve svých datech zdrojovou ip adresu ( tedy ip klienta ve vnitřní síti ) a tato adresa se neschoduje se zdrojovou ip adresou IKE paketu ( který ma adresu NATu ) a proto je cílovým strojem ( VPN server ) paket zahozen jako neplatný.
Dalším problémem je TCP a UDP checksum ( kontrolní součet ), který slouží k ověřování paketů. Kontrolní součet je zapsán v TCP hlavičce a obsahuje ip adresu odesílajícího ( klienta ) , příjemce ( VPN server )a čísla portů pro komunikaci. S normální komunikací není problém, protože NAT aktualizuje hlavičky odchozích paketů tak, aby obsahovali jeho vlastní ip adresu a port místo adresy a portu klienta. ALe protože IPSec šifruje hlavičky pomocí ESP protokolu ( Encapsulating Security Payload ) , NAT je nemůže změnit. Což ve výsledku znamená, že kontrolní součet je špatný ( neplatný ) a cílový stroj ( VPN server ) paket zahodí.
Ze stejného důvodu NAT nemůže změnit čísla portů TCP/UDP protokolů - protože jsou šifrované pomocí ESP.
Jak funguje NAT-T ?
Pracovní skupina IEEE zabývající se vývojem protokolu IPSec vytvořila nový standard, definovaný RFC 3947 a 3948 který se jmenuje NAT-T a je určen právě pro vyřešení problémů výše uvedených.
NAT-T přidává UDP hlavičku, která obaluje (encapsulates) ESP hlavičku. ( Vlastně se nacpe mezi ESP hlavičku a vnější IP hlavičku ). Toto dáva stroji provozujícím NAT-T UDP hlavičku obsahující UDP porty, které se použijí pro adresaci klienta. ( což umožňuje multiplexovat více ipsec streamů ) NAT-T také přidá zdrojovou ip adresu ( klienta ) do NAT-OA ( Original Address ) payload. ( nevím jak správně přeložit do ČJ :) ) NAT-OA tak dává možnost cílovému stroji ( VPN server ) z těchto dat ověřit originální zdrojovou a cílovou ip adresu, čísla portů a ověřit kontrolní součet. Toto zároveň také řeší problém který vznikal tím, že IKE data ( obsahující zdrojovou adresu ) a vlastní zdrojová adresa IKE paketu paketu nebyly stejné.
Toto je hodně zjednodušený popis toho jak NAT-T funguje.
Pro zájemce o další ( podrobnější ) studium :
RFC 3947 a
RFC 3948