NAT64 Calculator
Synthesise the IPv6 address a NAT64 gateway maps an IPv4 destination to, and size the translator's state table.
About NAT64 Calculator
RFC 6052 embeds the IPv4 address in the low bits of a NAT64 prefix. With a /96 the whole address fits in the last two groups, so the mapping is a direct hex conversion. Each translated flow consumes a state entry and a port on the translator. IPv6-only networks reach the legacy internet through NAT64, and the translator's state table — not bandwidth — is what fails first under load.
Formula
NAT64
With the well-known /96 prefix the 32-bit IPv4 address is appended directly, giving prefix::a.b.c.d in hex form.
- 64:ff9b::/96
- Well-known prefix reserved by RFC 6052 for NAT64
- sessions
- Concurrent translated flows held in state
Worked example
With the default values below, NAT64 Calculator returns Synthesised IPv6 Address of 64:ff9b:cb00:712a. Change any input above and every figure here is recalculated in your browser.
Inputs used
- IPv4 destination
- 203.0.113.42
- NAT64 prefix
- 64:ff9b::
- Concurrent sessionsaccepts 1–100,000,000 sessions
- 250,000 sessions
- State per sessionaccepts 32–1,024 bytes
- 160 bytes
Results
- Synthesised IPv6 Address
- 64:ff9b:cb00:712a
- Embedded IPv4 (hex)
- cb00712a
- Translator State Memory
- 38 MiB
- Translation Ports Required
- 250,000
Step by step
- 1Values used
- 2NAT64
- 3Synthesised IPv6 Address= 64:ff9b:cb00:712a
- 4Embedded IPv4 (hex)= cb00712a
- 5Translator State Memory= 40,000,000
- 6Translation Ports Required= 250,000
Assumptions and limits
- The result is derived only from the 4 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, tax, fees or charges or compounding frequency into account.
- Figures are rounded for display to whole numbers, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
Frequently Asked Questions
How is NAT64 calculated?
With the well-known /96 prefix the 32-bit IPv4 address is appended directly, giving prefix::a.b.c.d in hex form. RFC 6052 embeds the IPv4 address in the low bits of a NAT64 prefix. With a /96 the whole address fits in the last two groups, so the mapping is a direct hex conversion. Each translated flow consumes a state entry and a port on the translator.
Why does NAT64 matter?
IPv6-only networks reach the legacy internet through NAT64, and the translator's state table — not bandwidth — is what fails first under load.
What values do I need to enter?
This calculator takes 4 inputs: IPv4 destination, NAT64 prefix, Concurrent sessions, State per session. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
