cs:nat64

NAT64 vznikl jako nástupce odmítnutého NAT-PT. Řeší stejný problém - transparentní překlad IP datagramů mezi IPv6 a IPv4, zpravidla pro celou koncovou IPv6 síť. Snaží se ovšem vyhnout problémům, jimiž trpěl NAT-PT a jež spočívaly především v jeho zásazích do DNS. NAT64 proto rezignoval na oboustrannost a soustředí se především na zajištění přístupu k IPv4 Internetu pro IPv6 stroje z koncové sítě. Komunikace v opačném směru je velmi omezená.

Jádrem NAT64 je obecný algoritmus pro Překlad IPv4 na IPv6. IPv4 adresy jsou do IPv6 mapovány bezstavově za použití algoritmu pro IPv6 adresa s vloženou IPv4 (IPv4-Embedded IPv6 Address). Všechny mají společný prefix a směrování musí být nastaveno tak, aby datagramy směřující na adresy s tímto prefixem byly doručovány NAT64 zařízení. Mapování opačným směrem je dynamické a vychází z překladové tabulky obsažené v NAT64.

NAT64 se chová velmi podobně jako současné IPv4 NATy. Má k dispozici (veřejnou) IPv4 adresu či několik adres. Když stroj z IPv6 sítě navazuje spojení do IPv4, odešle IPv6 datagram na adresu s vloženou IPv4 adresou. NAT64 si ji vyzvedne a použije ji jako cílovou adresu IPv4 datagramu. Pro adresu odesilatele vytvoří položku v mapovací tabulce, kde IPv6 adresu a port původního odesilatele převede na svou IPv4 adresu a vhodný port. Následně vytvoří podle obecných překladových pravidel IPv4 datagram a ten odešle do IPv4 Internetu. Při příchodu odpovědi analogickým způsobem převede IPv4 datagram na IPv6 a odešle místnímu IPv6 stroji.

NAT64 překládá pouze protokoly TCP, UDP a ICMP. Pro každý z nich si udržuje samostatnou překladovou tabulku adres a ke každé její položce tabulku spojení, která daný překlad využívají. Není-li některá z překladových položek aktivně využívána, bude z tabulky odstraněna.

Výrazně omezená je možnost navázání komunikace ve směru z IPv4 do IPv6. Vyžaduje, aby v mapovací tabulce NAT64 existovala statická položka, která bude místní IPv6 adresu trvale mapovat a učiní ji tak přístupnou. Toto chování se opět velmi podobá IPv4 NATům. Specifikace NAT64 počítá i s filtrací procházejících datagramů.

DNS64

Internetová komunikace obvykle začíná převodem doménového jména na IP adresu. NAT64 vyžaduje určité zásahy i v této oblasti. K jejich realizaci slouží spolupracující algoritmus DNS64, který bude typicky instalován v rekurzivních serverech obsluhujících místní klienty.

Pokud místní DNS server implementující algoritmus DNS64 dostane dotaz na záznam typu AAAA pro jméno www.example.net, postupuje následovně:

  1. Odešle dotaz v původní podobě (AAAA pro www.example.net).
  2. Uspěje-li, jednoduše předá odpověď tazateli, ten může s cílovým strojem komunikovat IPv6 a není třeba nic překládat.
  3. Pokud dostane zápornou odpověď, odešle dotaz znovu, ovšem změní typ záznamu na A (A pro www.example.net).
  4. Jestliže byl úspěšný, mapuje IPv4 adresy z odpovědi typu A standardním způsobem na IPv6 ve tvaru prefix:IPv4_adresa a pošle je tazateli jako odpověď s typem AAAA.

Klient pak pravděpodobně odešle paket na mapovanou adresu z této odpovědi. Díky směrování použitého prefixu dorazí datagram na NAT64 stroj, kde následuje obvyklé zpracování. DNS64 a NAT64 nemusí pracovat na stejném zařízení. Jejich vzájemná spolupráce vyžaduje jediný prvek - oba musí pro mapování IPv4 adres shodný prefix.

DNS64 upravuje DNS zprávy, proto mu působí potíže vyrovnat se s DNSSEC. Dokud si klient nechce ověřovat záznamy sám (nenastaví příznak CD), provede ověření stroj s DNS64 a pošle tazateli upravenou odpověď s případným příznakem potvrzujícím ověření. Má-li dotaz nastaven příznak CD, DNS64 příchozí odpověď nemění a pošle ji klientovi v původní podobě. V tomto případě musí být DNS64 implementováno i na straně DNS klienta, jinak je nelze použít.

Odkazy

  • RFC 6146 - NAT64
  • RFC 6147 - DNS64
  • RFC 6145 - obecná pravidla pro překlad IP datagramů a ICMP zpráv
  • RFC 6052 - adresy pro přechodové mechanismy
Poslední úprava:: 25.07.2019 13:11