COREDNS-DNS64(7)
π
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 default64: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 haveAAAAresults. 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! theallow_ipv4feature will apply translations to requests coming from dual-stack clients. this means that a request for a client that sends anAAAAthat would normal result in anNXDOMAINwould get a translated result. this may cause unwanted IPv6dns64traffic when a dualstack client would normally use the result of anArecord 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" π
- Support "mapping of separate IPv4 ranges to separate IPv6 prefixes"
- Resolve
PTRrecords - Make resolver DNSSEC aware. See: RFC 6147 Section 3 <https://www.rfc-editor.org/info/rfc6147/#section-3>
π 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
- opensuse-leap 16.0: coredns-extras 1.15.0-bp160.1.1 Β· Apache-2.0 AND MPL-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms