Bug #17040
closedEnabling NAT64 forces the default NAT64 prefix
0%
Description
With 2.8.1 it was possible to create a NAT64 rule where the destination was any IPv6 prefix. For instance it was possible to carve out a /96 block from a delegated GUA prefix and enable NAT64 for it.
This made it possible to route NAT64 traffic across public networks - eg to run a NAT64 gateway on a VPS which could then be used from elsewhere.
Since updating to 2.9.0 the UI automatically selects the default NAT64 prefix 64:ff9b::/96 when choosing a NAT64 rule, and does not allow it to be edited.
Updated by Bert Smith 6 days ago
On further investigation there seems to be an explicit "NAT64 Prefix Override" option now.
Looking at #16241, the RFC says that RFC1918 address space should not be reachable when using the default 64:ff9b::/96 prefix, but there is nothing invalid or dangerous about using other prefixes.
Similarly there is no reason to prevent the use of other prefixes in DNS64/PREF64 rules - the user may want to use an external NAT64 service such as one provided by their ISP, or a public one such as those on https://nat64.xyz
Enabling the override option removes the rules to block RFC1918 address space, even when still using the default prefix. Blocking RFC1918 address space through the NAT64 is a completely separate function to forcing the use of the default NAT64 prefix.
I would suggest:
1) allow use of any NAT64 prefix by default
2) apply filter rules for private address space by default, but provide an option to disable them (this satisfies the RFC requirement)
3) do not restrict the prefixes in dns or router advertisements at all, as the user may want to use a NAT64 service not hosted on the local firewall
Updated by Marcos M 6 days ago
- Status changed from New to Not a Bug
The point of the default is to use "sane" and well-known settings out of the box. That won't work for every situation hence why the advanced option is there with relevant warnings. Once the advanced option is enabled it's up to the admin to implement the configuration as they see fit; NAT64, DNS64, and PREF64 all then allow a custom prefix.
Updated by Bert Smith 6 days ago
It doesn't make sense to tie all these things together...
Using an externally hosted prefix for RA/DNS is a sane and legitimate use case. Many ISPs offer a NAT64 service and it's not always on the default address range. By using the NAT64 provided by the ISP directly you can avoid a double NAT setup, and your firewall only needs to handle v6 traffic.
Using a custom prefix is also perfectly legitimate, it makes sense for 64:ff9b::/96 to be a suggested default but not forced.
The only thing remotely dangerous and non rfc compliant would be disabling the default filter rules, and this is what should require an advanced option with warnings.
Also available in: Atom