COREDNS-DNS64(7)

πŸ“¦
version 1.15.0 Β· 3 versions
, in opensuse-leap 16.0

πŸ’… COREDNS-DNS64(7) β€” the CoreDNS Plugins girlies present: dns64

okay so bestie, welcome to the dns64 page ✨ this is a CoreDNS plugin situation, and honestly? it's giving translator era. let's get into it 🫢


🌈 NAME 🌈

dns64 β€” turns on the DNS64 IPv6 transition mechanism. that's the whole vibe. no cap.


πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea β˜• β€” when somebody asks for a domain's AAAA records and the plugin only manages to find A records? it synthesizes the AAAA records from the A records. literally making something out of nothing, main character energy πŸ‘‘

but β€” and this is the important part β€” the synthesis only happens if the query came in via IPv6. that's the vibe check. no IPv6, no synthesis, periodt.

this whole translation thing exists for IPv6-only networks that have NAT64 <https://en.wikipedia.org/wiki/NAT64>. if that's your setup, this plugin ate πŸ’…


πŸŽ€ SYNTAX πŸŽ€

the basic form, short and sweet:

dns64 [PREFIX]
  • PREFIX β€” lets you define a custom prefix instead of the default 64:ff9b::/96. cute of you.

orrrr you can use this slightly longer form with more options (the deluxe edition, if you will ✨):

dns64 [PREFIX] {
    [translate_all]
    prefix PREFIX
    [allow_ipv4]
}
  • prefix β€” specifies any local IPv6 prefix to use, instead of the well known prefix (64:ff9b::/96). your prefix, your rules πŸ’œ
  • translate_all β€” translates all queries, including responses that have AAAA results. obsessed with the commitment.
  • allow_ipv4 β€” allows translating queries if they come in over IPv4. the default is IPv6-only translation, so this is opt-in, bestie πŸ“

🌸 EXAMPLES 🌸

translate with the default well known prefix. applies to all queries (if they came in over IPv6):

. {
    dns64
}

use a custom prefix:

. {
    dns64 64:1337::/96
}

or:

. {
    dns64 {
        prefix 64:1337::/96
    }
}

enable translation even if an existing AAAA record is present:

. {
    dns64 {
        translate_all
    }
}

apply translation even to the requests which arrived over IPv4 network.

⚠️ warning, bestie! the allow_ipv4 feature will apply translations to requests coming from dual-stack clients. this means that a request for a client that sends an AAAA that would normal result in an NXDOMAIN would get a translated result. this may cause unwanted IPv6 dns64 traffic when a dualstack client would normally use the result of an A record request. 😭 like, it's a real one, be careful.
. {
    dns64 {
        allow_ipv4
    }
}

πŸ“Š METRICS πŸ“Š

if monitoring is enabled (via the prometheus plugin) then the following metrics are exported πŸ‘€:

  • coredns_dns64_requests_translated_total{server} β€” counter of DNS requests translated πŸ’«

the server label is explained in the prometheus plugin documentation. go check it, iykyk.


πŸ’€ BUGS πŸ’€

ngl, not all features required by DNS64 are implemented β€” only basic AAAA synthesis. it's giving "we'll get there when we get there" πŸ™ˆ


πŸ‘‘ SEE ALSO πŸ‘‘

see RFC 6147 <https://www.rfc-editor.org/info/rfc6147/> for more information on the DNS64 mechanism. literally the source material, go read it πŸ”₯


and that's the page, babe 🧚 β€” brought to you by CoreDNS, version dated October 2026, from your girl COREDNS-DNS64(7). mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from