文/陸海 柯立新
DNS(域名系統(tǒng))是互聯(lián)網(wǎng)的一項(xiàng)基礎(chǔ)服務(wù),其作為將域名和IP地址相互映射的一個分布式系統(tǒng),能夠使人更方便地訪問互聯(lián)網(wǎng)。DNS一般可分為權(quán)威DNS和遞歸查詢DNS,權(quán)威DNS提供所轄域名的解析,而查詢DNS主要是面向一般用戶進(jìn)行上網(wǎng)地址解析。
為了使得用戶能夠獲得最優(yōu)(最近)的服務(wù)器提供服務(wù),應(yīng)用的權(quán)威DNS(或CDN)會針對不同ISP下的用戶返回不同的地址。以某著名電商網(wǎng)站為例,其首頁加載共涉及到約30個不同的域名,且大部分域名從命名上均包含CDN字樣。假定DNS對于首頁中涉及到的域名解析結(jié)果能夠快1ms返回,30個不同域名就能夠節(jié)省30ms的時間,從而直接提高了網(wǎng)站的整體訪問速度。
目前CDN為最終用戶進(jìn)行線路選擇的依據(jù),大部分依賴于進(jìn)行域名查詢的源地址,根據(jù)該源地址所歸屬的運(yùn)營商及來源地的不同返回不同的地址。但進(jìn)行域名查詢的來源地址并不能代表用戶的最終地址,即使采用了ECS(edns-client-subnet),但由于ECS對于NAT后的用戶目前無能為力,因此由CDN服務(wù)商來精確判斷用戶的來源并不總是準(zhǔn)確的,DNS返回結(jié)果可以直接決定用戶是否可以獲得優(yōu)質(zhì)的網(wǎng)絡(luò)訪問效果。
目前網(wǎng)絡(luò)安全的形勢不容樂觀,互聯(lián)網(wǎng)上存在大量的惡意代碼及安全隱患,其中很多APT攻擊以及僵尸網(wǎng)絡(luò)C&C(命令和控制)連接,均不同程度利用DNS來實(shí)現(xiàn)。通過對DNS的解析行為進(jìn)行分析與研判,是進(jìn)行安全分析的一種重要手段。
校園網(wǎng)環(huán)境所面對的用戶數(shù)量眾多,出口多,訪問控制策略復(fù)雜多等情況。對于網(wǎng)絡(luò)的優(yōu)化要求早已不是僅實(shí)現(xiàn)訪問可達(dá),更需要保證訪問的效果和質(zhì)量,設(shè)計與出口狀況相匹配的DNS系統(tǒng),實(shí)現(xiàn)可管可控低延遲高質(zhì)量的域名解析服務(wù),是提高目前校園網(wǎng)優(yōu)化水平的一條有效途徑。
上海教育城域網(wǎng)(以下簡稱城域網(wǎng))是國內(nèi)教育界首個100G主干城域網(wǎng),自建成以后逐漸接入了上海市3000多家教育單位,不同單位由于歷史原因在接入城域網(wǎng)前已經(jīng)接入了其他運(yùn)營商或者機(jī)構(gòu),另外由于自身運(yùn)維能力差異,對于終端用戶的服務(wù)水平不一樣,接入城域網(wǎng)后的用戶可能會由于各種原因無法正常使用城域網(wǎng)所提供的網(wǎng)絡(luò)服務(wù)。此外由于終端設(shè)備的錯誤配置會使得網(wǎng)絡(luò)訪問效果大打折扣;城域網(wǎng)目前也正在進(jìn)行內(nèi)容建設(shè),例如引入CDN節(jié)點(diǎn)等,力求加強(qiáng)城域網(wǎng)用戶的訪問體驗(yàn),這些資源建在城域網(wǎng)內(nèi),也需要引導(dǎo)用戶去訪問。為解決上述問題,未來將在城域網(wǎng)內(nèi)建設(shè)一批統(tǒng)一管理的DNS系統(tǒng),實(shí)現(xiàn)可管、可控、可追溯的DNS服務(wù),向最終用戶提供DNS解析。
圖1 層次化DNS系統(tǒng)結(jié)構(gòu)
DNS系統(tǒng)以分層方式進(jìn)行部署,將DNS的緩存與遞歸查詢分開處理,并在所有的ISP出口處分別部署專用的遞歸查詢服務(wù)器。系統(tǒng)結(jié)構(gòu)如圖1。
在區(qū)縣教育局/區(qū)縣信息中心處部署緩存服務(wù)器,在正常情況下各區(qū)縣的緩存服務(wù)器只為本區(qū)縣用戶提供域名解析服務(wù)。緩存服務(wù)器將所有的DNS查詢請求傳遞給部署在市教委信息中心的遞歸查詢服務(wù)器進(jìn)行查詢,自己并不直接進(jìn)行遞歸查詢。在城域網(wǎng)內(nèi)開啟任播(anycast)服務(wù),所有的緩存服務(wù)器均配置相同的任播地址,用戶查詢會就近分配到最近的任播緩存服務(wù)器上,確保用戶獲得低時延的域名解析服務(wù)。而當(dāng)某一區(qū)縣的DNS緩存服務(wù)器出現(xiàn)故障或者需要進(jìn)行維護(hù)時,任播功能將能自動將用戶的訪問請求轉(zhuǎn)發(fā)到其他的任播緩存服務(wù)器上,保證用戶的服務(wù)不中斷。具體實(shí)現(xiàn)方式簡要介紹如下:
(1)將DNS的業(yè)務(wù)監(jiān)聽地址(anycast地址)配置在DNS緩存服務(wù)器的loopback接口上,例如:
ip addr add 192.168.0.1/32 dev lo
(2)區(qū)縣信息中心路由器與DNS緩存服務(wù)器的互聯(lián)接口之間開啟動態(tài)路由協(xié)議(如OSPF)。
(3)DNS緩存服務(wù)器將anycast地址通過動態(tài)路由協(xié)議注入到區(qū)縣信息中心路由器中:
(4)DNS緩存服務(wù)器上需要開啟守護(hù)信息中心路由器將anycast地址再通過IGP發(fā)布到城域網(wǎng)骨干網(wǎng)中。
(5)DNS緩存服務(wù)器上需要開啟守護(hù)進(jìn)程,定時檢查自身DNS服務(wù)是否能夠達(dá)到正常運(yùn)行基線相關(guān)要求,例如DNS服務(wù)是否工作正常:
當(dāng)DNS出現(xiàn)問題時,通過停止動態(tài)路由進(jìn)程,不再向?qū)Χ寺酚善靼l(fā)布anycast地址,就可以將緩存服務(wù)器自身從網(wǎng)絡(luò)上隔離出去。
緩存服務(wù)器將主要面向一般用戶查詢,并記錄用戶查詢?nèi)罩?。在保證查詢性能的同時,緩存服務(wù)器自身能夠?qū)Ξ惓5腄NS報文進(jìn)行丟棄處理;能夠防范DNS緩存投毒以及能夠?qū)NS Flood、UDP Flood等常見攻擊進(jìn)行防護(hù)。還會對于異常的DNS查詢請求進(jìn)行攔截,例如限制每用戶的QPS數(shù)量,對于網(wǎng)外用戶的查詢拒絕服務(wù)等,例如:
緩存服務(wù)器具備EDNS0擴(kuò)展功能,能夠?qū)⒆罱K用戶的IP地址等信息打包進(jìn)查詢請求,以方便上層CDN返回最優(yōu)結(jié)果。
在上層遞歸查詢服務(wù)器故障的極端情況下,緩存服務(wù)器還具備緩存快照及相應(yīng)解析記錄導(dǎo)入能力(通過帶外承載),或能夠通過人工干預(yù)進(jìn)行本地解析。
為保證緩存服務(wù)器的安全性,在網(wǎng)絡(luò)側(cè)采用如下策略對各區(qū)縣的緩存服務(wù)器進(jìn)行保護(hù):
(1)在緩存服務(wù)器的接入路由器與網(wǎng)絡(luò)互聯(lián)的鏈路上均部署了ACL,只允許城域網(wǎng)內(nèi)用戶訪問緩存服務(wù)器,禁止域外地址訪問。
(2)為保障系統(tǒng)在遭受大規(guī)模攻擊流量情況下仍能夠提供服務(wù),在緩存服務(wù)節(jié)點(diǎn)接入路由器與網(wǎng)絡(luò)互聯(lián)的鏈路上部署了帶寬限速的QoS策略。QoS策略根據(jù)各區(qū)縣的日常訪問量配置,按照峰值流量2倍進(jìn)行配置。
為了避免出現(xiàn)網(wǎng)絡(luò)內(nèi)部用戶因?yàn)殄e配DNS導(dǎo)致的解析結(jié)果不正確等相關(guān)問題,在各區(qū)縣網(wǎng)絡(luò)中心的核心處還可以通過配置控制策略等方式將用戶的域名查詢請求統(tǒng)一轉(zhuǎn)發(fā)到緩存服務(wù)器上,使得網(wǎng)絡(luò)用戶均能夠獲得正確的域名查詢結(jié)果,且不需要網(wǎng)絡(luò)用戶對配置進(jìn)行修改,具體實(shí)現(xiàn)方式不再贅述。
市教委信息中心處部署DNS專門用于進(jìn)行遞歸查詢操作,遞歸查詢DNS僅響應(yīng)各緩存服務(wù)器的DNS查詢請求。城域網(wǎng)的所有域名查詢規(guī)則將會配置到遞歸查詢DNS上,包括轉(zhuǎn)發(fā)域規(guī)則、私有地址規(guī)則、CDN轉(zhuǎn)發(fā)規(guī)則、安全防護(hù)規(guī)則等。規(guī)則由策略管理中心通過帶外通道統(tǒng)一進(jìn)行管理及下發(fā)。部分策略舉例:
策略管理中心還將對所有的緩存DNS進(jìn)行管理,并進(jìn)行轉(zhuǎn)發(fā)調(diào)度,根據(jù)需要為不同的緩存DNS服務(wù)器分配不同的遞歸查詢DNS。在市教委信息中心處還將配置域名安全態(tài)勢感知及事件處理中心,利用已有的日志分析工具對于用戶的DNS行為進(jìn)行安全審計,阻止諸如APT攻擊、僵尸網(wǎng)絡(luò)CC連接、不良網(wǎng)站訪問等用戶行為。
為了配合CDN的優(yōu)化動作,在城域網(wǎng)統(tǒng)一出口的每一個ISP出口側(cè),均配置使用對應(yīng)ISP源地址的DNS服務(wù)器,以確保對應(yīng)出口CDN返回的優(yōu)化結(jié)果的正確性。專用遞歸查詢DNS的部署目的是為了配合核心層的遞歸查詢DNS使用,滿足核心層遞歸查詢DNS服務(wù)的出口調(diào)度需求。出口處遞歸查詢DNS僅響應(yīng)內(nèi)部遞歸查詢服務(wù)器的遞歸查詢請求。
目前該系統(tǒng)的部分功能已經(jīng)在上海市部分區(qū)縣信息中心進(jìn)行了試用,用戶評價良好。