因根域數(shù)據(jù)解析失敗,Cloudflare DNS查詢異常影響大量用戶

來源:十輪網(wǎng)
作者:十輪網(wǎng)
時(shí)間:2023-10-07
3257
從10月4日下午3點(diǎn)到7點(diǎn)之間,Cloudflare的網(wǎng)絡(luò)關(guān)鍵系統(tǒng)DNS歷經(jīng)長達(dá)4小時(shí)的DNS解析異常,使用1.1.1.1服務(wù)器或使用1.1.1.1的WARP服務(wù),還有零信任和第三方DNS解析器等產(chǎn)品的用戶,在進(jìn)行有效查詢時(shí),部分收到了DNS查詢失敗的回應(yīng)。

1.1.1.1_lookup_failures_on_october_4th_2023.jpg

從10月4日下午3點(diǎn)到7點(diǎn)之間,Cloudflare的網(wǎng)絡(luò)關(guān)鍵系統(tǒng)DNS歷經(jīng)長達(dá)4小時(shí)的DNS解析異常,使用1.1.1.1服務(wù)器或使用1.1.1.1的WARP服務(wù),還有零信任和第三方DNS解析器等產(chǎn)品的用戶,在進(jìn)行有效查詢時(shí),部分收到了DNS查詢失敗的回應(yīng)。

這次的問題與DNS架構(gòu)有關(guān)。在DNS中,每個(gè)域名名稱都位于某個(gè)DNS區(qū)域(Zone)內(nèi),而區(qū)域則是一個(gè)包含域名名稱和主機(jī)名稱的集合,區(qū)域中的域名名稱和主機(jī)名稱皆由同一個(gè)管理單位所控制。舉例來說,cloudflare.com這個(gè)域名名稱就由Cloudflare管理,而其中的.com屬于頂級(jí)域(Top-level Domain,TLD),位于DNS架構(gòu)的最上層,也就是根域中最高級(jí)的域名,由ICANN監(jiān)管并且交由各注冊(cè)機(jī)構(gòu)負(fù)責(zé)。

根域會(huì)指引連接頂級(jí)域的方法,因此根域在解析所有域名名稱時(shí),扮演非常重要的角色。雖然根域存放在根服務(wù)器上,但是DNS運(yùn)營商通常會(huì)檢索并且保存根域的副本,這樣就算暫時(shí)無法訪問根域服務(wù)器,還是可以利用根域副本繼續(xù)提供DNS服務(wù)。

Cloudflare的遞歸式DNS架構(gòu)也采用這種方法,以加快DNS解析的速度。在Cloudflare上有一支叫做static_zone的WebAssembly應(yīng)用程序,負(fù)責(zé)加載和解析根域數(shù)據(jù)。而Cloudflare發(fā)生在10月4日的DNS查詢異常,便是根域數(shù)據(jù)更新失敗所導(dǎo)致。

在9月21日的時(shí)候,DNS根域執(zhí)行了一項(xiàng)計(jì)劃性更新,其中加入了名為ZONEMD的數(shù)據(jù),用作根域內(nèi)容的校驗(yàn)和。Cloudflare核心系統(tǒng)會(huì)在截取根域數(shù)據(jù)后,發(fā)送到全球Cloudflare數(shù)據(jù)中心,但是當(dāng)1.1.1.1解析系統(tǒng)在解析ZONEMD數(shù)據(jù)時(shí)卻發(fā)生問題,Cloudflare提到,ZONEMD解析失敗就代表,Cloudflare的解析系統(tǒng)未采用新版本的根域數(shù)據(jù)版本。

同時(shí),托管Cloudflare解析基礎(chǔ)設(shè)施的服務(wù)器也沒有接收到新根域,這些服務(wù)器便會(huì)針對(duì)每個(gè)請(qǐng)求查詢DNS根服務(wù)器,但是其他服務(wù)器依賴內(nèi)存中的舊根域數(shù)據(jù)運(yùn)行,這些數(shù)據(jù)是在9月21日之前的版本。

一直到了10月4日,9月21日版本的根域DNSSEC簽章過期,且由于Cloudflare解析系統(tǒng)無法使用更新版本,所以部分解析系統(tǒng)停止驗(yàn)證DNSSEC簽章,因此開始發(fā)送錯(cuò)誤回應(yīng),這導(dǎo)致Cloudflare解析器產(chǎn)生錯(cuò)誤回應(yīng)的比例增加12%,為平常錯(cuò)誤回應(yīng)比例的5倍。DNSSEC用于保護(hù)DNS查詢與回應(yīng)的安全擴(kuò)展,可避免DNS緩存污染等問題。

Cloudflare進(jìn)一步解釋ZONEMD數(shù)據(jù)解析失敗的原因,在于static_zone該程序不支持新的ZONEMD數(shù)據(jù)的二進(jìn)制格式。過去Cloudflare一直是使用表示格式(Presentation Format)而非二進(jìn)制格式,因此在邊緣解析根域的函數(shù)庫不認(rèn)得二進(jìn)制格式的資源記錄時(shí),便無法進(jìn)行解析。

而之所以沒有造成全部DNS查詢失效的原因,在于當(dāng)服務(wù)器曾經(jīng)重新啟動(dòng),且無法加載根域時(shí),便會(huì)選擇直接向根服務(wù)器發(fā)送DNS查詢,所以才沒有受到影響。此外,解析器使用一種稱為Serve Stale(RFC 8767)的技術(shù),可從緩存繼續(xù)提供過期的記錄,也可以避免DNS服務(wù)完全中斷。

針對(duì)這個(gè)事件,Cloudflare進(jìn)行檢討,通過強(qiáng)化監(jiān)控來避免之后再發(fā)生類似的事件,會(huì)在static_zone提供過時(shí)根域數(shù)據(jù)時(shí)發(fā)出警示。同時(shí)也檢討內(nèi)部根域截取和發(fā)布的方法,確保新的資源記錄類型能夠被處理,也擴(kuò)大測試覆蓋范圍和流程,避免使用過時(shí)的根域數(shù)據(jù),減少運(yùn)營風(fēng)險(xiǎn)。

原文鏈接:點(diǎn)擊前往 >
版權(quán)說明:本文內(nèi)容來自于十輪網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家