DNS 工作原理,及 EDNS 和 CDN

一、DNS

DNS(Domain Name System)“域名系統(tǒng)”,是一種組織成域?qū)哟谓Y(jié)構(gòu)的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù)命名系統(tǒng),它用于TCP/IP網(wǎng)絡(luò),提供的服務(wù)是用來將主機(jī)名和域名轉(zhuǎn)換為IP地址。這是互聯(lián)網(wǎng)上最廣泛使用的協(xié)議之一,開發(fā)與 1980 年代

DNS使用UDP作為傳輸層協(xié)議,但在某些情況下可以切換到TCP。 因此,使用UDP時(shí),DNS消息的大小限制為512字節(jié)。 基本DNS消息以固定的12字節(jié)標(biāo)頭開頭,后跟四個(gè)可變長度的部分:

  • 問題(或查詢)
  • 答案
  • 權(quán)威記錄
  • 附加記錄
    下圖說明了典型的DNS消息結(jié)構(gòu)。


二、為何選擇EDNS?

DNS的開發(fā)是為了適應(yīng)80年代的速度和流量,因?yàn)橹挥猩贁?shù)參與研究和開發(fā)的精英才能訪問互聯(lián)網(wǎng)。然而,自從速度,流量以及更重要的是互聯(lián)網(wǎng)結(jié)構(gòu)的方式以來,已經(jīng)發(fā)生了很多變化。我們已經(jīng)從集中式服務(wù)器架構(gòu)走了很長一段路 - 互聯(lián)網(wǎng)現(xiàn)在已經(jīng)分發(fā)并服務(wù)于全球受眾。

從上面的DNS消息結(jié)構(gòu)中可以看出,當(dāng)前表單中的DNS消息沒有足夠的空間來添加更多信息。在此背景下,增強(qiáng)DNS協(xié)議以滿足新的要求變得至關(guān)重要。因此,提出了DNS的擴(kuò)展機(jī)制,即EDNS。在較高的層面上,EDNS允許我們克服DNS標(biāo)頭中幾個(gè)標(biāo)志字段,返回碼和標(biāo)簽類型的大小限制。它還允許將DNS消息大小從512字節(jié)擴(kuò)展(當(dāng)UDP用作傳輸協(xié)議時(shí)),而無需切換到TCP。

三、EDNS的影響

這個(gè)增強(qiáng)版的DNS如何使內(nèi)容交付網(wǎng)絡(luò)能夠?yàn)樽罱K用戶提供高性能?

內(nèi)容傳送網(wǎng)絡(luò)(CDN)確保最終用戶從地理位置靠近它們的服務(wù)器提供服務(wù)。 這通常以兩種方式完成 -

  • 依賴于DNS并提供單播地址的CDN:確定最近服務(wù)器的邏輯基于請(qǐng)求所源自的遞歸解析器的位置,并且根本不存在于DNS解析過程中。
  • 依賴于Anycast的CDN:BGP確保用戶訪問最靠近最終用戶的CDN服務(wù)器。

Catchpoint中的DNS體驗(yàn)測(cè)試可用于了解屬于第一類的CDN使用的DNS解析過程。 此測(cè)試類型還有助于監(jiān)視CDN網(wǎng)絡(luò)上DNS服務(wù)器的性能和可用性。

  1. TLD返回域的權(quán)威名稱服務(wù)器 -
  2. 權(quán)威名稱服務(wù)器返回指向CDN基礎(chǔ)結(jié)構(gòu)的CNAME記錄:

    請(qǐng)注意,此步驟中的DNS服務(wù)器屬于CDN:
  3. 最終解析級(jí)別的CDN權(quán)威名稱服務(wù)器使用請(qǐng)求源自的遞歸解析器的IP來分發(fā)最終用戶附近的CDN服務(wù)器

    下圖說明了使用ISP的DNS解析器時(shí)的DNS解析過程。 最終用戶從靠近它的CDN服務(wù)器提供服務(wù)。

隨著公共DNS遞歸解析器(如Google DNS和Open DNS)以及使用集中式DNS解析器基礎(chǔ)結(jié)構(gòu)的ISP的出現(xiàn),最終用戶和遞歸解析器在拓?fù)渖辖咏募僭O(shè)不再有效。 例如,Open DNS解析器在印度尚未出現(xiàn),因此如果最終用戶使用Open DNS解析器,則可以在新加坡(https://www.opendns.com)中對(duì)Open DNS解析器進(jìn)行DNS查詢。 / data-center-locations /)。 影響 - 增加了往返時(shí)間和延遲。 由于距離或跳數(shù)的增加,丟包百分比也可能增加。

下圖說明了使用Open DNS解析程序時(shí)的解析過程:


為了克服上述問題,遞歸解析器可以將edns-client-subnet(ECS)EDNS0選項(xiàng)傳遞給轉(zhuǎn)發(fā)解析器,中間名稱服務(wù)器,最終傳遞給權(quán)威名稱服務(wù)器。 然后,權(quán)威的名稱服務(wù)器使用ECS作為最終用戶網(wǎng)絡(luò)位置的提示,并提供地理上感知的答案。

下圖說明了傳遞edns-client-subnet選項(xiàng)時(shí)DNS解析邏輯的更改:


EDNS為依賴DNS的CDN節(jié)省了一天,并確保它們符合改進(jìn)的性能承諾。

支持使用ECS EDNS0選項(xiàng)的方法由Akamai等CDN,Dyn和NS1等DNS提供商以及Google DNS等公共DNS解析器提供。 使用DNS測(cè)試和高級(jí)設(shè)置來傳遞客戶端子網(wǎng)信息,可以確保他們所依賴的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)能夠很好地利用DNS協(xié)議的最新增強(qiáng)功能。


如果您對(duì)以下任何一點(diǎn)的回答為“是”,則應(yīng)在DNS監(jiān)控策略中包含DNS測(cè)試,并在其中傳遞EDNS客戶端子網(wǎng):

您有使用公共DNS解析器的用戶抱怨DNS問題。
您使用CDN并查看用戶始終路由到遠(yuǎn)程CDN服務(wù)器。
您將名稱服務(wù)器域提供給公共DNS解析器以進(jìn)行白名單以支持EDNS客戶端子網(wǎng)。生日攻擊和緩存污染是與使用EDNS客戶端子網(wǎng)相關(guān)的兩個(gè)安全問題。白名單可確保遞歸解析程序僅將ECS發(fā)送到列入白名單的權(quán)威名稱服務(wù)器,反之亦然。
您在啟用ECS支持后會(huì)看到DNS時(shí)間上升。 DNS解析過程通過一堆解析器和服務(wù)器 - 存根解析器,轉(zhuǎn)發(fā)解析器,遞歸解析器,中間服務(wù)器和權(quán)威服務(wù)器。由于EDNS相當(dāng)新,因此并非所有組件都支持它,導(dǎo)致重試和增加DNS時(shí)間。如果解析器支持,則解析器將在其請(qǐng)求中添加ECS選項(xiàng)。如果支持,服務(wù)器將使用ECS選項(xiàng)進(jìn)行響應(yīng)。否則,它會(huì)忽略該選項(xiàng)。
您會(huì)看到相同的CDN服務(wù)器IP被返回到最終用戶的廣泛網(wǎng)絡(luò),并且服務(wù)器已經(jīng)過載。使用ECS時(shí),DNS條目將緩存在查詢中包含的客戶端子網(wǎng)中。如果客戶端子網(wǎng)足夠通用以服務(wù)大量IP,則可以為其提供相同的CDN服務(wù)器。
從監(jiān)控的角度來看,始終必須考慮協(xié)議的最新變化和增強(qiáng)。采用增強(qiáng)功能的策略以及測(cè)試和監(jiān)控采用的平臺(tái)也是至關(guān)重要的??鞓繁O(jiān)控!

英文原文:https://blog.catchpoint.com/2017/05/03/should-cdns-be-thankful-for-edns/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容