大型互聯(lián)網(wǎng)平臺技術(shù)架構(gòu)(三):企業(yè)級DNS玩法(企業(yè)dns部署)
之前的兩篇文章,分別對用戶端和服務(wù)端進行了一個系統(tǒng)的介紹,相信你讀完之后,已經(jīng)對大型互聯(lián)網(wǎng)平臺技術(shù)架構(gòu)有了一個初步的認識,并對更細節(jié)的內(nèi)容產(chǎn)生了興趣。接下來我將依次介紹接入層、服務(wù)層、PaaS層、IaaS層中的每個常用的基礎(chǔ)組件服務(wù)。本篇文章我將介紹接入層中的DNS。DNS原理性的知識,網(wǎng)上很多,大家也都比較熟悉,我就不再過多介紹了。我更多的會從企業(yè)實戰(zhàn)的角度,講講DNS演進出的哪些實用的技術(shù)。
概述
DNS(Domain Name System)是一個域名系統(tǒng),簡單來說就是將一個字符串解析為一個IP地址,當然也支持反向解析,還支持解析為其它字符串。DNS提供的功能看似簡單,但卻是互聯(lián)網(wǎng)的根基,它提供的能力也遠不止將域名解析為IP地址這么簡單,希望閱讀完本篇文章后,你能對DNS有一個更全面的了解。
我們先從使用域名的整個流程,來回顧一下涉及到哪些環(huán)節(jié)。
- 注冊購買域名。從域名注冊商/各大云服務(wù)商注冊購買一個域名。
- 網(wǎng)站備案。在中國大陸境內(nèi)提供服務(wù)的網(wǎng)站都應依法進行 ICP 備案和公安備案。
- 解析托管。將域名托管到一個權(quán)威解析服務(wù)提供商。
- 日常維護。域名續(xù)費、權(quán)威解析付費、網(wǎng)站信息有變及時進行備案變更。
- 域名注銷。注銷備案、關(guān)閉解析服務(wù)、注銷域名。
在上述5個環(huán)節(jié)中,除了“解析托管”,其它都是非技術(shù)操作,本篇文章就不再詳細說明了。接下來,將重點介紹域名解析這個環(huán)節(jié),域名解析可進一步細分為權(quán)威解析服務(wù)、遞歸解析服務(wù)、流量管理服務(wù),下面對這幾種類型的服務(wù)進行詳細講解。
權(quán)威解析服務(wù)
真正提供修改、存儲解析記錄的DNS服務(wù),就是權(quán)威解析服務(wù),也就是我們注冊域名托管的DNS服務(wù)。權(quán)威解析服務(wù)和根域名服務(wù)器、頂級域名服務(wù)器共同組成了DNS的樹型解析系統(tǒng)。權(quán)威DNS服務(wù)器可以自行搭建,也可以使用專業(yè)的權(quán)威DNS服務(wù)商的產(chǎn)品,除非是超大型企業(yè),否則不建議自建權(quán)威DNS服務(wù),因為其成本高昂、可用性和性能也一般。
當下的權(quán)威DNS解析服務(wù),除了提供域名到IP地址解析的基本功能外,還提供了智能解析和安全防護。智能解析可以分兩方面:一方面是根據(jù)DNS請求端所在的物理位置和運營商信息返回一個最合適IP地址,提高網(wǎng)絡(luò)通信質(zhì)量;另一方面是DNS服務(wù)器通過AnyCast技術(shù)將自己的IP宣告在全球多個物理位置,提升解析響應速度。安全防護方面的主要功能包括:1)DNS Query Flood Attack防護,抵御大量惡意解析流量,避免無法響應正常用戶解析請求。2)支持 DNSSEC(Domain Name System Security Extensions),避免攻擊者偽造解析記錄,進一步提高DNS解析安全性。
遞歸解析服務(wù)
個人電腦、手機、服務(wù)器中配置的DNS服務(wù)器,提供的就是遞歸解析服務(wù)。與之相對應的另一種解析叫迭代解析,比如,根服務(wù)不會直接告訴你解析結(jié)果,而是告訴你頂級域名服務(wù)器,你需要多次迭代才能獲取到最終的解析結(jié)果,故而叫迭代解析。而遞歸解析,就是你發(fā)起一次請求,它會直接給你結(jié)果,可能是它內(nèi)部緩存的結(jié)果,也可能是它進行了迭代解析的到的結(jié)果,不管怎樣,它都會幫你拿到最終的解析結(jié)果,這就是遞歸解析。
企業(yè)內(nèi)部、運營商、公共DNS提供商都會提供遞歸解析服務(wù),比如Google的8.8.8.8、阿里的223.5.5.5,都是遞歸解析服務(wù)。遞歸解析服務(wù)的基本功能就是幫助客戶端進行迭代解析、緩存DNS解析結(jié)果、緩解權(quán)威DNS解析壓力。當然,除了這些基本功的功能之外,現(xiàn)代遞歸解析服務(wù)還提供了HTTP/HTTPS(DoH/DoT)的解析能力、EDNS Client Subnet技術(shù)、AnyCast全球節(jié)點就近訪問能力。
傳統(tǒng)的DNS遞歸解析,使用明文的DNS協(xié)議,安全性較低,易發(fā)生解析劫持,通過DoH(DNS over HTTPS)、DoT(DNS over TLS)技術(shù)可以保障通信的安全性。目前,大部分的電腦、手機和瀏覽器都已經(jīng)支持配置DoH和DoT,企業(yè)用戶也可以通過SDK和HTTP API使用。
傳統(tǒng)的DNS智能線路接線,只能根據(jù)用戶的LocalDNS IP地址判斷物理位置、運營商等信息,如果用戶使用的是類似Google的8.8.8.8這種統(tǒng)一IP的全球DNS,就會導致和用戶實際的物理位置和運營商有很大偏差,通過edns-client-subnet可直接獲取用戶的IP地址,實現(xiàn)精準流量調(diào)度。
大型的公共DNS服務(wù)提供商,公布的DNS服務(wù)器地址只有幾個固定IP,并且未劃分地域,全球所有用戶可以使用相同的IP。如果這些IP地址是傳統(tǒng)的IP,那么大部分用戶將跋山涉水才能訪問到,這會極大地降低解析速度。通過AnyCast技術(shù),將同一個IP地址宣告到全球多個物理位置,用戶端會和最近的物理位置通信。
流量管理服務(wù)
基礎(chǔ)的權(quán)威DNS服務(wù)器,通過多線路智能解析和多記錄負載均衡,對流量可以進行一定程度的調(diào)度。流量管理服務(wù)將這種能力進一步放大,形成了一套較為獨立的系統(tǒng)。除了基礎(chǔ)的多線路智能解析,還支持加權(quán)負載分攤、服務(wù)健康檢測和故障切換能力,可認為是一個功能完備的全局負載均衡系統(tǒng)。
傳統(tǒng)的DNS多記錄解析,只是簡單的講流量均勻的分發(fā)到多個IP,不能對多個IP的流量比例進行控制,而流量管理服務(wù)支持加權(quán)分發(fā),可認為是專業(yè)負載均衡的WRR算法。
傳統(tǒng)的DNS多記錄解析,只能簡單的分發(fā)流量,當某個IP地址對應的服務(wù)故障,無法將流量遷移到其它可用的IP地址上,而流量管理服務(wù)支持通過ping、tcp、http三種方式進行健康檢測,這和專業(yè)負載均衡的健康檢測功能是類似的。當健康檢測發(fā)現(xiàn)某個IP故障后,會自動將這個IP的流量遷移到其它可用的IP。
很多公有云服務(wù)商都提供了全局流量管理服務(wù),建議大部分中小型企業(yè)直接使用這些產(chǎn)品,而不是自己建設(shè)。
總結(jié)
- 使用域名的流程包括注冊、備案、解析托管、日常維護和注銷。
- DNS解析服務(wù)類型包括權(quán)威解析服務(wù)、遞歸解析服務(wù)、流量管理服務(wù)。
- 非超大型企業(yè),不建議自建權(quán)威DNS服務(wù),推薦使用權(quán)威解析服務(wù)提供商的產(chǎn)品。
- 遞歸解析服務(wù),推薦使用大型公共DNS,他們提供了很好的安全性、可用性和性能。
- 超大型互聯(lián)網(wǎng)平臺,會使用到流量管理服務(wù),進行全局流量分發(fā)和調(diào)度。
歡迎關(guān)注我的頭條號@程序員地瓜, 及時獲取最新發(fā)布動態(tài)。閱讀文章過程中有任何問題,歡迎在評論區(qū)留言,我會及時回復。