IPv6-to-IPv6 Network Prefix Translation
| Communication protocol | |
| File:Nat66.drawio.png | |
| Purpose | Network address translation |
|---|---|
| Introduction | 2011 |
| RFC(s) | 6296, 7157... |
| Website | {{ |
IPv6-to-IPv6 Network Prefix Translation (NPTv6) is a specification for IPv6 to achieve address-independence at the network edge, similar to network address translation (NAT) in Internet Protocol version 4 (IPv4). It has fewer architectural problems than IPv4 NAT; for example, it is stateless, uses a 1:1 address mapping and preserves the reachability attributed to the end-to-end principle. However, because the new address is chosen in a way that leaves the checksum unchanged (checksum-neutral mapping) the interface identifier bits change and this may break applications that embed data in them (such as IPsec). Additionally, split-horizon DNS may be required for use in a business environment.
NAT66
[edit | edit source]NAT66 was the name used in earlier drafts of the standard.[1] There were some initial proposals to rename it,[2] and a few years later the name NPTv6 was chosen.[3] One of the early versions defined two modes of operation within NAT66: a Two-Way Algorithmic mapping and a Topology Hiding Option, the latter of which used a non-reversible address mapping that would've required additional state in the translator, either in the form of a dynamic table or a statically defined set of address mappings.[4] It was soon removed, leaving the two-way mapping as the only mode of operation and making the specification fully stateless.
Current usage of the term (by vendors, in informal contexts, etc.) is unclear: sometimes it's still employed as a synonym for NPTv6[5] but often it refers to a generic implementation of stateful NAT[6][7][8] (or even full NAPT[9][10]) on IPv6.
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
External links
[edit | edit source]- Cisco documentation on NPTv6
- Juniper documentation on NPTv6
- VyOS documentation on NPTv6
- OPNsense documentation on NPTv6
- APNIC blog post from 2018 on NAT66
- pfSense documentation on NPt