全部產品
Search
文件中心

Alibaba Cloud DNS:智能解析調度不準問題

更新時間:Jul 01, 2024

概述

本方法只針對使用阿里雲解析DNS產品的網域名稱,若您的網域名稱託管在其他廠商的DNS伺服器上,請聯絡您的DNS伺服器廠商處理。使用阿里雲解析DNS伺服器的網域名稱,如果您設定的智能解析線路出現調度不準的情況,可以參考如下內容進行排查。

說明

如果您不知道當前網域名稱是否使用了阿里雲解析DNS伺服器,請參考如何獲知Alibaba Cloud DNS分配的DNS伺服器

1. 查看LocalDNS的出口IP

Alibaba Cloud DNS的智能解析調度是依據手機、PC、IoT等訪問終端所用的LocalDNS出口IP地址進行調度的,而非訪問終端的IP地址。可以參考如下方案擷取終端所用LocalDNS的出口IP:

  • 聯絡所在網路的管理員,擷取詳細的DNS出口IP地址。

  • 多執行幾次命令擷取IP地址 dig +short TXT whoami.ds.akahelp.net(Linux作業系統) 或者 nslookup -q=txt whoami.ds.akahelp.net(Windows作業系統)。

重要

使用命令撥測時,可能會擷取到如下幾個參數:

$ dig +short TXT whoami.ds.akahelp.net ok at 11:20:47#Linux作業系統執行命令。
"ns" "123.126.xx.xx" #ns是本地機器使用的DNS出口IP地址,可能是IPv4或IPv6。
"ecs" "120.52.xx.xx/32/24" #ecs(EDNS-client-subnet)記錄是查詢請求中攜帶的用戶端子網。
"ip" "123.126.xx.xx" #ip記錄由權威名稱伺服器從ecs中選擇的用戶端代表IP地址,LocalDNS為了保護使用者隱私不攜帶用戶端真實IP。

Windows作業系統指令執行結果

image.png

Linux作業系統指令執行結果

1702299255277_3F96CC19-CDDD-46f7-9ABD-206397980758.png

擷取到LocalDNS的出口IP地址後,執行 dig 網域名稱 @vip4.alidns.com +subnet=LocalDNS出口IP地址,看擷取的結果是否符合您的預期。

說明

這裡的vip4.alidns.com參數根據您實際的DNS伺服器名稱進行替換,請參考如何獲知Alibaba Cloud DNS分配的DNS伺服器

2. 自訂線路下的解析記錄不生效

當使用自訂線路時,使用者會自訂解析請求來源IP位址區段。但是自訂線路請填寫訪問終端所用LocalDNS出口IP位址區段,不能填寫訪問終端的IP位址區段。否則解析線路不會被命中,只能返回預設線路下的解析記錄。

重要
  1. LocalDNS的出口IP往往不止一個,為了使得自訂線路更加準確,請聯絡所在網路的管理員,擷取詳細DNS出口IP地址。

  2. 如果LocalDNS的出口IP地址比較少,可以多執行幾次命令擷取出口IP地址:dig +short TXT whoami.ds.akahelp.net(Linux作業系統) 或者 nslookup -q=txt whoami.ds.akahelp.net(Windows作業系統)

  3. 自訂不支援IPv6的地址,若LocalDNS出口IP為IPv6地址,自訂線路不會被命中,只能返回預設線路下的解析記錄。

3. 預設線路下的CNAME記錄緩衝導致解析調度不準

前提條件

  1. 預設線路下配置了CNAME類型解析記錄;

  2. 非預設線路下配置了非CNAME類型解析記錄,例如A、AAAA、TXT、MX等記錄類型。

調度不準原因

當請求非預設線路下解析記錄時:

  1. 如果請求的解析記錄類型為A,且對應線路下設定的解析記錄中有AAAA記錄但沒有A記錄,則返回的解析記錄為空白,不會造成解析調度不準確的情況。

  2. 如果請求的解析記錄類型為AAAA,且對應線路下設定的解析記錄中有A記錄但沒有AAAA記錄,則返回的解析記錄為空白,不會造成解析調度不準確的情況。

  3. 如果請求的解析記錄類型為A,且對應線路下設定的解析記錄中沒有A和AAAA記錄,只有TXT、MX等記錄,則返回預設線路下CNAME類型的解析記錄,並緩衝在LocalDNS中。導致解析調度不準。

  4. 如果請求的解析記錄類型為AAAA,且對應線路下設定的解析記錄中沒有A和AAAA記錄,只有TXT、MX等記錄,則返回預設線路下CNAME類型的解析記錄,並緩衝在LocalDNS中。導致解析調度不準。

  5. 如果請求的解析記錄為MX、TXT等類型且對應線路下並沒有配置對應類型的解析記錄,則返回預設線路下CNAME類型的解析記錄,並緩衝在LocalDNS中。由於CNAME類型的解析記錄具有最高優先順序,在TTL到期時間內,即使發起了A或AAAA查詢請求(非預設線路下配置了A或AAAA類型的解析記錄),但網域名稱查詢請求均會被快取命中,返回預設線路下的CNAME解析記錄。造成調度不準的情況。

解決方案

將非預設線路下的A和AAAA類型的解析記錄加一層CNAME記錄類型的解析記錄,以網域名稱dns-example.top為例:先將test.dns-example.top通過A和AAAA記錄類型解析到IPv4和IPv6的地址,再將 中國移動 線路下的業務網域名稱通過CNAME記錄類型解析到test.dns-example.top

重要
  1. test.dns-example.top僅作為樣本,實際配置時根據您的業務需求選擇其他未配置解析記錄的次層網域。

  2. 務必先添加A和AAAA解析記錄,再添加CNAME解析記錄,否則可能會導致解析中斷。

解析設定變更前:

image.png

解析設定變更後:

image.png

預設線路和非預設線路下均是CNAME記錄類型,優先順序一樣。當請求非預設線路下解析記錄為MX、TXT等類型且對應線路下並沒有配置對應類型的解析記錄時,則返回的解析記錄為空白,不會導致緩衝汙染。