1 The DNS64 code was written by Viagenie, 2009, by Simon Perrault as part
2 of the Ecdysis project. The code is copyright by them, and has the BSD
3 license (see the dns64/dns64.c file).
5 To enable DNS64 functionality in Unbound, two directives in unbound.conf must
8 1. The "module-config" directive must start with "dns64". For example:
10 module-config: "dns64 validator iterator"
12 If you're not using DNSSEC then you may remove "validator".
14 2. The "dns64-prefix" directive indicates your DNS64 prefix. For example:
16 dns64-prefix: 64:FF9B::/96
18 The prefix must be a /96 or shorter.
20 To test that things are working right, perform a query against Unbound for a
21 domain name for which no AAAA record exists. You should see a AAAA record in
22 the answer section. The corresponding IPv6 address will be inside the DNS64
25 $ unbound -c unbound.conf
26 $ dig @localhost jazz-v4.viagenie.ca aaaa
29 jazz-v4.viagenie.ca. 86400 IN AAAA 64:ff9b::ce7b:1f02
32 NAT64 support was added by David Lamparter in 2022; license(s) of the
33 surrounding code apply. Note that NAT64 is closely related but functionally
34 orthogonal to DNS64; it allows Unbound to send outgoing queries to IPv4-only
35 servers over IPv6 through the configured NAT64 prefix. This allows running
36 an Unbound instance on an IPv6-only host without breaking every single domain
37 that only has IPv4 servers. Whether that Unbound instance also does DNS64 is
38 an independent choice.
40 To enable NAT64 in Unbound, add to unbound.conf's "server" section:
44 The NAT64 prefix defaults to the DNS64 prefix, which in turn defaults to the
45 standard 64:FF9B::/96 prefix. You can reconfigure it with:
47 nat64-prefix: 64:FF9B::/96
49 To test NAT64 operation, pick a domain that only has IPv4 reachability for its
50 nameservers and try resolving any names in that domain.