/etc/resolv.conf is used by the system to determine how to resolve names to IP addresses.
On IPv6-only networks, often there is a NAT64 translator that is advertised, to allow connections to IPv4-only hosts on the internet.
Why openresolv?
The NAT64 prefix is used to synthesize an IPv6 address out of an IPv4 address.
The primary advertisement mechanism is via router advertisements: same as RDNSS.
I believe this makes resolvconf the correct place to store the information, as programs that parse ICMPv6 messages for RDNSS can also pass along any PREF64 messages.
Programs that perform IP address resolution can then utilize the information: ex. a program might use encrypted DNS to perform hostname resolution, but will still need to utilize the nat64-prefix to synthesize AAAA records.
It is also a per-interface property, so openresolv's per-interface structure makes sense.
Finally, services such as unbound need to know about the NAT64 prefix to offer DNS64 downstream.
openresolv can already create configuration files that configure unbound's upstream DNS, so adding a dns64-prefix: <prefix> line makes sense.
What I think should be done
The NAT64 prefix is a unique, per-interface setting. Thus it should be handled similarly to the search option, with duplicates removed.
Integrations such as unbound's should support the additional configuration too.
/etc/resolv.confis used by the system to determine how to resolve names to IP addresses.On IPv6-only networks, often there is a NAT64 translator that is advertised, to allow connections to IPv4-only hosts on the internet.
Why openresolv?
The NAT64 prefix is used to synthesize an IPv6 address out of an IPv4 address.
The primary advertisement mechanism is via router advertisements: same as RDNSS.
I believe this makes resolvconf the correct place to store the information, as programs that parse ICMPv6 messages for RDNSS can also pass along any PREF64 messages.
Programs that perform IP address resolution can then utilize the information: ex. a program might use encrypted DNS to perform hostname resolution, but will still need to utilize the
nat64-prefixto synthesize AAAA records.It is also a per-interface property, so openresolv's per-interface structure makes sense.
Finally, services such as
unboundneed to know about the NAT64 prefix to offer DNS64 downstream.openresolv can already create configuration files that configure unbound's upstream DNS, so adding a
dns64-prefix: <prefix>line makes sense.What I think should be done
The NAT64 prefix is a unique, per-interface setting. Thus it should be handled similarly to the
searchoption, with duplicates removed.Integrations such as
unbound's should support the additional configuration too.