如何選擇DNS TTL值

來源:https://blog.apnic.net/2019/09/27/how-to-choose-dns-ttl-values/

對于如何選擇域名的DNS存活時間(TTL)值沒有一致的意見。然而,ttl非常重要,因為它間接控制解析器緩存記錄的時間,直接影響用戶體驗。

我們在SIDN實驗室和USC/ISI進行了一項測量研究,以了解不同的TTL值選擇如何影響操作網(wǎng)絡(luò),目的是幫助運營商為他們的場景做出明智的TTL值選擇。

我們通知了8家TTL值較短的ccTLD運營商,導(dǎo)致烏拉圭的.uy增加了其NS記錄的TTL,從而顯著改善了用戶的延遲。

以下是我們的研究論文的總結(jié)和建議,我們將在即將在阿姆斯特丹舉行的ACM IMC 2019年會議上提交。

一、重點:

DNS TTLs間接控制緩存,從而影響用戶體驗。

8個cctld被告知其NS記錄的TTL值被認(rèn)為太低;三個人增加了。

烏拉圭的.uy通過將其NS TTL從5分鐘更改為1天,將中位延遲從28ms減少到8ms,將第75百分位延遲從183ms減少到21ms,實現(xiàn)了顯著的性能提升。真正使用.uy的用戶可以獲得類似的性能收益,其他兩個cctl也是如此。

在權(quán)威服務(wù)器端使用帶有短TTL的anycast不能獲得與長TTL相同的收益。

二、新域名,什么TTL?

假設(shè)你要為自己或雇主注冊一個新域名。必須為其關(guān)聯(lián)的記錄選擇生存時間(time-to-live, TTL)值。例如,下面的圖1顯示了我們用來管理域cachetest.net記錄的實際注冊商的儀表板。觀察設(shè)置為1小時(荷蘭語為1 Uur)和1天(荷蘭語為1 Dag)的TTL值。

DNS TTL的值可能從0秒到248555天不等(2^31 -1秒)。給定如此大范圍的可能值,很難知道應(yīng)該選擇什么值。由于跨分布式DNS服務(wù)的交互,準(zhǔn)確理解TTL值選擇如何影響操作網(wǎng)絡(luò)是一項挑戰(zhàn)。

三、DNS TTLs實際用于什么?

TTLs間接控制解析器緩存。緩存反過來是DNS性能的基石:一個15ms的答案是快的,但是一個1ms的緩存答案要快得多。

要解析域名,用戶通常連接到DNS解析器(如下面的圖2所示)。然后,解析器將用戶的查詢轉(zhuǎn)發(fā)到DNS權(quán)威服務(wù)器,然后,DNS權(quán)威服務(wù)器將相應(yīng)的TTL值(圖中為1h)發(fā)送回查詢響應(yīng)。這意味著解析器可以緩存檢索到的答案長達1小時。

然后,當(dāng)其他用戶在一個小時的窗口內(nèi)詢問相同的查詢時(如藍色和綠色箭頭所示),而不必再次查詢權(quán)威服務(wù)器,查詢可以通過直接引用DNS解析器的緩存來回答,這通常要快得多。

在這個意義上,緩存可以被看作是解析器端臨時復(fù)制的一種形式(我們在以前的研究中已經(jīng)展示了,當(dāng)權(quán)威服務(wù)器受到DDoS攻擊時,緩存如何保護用戶)。

如果沒有共識,在野外使用什么價值觀?

即使對于什么是最好的TTL值沒有共識,人們在配置他們的域名時也必須設(shè)置它們。

為了了解在野外通常使用什么值,我們抓取了5個數(shù)據(jù)源:

(1)一個國家代碼頂級域名(荷蘭nl),擁有580萬個域名

(2)前三名(Alexa、Majestic和Umbrella)

(3)根DNS區(qū)域

對于每個域,我們要求從子權(quán)威服務(wù)器獲取NS、A、AAAA、MX、DNSKEY記錄。

圖3顯示了有關(guān)域的NS和A記錄的結(jié)果(其他記錄可以在我們的研究論文中找到)。我們可以看到:

TTLs顯示了所有列表和記錄類型的值的巨大變化,從1分鐘到48小時不等。

根區(qū)域中的頂級域(圖1中的根)比頂級列表(Alexa、Majestic、Umbrella)保守得多:對于NS和A的大多數(shù)ttl至少24小時(請記住,這些是子委托ttl)。

對于所有列表,NS記錄的ttl往往比A記錄的ttl長,但是,對于多長還是短,仍然沒有一致的意見。

Umbrella包含許多完全合格的域名,比如CDNs使用的域名,包括wp-0f21050000000000.id.cdn.upcbroadband.com。這是我們在Umbrella上看到的記錄TTL低于其他列表的原因之一,其他列表包含二級域(如examplenl和examplecouk): CDNs以使用短TTL值而聞名,這在一定程度上是為了負(fù)載平衡。

三、烏拉圭的.uy延時因TTL變長而增加

在對根區(qū)域(頂級域)進行爬行時,我們發(fā)現(xiàn)34個頂級域(頂級域)的NS記錄TTL值小于30分鐘—這與其他頂級域相比非常短。我們聯(lián)系了34個國家代碼中的8個,并將我們的觀察結(jié)果通知了他們。我們收到了5個人的回復(fù);在我們第一次接觸后,3個增加了他們NS記錄的TTLs。這些包括:

烏拉圭的.uy NS記錄由300s NS TTL更改為86400(1天)

非洲ccTLD和中東ccTLD的NS TTLs也從480和30秒增加到86400秒。

在TTL改變之前,我們偶然在.uy ccTLD上進行了DNS測量:使用10,000個成熟的Atlas探針請求NS和A記錄。我們在更改之后重復(fù)測量,以查看這如何影響用戶的體驗(圖4顯示了結(jié)果)。

圖4顯示,中位延遲從28ms減少到8ms,第75百分位延遲從183ms減少到21ms——只需要改變一個參數(shù)。換句話說,.uy的中值用戶注意到響應(yīng)時間的變化是20ms,這僅僅是TTL變化的結(jié)果。而第75百分位的用戶將體驗到超過160ms的改進。

我們的結(jié)果還顯示了根據(jù)地理區(qū)域在Atlas探測有利位置所經(jīng)歷的延遲增益:所有區(qū)域都經(jīng)歷了性能增益。需要注意的是,這些顯著的性能改進只需要更改一個參數(shù),而根本不需要更改.uy基礎(chǔ)結(jié)構(gòu)。

這可不是件小事:DNS運營商一直在努力改善延遲。為了提高性能,還經(jīng)常使用IP anycast將更權(quán)威的服務(wù)器放置在解析器附近。但是,正如我們在論文(第6.2節(jié))中所展示的,使用更長的TTLs進行緩存甚至比使用更短的TTLs進行任何類型的轉(zhuǎn)換都要快。

四、選擇長或短ttl的理由

網(wǎng)絡(luò)運營商選擇長TTLs或短TTLs的原因有很多:

更長的緩存會導(dǎo)致更快的響應(yīng):更長的TTL支持更長時間的緩存,并且緩存命中要比從權(quán)威服務(wù)器檢索答案快得多,正如.uy的經(jīng)驗所示。我們設(shè)計了幾個實驗來研究這一點,在我們的論文中有描述。結(jié)果表明,較長的緩存比大型的anycast網(wǎng)絡(luò)更能提高結(jié)果。

較長的緩存會降低DNS流量:權(quán)威操作人員可能對設(shè)置較高的TTLs感興趣,因為緩存減少了他們接收的查詢數(shù)量。如果要測量DNS服務(wù),這一點尤其重要。

更長的緩存對權(quán)威DNS服務(wù)器上的DDoS攻擊更健壯:對DNS服務(wù)提供商的DDoS攻擊已經(jīng)損害了幾個著名的網(wǎng)站。最近的研究表明,如果緩存的時間比攻擊的時間長,那么DNS緩存可以極大地減少DDoS對DNS的影響。

較短的緩存有助于操作更改:從舊服務(wù)器轉(zhuǎn)換到新服務(wù)器的簡單方法是更改DNS記錄。由于沒有刪除緩存的DNS記錄的方法,TTL持續(xù)時間表示完全遷移到新服務(wù)器所需的轉(zhuǎn)換延遲。因此,低TTLs允許更快速的轉(zhuǎn)變。但是,如果部署計劃比TTL的長度更早,TTL可以在重大操作更改之前降低,而在更改生效后再次升高。

更短的緩存有助于對DDoS攻擊作出基于dna的響應(yīng):一些DDoS清除服務(wù)在攻擊期間使用DNS重定向流量。由于DDoS攻擊的到來是不事先通知的,基于DDoS的流量重定向要求TTL一直保持在較低的水平,以準(zhǔn)備應(yīng)對潛在的攻擊。

更短的緩存有助于基于DNS的負(fù)載平衡:許多大型服務(wù)使用基于DNS的負(fù)載平衡。每個傳入的DNS請求都提供了一個調(diào)整負(fù)載的機會,因此短的TTLs可能適合于對流量動態(tài)的快速響應(yīng)(盡管許多遞歸解析器具有幾十秒的最低緩存時間,這限制了靈活性)。

五、建議

雖然我們的分析并沒有提出一個理想的TTL值,但它確實闡明了權(quán)衡,使我們能夠針對不同的情況提出以下建議:

TTL持續(xù)時間:TTL值的選擇部分取決于外部因素,因此沒有一種推薦適合所有網(wǎng)絡(luò)或網(wǎng)絡(luò)類型。

對于一般的區(qū)域所有者:我們建議較長的ttl,至少1小時,最好是4、8或24小時。假設(shè)計劃維護可以提前安排,長ttl的成本很小。

對于TLD和其他注冊操作符:允許域的公共注冊的DNS操作符(如大多數(shù)ccTLDs、.com、.net、.org和許多slds)允許客戶端在其區(qū)域文件中為客戶端NS記錄復(fù)制ttl(如果在bailiwick中,則是glue)。在我們論文的3.3節(jié)中,我們展示了大多數(shù)解析器使用來自子委托的TTL值,一些使用父委托的TTL值。因此,我們建議對父級和子級NS記錄使用更長的TTLs(至少一小時,最好更長)。

基于DNS 的負(fù)載平衡或ddos預(yù)防的用戶可能需要較短的TTLs: TTLs可能短至5分鐘,盡管15分鐘可能為許多操作人員提供足夠的靈活性。較短的ttl有助于敏捷性;他們是一個例外,我們的第一個建議更長的TTLs。

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

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

  • 1、前言 在當(dāng)下互聯(lián)網(wǎng)時代,我們?nèi)粘I詈凸ぷ骰径茧x開不域名和 DNS ,如通過一個網(wǎng)址打開一個網(wǎng)站進行購物、使...
    cinder_lv閱讀 3,935評論 1 27
  • 非常好的文章,怕博主刪除,再也找不到這么好的文章了,所以復(fù)制了一份,博主是2016年寫,但是是到現(xiàn)在為止看到的,思...
    吭聲_cfdc閱讀 2,171評論 0 4
  • dns解析兩個命令,一個nslookup ,一個dig dig 的解析 關(guān)于DNS服務(wù)器 nslookup的ser...
    大富帥閱讀 1,600評論 0 0
  • 陳陽打小上學(xué)就不是個好學(xué)生。留級是家常便飯,硬生生地跟比他小五六歲的表弟表妹成了同班同學(xué)。要說他也不是有多搗蛋,頂...
    人性二維碼閱讀 410評論 0 1
  • 原本今天是準(zhǔn)備坐車去蓉城,結(jié)果等車時下了兩滴雨。一滴是婆婆感受到的,一滴是我感受到的。然后看看頭上散漫的烏云,就說...
    龍走走閱讀 278評論 0 1

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