天天看點

大型網際網路平台技術架構(三):企業級DNS玩法

作者:程式員地瓜
大型網際網路平台技術架構(三):企業級DNS玩法

之前的兩篇文章,分别對使用者端和服務端進行了一個系統的介紹,相信你讀完之後,已經對大型網際網路平台技術架構有了一個初步的認識,并對更細節的内容産生了興趣。接下來我将依次介紹接入層、服務層、PaaS層、IaaS層中的每個常用的基礎元件服務。本篇文章我将介紹接入層中的DNS。DNS原理性的知識,網上很多,大家也都比較熟悉,我就不再過多介紹了。我更多的會從企業實戰的角度,講講DNS演進出的哪些實用的技術。

概述

DNS(Domain Name System)是一個域名系統,簡單來說就是将一個字元串解析為一個IP位址,當然也支援反向解析,還支援解析為其它字元串。DNS提供的功能看似簡單,但卻是網際網路的根基,它提供的能力也遠不止将域名解析為IP位址這麼簡單,希望閱讀完本篇文章後,你能對DNS有一個更全面的了解。

我們先從使用域名的整個流程,來回顧一下涉及到哪些環節。

  1. 注冊購買域名。從域名注冊商/各大雲服務商注冊購買一個域名。
  2. 網站備案。在中國大陸境内提供服務的網站都應依法進行 ICP 備案和公安備案。
  3. 解析托管。将域名托管到一個權威解析服務提供商。
  4. 日常維護。域名續費、權威解析付費、網站資訊有變及時進行備案變更。
  5. 域名登出。登出備案、關閉解析服務、登出域名。

在上述5個環節中,除了“解析托管”,其它都是非技術操作,本篇文章就不再詳細說明了。接下來,将重點介紹域名解析這個環節,域名解析可進一步細分為權威解析服務、遞歸解析服務、流量管理服務,下面對這幾種類型的服務進行詳細講解。

權威解析服務

真正提供修改、存儲解析記錄的DNS服務,就是權威解析服務,也就是我們注冊域名托管的DNS服務。權威解析服務和根域名伺服器、頂級域名伺服器共同組成了DNS的樹型解析系統。權威DNS伺服器可以自行搭建,也可以使用專業的權威DNS服務商的産品,除非是超大型企業,否則不建議自建權威DNS服務,因為其成本高昂、可用性和性能也一般。

當下的權威DNS解析服務,除了提供域名到IP位址解析的基本功能外,還提供了智能解析和安全防護。智能解析可以分兩方面:一方面是根據DNS請求端所在的實體位置和營運商資訊傳回一個最合适IP位址,提高網絡通信品質;另一方面是DNS伺服器通過AnyCast技術将自己的IP宣告在全球多個實體位置,提升解析響應速度。安全防護方面的主要功能包括:1)DNS Query Flood Attack防護,抵禦大量惡意解析流量,避免無法響應正常使用者解析請求。2)支援 DNSSEC(Domain Name System Security Extensions),避免攻擊者僞造解析記錄,進一步提高DNS解析安全性。

遞歸解析服務

個人電腦、手機、伺服器中配置的DNS伺服器,提供的就是遞歸解析服務。與之相對應的另一種解析叫疊代解析,比如,根服務不會直接告訴你解析結果,而是告訴你頂級域名伺服器,你需要多次疊代才能擷取到最終的解析結果,故而叫疊代解析。而遞歸解析,就是你發起一次請求,它會直接給你結果,可能是它内部緩存的結果,也可能是它進行了疊代解析的到的結果,不管怎樣,它都會幫你拿到最終的解析結果,這就是遞歸解析。

企業内部、營運商、公共DNS提供商都會提供遞歸解析服務,比如Google的8.8.8.8、阿裡的223.5.5.5,都是遞歸解析服務。遞歸解析服務的基本功能就是幫助用戶端進行疊代解析、緩存DNS解析結果、緩解權威DNS解析壓力。當然,除了這些基本功的功能之外,現代遞歸解析服務還提供了HTTP/HTTPS(DoH/DoT)的解析能力、EDNS Client Subnet技術、AnyCast全球節點就近通路能力。

傳統的DNS遞歸解析,使用明文的DNS協定,安全性較低,易發生解析劫持,通過DoH(DNS over HTTPS)、DoT(DNS over TLS)技術可以保障通信的安全性。目前,大部分的電腦、手機和浏覽器都已經支援配置DoH和DoT,企業使用者也可以通過SDK和HTTP API使用。

傳統的DNS智能線路接線,隻能根據使用者的LocalDNS IP位址判斷實體位置、營運商等資訊,如果使用者使用的是類似Google的8.8.8.8這種統一IP的全球DNS,就會導緻和使用者實際的實體位置和營運商有很大偏差,通過edns-client-subnet可直接擷取使用者的IP位址,實作精準流量排程。

大型的公共DNS服務提供商,公布的DNS伺服器位址隻有幾個固定IP,并且未劃分地域,全球所有使用者可以使用相同的IP。如果這些IP位址是傳統的IP,那麼大部分使用者将跋山涉水才能通路到,這會極大地降低解析速度。通過AnyCast技術,将同一個IP位址宣告到全球多個實體位置,使用者端會和最近的實體位置通信。

流量管理服務

基礎的權威DNS伺服器,通過多線路智能解析和多記錄負載均衡,對流量可以進行一定程度的排程。流量管理服務将這種能力進一步放大,形成了一套較為獨立的系統。除了基礎的多線路智能解析,還支援權重負載分攤、服務健康檢測和故障切換能力,可認為是一個功能完備的全局負載均衡系統。

傳統的DNS多記錄解析,隻是簡單的講流量均勻的分發到多個IP,不能對多個IP的流量比例進行控制,而流量管理服務支援權重分發,可認為是專業負載均衡的WRR算法。

傳統的DNS多記錄解析,隻能簡單的分發流量,當某個IP位址對應的服務故障,無法将流量遷移到其它可用的IP位址上,而流量管理服務支援通過ping、tcp、http三種方式進行健康檢測,這和專業負載均衡的健康檢測功能是類似的。當健康檢測發現某個IP故障後,會自動将這個IP的流量遷移到其它可用的IP。

很多公有雲服務商都提供了全局流量管理服務,建議大部分中小型企業直接使用這些産品,而不是自己建設。

總結

  1. 使用域名的流程包括注冊、備案、解析托管、日常維護和登出。
  2. DNS解析服務類型包括權威解析服務、遞歸解析服務、流量管理服務。
  3. 非超大型企業,不建議自建權威DNS服務,推薦使用權威解析服務提供商的産品。
  4. 遞歸解析服務,推薦使用大型公共DNS,他們提供了很好的安全性、可用性和性能。
  5. 超大型網際網路平台,會使用到流量管理服務,進行全局流量分發和排程。

歡迎關注我的頭條号@程式員地瓜,及時擷取最新釋出動态。閱讀文章過程中有任何問題,歡迎在評論區留言,我會及時回複。

繼續閱讀