網(wǎng)絡(luò)原來(lái)如此之G行數(shù)據(jù)中心分布式域名解析系統(tǒng)設(shè)計(jì)
當(dāng)金融機(jī)構(gòu)逐步向多數(shù)據(jù)中心架構(gòu)演進(jìn)時(shí),敏捷的災(zāi)難切換恢復(fù)能力變得至關(guān)重要,如何在保證生產(chǎn)數(shù)據(jù)或存儲(chǔ)一致性的基礎(chǔ)上在各數(shù)據(jù)中心間調(diào)度流量,確保業(yè)務(wù)的持續(xù)運(yùn)行和快速恢復(fù),已成為行業(yè)的關(guān)鍵需求。域名解析系統(tǒng)(DNS)作為這一需求的核心支撐,已經(jīng)從簡(jiǎn)單的域名到IP地址的映射,轉(zhuǎn)變?yōu)閿?shù)據(jù)中心流量管理和調(diào)度的關(guān)鍵樞紐。近些年陸續(xù)發(fā)生數(shù)據(jù)中心內(nèi)網(wǎng)域名解析系統(tǒng)故障,引發(fā)大面積網(wǎng)絡(luò)癱瘓及業(yè)務(wù)中斷,如何防范和應(yīng)對(duì)域名解析系統(tǒng)故障,做好域名解析系統(tǒng)高可用架構(gòu)、容災(zāi)機(jī)制和應(yīng)急預(yù)案的設(shè)計(jì)已成為數(shù)據(jù)中心技術(shù)團(tuán)隊(duì)關(guān)注的焦點(diǎn),今天我們就講講G行數(shù)據(jù)中心域名解析系統(tǒng)設(shè)計(jì)思路及思考。
本篇文章會(huì)從系統(tǒng)架構(gòu)到策略配置逐步展開(kāi),帶領(lǐng)大家一步一步了解G行域名解析系統(tǒng)架構(gòu)是怎么形成的,其中涉及一些DNS技術(shù)專業(yè)術(shù)語(yǔ),可以參考另外兩篇基礎(chǔ)文章《淺談DNS域名解析系統(tǒng)》和《淺談DNS域名解析系統(tǒng)之Local DNS》,本文不再贅述。
一、架構(gòu)設(shè)計(jì)
“凡事預(yù)則立,不預(yù)則廢”,對(duì)于構(gòu)建足以影響整個(gè)數(shù)據(jù)中心運(yùn)轉(zhuǎn)的全局類網(wǎng)絡(luò)域名解析系統(tǒng)時(shí),第一步需要考慮的就是整體可用性,要保證系統(tǒng)部分故障不影響整體對(duì)外的服務(wù)能力,這就要求設(shè)計(jì)的系統(tǒng)架構(gòu)具備低耦合、高冗余特性,同時(shí)建議支持產(chǎn)品異構(gòu)部署。
DNS的協(xié)議標(biāo)準(zhǔn)非常靈活,根、權(quán)威、遞歸服務(wù)器等角色,可以獨(dú)立部署,也可以部署在同一臺(tái)服務(wù)器上。對(duì)于大型數(shù)據(jù)中心,從健壯性和容量的角度思考,還是需要對(duì)各層角色進(jìn)行解耦并獨(dú)立異構(gòu)部署,充分利用域名解析系統(tǒng)各個(gè)角色的特性。從同業(yè)的調(diào)研中,也證實(shí)了這一點(diǎn),大型企業(yè)級(jí)數(shù)據(jù)中心多是根、權(quán)威、遞歸服務(wù)器分角色部署的方式。整個(gè)分層解耦架構(gòu)設(shè)計(jì)示例如下:
圖片
根、權(quán)威、遞歸分層,每個(gè)角色服務(wù)器都在多中心分布式部署。
01 根服務(wù)器(Root Server)
根服務(wù)器采取高冗余分布式部署,每個(gè)數(shù)據(jù)中心至少部署兩臺(tái)根服務(wù)器,從而應(yīng)對(duì)本地?cái)?shù)據(jù)中心單臺(tái)設(shè)備故障,同時(shí)提供數(shù)據(jù)中心級(jí)冗余能力。
02 權(quán)威服務(wù)器(Name Server)
權(quán)威采用多級(jí)授權(quán)的方式,根授權(quán)一級(jí)域名的權(quán)威服務(wù)器,一級(jí)域名的權(quán)威服務(wù)器授權(quán)二級(jí)域名的權(quán)威服務(wù)器,以此類推。各級(jí)權(quán)威服務(wù)器可以通過(guò)增加授權(quán)進(jìn)行橫向擴(kuò)容。二級(jí)域名權(quán)威服務(wù)器可以授權(quán)給需要域名自主權(quán)的系統(tǒng)自行管理。如全棧云平臺(tái)、域控、內(nèi)網(wǎng)CDN平臺(tái)、子機(jī)構(gòu)等等。
03 遞歸服務(wù)器(Local DNS server)
考慮辦公和生產(chǎn)屬性的不同,遞歸服務(wù)器采用辦公和生產(chǎn)的獨(dú)立的方式進(jìn)行部署,分別為辦公終端和生產(chǎn)服務(wù)器提供域名解析服務(wù),辦公遞歸服務(wù)器引入不同信創(chuàng)產(chǎn)品和非信創(chuàng)產(chǎn)品進(jìn)行異構(gòu)部署。
G行遞歸服務(wù)器每個(gè)節(jié)點(diǎn)采用負(fù)載均衡集群部署,這樣設(shè)計(jì)有許多優(yōu)點(diǎn):
- 負(fù)載分擔(dān):遞歸服務(wù)器直接面對(duì)客戶,訪問(wèn)壓力較大,通過(guò)負(fù)載均衡可以實(shí)現(xiàn)高性能解析能力;
- 橫向擴(kuò)展:用戶側(cè)需要直接配置遞歸服務(wù)器IP,如果遞歸服務(wù)器需要進(jìn)行擴(kuò)容、升級(jí)或者替換等變更操作,短時(shí)間中斷可能產(chǎn)生全局性影響,通過(guò)負(fù)載均衡虛地址發(fā)布,可以屏蔽后端服務(wù)器集群的變化,方便后續(xù)運(yùn)維;
- 健康檢查:負(fù)載均衡具備DNS方式的健康檢查,實(shí)時(shí)發(fā)現(xiàn)遞歸服務(wù)器的解析異常,實(shí)現(xiàn)自動(dòng)隔離;
- 安全防護(hù):部分負(fù)載均衡產(chǎn)品具備DNS防護(hù)能力,可以防護(hù)DDOS攻擊和攔截異常解析請(qǐng)求;
- 異構(gòu)部署:資源池可以采用不同品牌的產(chǎn)品進(jìn)行異構(gòu)部署,以規(guī)避產(chǎn)品級(jí)故障。
二、域名規(guī)劃
域名規(guī)劃可能是域名解析系統(tǒng)可持續(xù)的關(guān)鍵,一個(gè)好的域名架構(gòu)規(guī)劃可以實(shí)現(xiàn)清晰的上下級(jí)域名關(guān)系、區(qū)分管理職責(zé)、靈活的擴(kuò)容和拆分等等,這里我們主要考慮動(dòng)靜區(qū)份、內(nèi)外區(qū)分和風(fēng)險(xiǎn)隔離租戶區(qū)分三個(gè)關(guān)鍵因素,以支持多數(shù)據(jù)中心的業(yè)務(wù)需求:
01動(dòng)靜區(qū)分
“動(dòng)靜”指動(dòng)態(tài)域名和靜態(tài)域名。在高可用架構(gòu)中,通常通過(guò)域名解析系統(tǒng)來(lái)實(shí)現(xiàn)應(yīng)用系統(tǒng)的高可用,域名服務(wù)器根據(jù)客戶端請(qǐng)求所在的位置來(lái)動(dòng)態(tài)解析出不同的IP地址,或者通過(guò)輪詢方式解析多個(gè)IP地址實(shí)現(xiàn)多活系統(tǒng)服務(wù)IP的負(fù)載均衡,又或者需要通過(guò)域名切換地址來(lái)實(shí)現(xiàn)應(yīng)用系統(tǒng)的主備切換能力等等。借助域名解析系統(tǒng)健康檢查監(jiān)控和智能解析算法來(lái)實(shí)現(xiàn)單個(gè)域名和多個(gè)IP地址綁定關(guān)系的域名,叫做動(dòng)態(tài)域名。相對(duì)的,域名和IP地址做簡(jiǎn)單綁定的域名叫做靜態(tài)域名。
動(dòng)態(tài)域名需要域名解析系統(tǒng)消耗更多的資源,包括實(shí)時(shí)的健康檢查策略、負(fù)載均衡、拓?fù)渌惴ǖ戎悄芙馕鏊惴ǖ鹊?。在架?gòu)設(shè)計(jì)的考量中,動(dòng)態(tài)域名將來(lái)可能成為系統(tǒng)性能的瓶頸,為了便于獨(dú)立部署,明確的動(dòng)態(tài)域名應(yīng)該使用獨(dú)立的子域,如內(nèi)網(wǎng)CDN系統(tǒng)、多AZ的全棧云系統(tǒng)等等。
02內(nèi)外區(qū)分
“內(nèi)外”指內(nèi)網(wǎng)域名和互聯(lián)網(wǎng)域名,互聯(lián)網(wǎng)DMZ區(qū)的服務(wù)器通常存在既訪問(wèn)內(nèi)網(wǎng)又訪問(wèn)互聯(lián)網(wǎng)的需求,為避免內(nèi)外網(wǎng)域名混淆,應(yīng)避免內(nèi)網(wǎng)和互聯(lián)網(wǎng)使用同一個(gè)一級(jí)域名。而純內(nèi)網(wǎng)環(huán)境應(yīng)該與互聯(lián)網(wǎng)完全隔離,不具備解析互聯(lián)網(wǎng)域名的能力。
03風(fēng)險(xiǎn)隔離租戶區(qū)分
獨(dú)立的機(jī)構(gòu)域名建議使用獨(dú)立的子域,比如分行、信用卡或者子公司,后續(xù)如果出現(xiàn)單機(jī)構(gòu)業(yè)務(wù)發(fā)展過(guò)快或者管理架構(gòu)調(diào)整的情況,可以方便進(jìn)行獨(dú)立拆分。
綜上,整體域名規(guī)劃如下:域名由根域名(“.”)進(jìn)行授權(quán),數(shù)據(jù)中心內(nèi)部使用統(tǒng)一的一級(jí)域名,名字應(yīng)該與互聯(lián)網(wǎng)域名有所區(qū)分,二級(jí)域名按照機(jī)構(gòu)區(qū)分,三級(jí)域名根據(jù)動(dòng)靜態(tài)使用區(qū)分,可以根據(jù)功能再劃分子域。
圖片
三、策略設(shè)計(jì)
01智能解析機(jī)制
域名解析系統(tǒng)的智能解析能力是數(shù)據(jù)中心實(shí)現(xiàn)業(yè)務(wù)多活的基礎(chǔ)能力,通俗的說(shuō),智能解析是域名解析系統(tǒng)依據(jù)用戶屬性,結(jié)合對(duì)系統(tǒng)服務(wù)狀態(tài)的監(jiān)測(cè),返回相應(yīng)的服務(wù)IP地址的能力。典型的使用場(chǎng)景如“近源訪問(wèn)”:
應(yīng)用系統(tǒng)在兩個(gè)數(shù)據(jù)中心都提供相同的服務(wù),不同的數(shù)據(jù)中心發(fā)布不同的服務(wù)地址,需求是發(fā)布同一個(gè)域名,用戶訪問(wèn)這個(gè)域名的時(shí)候能夠訪問(wèn)到離自己物理位置最近的數(shù)據(jù)中心的服務(wù)節(jié)點(diǎn),如果這個(gè)服務(wù)節(jié)點(diǎn)故障,則自動(dòng)訪問(wèn)到另一個(gè)數(shù)據(jù)中心的服務(wù)節(jié)點(diǎn),用戶對(duì)訪問(wèn)到哪個(gè)數(shù)據(jù)中心服務(wù)節(jié)點(diǎn)無(wú)感知。
“近源訪問(wèn)”的典型HTTP/HTTPS應(yīng)用如“CDN內(nèi)容分發(fā)網(wǎng)絡(luò)”。“近源訪問(wèn)”可以大大減少數(shù)據(jù)中心間通信的帶寬資源,降低成本,同時(shí)由于訪問(wèn)距離近,也能提高用戶訪問(wèn)的速度,增強(qiáng)用戶體驗(yàn)。在這個(gè)場(chǎng)景里,域名解析系統(tǒng)會(huì)根據(jù)用戶請(qǐng)求的源地址來(lái)判斷返回哪個(gè)數(shù)據(jù)中心的服務(wù)地址,同時(shí)域名解析系統(tǒng)會(huì)通過(guò)健康檢查機(jī)制持續(xù)探測(cè)應(yīng)用系統(tǒng)的服務(wù)端口可用性,如果探測(cè)失敗,則自動(dòng)隔離該地址,按照解析順序,會(huì)解析下一個(gè)可用地址,實(shí)現(xiàn)自動(dòng)切換能力。
可以看出智能解析的關(guān)鍵點(diǎn)有兩個(gè):1、通過(guò)源地址判斷返回哪個(gè)服務(wù)地址,2、健康檢查機(jī)制。健康檢查機(jī)制比較簡(jiǎn)單,在這里不做詳述,主要講一下怎么獲取用戶地址。熟悉DNS原理的同學(xué)可能會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題,當(dāng)域名解析系統(tǒng)分角色部署的時(shí)候,權(quán)威服務(wù)器能獲取到的是遞歸服務(wù)器的地址,而獲取不到用戶的真實(shí)地址。
技術(shù)上可以通過(guò)兩種方式解決:第一種方式是使用EDNS (Extension Mechanisms for DNS) 技術(shù),EDNS是對(duì)于原有DNS協(xié)議的一種擴(kuò)展,旨在增強(qiáng)其功能性和靈活性。它的主要特性是將DNS消息的大小由512字節(jié)提高到4096字節(jié),并引入了額外的選項(xiàng)字段,使得DNS報(bào)文可以攜帶更多類型的信息,在這里我們主要是用到ECS(Client Subnet,客戶端子網(wǎng))擴(kuò)展字段,ECS擴(kuò)展不是EDNS的一個(gè)直接字段,而是作為EDNS的一個(gè)選項(xiàng)(OPT Resource Record)中的一個(gè)部分來(lái)傳送的。當(dāng)DNS解析請(qǐng)求通過(guò)遞歸解析器轉(zhuǎn)發(fā)到權(quán)威服務(wù)器時(shí),ECS選項(xiàng)會(huì)包含發(fā)起請(qǐng)求的客戶端地址的信息,權(quán)威服務(wù)器可以因此獲得用戶的真實(shí)地址。第二種解決方案是目前互聯(lián)網(wǎng)常用的方式,在每個(gè)數(shù)據(jù)中心都建設(shè)獨(dú)立的遞歸服務(wù)器,由遞歸服務(wù)器的地址來(lái)代表用戶的地理位置,權(quán)威服務(wù)器根據(jù)遞歸服務(wù)器地址就可以知道請(qǐng)求來(lái)自哪里。
圖片
從架構(gòu)設(shè)計(jì)角度結(jié)合部署產(chǎn)品情況,G行目前采用第二種解決方案。第一種解決方案有一些優(yōu)勢(shì),比如成本比較低,不需要太多的權(quán)威服務(wù)器,而且配置也不算復(fù)雜,同時(shí)權(quán)威服務(wù)器可以直接獲得用戶的IP,在通過(guò)解析日志分析用戶行為方面可以獲得很有效的數(shù)據(jù);但是這個(gè)方案有個(gè)致命的問(wèn)題,開(kāi)啟源地址插入功能后,需要放棄遞歸服務(wù)器的緩存能力,因?yàn)槊總€(gè)請(qǐng)求都是要帶不同的源地址的,意味著每次請(qǐng)求都要在權(quán)威上做獨(dú)立的判斷,不然就無(wú)法做到就近解析,而放棄緩存能力,可能成百上千倍增加權(quán)威服務(wù)器的系統(tǒng)壓力,在同時(shí)啟用智能解析的情況下可能直接導(dǎo)致權(quán)威服務(wù)器性能不足而故障的情況,第二種方案成熟、簡(jiǎn)單易行,并且互聯(lián)網(wǎng)有大規(guī)模部署的案例,不過(guò)需要提醒的是每臺(tái)遞歸服務(wù)器都需要開(kāi)通到所有根和權(quán)威服務(wù)器的訪問(wèn)關(guān)系。成本控制方面,需要在多個(gè)位置部署遞歸服務(wù)器,在用戶較少的位置,可以考慮低端服務(wù)器或者虛擬機(jī)方式,對(duì)于不需要智能解析的位置則不用部署。
02緩存機(jī)制
在智能解析中我們提到了遞歸服務(wù)器的緩存機(jī)制,在域名解析系統(tǒng)架構(gòu)的設(shè)計(jì)中,緩存策略的設(shè)計(jì)直接影響域名解析系統(tǒng)的整體性能。遞歸服務(wù)器啟用緩存后,緩存時(shí)間內(nèi),遞歸服務(wù)器不再將請(qǐng)求轉(zhuǎn)發(fā)給權(quán)威服務(wù)器解析,而是將緩存的結(jié)果直接返回給用戶,不僅大大緩解了權(quán)威服務(wù)器的訪問(wèn)壓力,也提高了域名解析的速度。
開(kāi)啟緩存非常有必要,但是緩存時(shí)間是不得不考慮的因素,緩存時(shí)間太短,無(wú)法有效降低權(quán)威服務(wù)器的壓力,緩存時(shí)間太長(zhǎng),可能導(dǎo)致域名地址變更無(wú)法快速更新,域名解析系統(tǒng)的智能解析機(jī)制無(wú)法快速生效等等。緩存時(shí)間建議通過(guò)權(quán)威服務(wù)器上域名配置的TTL時(shí)間來(lái)設(shè)置,不同類型的域名可以有不同的TTL時(shí)間策略,對(duì)于需要地址快速切換的重要業(yè)務(wù)域名,建議降低TTL時(shí)間值,特別應(yīng)用甚至可以設(shè)置為0,對(duì)于有一定業(yè)務(wù)影響承受能力的業(yè)務(wù)域名,可以參考通用時(shí)間來(lái)設(shè)置。
圖片
綜合考慮域名解析系統(tǒng)的整體性能和大部分應(yīng)用系統(tǒng)的需求,設(shè)計(jì)通用TTL時(shí)間可以提高應(yīng)用需求的溝通成本,以健康檢查失敗超時(shí)30秒,TTL時(shí)間60秒為例,可以計(jì)算出可能的業(yè)務(wù)影響時(shí)間為60~90秒,如果小于業(yè)務(wù)的RTO時(shí)間,那就是可以接受的TTL時(shí)間。
圖片
另外,客戶側(cè)還存在其他域名緩存可能導(dǎo)致域名切換失效,包括操作系統(tǒng)、中間件、java組件、瀏覽器等,建議應(yīng)用部署時(shí)管理員應(yīng)該充分評(píng)估可能域名緩存的組件,如果有,應(yīng)該調(diào)整設(shè)置為不緩存或遵循域名TTL值。
03域名解析時(shí)延
域名解析作為網(wǎng)絡(luò)訪問(wèn)的第一步,必然會(huì)消耗一定的時(shí)延,如果是服務(wù)器間的互訪,那么增加時(shí)延可能對(duì)時(shí)延敏感的應(yīng)用系統(tǒng)產(chǎn)生影響,這也是應(yīng)用系統(tǒng)在考慮使用域名訪問(wèn)前的一些顧慮。解析時(shí)延主要可能有兩種情況,(1)遞歸服務(wù)器有緩存,那么由遞歸服務(wù)器直接返回結(jié)果,由于遞歸服務(wù)器就近部署的原則,解析時(shí)延通常在1-2ms左右;(2)遞歸服務(wù)器沒(méi)有緩存或者緩存時(shí)間超過(guò)TTL設(shè)置,那么遞歸服務(wù)器將重新發(fā)起迭代查詢,根據(jù)域名迭代查詢的次數(shù)不同,時(shí)延可能在幾毫秒到幾十毫秒不等,如果TTL值為60秒,那么每60秒可能會(huì)發(fā)生一次較緩慢的域名解析。
對(duì)于長(zhǎng)連接應(yīng)用,域名解析時(shí)延的影響僅體現(xiàn)在第一次的解析過(guò)程,建立TCP連接后,連接中斷前不再請(qǐng)求DNS(不再增加訪問(wèn)延時(shí)),解析時(shí)延影響較低;對(duì)于短連接高頻訪問(wèn)的應(yīng)用,由于遞歸服務(wù)器近客戶端部署,各地客戶端均訪問(wèn)本地的遞歸服務(wù)器,僅在緩存超時(shí)后會(huì)出現(xiàn)短暫的延時(shí)增加,平均時(shí)延沒(méi)有明顯增長(zhǎng)。
針對(duì)延時(shí)要求敏感的業(yè)務(wù),遞歸服務(wù)器建議開(kāi)啟“緩存刷新”功能,在緩存到期時(shí)遞歸服務(wù)器主動(dòng)向權(quán)威域名更新解析記錄,保證客戶端都從緩存里獲得解析結(jié)果。如果DNS產(chǎn)品不支持緩存刷新,可以在前端負(fù)載均衡上增加對(duì)應(yīng)域名的健康檢查,利用負(fù)載均衡來(lái)快速更新緩存。
對(duì)于CS訪問(wèn)方式,如果域名解析延時(shí)或者解析失敗對(duì)應(yīng)用影響較大,可以考慮通過(guò)使用HTTPDNS方式通過(guò)HTTP方式直接從權(quán)威服務(wù)器獲取域名解析結(jié)果,但是需要對(duì)C端進(jìn)行一定的改造。
04容災(zāi)策略
整體域名解析系統(tǒng)的容災(zāi)策略主要從架構(gòu)和性能兩方面考慮。
架構(gòu)方面,由于域名解析系統(tǒng)根和權(quán)威服務(wù)器都采用分布式部署,任意單個(gè)節(jié)點(diǎn)故障對(duì)系統(tǒng)整體無(wú)影響,遞歸服務(wù)器采用負(fù)載均衡集群方式部署,遞歸服務(wù)器采用資源池方式部署,負(fù)載均衡使用域名解析探測(cè)作為健康檢查方式,單臺(tái)設(shè)備不可用可以自動(dòng)隔離。負(fù)載均衡組采用多臺(tái)集群部署,保證負(fù)載均衡自身的可用性。根、權(quán)威、遞歸服務(wù)器都考慮異構(gòu)部署,避免產(chǎn)品級(jí)故障。對(duì)于目前比較流行的“雙平面”部署(使用兩套異構(gòu)產(chǎn)品部署完全對(duì)等的兩套環(huán)境,一套主用一套備用,主用環(huán)境出現(xiàn)問(wèn)題時(shí)直接切換到備用環(huán)境上),在分布式架構(gòu)下意義不大,如果存在異構(gòu)的兩套環(huán)境,完全可以同時(shí)提供服務(wù),無(wú)需采用熱備方式造成資源的浪費(fèi)。另外如果是性能容量相等的兩套環(huán)境,那么主用環(huán)境出現(xiàn)性能問(wèn)題時(shí),備用環(huán)境同樣是無(wú)能為力的,不如同時(shí)使用將整體性能提升一倍。
圖片
圖片
性能方面,系統(tǒng)設(shè)計(jì)整體性能容量應(yīng)滿足未來(lái)五年的發(fā)展需求,通過(guò)開(kāi)啟遞歸服務(wù)器緩存可以極大降低權(quán)威服務(wù)器的性能壓力,保證域名解析系統(tǒng)性能有足夠的冗余。當(dāng)出現(xiàn)權(quán)威服務(wù)器性能壓力過(guò)大時(shí),首先確定造成壓力突增的域名,增加該域名的TTL時(shí)間以增加域名在LDNS上的緩存時(shí)間來(lái)緩解權(quán)威服務(wù)器壓力,緊急情況下,考慮直接關(guān)閉智能解析,降低智能解析占用的服務(wù)器性能,采用靜態(tài)解析方式提供域名服務(wù)。
四、域名安全設(shè)計(jì)
01安全威脅防御
面對(duì)DNS flood攻擊、DNS污染和DNS隱蔽隧道等安全威脅,我們采取了一系列監(jiān)控和防護(hù)措施,確保系統(tǒng)的安全性。
- DNS flood攻擊,主要通過(guò)短時(shí)間發(fā)起大量的DNS請(qǐng)求,耗盡域名解析系統(tǒng)的性能的一種DDOS攻擊,在內(nèi)網(wǎng)比較少見(jiàn),更多可能因?yàn)閼?yīng)用配置不當(dāng),導(dǎo)致上線時(shí)發(fā)起大量訪問(wèn)。針對(duì)這種情況,可以按照性能達(dá)到上限的方式進(jìn)行處理。域名解析系統(tǒng)應(yīng)該進(jìn)行兩方面的監(jiān)控:解析日志數(shù)據(jù)和解析流量數(shù)據(jù),建立域名解析監(jiān)控機(jī)制,對(duì)于短時(shí)間域名查詢量爆發(fā),可以及時(shí)定位到查詢發(fā)起客戶端地址和被查詢的域名,后續(xù)可采取關(guān)停客戶端或者調(diào)整域名TTL時(shí)間的方式進(jìn)行處置。
圖片
- DNS污染,又稱為DNS緩存中毒或者DNS投毒,其主要目的是通過(guò)搶先應(yīng)答偽造的權(quán)威DNS應(yīng)答報(bào)文,篡改解析的IP地址,使得用戶請(qǐng)求的域名被錯(cuò)誤的解析到攻擊者指定的IP地址。此類攻擊可以通過(guò)在遞歸服務(wù)器上開(kāi)啟防DNS投毒功能,開(kāi)啟后遞歸服務(wù)器進(jìn)行迭代查詢時(shí)將使用隨機(jī)大小寫(xiě)的域名字符串,使得攻擊者難以偽造DNS請(qǐng)求響應(yīng)報(bào)文進(jìn)行投毒。
- DNS隱蔽隧道,并不是針對(duì)域名解析系統(tǒng)的一種攻擊,而是利用DNS查詢?cè)恚瑢?shí)現(xiàn)將內(nèi)網(wǎng)數(shù)據(jù)傳到互聯(lián)網(wǎng)的攻擊技手段。內(nèi)網(wǎng)與互聯(lián)網(wǎng)完全隔離,無(wú)法解析互聯(lián)網(wǎng)域名,故不存在DNS隧道風(fēng)險(xiǎn),此類攻擊主要發(fā)生在互聯(lián)網(wǎng)邊界,防護(hù)此類攻擊主要靠部署全流量安全設(shè)備或者專用DNS防護(hù)設(shè)備,對(duì)DNS請(qǐng)求流量進(jìn)行監(jiān)控,DNS解析日志的分析也可以輔助進(jìn)行風(fēng)險(xiǎn)客戶端定位。
02其他管控措施分析
是否需要關(guān)閉DNS的TCP53端口?
建議區(qū)域間的防火墻關(guān)閉TCP53訪問(wèn)。DNS協(xié)議實(shí)際規(guī)定了TCP 53和UDP 53都是DNS服務(wù)端口,正常情況下DNS使用UDP協(xié)議進(jìn)行通信,當(dāng)DNS數(shù)據(jù)報(bào)文過(guò)大時(shí),如zone transfer操作,DNS將通過(guò)TCP端口進(jìn)行報(bào)文傳輸。但是日常DNS使用僅僅請(qǐng)求域名和應(yīng)答解析地址,對(duì)于大報(bào)文傳輸是沒(méi)有要求的。反而是異常行為,如DNS隱蔽隧道、惡意域名解析、通過(guò)zone transfer竊取域名信息等會(huì)需要用到更大的報(bào)文。因此如果只是正常使用域名,建議防火墻關(guān)閉TCP 53端口訪問(wèn)。
是否需要啟用DNSSEC?
不建議啟用。DNSSEC將DNS的通信變成了加密通信,可以提高DNS的安全性,有效防止DNS劫持和DNS污染,但是DNSSEC涉及加密通信會(huì)大大降低DNS的整體性能,使其發(fā)更容易性能耗盡,同時(shí)加密通信會(huì)增加額外的帶寬開(kāi)銷,可能需要開(kāi)通TCP53端口來(lái)允許大報(bào)文的傳輸,引入其他安全風(fēng)險(xiǎn),另外流量分析類產(chǎn)品也會(huì)因?yàn)闊o(wú)法分析加密流量而失效,對(duì)于隱蔽隧道的監(jiān)控會(huì)徹底失效,同樣的,DNS問(wèn)題定位所需要的抓包分析手段也會(huì)失效。簡(jiǎn)單來(lái)說(shuō)啟用DNSSEC引入的風(fēng)險(xiǎn)和管理難度增加,不建議開(kāi)啟。
五、總結(jié)
G行數(shù)據(jù)中心的域名解析系統(tǒng)通過(guò)低耦合、高冗余等原則,支撐了多數(shù)據(jù)中心間的高效流量調(diào)度和業(yè)務(wù)雙活。隨著全棧云、大數(shù)據(jù)、人工智能技術(shù)的推廣,域名解析系統(tǒng)將面臨更大規(guī)模的域名請(qǐng)求和流量調(diào)度的需求。G行的域名解析系統(tǒng)也將與時(shí)俱進(jìn),通過(guò)不斷的技術(shù)更新和架構(gòu)升級(jí)來(lái)滿足這些新興技術(shù)帶來(lái)的挑戰(zhàn),實(shí)現(xiàn)持續(xù)安全運(yùn)營(yíng)。
圖片
作者 | 張林
專注于網(wǎng)絡(luò)四到七層技術(shù)及相關(guān)安全技術(shù)的研究和應(yīng)用,網(wǎng)絡(luò)領(lǐng)域中最懂應(yīng)用,應(yīng)用領(lǐng)域中最懂網(wǎng)絡(luò),爭(zhēng)取再發(fā)光20年。