一種優(yōu)化dns根服務(wù)訪問的方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及一種優(yōu)化DNS根服務(wù)訪問的方法與系統(tǒng),屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的持續(xù)發(fā)展以及新頂級域名的逐步推廣,需要進一步提升根服務(wù)質(zhì)量,例如加強根服務(wù)的快速查詢響應(yīng),減少訪問DNS根數(shù)據(jù)的時間的需求。DNS遞歸解析器自帶有一些緩存機制,但是這種機制,由于未對根區(qū)數(shù)據(jù)進行優(yōu)化,無法滿足日益增長的對減少訪問DNS根數(shù)據(jù)的時間的需求。
[0003]如圖1所示,現(xiàn)有的遞歸解析器的緩存器是一個通用緩存,針對所有的各級域名和各類區(qū)文件。目前已經(jīng)有的解析技術(shù)不對根區(qū)數(shù)據(jù)進行專門緩存,采用普通的緩存機制,不利于減少訪問DNS根數(shù)據(jù)的時間。
[0004]為了應(yīng)對根區(qū)訪問的爆炸式發(fā)展,自2002年開始,DNS根服務(wù)系統(tǒng)廣泛采用任播技術(shù)進行根服務(wù)器數(shù)量擴展。至今全球已有近490個根服務(wù)器鏡像節(jié)點。由于部署根鏡像服務(wù)器受資源限制大,對部署環(huán)境要求高,不能無限制的部署,因此利用任播技術(shù)部署根鏡像的方法不能很好的滿足對減少訪問DNS根數(shù)據(jù)的時間的需求。
[0005]IETF最近推出了運行在環(huán)路地址上的根服務(wù)器的機制。這種方法相當于在全球規(guī)定的13個根服務(wù)器外又增加了一些額外的運行在本地環(huán)路上的根服務(wù)器。這種機制雖然能在一定程度上減少根的訪問時間,但是這種機制在大量部署以后可能破壞現(xiàn)有的互聯(lián)網(wǎng)域名解析機制,使DNS根域名服務(wù)失去作用,從而可能干擾互聯(lián)網(wǎng)的正常穩(wěn)定運行。
【發(fā)明內(nèi)容】
[0006]針對現(xiàn)有技術(shù)中存在的技術(shù)問題,本發(fā)明的目的在于提供一種優(yōu)化DNS根服務(wù)訪問的方法與系統(tǒng)。本發(fā)明針對根區(qū)文件的特點和需要減少對根區(qū)數(shù)據(jù)訪問時間的需求,增加了根數(shù)據(jù)緩存器及其相關(guān)算法和步驟,增加了根區(qū)數(shù)據(jù)分析器相關(guān)的算法和步驟,同時改進了遞歸解析器的算法。根據(jù)目前根區(qū)文件的設(shè)置特點,本發(fā)明和現(xiàn)有的基于通用緩存的性能相比,平均可以提高訪問根區(qū)數(shù)據(jù)速度約7倍。本發(fā)明可以解決根服務(wù)器訪問時間過長的問題,同時不會潛在破壞現(xiàn)有的根域名解析機制。
[0007]目前遞歸解析器所帶的通用緩存器緩存所有各級域名的數(shù)據(jù),無法對來自根服務(wù)器的頂級域數(shù)據(jù)進行專門優(yōu)化。通用緩存器存,由于無法獲知域名數(shù)據(jù)是否是最新的,因此對域名的緩存時間一般比較短。域名緩存的時間決定于所緩存的域名數(shù)據(jù)是否是真實的最新數(shù)據(jù);只要域名數(shù)據(jù)是最新的真實數(shù)據(jù),理論上,就可以一直緩存下去。原始權(quán)威服務(wù)(S0A)記錄的一個功能就是通過S0A中的序列號(serial)的變化告知區(qū)文件數(shù)據(jù)發(fā)生變化了,但是根區(qū)文件有時候僅僅是S0A記錄本身發(fā)生了變化,區(qū)中的其它數(shù)據(jù)并沒有發(fā)生變化。本系統(tǒng)通過對根服務(wù)器中的原始權(quán)威服務(wù)(S0A)記錄的輪詢以及根區(qū)文件的探測,保證了根域名數(shù)據(jù)是最新數(shù)據(jù),同時通過對DNSSEC技術(shù)的應(yīng)用保證了所獲得的域名數(shù)據(jù)是真實的未經(jīng)篡改的。本系統(tǒng)通過設(shè)計新功能算法和改進算法,延長了數(shù)據(jù)在緩存中的時間,減少了對根服務(wù)器的訪問,減少了平均訪問時間。
[0008]本發(fā)明的技術(shù)方案為:
[0009]—種優(yōu)化DNS根服務(wù)訪問的方法,其步驟為:
[0010]1)在遞歸服務(wù)器中設(shè)置一根區(qū)數(shù)據(jù)緩存器;
[0011]2)當遞歸解析器需要從根域名服務(wù)器查詢某一類型的頂級域名所對應(yīng)的資源記錄RR時,首先檢查該遞歸解析器的設(shè)定緩存是否有相對應(yīng)的資源記錄RR,如果有則反饋包含該資源記錄RR的查詢結(jié)果,否則進行步驟3);
[0012]3)該遞歸服務(wù)器在該根區(qū)數(shù)據(jù)緩存器的數(shù)據(jù)緩存里檢查該類型的頂級域名所對應(yīng)的資源記錄RR,如果找到相對應(yīng)的資源記錄RR,則反饋包含該資源記錄RR的查詢結(jié)果,否則進行步驟4);
[0013]4)該遞歸服務(wù)器向根域名服務(wù)器查詢該類型的頂級域名所對應(yīng)的資源記錄RR,如果找到對應(yīng)的資源記錄RR,則反饋包含該資源記錄RR的查詢結(jié)果;如果沒找到相對應(yīng)的資源記錄RR,則反饋查詢失敗的查詢結(jié)果;
[0014]5)對于包含該資源記錄RR的查詢結(jié)果,該遞歸解析器檢查該查詢結(jié)果對應(yīng)的查詢是否為DNSSEC查詢,如果是,則對該查詢結(jié)果進行DNSSEC檢測,如果通過DNSSEC驗證,則該遞歸解析器將查詢該類型的頂級域得到的對應(yīng)資源記錄RR存儲到該根區(qū)數(shù)據(jù)緩存器,如果沒有通過DNSSEC驗證,則不對查詢結(jié)果在根區(qū)數(shù)據(jù)緩存器里進行緩存;如果查詢結(jié)果對應(yīng)的查詢不是DNSSEC查詢,則該遞歸解析器向根域名服務(wù)器發(fā)送一個查詢該類型頂級域名所對應(yīng)資源記錄RR的DNSSEC查詢,并對反饋結(jié)果進行DNSSEC驗證,如果通過驗證,則該遞歸解析器將查詢該類型的頂級域得到的對應(yīng)資源記錄RR存儲到該根區(qū)數(shù)據(jù)緩存器,否則不在該根區(qū)數(shù)據(jù)緩存器中緩存該查詢結(jié)果。
[0015]進一步的,在DNS根服務(wù)系統(tǒng)中還設(shè)置一根區(qū)文件分析器;所述根區(qū)文件分析器對所述根區(qū)緩存器中的資源記錄RR是否更新進行判斷,其方法為:
[0016]21)所述根區(qū)文件分析器從根域名服務(wù)器查詢獲得S0A記錄,然后設(shè)置所述根區(qū)數(shù)據(jù)緩存器的版本號為S0A記錄的序列號,設(shè)置所述刷新定時器的值為S0A記錄的過期值;
[0017]22)所述根區(qū)文件分析器從互聯(lián)網(wǎng)數(shù)字分配機構(gòu)獲得根區(qū)文件,并對去除S0A記錄及其數(shù)字簽名記錄RRSIG后的根區(qū)文件進行摘要操作,將獲得的摘要值作為所述根區(qū)數(shù)據(jù)緩存器的指紋;
[0018]23)所述根區(qū)文件分析器定期查詢根域名服務(wù)器的S0A記錄,并比較根區(qū)數(shù)據(jù)緩存器的版本號與S0A的序列號是否一致,如果一致,則定期查詢;如果不一致,則通知根區(qū)數(shù)據(jù)緩存器停止對遞歸解析器進行響應(yīng),并且重新獲取根區(qū)文件,并對去除S0A記錄及其數(shù)字簽名記錄RRSIG后的根區(qū)文件進行摘要操作,然后將新生成的摘要值與根區(qū)數(shù)據(jù)緩存器的指紋進行比較;如果一致,則設(shè)置根區(qū)數(shù)據(jù)緩存器的版本號為當前獲取的S0A的序列號,并且更新根區(qū)數(shù)據(jù)緩存器中的S0A,然后通知根區(qū)數(shù)據(jù)緩存器繼續(xù)對遞歸解析器進行響應(yīng);如果不一致,則將根區(qū)數(shù)據(jù)緩存器中的所有數(shù)據(jù)丟棄,然后通知根區(qū)數(shù)據(jù)緩存器繼續(xù)對遞歸解析器進行響應(yīng)。
[0019]進一步的,所述根區(qū)數(shù)據(jù)緩存器給每個新放入根區(qū)數(shù)據(jù)緩存器的資源記錄RR設(shè)置一刷新定時器。
[0020]進一步的,所述根區(qū)數(shù)據(jù)緩存器中,每一資源記錄RR的刷新計時器進行倒計時,同時資源記錄RR的時間TTL會保留在原有的值;根區(qū)數(shù)據(jù)緩存器拋棄刷新定時器值過期的資源記錄RR。
[0021]進一步的,對于所述查詢結(jié)果中包含的資源記錄RR,遞歸服務(wù)器刪除查詢結(jié)果中這些資源記錄RR的刷新定時器,并且將所述查詢結(jié)果中的資源記錄RR的TTL開始倒計時。
[0022]進一步的,所述根區(qū)文件分析器定期查詢根域名服務(wù)器的S0A記錄的時間間隔為S0A記錄的刷新值或者DNS管理員設(shè)定的數(shù)值。
[0023]—種優(yōu)化DNS根服務(wù)訪問的系統(tǒng),其特征在于,包括遞歸解析器、根區(qū)數(shù)據(jù)緩存器以及根區(qū)文件分析器;其中,
[0024]遞歸解析器,負責DNS數(shù)據(jù)的解析和查找;當需要從根域名服務(wù)器查詢某一類型的頂級域名所對應(yīng)的資源記錄RR時,首先檢查該遞歸解析器的設(shè)定緩存是否有相對應(yīng)的資源記錄RR,如果有則反饋包含該資源記錄RR的查詢結(jié)果;否則該遞歸服務(wù)器在該根區(qū)數(shù)據(jù)緩存器的數(shù)據(jù)緩存里檢查該類型的頂級域名所對應(yīng)的資源記錄RR,如果找到相對應(yīng)的資源記錄RR,則反饋包含該資源記錄RR的查詢結(jié)果;否則該遞歸服務(wù)器向根域名服務(wù)器查詢該類型的頂級域名所對