dns64

dns64 启用 DNS64 IPv6 过渡机制。

描述

dns64 插件在请求域的 AAAA 记录时,如果只找到 A 记录,将从 A 记录合成 AAAA 记录。

这种合成只有在查询通过 IPv6 进行时才会执行。

此转换适用于具有 NAT64 的仅 IPv6 网络。

语法

dns64 [PREFIX]
  • PREFIX 定义自定义前缀,而不是默认的 64:ff9b::/96

或者使用这个带更多选项的稍长的形式

dns64 [PREFIX] {
    [translate_all]
    prefix PREFIX
    [allow_ipv4]
}
  • prefix 指定要使用的任何本地 IPv6 前缀,而不是众所周知的(64:ff9b::/96)
  • translate_all 翻译所有查询,包括有 AAAA 结果的响应。
  • allow_ipv4 允许翻译查询(如果查询通过 IPv4 传递),默认仅限 IPv6 翻译。

示例

使用默认众所周知前缀进行翻译。适用于所有查询(如果查询通过 IPv6 传递)。

. {
    dns64
}

使用自定义前缀。

. {
    dns64 64:1337::/96
}

或者

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

即使存在 AAAA 记录,也启用翻译。

. {
    dns64 {
        translate_all
    }
}

即使通过 IPv4 网络收到请求,也对其进行翻译。警告:allow_ipv4功能会向来自双协议栈客户端的请求应用翻译。这意味着,原本会产生NXDOMAIN的客户端的AAAA请求会获得翻译结果。双协议客户端通常会使用 A 记录请求的结果,在这种情况下,可能会导致不必要的 IPv6 dns64 流量。

. {
    dns64 {
        allow_ipv4
    }
}

指标

如果启用监视(通过 prometheus插件),则导出以下指标)

  • coredns_dns64_requests_translated_total{server} - 翻译的 DNS 请求的计数器

server 标签在 prometheus插件文档中有解释。

错误

尚未实现 DNS64 所需的所有功能,仅基本 AAAA 合成。

  • 支持“将分开的 IPv4 范围映射到分开的 IPv6 前缀”
  • 解析 PTR 记录
  • 使解析器支持 DNSSEC。请参见:RFC 6147 第 3 节

另请参见

请参见 RFC 6147 了解有关 DNS64 机制的更多信息。