As the world transitions to IPv6, scenarios arise where IPv6-only clients need to communicate with legacy IPv4-only servers or resources. NAT64 is a crucial transition mechanism that enables this communication by translating IP headers between IPv6 and IPv4 networks.
NAT64 is a stateful Network Address and Protocol Translation technology defined in RFC 6146. Its primary purpose is to allow clients using only IPv6 addresses to initiate connections to servers using only IPv4 addresses.
NAT64 typically works in conjunction with a DNS64 server (defined in RFC 6147).
192.0.2.100
).
64:ff9b::/96
. The synthesized IPv6 address might look like
64:ff9b::192.0.2.100
(or
64:ff9b::c000:0264
in hex).
64:ff9b::c000:0264
).
64:ff9b::c000:0264
) back to the original IPv4 Destination Address (
192.0.2.100
) by extracting the embedded IPv4 part based on the configured NAT64 prefix.
Configuring NAT64 involves creating a specific type of NAT rule:
nat64
.
64:ff9b::/96
). This tells the rule to match traffic destined for synthesized addresses.
Dynamic IP and Port
: Select an Interface Address (e.g., the firewall's IPv4 Untrust interface) or an Address Object representing a pool of IPv4 addresses. This performs NAPT64.
None
. The firewall automatically extracts the IPv4 address from the original destination using the prefix matched in the Original Packet tab. You do *not* manually specify the IPv4 destination here.
2001:db8:1:1::100
64:ff9b::/96
198.51.100.50
203.0.113.10
Forward Path:
Return Path:
Like other NAT types, NAT64 requires a corresponding Security Policy rule to allow the traffic. The Security Policy evaluation happens based on the original packet details but considering the destination zone where the packet will end up after routing/translation.
Key Point:
The Security Policy rule must allow traffic from the IPv6 source zone to the IPv4 destination zone, but critically, the
Destination Address
in the Security Policy rule should generally match the
NAT64 Prefix
(e.g.,
64:ff9b::/96
).
Why use the prefix? Because the Security Policy lookup needs to match the destination the firewall initially sees *before* the final IPv4 translation occurs. The firewall uses the NAT64 prefix in the original destination to identify NAT64 traffic.
Example Security Rule:
IPv6_Internal
(Where IPv6 clients are)
any
or specific IPv6 client range
Untrust
(Where IPv4 servers are)
64:ff9b::/96
(The configured NAT64 Prefix)
web-browsing
,
any
)
Allow