一種針對dns中不存在域名查詢的處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于互聯(lián)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種針對DNS中不存在域名查詢的處理方法。
【背景技術(shù)】
[0002]DNS(Domain Name System,域名系統(tǒng))提供了互聯(lián)網(wǎng)上的一個重要的服務(wù)。其本質(zhì)是建立了人的名字世界和底層的二進制協(xié)議地址世界的橋梁。DNS解析框架是一個使用UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)并通過地理分布的具有緩存功能的遞歸解析器來實現(xiàn)。如圖1所示,其基本流程如下:
[0003]用戶發(fā)出一個域名的DNS請求到本地ISP(Internet Service Provider,互聯(lián)網(wǎng)服務(wù)提供商)的遞歸解析器(Recursive Resolver)。如果本地的遞歸服務(wù)器緩存了這個DNS請求條目,則遞歸服務(wù)器直接向用戶返回DNS響應(yīng)消息。如果本地的遞歸服務(wù)器沒有緩存這個DNS請求消息,則本地的遞歸服務(wù)器從根名字服務(wù)器開始,根據(jù)所返回的信息,一級一級地遞歸查詢所請求的域名。最終查找到所要查詢的DNS信息。遞歸服務(wù)器將返回的DNS查詢結(jié)果存儲到自己的緩存中,同時將結(jié)果返回給用戶。這樣一個完整的DNS查詢過程就完成了。
[0004]—個DNS查詢對用戶來說應(yīng)該是透明的,所以DNS查詢的時間應(yīng)該盡量的短。在DNS系統(tǒng)中引入了緩存機制,遞歸服務(wù)器獲取權(quán)威服務(wù)器的響應(yīng)消息,并在相應(yīng)消息的資源記錄的生命周期內(nèi)緩存相應(yīng)資源記錄。在用戶下一次請求該資源記錄時,遞歸服務(wù)器不用再次查詢權(quán)威名字服務(wù)器,而直接將緩存中的資源記錄返回到用戶。這樣大大減少了 DNS查詢的時間。
[0005]如果一個用戶DNS查詢的域名在域名空間中是不存在的,則該用戶肯定不會查詢到該DNS信息,但是卻仍要完成一個完整的DNS查詢過程,并返回NXDOMAIN(域名不存在)響應(yīng)信息。因為不存在的DNS查詢在遞歸服務(wù)器緩存中肯定不存在。遞歸服務(wù)器需要從根開始查找,直到相應(yīng)的域中確認域名不存在。這一過程需要耗費較長的等待時延,同時域名解析也帶來了名字服務(wù)器的資源消耗。一些攻擊者故意偽造一些域名,通過不存在域名的DNS查詢來消耗權(quán)威名字服務(wù)器的資源,影響真實域名的處理速度(如Water Torture攻擊)。RFC1034中規(guī)定可以在緩存中緩存某個具體的不存在的域名信息,但是如果是另一個不存在域名的查詢,仍然需要遞歸查詢。
[0006]在DNSSEC(DNS安全擴展)中定義了NSEC(Next-Securerecord)或NSEC3(NSECrecord vers1n 3)資源記錄,該資源記錄能夠通過通配符,權(quán)威地表示一個不存在域名的范圍。提出的專利中,將NSEC或NSEC3資源記錄緩存到本地的遞歸服務(wù)器中。轉(zhuǎn)發(fā)服務(wù)器也可以從遞歸服務(wù)器獲取NSEC或NSEC3資源記錄,并緩存起來。當查詢NSEC或NSEC3中定義的不存在資源記錄時,本地遞歸服務(wù)器和轉(zhuǎn)發(fā)服務(wù)器會根據(jù)NSEC或NSEC3資源記錄,直接返回NXDOMAIN響應(yīng)消息。這樣能夠減少一些不存在域名的DNS查詢時間,解決Water Torture(水刑)攻擊以及減少對根服務(wù)器的不存在TLD(Top Level Domain)的查詢。
[0007]3、發(fā)明目的(或稱:技術(shù)問題)
[0008]不存在的DNS域名查詢需要經(jīng)歷較長的查詢時延,消耗DNS服務(wù)器的資源。提出的方案通過在遞歸服務(wù)器中緩存NSEC或NSEC3資源記錄,轉(zhuǎn)發(fā)服務(wù)器可以從遞歸服務(wù)器中獲得NSEC或NSEC3資源記錄。當用戶連續(xù)查詢NSEC或NSEC3資源記錄中確定的不存在域名時,具有緩存能力的DNS服務(wù)器能夠根據(jù)NSEC或NSEC3資源記錄的信息,直接返回給用戶NXDOMAIN消息。這樣能夠減少一些不存在域名的DNS查詢時間,解決諸如Water Torture攻擊,以及減少對根服務(wù)器的不存在TLD的查詢。
【發(fā)明內(nèi)容】
[0009]為了解決現(xiàn)有技術(shù)存在的上述問題,本發(fā)明提出了一種針對DNS中不存在域名查詢的處理方法,包括:
[0010]步驟1:在遞歸服務(wù)器中緩存NSEC或NSEC3資源記錄;
[0011]步驟2:轉(zhuǎn)發(fā)服務(wù)器從遞歸服務(wù)器中獲得并緩存NSEC或NSEC3資源記錄;
[0012]步驟3:當用戶連續(xù)查詢NSEC或NSEC3資源記錄中確定的不存在域名時,遞歸服務(wù)器或轉(zhuǎn)發(fā)服務(wù)器根據(jù)NSEC或NSEC3資源記錄的信息直接返回給用戶NXDOMAIN消息。
[0013]所述NSEC或NSEC3資源記錄通過通配符說明一組域名不存在的信息。
[0014]所述NSEC或NSEC3資源記錄的建立方法包括:當一個不存在域名的查詢到達遞歸服務(wù)器時,如果不存在這樣的NSEC或NSEC3資源記錄,通過遞歸服務(wù)器向權(quán)威DNS服務(wù)器發(fā)送遞歸請求,權(quán)威服務(wù)器將該域的NSEC或NSEC3資源記錄、簽名信息連同NXDOMAIN響應(yīng)消息一起發(fā)送給發(fā)起查詢的遞歸服務(wù)器;遞歸服務(wù)器對其進行DNSSEC驗證,確定NSEC或NSEC3資源記錄的真實性和安全性,確定之后緩存在本地緩存中。
[0015]本發(fā)明的有益效果在于:針對DNS不存在域名的查詢帶來了較長的等待時延,消耗了大量的名字服務(wù)器資源;本發(fā)明提出的方案通過本地緩存NSEC或NSEC3資源記錄,及時地響應(yīng)不存在域名的查詢請求,減少了對權(quán)威服務(wù)器的資源消耗。對于一些在NSEC或NSEC3中通過通配符定義的不存在域名的查詢,通過提出的方案能夠在遞歸服務(wù)器或轉(zhuǎn)發(fā)服務(wù)器側(cè)確定一些域名是否存在,并返回NXDOMAIN響應(yīng)消息。這樣首先能夠降低不存在域名的查詢時延,同時能夠減少對域名的權(quán)威服務(wù)器的查詢次數(shù),降低權(quán)威服務(wù)器的資源消耗。如對根服務(wù)器來說,可以避免大量不存在的TLD的查詢。該方案能夠很好的解決Water Torture問題,因為大量的隨機產(chǎn)生的不存在域名的DNS查詢,在遞歸服務(wù)器中已經(jīng)被屏蔽了,不會對權(quán)威服務(wù)器產(chǎn)生影響。
【附圖說明】
[0016]圖1是現(xiàn)有的DNS解析流程圖;
[0017]圖2是基于NSEC或NSEC3資源記錄的不存在域名處理機制。
【具體實施方式】
[0018]下面結(jié)合附圖,對實施例作詳細說明。
[0019]實施例1
[0020]本發(fā)明提出了一種針對DNS中不存在域名查詢的處理方法,如圖2所示,包括:
[0021 ] 步驟1:在遞歸服務(wù)器中緩存NSEC或NSEC3資源記錄;
[0022]步驟2:轉(zhuǎn)發(fā)服務(wù)器從遞歸服務(wù)器中獲得并緩存NSEC或NSEC3資源記錄;
[0023]步驟3:當用戶連續(xù)查詢