阿里DNS:域名解析失敗的那些事
時間:2023-02-22 09:45:01 | 來源:建站知識
時間:2023-02-22 09:45:01 來源:建站知識
阿里DNS:域名解析失敗的那些事:說起域名解析失敗,小編平時工作中經(jīng)常遇到。一旦失敗可不得了,基本代表著對應(yīng)的業(yè)務(wù)無法訪問了。不過一部分“失敗”指的是請求源向遞歸DNS查詢時候無法解析出結(jié)果的情況,并不是真正意義上的失敗。所以小編今天向大家科普下域名解析失敗的幾種情況。
關(guān)于DNS-Rcode
小編首先要介紹一下DNS-Rcode,DNS-Rcode作為DNS應(yīng)答報文中有效的字段,主要用來說明DNS應(yīng)答狀態(tài),這可是小編排查域名解析失敗的重要指標(biāo)。通常常見的Rcode值如下:
- Rcode值為0,對應(yīng)的DNS應(yīng)答狀態(tài)為NOERROR,意思是成功的響應(yīng),即這個域名解析是成功
- Rcode值為2,對應(yīng)的DNS應(yīng)答狀態(tài)為SERVFAIL,意思是服務(wù)器失敗,也就是這個域名的權(quán)威服務(wù)器拒絕響應(yīng)或者響應(yīng)REFUSE,遞歸服務(wù)器返回Rcode值為2給CLIENT
- Rcode值為3,對應(yīng)的DNS應(yīng)答狀態(tài)為NXDOMAIN,意思是不存在的記錄,也就是這個具體的域名在權(quán)威服務(wù)器中并不存在
- Rcode值為5,對應(yīng)的DNS應(yīng)答狀態(tài)為REFUSE,意思是拒絕,也就是這個請求源IP不在服務(wù)的范圍內(nèi)
DNS請求失敗的具體分析
綜上,小編可以知道,常見的請求失敗包括:
1、域名記錄不存在,即Rcode值為3(NXDOMAIN)的情況,這種情況下域名權(quán)威服務(wù)器及托管的主域名均正常,但是權(quán)威并不存在這條具體的域名記錄,于是權(quán)威返回了NXDOMAIN,值的注意的是這個NXDOMAIN的報文中會包含一個AUTHORITY SECTION,內(nèi)容為改主域名的SOA記錄,這個應(yīng)答結(jié)果會在遞歸服務(wù)器中被緩存,緩存時間周期為域名的SOA記錄的TTL:
2、權(quán)威解析失敗,即Rcode值為2(SERVFAIL)的情況,遞歸服務(wù)器會給請求源這個結(jié)果的原因是向權(quán)威解釋請求異常,包括且不限于權(quán)威不響應(yīng)/或者權(quán)威返回refuse/或者權(quán)威返回servfail,這個SERVFAIL的應(yīng)答結(jié)果當(dāng)然是一個空結(jié)果,不過BIND會強制給這個結(jié)果增加一個1S的TTL,所以SERVFAIL的應(yīng)答會在遞歸服務(wù)器中被緩存,緩存時間周期為1S
- 2.1)權(quán)威不響應(yīng)。包括遞歸服務(wù)器至權(quán)威服務(wù)器中間的網(wǎng)絡(luò)異常在內(nèi),遞歸服務(wù)器在發(fā)出遞歸請求并完成重試超時后,給請求源一個SERVFAIL的應(yīng)答,并緩存1S :
- 2.2)權(quán)威向遞歸服務(wù)器應(yīng)答REFUSE。當(dāng)權(quán)威服務(wù)器不存在主域名及對應(yīng)的SOA記錄時,權(quán)威會向遞歸服務(wù)器返回REFUSE,即不在我服務(wù)的范圍內(nèi)拒絕,遞歸服務(wù)器在收到這個REFUSE應(yīng)答后,給請求源一個SERVFAIL的應(yīng)答,并緩存1S:
- 2.3)權(quán)威向遞歸服務(wù)器應(yīng)答SERVFAIL。當(dāng)權(quán)威服務(wù)器存在主域名但是由于zonefile被破壞導(dǎo)致權(quán)威服務(wù)器上域名的NS記錄異常時,權(quán)威會向遞歸服務(wù)器返回SERVFAIL,即解析失敗,遞歸服務(wù)器在收到這個SERVFAIL應(yīng)答后,給請求源一個SERVFAIL的應(yīng)答,并緩存1S:
- 2.4)權(quán)威向遞歸服務(wù)器應(yīng)答其他的錯誤Rcode。由于不常見本文就不展開了,遞歸服務(wù)器在收到其他錯誤應(yīng)答后,給請求源一個SERVFAIL的應(yīng)答,并緩存1S:
3、拒絕服務(wù),即Rcode值為5(REFUSE)的情況。除了記錄不存在(NXDOMAIN)和解析失?。⊿ERVFAIL)以外,如果請求源不在遞歸服務(wù)器的服務(wù)范圍內(nèi),這種情況下遞歸服務(wù)器會直接給請求源一個REFUSE的應(yīng)答,本地直接應(yīng)答無緩存:
4、響應(yīng)成功,但是沒有解析結(jié)果,這是一種比較特殊的情況,這種情況是Rcode值為0(NOERROR)的情況。這種情況下域名權(quán)威服務(wù)器及托管的主域名均正常,權(quán)威本身也存在這條具體的域名記錄,但是沒有對應(yīng)的記錄類型(不包含CNAME,CNAME是特殊情況,可以響應(yīng)任意類型的請求),這是權(quán)威返回了NOERROR,值的注意的是這個NOERROR的報文中沒有ANSWER SECTION。但是會包含一個AUTHORITY SECTION,內(nèi)容為改主域名的SOA記錄,這個應(yīng)答結(jié)果會在遞歸服務(wù)器中被緩存,緩存時間周期為域名的SOA記錄的TTL:
5、還有最后的一種情況,就是遞歸服務(wù)器本身不響應(yīng)了,這個比較容易理解,如果遞歸服務(wù)器不響應(yīng),那么請求段收不到任何應(yīng)答,這個時候請求端終端如果有超時機制則會跑出一個dns請求 timeout的結(jié)果:
結(jié)論:
總體上小編看到,遞歸DNS解析失敗有著多種可能的因素。有了這張神圖,老板再也不怕小編域名解析失敗了。