Google 公共 DNS64

简介

现在,同时具有 IPv6 和 IPv4 连接的双栈网络很常见,但它们远远没有实现通用。为过渡到 IPv6 并部署仅使用 IPv6 的网络,网络运营商仍必须保留对仅使用 IPv4 的网络和服务的访问权限。有多种转换机制可以提供 IPv6 对 IPv4 的访问权限NAT64 是许多网络运营商越来越受欢迎的选择。使用具有 IPv4-IPv6 翻译功能的 NAT64 网关,仅使用 IPv6 的客户端可以通过合成 IPv6 地址连接到仅使用 IPv4 的服务,这些地址的前缀是将其路由到 NAT64 网关的前缀。

DNS64 是一种 DNS 服务,可针对仅使用 IPv4 的目的地返回使用这些合成 IPv6 地址的 AAAA 记录(DNS 中包含 A 而非 AAAA 记录)。这样,纯 IPv6 客户端就可以使用 NAT64 网关,而无需进行任何其他配置。Google 公共 DNS64 使用预留的 NAT64 前缀 64:ff9b::/96 以全局服务的形式提供 DNS64。

重要提示:准备工作

在将您的系统配置为使用 Google 公共 DNS64 之前,请考虑以下限制,这些限制可能会影响您使用该服务的权限:

  • Google 公共 DNS64 仅适用于可通过预留的 NAT64 前缀 64:ff9b::/96 访问 NAT64 网关的网络。请勿在无法连接到此类 NAT64 网关的网络上使用它

  • Google Public DNS64 不提供对无法通过公共互联网解析的专用网域的访问,尽管它可以针对公共 DNS 响应中返回的专用 (RFC 1918) IPv4 地址返回 AAAA 记录。

  • 双栈网络或主机不需要使用 Google 公共 DNS64,但确实可以,它能返回合成的 AAAA 和原始 A 记录(这可能会导致流量通过 NAT64 而不是 IPv4 直接到达,但通常只有在 NAT64 连接速度更快时)。

配置 Google 公共 DNS64

如果您的系统没有上述 Google 公共 DNS64 限制问题,您可以按照常规的 Google 公共 DNS 使用入门说明进行操作,将标准解析器地址替换为以下代码:

  • 2001:4860:4860::6464
  • 2001:4860:4860::64

请勿配置任何其他 IPv6 地址:这样做会导致 DNS64 不可靠。如果您还配置了 Google 公共 DNS IPv4 地址(8.8.8.8 或 8.8.4.4),双栈主机有时可能无法获得合成的 AAAA 记录。

某些设备会为 IPv6 地址的所有八个部分使用单独的字段,并且不接受 :: IPv6 缩写语法。对于此类字段,请输入:

  • 2001:4860:4860:0:0:0:0:6464
  • 2001:4860:4860:0:0:0:0:64

如果需要四个十六进制数字,请将 0 条目扩展为 0000,并将 64 条目展开为 0064

安全 DNS64

Google 公共 DNS64 支持 DNS over HTTPS (DoH)DNS over TLS (DoT) 安全 DNS 传输,只需使用 dns64.dns.google 网域而不是 dns.google 网域即可。此网域解析为上面列出的 IPv6 地址,这些地址的端口 443 和 853 的 DoH 和 DoT 服务具有 dns64.dns.google 的 TLS 证书。

Google Public DNS64 的 RFC 8484 DoH URI 模板为 https://dns64.dns.google/dns-query{?dns},JSON API 也受 https://dns64.dns.google/parse?name=ipv4only.arpa&type=AAAA 等网址支持(只能通过支持 IPv6 的系统访问)。

测试您的 DNS64 设置

您可以按照入门指南中的测试步骤来验证您的 DNS64 配置是否正常工作。如果您无法访问 NAT64 网关,Wikipedia 会列出您可以自行部署的多个 NAT64 实现

已知某些 NAT64 实现不支持 Google 公共 DNS64:

  • MacOS X 10.11 及更高版本合并了 NAT64/DNS64,但无法传递 IPv6,从而阻止了对 Google 公共 DNS64 解析器的访问。它用于在只有 IPv4 互联网连接的情况下测试仅支持 IPv6 的设备,并且仅适用于随附的 DNS64 设备(连接到 IPv6 的纯 IPv6 设备无法直接使用 Google 公共 DNS),不过您可以将 MacOS X 系统配置为使用 8.8.8.8 和 8.8.4.4。

  • Cisco ASA 9.0 及更高版本合并了 NAT64,但不支持众所周知的前缀 64:ff9b::/96,并且要求您选择自己的前缀。它不会实现 DNS64,但提供检查和重写通过 NAT64 网关传递的 DNS 流量。

    Cisco ASA 后仅支持 IPv6 的设备可以使用 Google 公共 DNS 获取 IPv4 连接,方法是配置以下解析器地址:

    • NAT64 前缀::0808:0808使用 Cisco ASA NAT64 时为 8.8.8.8

    • NAT64 前缀::0808:0404使用 Cisco ASA NAT64 时为 8.8.4.4

    这会通过 Cisco ASA NAT64 将查询路由到 Google 公共 DNS。 使用一些其他的 Cisco ASA 配置时,AAAA 查询会转换为 A 查询,A 响应会转回带有已配置的前缀的 AAAA。

    同时使用 NAT64 地址和 Google 公共 DNS IPv6 解析器地址(2001:4860:4860::8888 或 2001:4860:4860::8844)是不可行的,因为其中任一项的否定响应不会重新查询。您必须为所有查询选择 IPv6 或 IPv4 DNS 解析。