**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 [[preklad_ip_a_icmp]]. IPv4 adresy jsou do IPv6 mapovány bezstavově za použití algoritmu pro [[preklad_adres]]. 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ě: - Odešle dotaz v původní podobě (AAAA pro //www.example.net//). - 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. - Pokud dostane zápornou odpověď, odešle dotaz znovu, ovšem změní typ záznamu na A (A pro //www.example.net//). - 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