Skip to content

Support for NAT64 prefix #48

@Skyb0rg007

Description

@Skyb0rg007

/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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions