向九松 樊士迪
摘? 要:域名服務(wù)是因特網(wǎng)最基本的網(wǎng)絡(luò)服務(wù)之一,大部分CDN需要依賴DNS來(lái)實(shí)現(xiàn)內(nèi)容調(diào)度,域名解析的準(zhǔn)確程度和響應(yīng)速度對(duì)整個(gè)網(wǎng)絡(luò)服務(wù)質(zhì)量而言非常重要。通過(guò)分析當(dāng)前傳統(tǒng)CDN調(diào)度存在的不足,結(jié)合谷歌等公司提出的Edns-Client-Subnet擴(kuò)展協(xié)議,文章提出了基于改進(jìn)版ECS的CDN調(diào)度優(yōu)化方案,并就具體現(xiàn)網(wǎng)實(shí)踐過(guò)程中智能分區(qū)、CNAME調(diào)度、存儲(chǔ)優(yōu)化等關(guān)鍵要點(diǎn)進(jìn)行闡述。
關(guān)鍵詞:DNS;ECS;CDN
中圖分類號(hào):TP393? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)19-0047-03
Practice and Exploration of CDN Precise Scheduling Current Network Based on ECS
XIANG Jiusong, FAN Shidi
(China Telecom Jiangsu Intelligent Cloud Network Dispatching Operation Center, Nanjing? 210037, China)
Abstract: Domain name service is one of the most basic network services on the Internet. Most CDNs need to rely on DNS to realize content scheduling. The accuracy and response speed of domain name resolution are very important to the quality of service of the whole network. By analyzing the shortcomings of the current traditional CDN scheduling, combined with the Edns-Client-Subnet extension protocol proposed by Google and other companies, this paper puts forward the CDN scheduling optimization idea based on the improved version of ECS, and expounds the key points such as intelligent partition, CNAME scheduling and storage optimization in the process of network practice.
Keywords: DNS; ECS; CDN
0? 引? 言
域名服務(wù)是因特網(wǎng)最基本的網(wǎng)絡(luò)服務(wù)之一,通過(guò)在網(wǎng)絡(luò)中構(gòu)建一個(gè)層次化的樹(shù)狀服務(wù)結(jié)構(gòu),建立互聯(lián)網(wǎng)地址與域名的邏輯映射關(guān)系,供互聯(lián)網(wǎng)應(yīng)用服務(wù)使用。在互聯(lián)網(wǎng)中幾乎每個(gè)用戶的每次訪問(wèn)都會(huì)使用到域名解析,所以域名解析的準(zhǔn)確程度和響應(yīng)速度對(duì)整個(gè)網(wǎng)絡(luò)服務(wù)質(zhì)量而言非常重要。如何利用DNS將離用戶最近的內(nèi)容資源精確地調(diào)度給用戶是運(yùn)營(yíng)商和內(nèi)容服務(wù)商同時(shí)急切關(guān)心的問(wèn)題。
1? 傳統(tǒng)CDN調(diào)度的不足
傳統(tǒng)CDN一般使用DNS獲取查詢IP,再根據(jù)該IP對(duì)用戶進(jìn)行地域調(diào)度。但這里獲取的IP地址一般是運(yùn)營(yíng)商LOCAL DNS的遞歸服務(wù)器地址,而不是用戶真實(shí)的IP地址。運(yùn)營(yíng)商通常以大區(qū)或省為單位部署DNS,這就導(dǎo)致了傳統(tǒng)DNS的調(diào)度精度只能局限到省,無(wú)法精確到市或者再下一級(jí)網(wǎng)絡(luò)。
為了解決DNS調(diào)度不精確的問(wèn)題,很多CDN區(qū)域調(diào)度系統(tǒng)會(huì)再借用HTTP302重定向技術(shù),從HTTP消息中獲取用戶的IP地址。但HTTP重定向不僅增加了調(diào)度次數(shù)和用戶時(shí)延,重定向服務(wù)器自身也容易成為性能瓶頸,另外它只支持基于HTTP的應(yīng)用,而無(wú)法調(diào)度其他應(yīng)用層協(xié)議。
隨著CDN的普及和推廣,以省為單位的調(diào)度粒度已經(jīng)無(wú)法滿足優(yōu)化用戶感知的需求。為此谷歌等公司提出了DNS擴(kuò)展協(xié)議Edns-Client-Subnet(ECS),允許DNS遞歸服務(wù)器傳遞用戶的IP地址給授權(quán)服務(wù)器,讓CDN可以實(shí)現(xiàn)更加精確的調(diào)度。5G時(shí)代為了滿足大帶寬、低時(shí)延、廣覆蓋的要求,必須充分利用邊緣云的資源提供就近服務(wù),ECS功能成為當(dāng)前實(shí)現(xiàn)“就近服務(wù)”為數(shù)不多的可選項(xiàng)。
2? ECS技術(shù)原理
傳統(tǒng)的DNS協(xié)議中,UDP傳輸報(bào)文大小限制為512 Byte,超出限制的報(bào)文使用TCP傳輸,隨著IPv6技術(shù)推廣和DNSSEC技術(shù)部署,DNS數(shù)據(jù)包大于512字節(jié)變得普遍。另外報(bào)文頭部中FLAGS字段已基本用完,沒(méi)有多余的空間添加更多的消息。所以在RFC2671中提出了一種EDNS0 擴(kuò)展機(jī)制,引入了一種新的偽資源記錄OPT,使得DNS可以通過(guò)UDP承載超過(guò)512字節(jié)的報(bào)文,之所以叫作做偽資源記錄是因?yàn)樗话魏蜠NS數(shù)據(jù)。OPT被放在DNS通信雙方DNS消息的Additional data區(qū)域中。該OPT字段禁止緩存,一個(gè)報(bào)文只允許有一個(gè)OPT,一個(gè)OPT里允許有多個(gè)Option。
目前遵循EDNS規(guī)范的協(xié)議有:ECS、DNSSEC等。2016年的RFC7871定義了ECS技術(shù)規(guī)范,當(dāng)Additional records的Type為41時(shí),則表示RDATA字段存放了代表用戶IP的Edns-Client-Subnet字段。權(quán)威DNS在收到帶有ECS的請(qǐng)求報(bào)文后,可根據(jù)原始用戶地址信息實(shí)現(xiàn)精細(xì)資源調(diào)度。
3? ECS現(xiàn)網(wǎng)規(guī)模部署面臨的挑戰(zhàn)
標(biāo)準(zhǔn)ECS的技術(shù)原理并不復(fù)雜,但該技術(shù)僅僅考慮內(nèi)容服務(wù)商方面問(wèn)題,在實(shí)際操作過(guò)程中運(yùn)營(yíng)商仍然卻會(huì)面臨諸多技術(shù)問(wèn)題。
3.1? 與現(xiàn)有高速緩存+遞歸兩層架構(gòu)存在沖突
運(yùn)營(yíng)商LOCAL DNS一般會(huì)采用高速緩存+遞歸的兩層系統(tǒng)架構(gòu),大部分熱門域名會(huì)由高速緩存直接回應(yīng),冷僻域名以及TTL到期的域名才會(huì)送到遞歸服務(wù)器進(jìn)行遞歸。啟用ECS后,若按照ECS標(biāo)準(zhǔn)流程,所有ECS的域名請(qǐng)求都需要直接送至遞歸服務(wù)器,傳統(tǒng)高速緩存無(wú)法實(shí)現(xiàn)極速應(yīng)答。
3.2? 遞歸和權(quán)威服務(wù)器開(kāi)銷巨大
遞歸服務(wù)器承擔(dān)著向根、頂級(jí)域以及各級(jí)授權(quán)服務(wù)器進(jìn)行遞歸解析的重任,假如來(lái)自不同用戶地址段的同一個(gè)域名查詢請(qǐng)求都需要進(jìn)行遞歸查詢,此時(shí)遞歸的資源消耗將會(huì)大幅度提升。與此同時(shí),權(quán)威服務(wù)器接收到的查詢請(qǐng)求也會(huì)成千上萬(wàn)倍的增加。
3.3? DNS安全防御難度增加
自從2009年暴風(fēng)影音事件之后,針對(duì)DNS系統(tǒng)DDOS攻擊一直就有增無(wú)減,一旦采用標(biāo)準(zhǔn)方案開(kāi)啟ECS功能,攻擊者可以利用隨機(jī)變化前綴的域名+隨機(jī)IP的ECS請(qǐng)求向運(yùn)營(yíng)商DNS發(fā)起DDOS攻擊,為了保障ECS功能,現(xiàn)有高速緩存的防護(hù)功能無(wú)法實(shí)現(xiàn)有效攔截,此時(shí)就會(huì)給遞歸服務(wù)器以及權(quán)威服務(wù)器造成嚴(yán)峻的考驗(yàn)。
3.4? DNS分區(qū)急劇膨脹
在早期ECS應(yīng)用實(shí)踐中,經(jīng)常采用普通分區(qū)的方式解決遞歸無(wú)法生效的問(wèn)題,每一個(gè)分區(qū)僅指定一個(gè)源地址,替代真實(shí)的源地址。但5G時(shí)代邊緣云可能會(huì)下沉到區(qū)縣甚至鄉(xiāng)鎮(zhèn),數(shù)量可能到達(dá)數(shù)千個(gè)節(jié)點(diǎn),如果繼續(xù)采用傳統(tǒng)ECS技術(shù),DNS緩存系統(tǒng)中分區(qū)條目和緩存條目會(huì)急劇膨脹,極大降低DNS處理性能,完全無(wú)法滿足實(shí)際的業(yè)務(wù)需求。
3.5? 內(nèi)容服務(wù)商精確識(shí)別地址信息難
開(kāi)啟ECS功能的權(quán)威服務(wù)器需要根據(jù)源IP給出精確的資源調(diào)度,前期條件是CDN掌握精確的地址庫(kù)信息。但運(yùn)營(yíng)商的地址資源經(jīng)常會(huì)在同一個(gè)地市內(nèi)進(jìn)行調(diào)整,移動(dòng)網(wǎng)地址池還可能是在全省范圍內(nèi)調(diào)配。對(duì)于內(nèi)容服務(wù)商而言,很難獲得運(yùn)營(yíng)商的精確地址信息,這個(gè)就給智能調(diào)度帶來(lái)了困難。
4? 江蘇電信的現(xiàn)網(wǎng)部署實(shí)踐
4.1? 智能分區(qū)技術(shù)
為確保高速緩存能正常發(fā)揮作用,運(yùn)營(yíng)商需要根據(jù)業(yè)務(wù)模型對(duì)用戶進(jìn)行片區(qū)劃分,比如按市、縣、區(qū)等,也可以根據(jù)業(yè)務(wù)需要增設(shè)更加精細(xì)的分區(qū),比如為某個(gè)學(xué)校校區(qū)單臺(tái)BRAS單設(shè)一個(gè)分區(qū)。再將高速緩存分公共緩存分區(qū)和若干ECS分區(qū),每一個(gè)ECS分區(qū)代表一個(gè)區(qū)域的用戶。運(yùn)營(yíng)商和內(nèi)容服務(wù)商需要加強(qiáng)合作,優(yōu)化后的ECS不再攜帶用戶原始IP,每一個(gè)ECS分區(qū)進(jìn)行遞歸時(shí)使用同一個(gè)約定好的IP為源發(fā)起ECS遞歸,這樣可以確保同一個(gè)ECS分區(qū)可以緩存同一個(gè)遞歸解析結(jié)果。
以圖1為例,DNS前端緩存收到用戶請(qǐng)求后,依據(jù)DNS網(wǎng)管里的域名標(biāo)記判斷其是否為ECS域名,如果是非ECS域名,進(jìn)入公共緩存空間,如果是ECS域名,則根據(jù)用戶源IP對(duì)應(yīng)的映射表,進(jìn)入相應(yīng)ECS緩存分區(qū);當(dāng)ECS域名請(qǐng)求沒(méi)有命中相應(yīng)ECS分區(qū)的緩存時(shí),ECS分區(qū)會(huì)以約定的映射地址為源發(fā)起ECS遞歸,ECS遞歸服務(wù)器請(qǐng)求報(bào)文構(gòu)造ECS報(bào)文并發(fā)起ECS遞歸。
4.2? 運(yùn)用域名字典優(yōu)化緩存
一個(gè)CDN的DNS響應(yīng)消息通常會(huì)包括CNAME、NS、A、AAAA、RR等信息,如果全部解碼存儲(chǔ),同一個(gè)域名需要存儲(chǔ)多份記錄,在存在成百上千ECS分區(qū)的情況下勢(shì)必會(huì)嚴(yán)重浪費(fèi)內(nèi)存空間。所以需要引入新域名字典技術(shù)化解因EDNS分區(qū)急劇膨脹給高速緩存帶來(lái)的壓力。
域名字典使用哈希表方式存儲(chǔ),每個(gè)域名字典不僅包括一個(gè)公共屬性記錄和索引,同時(shí)還存儲(chǔ)若干分區(qū)屬性,表示該域名字典被多少ECS分區(qū)所引用,具體實(shí)現(xiàn)方法如圖2所示。
4.3? 基于CNAME的調(diào)度機(jī)制
運(yùn)營(yíng)商與內(nèi)容服務(wù)商合作時(shí)經(jīng)常會(huì)遇到內(nèi)容方權(quán)威服務(wù)器不支持ECS的情況,此時(shí)可以通過(guò)基于ECS特性的CNAME調(diào)度機(jī)制來(lái)幫助內(nèi)容方實(shí)現(xiàn)內(nèi)容調(diào)度。比如某內(nèi)容網(wǎng)站需要利用運(yùn)營(yíng)商的CDN為網(wǎng)站部分內(nèi)容進(jìn)行加速,其域名為edns.abcd.com,該客戶權(quán)威服務(wù)器只需添加一個(gè)CNAME記錄,將該域名CNAME到edns.abcd.com.cdn.10000.cn,后續(xù)用戶查詢?cè)撚蛎麜r(shí)會(huì)自動(dòng)跳轉(zhuǎn)到CNAME后的域名,電信LOCAL DNS識(shí)別該域名為ECS域名,就會(huì)啟動(dòng)ECS解析流程。
4.4? 移動(dòng)網(wǎng)絡(luò)區(qū)縣化改造
在運(yùn)營(yíng)商移動(dòng)網(wǎng)絡(luò)中,用戶地址往往會(huì)由移動(dòng)核心網(wǎng)統(tǒng)一分配,這個(gè)就給ECS精確調(diào)度帶來(lái)了實(shí)際困難。運(yùn)營(yíng)商如果需要在管道運(yùn)營(yíng)過(guò)程中掌握話語(yǔ)權(quán),就需要考慮和內(nèi)容服務(wù)商加強(qiáng)合作,進(jìn)行移動(dòng)網(wǎng)實(shí)現(xiàn)區(qū)縣化改造,根據(jù)不同基站范圍劃分不同的地址段,并將地址信息反饋給CDN,CDN再利用ECS技術(shù)根據(jù)地址段實(shí)現(xiàn)精確的內(nèi)容運(yùn)營(yíng),雙方實(shí)現(xiàn)共贏。
4.5? 安全機(jī)制
為防止不法分子利用ECS對(duì)運(yùn)營(yíng)商DNS發(fā)起功能,高速緩存僅僅對(duì)網(wǎng)管指定ECS域名實(shí)施ECS調(diào)度,非網(wǎng)管指定域名一律按普通域名進(jìn)行解析。
江蘇電信DNS還設(shè)置了業(yè)務(wù)兜底策略,若EDNS權(quán)威因遭受攻擊和故障響應(yīng)連續(xù)超時(shí),ECS分區(qū)自動(dòng)切換至正常的遞歸流程,若某個(gè)ECS分區(qū)異常且連續(xù)超時(shí),公共緩存將主動(dòng)接管用戶請(qǐng)求,優(yōu)先確保業(yè)務(wù)安全。
4.6? ECS與HTTP302的對(duì)比測(cè)試情況
使用本地CDN進(jìn)行測(cè)試,在ECS與DNS+HTTP302兩種場(chǎng)景下分別做了10次URL下載測(cè)試,從表1可以看出,ECS場(chǎng)景下調(diào)度平均時(shí)延減少了19 ms,HTTP響應(yīng)首包平均時(shí)延減少20 ms。
5? 結(jié)? 論
本文分析了標(biāo)準(zhǔn)ECS協(xié)議在運(yùn)營(yíng)商現(xiàn)網(wǎng)部署存在的問(wèn)題,提出了基于智能分區(qū)、域名字典、CNAME調(diào)度等技術(shù)的ECS優(yōu)化方案,并在運(yùn)營(yíng)商網(wǎng)絡(luò)中進(jìn)行了業(yè)務(wù)實(shí)踐和探索。該方案除了可以提升運(yùn)營(yíng)商寬帶及移動(dòng)用戶上網(wǎng)感知外,還可以讓運(yùn)營(yíng)商利用自身邊緣云以及DNS資源和內(nèi)容服務(wù)商展開(kāi)合作,強(qiáng)化運(yùn)營(yíng)商在管道運(yùn)營(yíng)中的話語(yǔ)權(quán),對(duì)運(yùn)營(yíng)商而言具有普遍適用性和較強(qiáng)的推廣價(jià)值。
參考文獻(xiàn):
[1] 黃潤(rùn)懷,海錦霞,梁潔.基于EDNS優(yōu)化的CDN精準(zhǔn)調(diào)度方案探討 [J].廣東通信技術(shù),2020,40(9):54-56.
[2] 章思宇,封寒松,黃保青.上海交通大學(xué)高?;贓CS優(yōu)化DNS權(quán)威解析 [J].中國(guó)教育網(wǎng)絡(luò),2019(4):52-53.
[3] 宗序梅,劉懷彥,巫俊峰,等.運(yùn)營(yíng)商部署ECS關(guān)鍵技術(shù)研究與實(shí)踐 [J].江蘇通信,2018,34(1):82-86.
[4] 張啟峰.多出口校園網(wǎng)域名解析探討 [J].通信技術(shù),2010,43(8):7-8+11.
[5] 邢牧怡.DNS安全系統(tǒng)設(shè)計(jì)與研究[J].電腦編程技巧與維護(hù),2009(6):98-99.
作者簡(jiǎn)介:向九松(1976—),男,漢族,江蘇揚(yáng)州人,高級(jí)工程師,本科,研究方向:IP承載網(wǎng)、DNS;樊士迪(1996—),女,漢族,江蘇連云港人,碩士研究生,研究方向:IP承載網(wǎng)、DNS。