(T) Teoria protokołu NAT64**
Spis treści
Pokaż
Konfiguracja protokołu NPTv6 została opisana w artykule: Konfiguracja translacji NAT względem protokołu IPv6.
NAT64 (IPv4 <-> IPv6)
Wprowadzenie do protokołu NAT64
- NAT-PT opisuje referencja RFC 6144, 2766 oraz 4966.
- NAT64 opisuje referencja RFC 6146, 6145 oraz 6052.
- Protokół NAT64 umożliwia translację adresów IPv4 na adresy IPv6, jak i na odwrót.
- Protokół NAT64 stanowi ulepszoną wersję protokołu NAT-PT.
Komponenty protokołu NAT64
- NAT64 prefix – Prefix-y IPv6 wykorzystywane w protokole NAT64: /32, /40, /48, /56, /64, /96.
- DNS64 server – Serwer DNS odwzorowujący nazwy domenowe AAAA na adresy IPv6. Oprócz rekordów AAAA serwery DNS64 obsługują również rekordy A, dzięki czemu mogą również odwzorować adresy IPv4.
- NAT64 router – Ruter na którym zachodzi proces translacji adresów IPv6 na adresy IPv4, jak i na odwrót.
DNS (Domain Name System)
- A Record – Odwzorowuje nazwę domenową na adres IPv4.
- AAAA Record – Odwzorowuje nazwę domenową na adres IPv6.
- Adres serwera DNS względem protokołu IPv6 można skonfigurować za pomocą komendy [ip name-server adresy-IPv6].
- Statyczne odwzorowanie adresów IPv6 na nazwę domenową w systemie Cisco IOS, można skonfigurować za pomocą komendy [ipv6 host nazwa-domeny [port] adresy-IPv6].
Proces działania protokołu NAT64 (IPv6 host to IPv4 server)
Skrócony proces protokołu NAT64
- Proces translacji IPv6 -> IPv4:
- Nadchodzący pakiet IPv6 zostaje przekierowany do wirtualnego interfejsu NVI (NAT Vitrual Interface).
- Protokół NAT64 przeprowadza translację docelowego adresu IPv6, wydobywając z niego docelowy adres IPv4.
- Protokół NAT64 dodaje do tablicy (Bind Databese) wpis o przeprowadzonej translacji.
- Proces translacji IPv4 -> IPv6:
- Nadchodzący pakiet IPv4 zostaje przekierowany do wirtualnego interfejsu NVI (NAT Vitrual Interface).
- Docelowy adres IPv4 zostaje statycznie bądź dynamicznie mapowany na adres IPv6.
- Protokół NAT64 dodaje do tablicy (Bind Databese) wpis o przeprowadzonej translacji.
Pełny proces protokołu NAT64

- Host wysyła zapytanie Query (AAAA www.cisco.com) do serwera DNS64.
- Serwer DNS64 otrzymuje zapytanie Query od hosta. Jako że nie zna odwzorowania podanej nazwy domenowej na adres IPv6, wysyła zapytanie Query do zaufanego serwera DNS AAAA.
- Serwer DNS AAAA otrzymuje zapytanie Query od Serwer DNS64. Jako że nie zna odwzorowania podanej nazwy domenowej na adres IPv6, wysyła odpowiedź Response (Name Error: www.cisco.com), do serwera DNS64.
- Serwer DNS64 otrzymuje odpowiedź Response od serwera DNS AAAA. Następnie wysyła zapytania Query (A www.cisco.com) do serwera DNS A.
- Serwer DNS A otrzymuje zapytanie Query od serwera DNS64. Jako że posiada odwzorowanie podanej nazwy domenowej na adres IPv4, wysyła odpowiedź Response (www.cisco.com(A) = 10.10.10.10), do serwera DNS64.
- Serwer DNS64 otrzymuje odpowiedź Response od serwera DNS A. Jako że podany adres IP nie jest adresem protokołu IPv6, serwer DNS64 przekształca otrzymany adres IPv4 w specjalny adres IPv6 wykorzystywany przez protokół NAT64. Adres ten składa się z przekształconego adresu IPv4 (10.10.10.10 -> 0A0A:0A0A) oraz adresu IPv6 (2001:DB8:CAFE:AAAA::/96) co razem daje nowy, docelowy adres IPv6 w następującej postaci (2001:DB8:CAFE:AAAA::0A0A:0A0A/96).
- Serwer DNS64 wysyła odpowiedź Response (www.cisco.com(AAAAA) = 2001:DB8:CAFE:AAAA::0A0A:0A0A) do hosta.
- Host wysyła pakiet na docelowy adres IPv6 przekazany w odpowiedzi Response od serwera DNS64.
- Ruter NAT64 otrzymuje pakiet IPv6 od hosta, na interfejsie (NAT64 enable). Rozpoczynając tym samym proces Statefull NAT Translation (Prefix 2001:DB8:CAFE:AAAA::/96). Jako że pierwsze 96 bitów adresów IPv6 się nie zgadza, ruter NAT:
- Przekształca nagłówek pakietu IPv6 na nagłówek IPv4.
- Przekształca adres IPv6 na adres IPv4, usuwając z docelowego adresu IPv6 prefix 2001:DB8:CAFE:AAAA::/96) jak i zmieniając ostatnie bity adresu IPv6 z trybu szesnastkowego na dziesiętny (0A0A:0A0A -> 10.10.10.10).
- W zależności od konfiguracji protokołu NAT64, ruter przekształca źródłowy adres IPv6 na adres IPv4. Na zasadzie jeden do jednego (1:1) bądź poprzez przepełnienie (Overloading). Metoda ta jest podobna do protokołu PAT.
- Następnie następuje proces translacji adresów IP, a wyniki są zapisywane w tablicy NAT Translations.
- Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.
- Docelowy serwer IPv4 odpowiada na otrzymany pakiet IPv4.
- Ruter NAT64 otrzymuje pakiet IPv4 od serwera docelowego na interfejsie (NAT64 enable), sprawdzając czy w tablicy NAT Translations istnieje wpis odpowiadający informacją zawartym w otrzymanym pakiecie.
- Jeżeli ruter NAT64 nie posiada pasującego wpisu w tablicy NAT Translations, pakiet zostaje porzucony.
- Jeżeli ruter NAT64 posiada pasujący wpis w tablicy NAT Translations, następuje translacja z adresu IPv4 na IPv6.
- Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.
Proces działania protokołu NAT64 (IPv4 host to IPv6 server)

- Na ruterze NAT64 zostaje skonfigurowany protokół NAT64, ze statycznym mapowaniem adresu IPv6 na adres IPv4, za pomocą komendy [nat64 v6v4 static 2001:db8:feed:1::e 172.16.1.10], wydanej w trybie konfiguracji globalnej.
- Host wysyła zapytanie Query (A www.cisco.com) do serwera DNS.
- Serwer DNS otrzymuje zapytanie Query od hosta. Jako że posiada odwzorowanie podanej nazwy domenowej na adres IPv4, wysyła odpowiedź Response (www.cisco.com(A) = 172.16.1.10), do hosta.
- Host wysyła pakiet na docelowy adres IPv4 przekazany w odpowiedzi Response od serwera DNS.
- Ruter NAT64 otrzymuje pakiet IPv4 od hosta, na interfejsie (NAT64 enable). Rozpoczynając tym samym proces translacji:
- Ruter NAT64 przekształca nagłówek pakietu IPv4 na nagłówek IPv6, zmieniając docelowy adres IPv4 na adres IPv6.
- Ruter NAT64 przekształca źródłowy adres IPv4, na nowo stworzony adres IPv6 (192.0.2.10 -> C000:020A), co razem daje nowy docelowy adres IPv6, w następującej postaci (2001:DB8:CAFE:AAAA:: C000:020A).
- Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.
- Docelowy serwer IPv6 odpowiada na otrzymany pakiet IPv6.
- Ruter NAT64 otrzymuje pakiet IPv6 od serwera docelowego na interfejsie (NAT64 enable), rozpoczynając tym samym proces translacji NAT. Ruter NAT64:
- Przekształca nagłówek pakietu IPv6 na nagłówek IPv4, zmieniając źródłowy adres IPv6 na adres IPv4.
- Przekształca docelowy adres IPv6, na adres IPv4. Na podstawie oryginalnego docelowego adresu IPv6.
- Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.
Porównanie Stateless NAT64 do Stateful NAT64
Stateless NAT64 | Stateful NAT64 |
1:1 translation | 1:N translation |
No conservation of IPv4 address | Conserves IPv4 address |
Assures end-to-end address transparency and scalability | Uses address Overloading, hence lacks in end-to-end address transparency |
No state or bindings created on the translations | State or bindings are created every unique translation |
Requires IPv4-transable IPv6 addresses assignment | No requirement on the nature of IPv6 address assignment |
Requires either manual or DHCPv6 based address assignment for IPv6 host | Free to Choose any mode of IPv6 address assignment (Manual, DHCPv6, SLAAC). |
Porównanie metody Stateless NAT64 do metody Stateful NAT64
Porównanie protokołów NAT
NAT64 vs NPTv6
- NAT64 – Modyfikuje sesje podczas transmisji.
- NAT64 – Wykorzystuje określony adres IPv6 (Network-specyfic Prefix).
- NPTv6 – Mapuje jeden adres IPv6 do drugiego adresu IPv6.
- NPTv6 – Modyfikuje nagłówek pakietu podczas transmisji.
Pozostałe tematy związane z protokołem IPv6
- Wstęp do protokołu IPv6
- Struktura adresacji IPv6
- Adresacja unicast
- Adresacja Multicast
- Protokół ICMPv6
- Neighbor Discovery
- Troubleshooting IPv6
- Komendy Show, Clear i Debug IPv6
- Konfiguracja routing-u IPv6
- Konfiguracja list ACL IPv6
- Konfiguracja tuneli IPv6
- Protokół IPv6 w systemach operacyjnych
Przydzielanie adresów IPv6
- Teoria protokołu DHCPv6
- Przydzielanie adresów (SLAAC)
- Przydzielanie adresów (SLAAC + Stateless DHCPv6)
- Przydzielanie adresów (Stateful DHCPv6)
- Teoria Prefix Delegation Options
- Statyczne przydzielanie adresów IPv6
- Przydzielanie adresów IPv6 (SLAAC)
- Przydzielanie adresów IPv6 (Stateless DHCPv6)
- Przydzielanie adresów IPv6 (Stateful DHCPv6)
- Przydzielanie adresów IPv6 (Prefix Delegation)