Google 公用 DNS64

引言

同時,包含 IPv6 和 IPv4 連線的雙重堆疊網路現已十分常見,但與通用連線卻很遠。如要轉換至 IPv6 並部署僅限 IPv6 的網路,網路業者仍須保留僅限 IPv4 的網路和服務的存取權。有數種轉換機制可提供 IPv4 對 IP4 的存取存取權,而且許多網路業者是 NAT64 越來越受歡迎的選擇。使用搭配 IPv4-IPv6 翻譯功能的 NAT64 閘道時,IPv6 專屬用戶端可以透過以 IPv6 位址開頭的合成 IPv6 位址連線至僅限 IPv4 的服務,而且前置字串會轉送到 NAT64 閘道。

DNS64 是 DNS 服務,會使用僅限 IPv4 目的地傳回這些合成 IPv6 位址的 AAAA 記錄 (DNS 中只有 A 但 AAAA 記錄)。因此,僅限 IPv6 的用戶端會使用 NAT64 閘道,不需要任何其他設定。Google 公用 DNS64 透過保留的 NAT64 前置字串 64:ff9b::/96,將 DNS64 做為全球服務來提供。

重要事項:事前準備

在設定系統以使用 Google Public DNS64 之前,請考慮下列可能會影響服務使用情形的下列限制:

  • Google 公用 DNS64 僅適用於透過預留的 NAT64 前置字串 64:ff9b::/96 的網路存取。請勿在無法連上這類網路位址轉譯 (NAT64) 閘道的網路中使用

  • Google 公用 DNS64 不提供無法從公開網際網路解析的私人網域存取權,但可以傳回公開 DNS 回應中傳回的私人 (RFC 1918) IPv4 位址的 AAAA 記錄。

  • 雙重堆疊網路或主機不需要使用 Google Public DNS64,但其可以正常運作,並傳回合成的 AAAA 和原始 A 記錄 (這可能會導致流量透過僅限 IPv44 的主機傳輸,而非直接透過 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 位址的所有 8 個部分使用不同的欄位,且不接受 :: 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 透過 HTTPS (DoH)DNS over TLS (DoT) 使用 DNS 傳輸安全性,dns64.dns.google而不是 dns.google。 此網域會解析為上述的 IPv6 位址,而這些位址的通訊埠 443 和 853 的 DoH 與 DoT 服務則具備 dns64.dns.google 的傳輸層安全標準 (TLS) 憑證。

Google 公用 DNS64 的 RFC 8484 DoH URI 範本是 https://dns64.dns.google/dns-query{?dns},而 JSON API 也支援 https://dns64.dns.google/Resolve?name=ipv4only.arpa&type=AAAA 等網址,此網址只能透過 IPv6 系統存取。

測試 DNS64 設定

您可以按照入門指南中的測試步驟,驗證 DNS64 設定是否正常運作。如果您無法存取 NAT64 閘道,維基百科會列出數個可以部署的 NAT64 實作

目前已知部分 NAT64 實作無法與 Google 公用 DNS64 搭配使用:

  • MacOS X 10.11 以上版本整合了 NAT64/DNS64,但無法傳遞 IPv6,因此無法存取 Google Public DNS64 解析器。 此功能旨在測試只有網路連線的 IPv4 連線裝置時,才會測試已啟用 IPv6 的裝置,且只適用於隨附 DNS64 連線裝置 (僅限與 IPv6 連線的裝置無法直接使用 Google 公用 DNS),不過您可以將 MacOS X 系統設為使用 8.8.8.8 及 8.8.4.4)。

  • Cisco ASA 9.0 以上版本整合了 NAT64,但不支援已知的前置字串 64:ff9b::/96,並需要您自行選取前置字串。伺服器不會導入 DNS64,但會提供通過 NAT64 閘道的 DNS 流量檢查與網路位址轉譯 (NAT) 重寫。

    Cisco ASA 後方的 IPv6 裝置僅能透過 Google 公用 DNS 設定 IPv4 連線,並採用以下解析器位址:

    • NAT64 前置字串::0808:0808 (8.8.8.8 via Cisco ASA NAT64)

    • NAT64 前置字元::0808:0404 (8.8.4.4 透過 Cisco ASA NAT64)

    這會透過 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 解析。