HTTPDNS使用HTTP協議進行域名解析,代替現有基於UDP的DNS協議,域名解析請求直接發送到阿里雲的HTTPDNS服務器,從而繞過運營商的Local DNS,能夠避免Local DNS造成的域名劫持問題和調度不精準問題。
功能 | 說明 |
---|---|
防劫持 | 繞過運營商Local DNS,避免域名劫持,讓每一次訪問都暢通無阻。 |
精準調度 | 基於訪問的來源IP,獲得最精準的解析結果,讓客戶端就近接入業務節點。 |
0ms解析延遲 | 通過熱點域名預解析、緩存DNS解析結果、解析結果懶更新策略等方式實現0解析延遲 |
快速生效 | 避免Local DNS不遵循權威TTL,解析結果長時間無法更新的問題 |
降低解析失敗率 | 有效降低無線場景下解析失敗的比率 |
防劫持
HTTPDNS代替了傳統的LocalDNS完成遞歸解析的功能,基於HTTP協議的設計可以適用於幾乎所有的網絡環境,同時保留了鑑權、HTTPS等更高安全性的擴展能力,避免惡意攻擊劫持行爲。
精準調度
傳統域名解析的調度精準性問題,本質根源在於Local DNS的部署和分配機制上。由於碎片化的管理方式,這些環節的服務質量同樣很難得到保障。HTTPDNS在遞歸解析實現上優化了與權威DNS的交互,通過<a name="https://datatracker.ietf.org/doc/rfc7871">edns-client-subnet</a>協議將終端用戶的IP信息直接交付給權威DNS,這樣權威DNS就可以忽略Local DNS IP信息,根據終端用戶的IP信息進行精準調度,避免Local DNS的座標干擾
DNS解析0延遲:
-
構建客戶端DNS緩存;
通過合理的DNS緩存,我們確保每次網絡交互的DNS解析都是從內存中獲取IP信息,從而大幅降低DNS解析開銷。根據業務的不同,我們可以 制訂更豐富的緩存策略,如根據運營商緩存,可以在網絡切換的場景下複用已緩存的不同運營商線路的域名IP信息,避免網絡切換後進行鏈 路重選擇引入的DNS網絡解析開銷。另外,我們還可以引入IP本地化離線存儲,在客戶端重啓時快速從本地讀取域名IP信息,大幅提升首頁 載入效率。
-
熱點域名預解析;
在客戶端啓動過程中,我們可以通過熱點域名的預解析完成熱點域名的緩存載入。當真正的業務請求發生時,直接由內存中讀取目標域名的IP 信息,避免傳統DNS的網絡開銷。
-
懶更新策略;
絕大多數場景下業務域名的IP信息變更並不頻繁,特別是在單次APP的使用週期內,域名解析獲取的IP往往是相同的(特殊業務場景除外)。 因此我們可以利用DNS懶更新策略來實現TTL過期後的DNS快速解析。所謂DNS懶更新策略即客戶端不主動探測域名對應IP的TTL時間,當業務 請求需要訪問某個業務域名時,查詢內存緩存並返回該業務域名對應的IP解析結果。如果IP解析結果的TTL已過期,則在後臺進行異步DNS網 絡解析與緩存結果更新。通過上述策略,用戶的所有DNS解析都在與內存交互,避免了網絡交互引入的延遲。