Protokół NPTv6 umożliwia statyczną translacją prefix-ów IPv6 na inne prefix-y IPv6, zgodnie z zasadą jeden do jednego (1:1) (Statelessaddress translation), nie umożliwiając przy tym translacji Stateful.
Protokół NPTv6 jest wykorzystywany w sieci, ponieważ:
Uniezależnia wewnętrzną adresację sieci od dostawcy ISP, tym samym zmiana globalnego prefix-u nie wymaga zmiany wewnętrznej adresacji IPv6.
Umożliwia translację adresów ULA (Unique Local Address) na GUA (Global Unicast Address).
Protokół NPTv6:
Nie wymaga mapowania przy translacji prefix-ów IPv6.
Nie umożliwia translacji adresów IPv6, a jedynie translację prefix-ów IPv6.
Generuje tą samą wartość sumy kontrolnej jaką generuje algorytm (Internet Checksum Algorithm).
Protokół NPTv6 nieumożliwia translacji adresu GUA, na inne adresy GUA.
Konfiguracja protokołu NPTv6
Konfiguracja NPTv6 względem interfejsu LAN
(config)#ipv6 unicast-routing
Aktywuje funkcję routingu dla protokołu IPv6.
(config)# interface interfejs
Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego (LAN).
(config-if)# ipv6 addressprefix/prefix-length
Przypisuje adres IPv6, do konfigurowanego interfejsu sieciowego.
(config-if)# nat66 inside
Określa konfigurowany interfejs jako interfejs wewnętrzny w procesie translacji NPTv6.
Konfiguracja NPTv6 względem interfejsu WAN
(config-if)# interface interfejs
Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego (WAN).
(config-if)# ipv6 addressprefix/prefix-length
Przypisuje adres IPv6, do konfigurowanego interfejsu sieciowego.
(config-if)# nat66 outside
Określa konfigurowany interfejs jako interfejs zewnętrzny w procesie translacji NPTv6.
Protokół NAT-PT umożliwia statyczną (Static), dynamiczną (Dynamic) bądź przepełnioną (Overload) translacją adresów IPv6 na adresy IPv4 jak i odwrót. Na podstawie portów warstwy czwartej.
Translacja statyczna (Static):
Umożliwia mapowanie pojedynczego adresu IPv6 do jednego adresu IPv4 jak i na odwrót.
Translacja dynamiczna(Dynamic):
Umożliwia mapowanie wielu adresów IPv6 na wiele adresów IPv4 należących do skonfigurowanej przez administratora puli adresów.
Translacjaprzepełniona(Overload):
Umożliwia mapowanie wielu adresów IPv6 na jeden adres IPv4 z przepełnieniem.
Ograniczenia protokołu NAT-PT
Nie wspiera funkcji Cisco Express Forwarding.
Wspiera jedynie protokół: DNS, FTP, ICMP oraz
ALGs.
Nie zapewnia bezpieczeństwa (end-to-end security).
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
Szczegółowy proces działania protokołu NAT64 (IPv6 host to IPv4 server)
Hostwysyła zapytanie Query(AAAA www.cisco.com) do serweraDNS64.
Serwer DNS64 otrzymuje zapytanie Queryod hosta. Jako że nie zna odwzorowania podanej nazwy domenowej na adres IPv6, wysyła zapytanie Querydo zaufanego serweraDNS AAAA.
SerwerDNS AAAA otrzymuje zapytanie Queryod Serwer DNS64. Jako że nie zna odwzorowania podanej nazwy domenowej na adres IPv6, wysyła odpowiedźResponse (Name Error: www.cisco.com), do serweraDNS64.
Serwer DNS64otrzymuje odpowiedźResponseod serweraDNS AAAA. Następnie wysyła zapytania Query(A www.cisco.com) do serweraDNS A.
SerwerDNS A otrzymuje zapytanie Queryod 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 serweraDNS64.
Serwer DNS64otrzymuje odpowiedźResponseod serweraDNS 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).
Hostwysyła pakiet na docelowy adres IPv6 przekazany w odpowiedzi Responseod serwera DNS64.
Ruter NAT64otrzymuje 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 NAT64otrzymuje 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 NAT64posiada pasujący wpis w tablicy NAT Translations, następuje translacja z adresu IPv4 na IPv6.
Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowyrutera NAT64.
Proces działania protokołu NAT64 (IPv4 host to IPv6 server)
Szczegółowy proces działania protokołu NAT64 (IPv4 host to IPv6 server)
Na ruterze NAT64zostaje 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.
Serwer DNS otrzymuje zapytanie Queryod 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.
Hostwysyła pakiet na docelowy adres IPv4 przekazany w odpowiedzi Responseod 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 NAT64otrzymuje pakiet IPv6 od serwera docelowegona 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ściowyrutera 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.