[海錦霞]
DNS是因特網的一項核心基礎服務,它維護了一個域名和IP地址相互映射的分布式數據庫,能夠使用戶更方便地訪問互聯網,而不用去記憶目標IP地址。
許多權威DNS使用傳入查詢的IP地址作為用戶網絡位置標識進而返回不同的DNS響應,因為大多數查詢來自中間遞歸解析器,所以源地址是遞歸解析器的地址,而不是查詢發(fā)起者的地址。而且,大多ISP和其他組織使用集中部署解析器的方式,所以該解析器可能遠離客戶端,比如中國電信的LDNS就是以省為單位集中式部署。這種情況下,即便CDN運營商建設的服務節(jié)點已經下沉至靠近用戶的位置,但是由于LDNS的位置遠離用戶,也無法給用戶提供優(yōu)質的服務。
為了解決這個問題,Google、OpenDNS等聯合編制了對DNS協議擴展(EDNS(0))的RFC草案(RFC6981、RFC7181),定義了Client在查詢請求的時候,可以在DNS協議中寫入自己的請求地址,這樣LDNS進行DNS查詢的時候,可以把用戶源地址傳給權威DNS,根據來源地址可以進行更加準確的調度。
EDNS主要應用于精準調度方面,需要LDNS和權威DNS均支持ECS協議,本文主要根據運營商DNS系統(tǒng)現狀提出了多種EDNS組網模式,并進行優(yōu)缺點分析,提出了一種EDNS能力開放的方案。
電信運營商的DNS系統(tǒng)主要包含兩大部分:緩存服務平臺(Local DNS)和域名授權服務平臺。
緩存服務平臺主要負責為用戶提供域名解析服務,具備緩存和查詢功能,一般以省份為單位集中部署,形成覆蓋全國的服務能力。授權服務平臺由承載域名數據的授權設備構成,用于記錄IP地址和域名的對應關系。
目前運營商DNS系統(tǒng)主要采用遞歸查詢的方式,即由LDNS進行迭代查詢,并將結果返回給用戶。具體的域名解析過程如下。
(1)用戶終端提交域名解析請求,并將該請求發(fā)送給本地的域名服務器(LDNS);
(2)當LDNS收到請求后,就先查詢本地的緩存;如果有查詢的DNS信息記錄,則直接返回查詢的結果;如果沒有該緩存記錄,LDNS就把域名解析請求發(fā)給根域名服務器;
(3)根域名服務器返回給LDNS該域名所屬的頂級域名服務器的IP地址;
(4)LDNS向頂級域名服務器發(fā)送請求;
(5)接收到該查詢請求的域名服務器查詢其緩存和記錄,如果有相關信息則返回用戶端查詢結果,否則通知用戶端下級的域名服務器的地址(繼續(xù)重復遞歸查詢過程);
(6)LDNS將返回的結果保存到緩存,并且將結果返回給用戶端。
運營商的LDNS在部署建設時,包含融合部署和分離部署兩種方式,即緩存和查詢模塊部署在一臺設備上,或者分別部署在不同的設備上。分離部署的模式下,查詢服務器只接受本節(jié)點內的緩存設備發(fā)起的查詢請求,不直接和用戶進行信息交互。
在DNS擴展協議發(fā)布之后,很多DNS設備以及權威域名服務器均可升級支持ECS協議。根據目前的DNS現狀,本文分析了以下兩種EDNS組網模式,并在此基礎之上提出EDNS能力開放的方案。
EDNS融合組網模式指在現有Local DNS服務器上,通過升級,增加相應ECS處理模塊,實現EDNS功能,如圖1所示。
中國電信運營商Local DNS系統(tǒng)的緩存和遞歸是物理分離部署的,且每個節(jié)點內設置多臺以上緩存設備和遞歸設備,實現節(jié)點內負載均衡,因此,混合組網模式下,Local DNS緩存與遞歸均需進行升級,增加分區(qū)緩存、分區(qū)遞歸等模塊。
圖1 融合組網示意圖
這種組網方案,不需要新增服務器,僅需要升級現有LDNS,可避免設備采購周期長導致業(yè)務無法及時上線的問題。但是,對于現網LDNS改造難度較高,而且由于融合部署,功能分工界面不明顯,故障排查和維護較為復雜,且性能和安全問題上會存在隱患。
考慮到融合組網模式下存在的管理、安全、性能等問題,建議將EDNS遞歸分離出來,組網架構如圖2所示。這種組網模式下,緩存設備需升級支持分區(qū)緩存,并另設置專用EDNS遞歸服務器,由該服務器處理EDNS遞歸查詢請求,集中控制EDNS域名的遞歸或轉發(fā)策略,實現遞歸流量分流。普通的域名解析請求由公共緩存分區(qū)向普通遞歸解析器進行遞歸查詢。
圖2 EDNS專用設備分離組網示意圖
專用EDNS遞歸設備旁掛的組網方式對現網DNS系統(tǒng)升級改造工作量較小,僅需升級緩存設備支持分區(qū)緩存,且緩存支持將用戶的域名解析請求透明轉發(fā)給EDNS遞歸設備。分離組網模式也大大減輕了原有遞歸設備兼容EDNS遞歸功能的性能上的壓力,保障普通遞歸性能不下降。但是仍然存在管理和協調上的問題,權威域名服務器不知道ISP的地址資源情況,用戶網絡發(fā)生變更之后,需要LDNS和權威DNS同步信息,并同時更改業(yè)務配置,缺乏一個統(tǒng)一管理的機制。
第3節(jié)闡述了兩種組網模式,并分析了各自的優(yōu)缺點,本節(jié)在此基礎上提出了一種EDNS能力開放的方案,組網架構如圖3所示。
圖3 EDNS能力開放組網圖
該方案的要點是EDNS系統(tǒng)與LDNS相互獨立,原有的LDNS保持不變,新建EDNS服務節(jié)點,處理EDNS域名解析請求。如果用戶請求的是普通域名解析,仍然保持原有的LDNS解析流程不變,由原有的LDNS代理進行迭代查詢,最終返回給用戶權威域名服務器的IP地址。如果用戶請求的是EDNS域名解析,則由EDNS服務節(jié)點處理,最終返回給用戶EDNS權威域名服務器的IP地址。
該方案需要設置域名分流模塊,用于區(qū)分用戶請求的域名是否為EDNS域名,將其轉發(fā)至相應的LDNS或EDNS的緩存模塊進行處理。新增EDNS緩存設備和EDNS遞歸設備(也可以合設部署在一臺設備上)。
這種模式下,EDNS緩存/遞歸與現有的普通緩存遞歸服務器分離,對EDNS的配置不會對現網普通DNS服務造成影響。這種情況下可以實現EDNS的全網統(tǒng)一運營和管理,開放EDNS能力給第三方權威域名服務系統(tǒng),實現精準調度。
本文提出了一種EDNS能力開放的方案,該方案不影響現有LDNS,標準化EDNS接口,將EDNS能力獨立出來,可實現EDNS能力開放。對于電信運營商來說,采用這種方案可將EDNS進行統(tǒng)一管理和運營,在用戶地址發(fā)生變化或客戶域名發(fā)生變化時,可統(tǒng)一配置和管理,無需協調多方同步信息、變更配置,大大提升網絡配置和業(yè)務開通效率。