描述
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 机制的更多信息。