Files
coredns/plugin/dns64
Ben Kochie a29a594e5c Update more metrics names (#3799)
The subsystem of a metric must be it's plugin name. "dns" is reserved
for the core. Use a const convention to avoid copy-paste mistakes in
naming.

Fix dns64 and acl plugin.

Signed-off-by: Ben Kochie <superq@gmail.com>
2020-03-31 20:03:18 +02:00
..
2020-03-26 08:42:23 +01:00
2020-03-26 08:42:23 +01:00
2020-03-31 20:03:18 +02:00
2020-03-31 20:03:18 +02:00
2020-03-26 08:42:23 +01:00
2020-03-31 20:03:18 +02:00

dns64

Name

dns64 - enables DNS64 IPv6 transition mechanism.

Description

DNS64 describes a DNS server that when asked for a domain's AAAA records, but only finds A records, synthesizes the AAAA records from the A records.

The synthesis in only performed if the query came in via IPv6.

This translation is for IPv6-only networks that have NAT64.

See RFC 6147 for more information.

Syntax

dns64 [PREFIX] {
  [translate_all]
}
  • [PREFIX] defines a custom prefix instead of the default 64:ff9b::/96.
  • translate_all translates all queries, including respones that have AAAA results.

Examples

Translate with the default well known prefix. Applies to all queries.

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
}
  • prefix specifies any local IPv6 prefix to use, instead of the well known prefix (64:ff9b::/96)

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.

Bugs

Not all features required by DNS64 are implemented, only basic AAAA synthesis.

  • Support "mapping of separate IPv4 ranges to separate IPv6 prefixes"
  • Resolve PTR records
  • Follow CNAME records
  • Make resolver DNSSEC aware. See: RFC 6147 Section 3