本發明屬于計算機通信技術領域,具體涉及一種分布式域名存儲和解析方法及系統。
背景技術:
網絡訪問過程中的域名主要是實現域名到IP對應關系的解析。DNS是網絡中作為域名和IP地址相互映射的一個分布式數據庫,能夠使網絡使用者更方便的訪問網絡中的應用服務,而不用去記憶復雜的IP地址內容。由于域名可以由字母、數字、以及各國語言文字組合而成,域名更利于記憶和使用。通過域名,最終訪問者得到該域名對應的IP地址的過程叫做域名解析(或主機名解析)。
現有技術中的DNS域名解析采用逐級查詢,分布式存儲的樹形結構。圖1為域名逐級查詢過程的舉例,假定網絡中的A設備需要查詢example.dns.com的域名所對應得IP地址,其向網絡中的遞歸服務器B發起解析請求。遞歸角色的服務器在初始狀態時不會存儲任何字域名的解析結果,只會存儲根域名的IP(圖中的服務器C為權威根服務器)。根服務器記錄各頂級域名的權威服務器名字服務器地址,如com的解析服務器為D,D則存儲dns.com的解析服務器E的IP地址。解析服務器E存儲著example.dns.com所對應的IP。
當前的域名查詢和解析過程存在如下隱患:B、C、D、E作為網絡中的域名解析服務器,雖然相同角色服務器可以部署多臺,但仍存在相同級別(環節)的服務器全部故障的可能,因為攻擊或者是網絡故障出現時,相同角色服務器更容易被同步影響。一旦出現相同級別服務器全部故障,則整個查詢過程出現斷點,并最終導致設備A無法獲取example.dns.com的IP地址。
技術實現要素:
本發明提供一種分布式域名存儲和解析方法及系統,其可以實時提供正常的域名解析服務。
為實現上述目的,本發明提供一種分布式域名存儲和解析方法,該方法包括:
域名服務器響應請求方發送的域名解析請求,并將其自身的備份服務器列表發送至所述請求方,其中,所述備份服務器列表包括備份服務器IP、優先級、TTL和對應的域名;
所述請求方接收所述備份服務器列表并存儲在本地,當所述域名服務器無法響應所述請求方的域名解析請求時,所述請求方查找所述備份服務器列表,并向對應的備份服務器發送域名解析請求。
優選地,所述備份服務器響應所述請求方發送的域名解析請求時,向所述請求方發送自身的備份服務器列表;
所述請求方存儲在本地時,修改所述備份服務器列表中的優先級。
優選地,修改所述備份服務器列表中的優先級包括:
將所述優先級加1,所述優先級的數字越小對應服務器的優先級越高。
優選地,所述方法還包括:
檢測優先級最高的域名服務器是否恢復正常響應,若是,則所述請求方向所述優先級最高的域名服務器發送域名解析請求。
優選地,所述方法還包括按照預先設定的規則維護備份服務器列表,具體如下:
將TTL按照對應的單位時間遞減排列,當TTL為0時,對應的域名解析服務器信息從本地列表中刪除,當一個域名的最后一個域名解析服務器信息刪除時,該域名也被刪除。
優選地,若所述一個域名的備份服務器列表中的備份服務器數量少于預設閾值,則向所述域名的優先級最高的域名服務器發送請求,獲取備份服務器列表。
優選地,所述方法同樣適用于轉發過程,其中,請求方不進行逐級遞歸,直接向任意DNS服務器一次查詢最終結果。
本發明還提供了一種分布式域名存儲和解析系統,包括請求方服務器和域名服務器,具體涉及如下:
域名請求響應單元,用于所述域名服務器響應請求方發送的域名解析請求,并將其自身的備份服務器列表發送至所述請求方,其中,所述備份服務器列表包括備份服務器IP、優先級、TTL和對應的域名;
服務器請求單元,用于所述請求方接收所述備份服務器列表并存儲在本地,當所述域名服務器無法響應所述請求方的域名解析請求時,所述請求方查找所述備份服務器列表,并向對應的備份服務器發送域名解析請求。
優選地,所述備份服務器包括遞歸服務器、根服務器、頂級域名服務器、所屬域名解析服務器及所述請求方服務器中的任意一個或多個。
優選地,所述系統還包括優先級修改單元,用于所述備份服務器響應所述請求方發送的域名解析請求時,向所述請求方發送自身的備份服務器列表;
所述請求方存儲在本地時,修改所述備份服務器列表中的優先級。
優選地,所述系統還包括維護單元,用于按照預先設定的規則維護備份服務器列表,具體如下:
將TTL按照對應的單位時間遞減排列,當TTL為0時,對應的域名解析服務器信息從本地列表中刪除,當一個域名的最后一個域名解析服務器信息刪除時,該域名也被刪除。
本發明提供的分布式域名存儲和解析方法及系統,與現有技術相比,通過多點分布式存儲域名信息,域名備份解析服務器信息的方式提供域名解析目的服務器的多點存儲。并基于二級服務器、三級服務器…N級服務器的優先規則優選備份服務器,基于TTL保證對應域名更新的時效,提高了解析系統的高可用性,解析系統的多點分布式抗攻擊能力,并增強了對同一請求方的可用服務器有限暴露,多角度提高了DNS解析高可靠保障,減少了攻擊和正常故障導致的服務器失效而產生的無法正常提供域名解析情況的發生。
附圖說明
圖1為現有技術中域名查詢過程示意圖;
圖2為本發明一優選實施例提供的分布式域名存儲和解析方法流程示意圖;
圖3為本發明一優選實施例提供的域名查詢過程示意圖;
圖4為本發明一優選實施例提供的備份服務器的關鍵信息結構示意圖;
圖5為本發明另一優選實施例提供的分布式域名存儲和解析系統結構示意圖。
具體實施方式
為使本領域技術人員更好地理解本發明的技術方案,下面結合附圖和具體實施方式對本發明作進一步詳細描述。
如圖1所示,在現有技術中域名查詢步驟包括如下:
1、A設備先向遞歸服務器B進行域名example.dns.com的解析查詢。
2、遞歸服務器B采用迭代查詢。它先向一個根域名解析服務器C查詢。
3、根權威域名服務器C告訴遞歸服務器B,下一次應查詢的頂級域名服務器D,并告知D的IP地址。
4、遞歸域名服務器B向頂級域名服務器D進行example.dns.com查詢。
5、頂級域名服務器D告訴遞歸域名服務器B,下一步應查詢的權威服務器E,并告知E的IP地址。
6、遞歸域名服務器B向權威域名服務器E進行example.dns.com查詢。
7、權威域名服務器E存儲了example.dns.com所對應的IP,可以直接解析回應,即權威域名服務器E向遞歸域名服務器B響應example.dns.com對應的IP地址。
8、遞歸域名服務器B經過幾輪的迭代查詢,獲得了example.dns.com的IP結果,最后把查詢結果響應給最初的查詢方設備A。
在整個查詢過程中設備A的角色為查詢的最初發起方,其查詢的目標為獲取域名example.dns.com所對應的IP地址,以便對該IP進行網絡訪問。B為遞歸服務器,其本身之存儲根服務器的IP,原則上不存儲域名example.dns.com的IP對應關系,但其負責整個的查詢過程,將example.dns.com對應的IP結果查詢到,返回給設備A。C、D、E為不同角色的權威服務器,他們只負責本地存儲的某域名的查詢線索,即該域名的哪一個服務器知道其解析結果線索,并依據線索最終查詢到該域名example.dns.com所對應的IP數據。實際上B、C、D、E服務器在部署中不止一臺,會有多臺同時提供相同角色的服務。
如圖2所示,本發明一優選實施例提供了一種分布式域名存儲和解析方法流程示意圖,該方法包括:
S210、域名服務器響應請求方發送的域名解析請求,并將其自身的備份服務器列表發送至請求方,其中,備份服務器列表包括備份服務器IP、優先級、TTL和對應的域名。
如圖4所示,“.”表示根域名。“*”表示所有域名,其它表示具體域名。“服務器IP:N:TTL”表示服務器IP、級別和該服務器對應的TTL。級別指的是服該服務器是幾級備份服務器,如數字“2”代表二級服務器、“3”代表三級服務器。
由于上述服務器是正常解析服務器的備份服務器,故稱這些服務器為二級服務器,而這些正常狀態優先提供解析的服務器為一級服務器。圖1中的服務器B、服務器C、服務器D、服務器E就是一級服務器。
一級服務器選擇二級服務器按照一定規則生成,即二級服務器須嚴格按照不小于TTL存儲對應域名解析信息、不篡改對應信息的規則保存對應域名和IP的對應關系,具備該條件的服務器均可作為二級服務器。二級服務器可以是同級角色的服務器,也可以是獲取對應一級服務器應答結果的請求方服務器。
S220、請求方接收備份服務器列表并存儲在本地,當域名服務器無法響應請求方的域名解析請求時,請求方查找備份服務器列表,并向對應的備份服務器發送域名解析請求。
當二級服務器啟用后,二級服務器正常過程的解析報文交互的基礎上,也可以提供其它服務器列表作為本服務器的備份服務器。當請求方存儲上述服務器列表時,會修改備份服務器列表中的優先級。優選地,將優先級加1,優先級的數字越小對應服務器的優先級越高。
為了保證在攻擊發生時,盡可能的不完全暴露二級服務器,不使二級服務器被攻擊,每次應答二級服務器列表時,一級服務器按照負載算法只對特定查詢方返回部分二級服務器,即使是多次返回,也不會返回全部二級服務器IP給同一查詢方。
進一步地,一個一級服務器可能是其他服務器的二級服務器,也可能是另外服務器的三級服務器,服務器級別完全取決于請求方優先配置的域名服務器順序。
可選的,檢測優先級最高的域名服務器是否恢復正常響應,若是,則請求方向所述優先級最高的域名服務器發送域名解析請求。可以設置一定的時間間隔,在前述時間間隔內檢測優先級最高的域名服務器是否恢復正常響應,一旦檢測到恢復正常,則請求方后續的域名解析請求向該優先級最高的域名服務器發送。
可選的,請求方本地服務器會對接收和存儲的備份服務器列表按照一定的規則維護。具體地,將TTL按照對應的單位時間遞減排列,當TTL為0時,對應的域名解析服務器信息(服務器IP:N:TTL)從本地列表中刪除,當一個域名的最后一個域名解析服務器信息刪除時,該域名也被刪除。若一個域名的備份服務器列表中的備份服務器數量少于預設閾值,則向域名的優先級最高的域名服務器發送請求,獲取備份服務器列表,以此來保證該域名備份服務器的持續存在。
如圖3所示,運用本發明提供的分布式域名存儲和解析方法進行域名查詢過程具體步驟如下所示:
步驟1、設備A發起域名請求到域名服務器B。
具體地,請求包括需要解析的域名、解析的類型,隨著DNS協議的不斷發展,DNS解析的類型也不斷豐富,A類型代表需要解析域名對應的IPv4地址。AAAA類型代表需要解析域名對應的IPv6地址。另外還有CNAME、DNAME、MX等多種類型。這里僅已解析類型為IPv4為例,其他類型采用仍遵循本發明的過程。
步驟2、域名服務器B首次收到該域名的查詢,由于本地沒有存儲,所以需要逐級向權威服務器查詢,故首先向根服務器C進行查詢。
具體地,域名服務器B一般存儲著13個根服務器的IP,根服務器是遞歸服務器查詢本地未存儲域名的首個查詢目標。服務器B表明的是在整個查詢流程中的角色,并不限定為單臺服務器,實際使用過程中,該角色服務器可以是多臺。
步驟3、根服務器C沒有該域名對應類型的結果,但根服務器C存儲著該域名所屬頂級域名服務器D的IP,于是將該域名所屬頂級域名服務器D的IP返回給域名服務器B。
具體地,服務器C表明的是在整個查詢流程中的角色,并不限定為單臺服務器,實際使用過程中,該角色服務器可以是多臺。
步驟3’、根服務器C還會返回本服務器的備份服務器列表信息給服務器B。
具體地,信息至少包括如下部分:可以解析的域名,對應的服務器IP,n級服務器以及該服務器提供該域名解析的有效生存時間(TTL)。TTL按照對應的單位時間遞減,直到TTL為0,該“服務器IP:N:TTL”信息從本地刪除,當一個域名的最后一個服務器IP刪除時,該域名也被刪除。
服務器C的備份服務器列表為C1、C2……。
步驟4、遞歸服務器B向頂級域名服務器D發起該域名對應類型的請求。
步驟5、頂級域名服務器D沒有該域名對應類型的結果,但頂級域名服務器D存儲著該域名所屬域名服務器E的IP,于是將該服務器E的IP返回給域名服務器B。
具體地,服務器D表明的是在整個查詢流程中的角色,并不限定為單臺服務器,實際使用過程中,該角色服務器可以是多臺。
步驟5’、頂級域名服務器D還會返回本服務器的備份服務器列表信息給服務器B。
具體地,信息至少包括如下部分:可以解析的域名,對應的服務器IP,n級服務器以及該服務器提供該域名解析的有效生存時間(TTL)。TTL按照對應的單位時間遞減,直到TTL為0,該“服務器IP:N:TTL”信息從本地刪除,當一個域名的最后一個服務器IP刪除時,該域名也被刪除。
服務器D的備份服務器列表為D1、D2……。
步驟6、遞歸服務器B向域名服務器E發起該域名對應類型的請求。
步驟7、域名服務器E中存儲該域名對應類型的解析結果,將該結果返回給服務器B。
具體地,服務器E表明的是在整個查詢流程中的角色,并不限定為單臺服務器,實際使用過程中,該角色服務器可以是多臺。
步驟7’、域名服務器E還會返回本服務器的備份服務器列表信息給服務器B。
具體地,信息至少包括如下部分:可以解析的域名,對應的服務器IP,n級服務器以及該服務器提供該域名解析的有效生存時間(TTL)。TTL按照對應的單位時間遞減,直到TTL為0,該“服務器IP:N:TTL”信息從本地刪除,當一個域名的最后一個服務器IP刪除時,該域名也被刪除。
服務器E的備份服務器列表為E1、E2……。
步驟8、遞歸服務器B經過步驟2至步驟7的多次查詢獲得了設備A所要查詢域名及其類型的結果,將該結果返回給請求方設備A。
步驟8’、域名服務器B還會返回本服務器的備份服務器列表信息給請求方設備A。
具體地,信息至少包括如下部分:可以解析的域名,對應的服務器IP,n級服務器以及該服務器提供該域名解析的有效生存時間(TTL)。TTL按照對應的單位時間遞減,直到TTL為0,該“服務器IP:N:TTL”信息從本地刪除,當一個域名的最后一個服務器IP刪除時,該域名也被刪除。
服務器B的備份服務器列表為B1、B2……。
上述過程為所有服務器角色均無故障正常,可以正常服務使得實施流程。當上述服務器B、C、D、E任一方出現故障或請求方到對應目的服務器網絡故障時(當服務器B、C、D、E同一角色多臺設備均出現影響),本發明執行步驟如下。
以服務器B故障或無法聯通為例:
步驟1、設備A發起域名請求到域名服務器B。服務器B沒有回應。
步驟1”、設備A查詢服務器B的備份服務器列表,并選擇優先級較高的備份服務器B1發起請求;
具體的,服務器B1表明的是在整個查詢流程中的角色,并不限定為單臺服務器,實際使用過程中,該角色服務器可以是多臺。
步驟8”、由于服務器B1是可用的服務器,B1返回解析結果給設備A。
具體的,如果B1故障或無法聯通,設備A查詢服務器B的備份服務器列表,并選擇優先級較高的備份服務器B2發起請求;依次類推。
步驟8”’、以備份服務器B1可以成功應答設備A為例,域名服務器B1還會返回本服務器的備份服務器列表信息給請求方設備A。請求方收到該信息后,會修改信息中的服務器級別,將級別數字加1后存儲,其余信息不變。
以服務器C故障或無法聯通為例:
步驟9、設備A發起域名請求到域名服務器B。
步驟2、服務器B沒有該域名對應類型結果,但有頂級域名服務器C的IP,于是向頂級域名服務器C發起解析查詢,服務器C沒有回應。
步驟2’、服務器B查詢服務器C的備份服務器列表,并選擇優先級較高的備份服務器C1發起請求;
具體的,服務器C1表明的是在整個查詢流程中的角色,并不限定為單臺服務器,實際使用過程中,該角色服務器可以是多臺。
步驟10’、由于服務器C1是可用的服務器,C1返回解析結果給服務器B。
具體的,如果C1故障或無法聯通,服務器B查詢服務器C的備份服務器列表,并選擇優先級較高的備份服務器C2發起請求;依次類推。
步驟10”、以備份服務器C1可以成功應答服務器B為例,域名服務器C1還會返回本服務器的備份服務器列表信息給請求方服務器B。請求方收到該信息后,會修改信息中的服務器級別,將級別數字加1后存儲,其余信息不變。
步驟11、遞歸服務器B經過多次查詢獲得了設備A所要查詢域名及其類型的結果,將該結果返回給請求方設備A。
步驟11’、域名服務器B還會返回本服務器的備份服務器列表信息給請求方設備A。
具體地,信息至少包括如下部分:可以解析的域名,對應的服務器IP,n級服務器以及該服務器提供該域名解析的有效生存時間(TTL)。TTL按照對應的單位時間遞減,直到TTL為0,該“服務器IP:N:TTL”信息從本地刪除,當一個域名的最后一個服務器IP刪除時,該域名也被刪除。
服務器B的備份服務器列表為B1、B2……。
具體的,服務器D故障或無法聯通、服務器E故障或無法聯通的處理過程同服務器C故障。
可選的,上述方法同樣適用于轉發過程,即請求方不進行逐級遞歸,直接向任意DNS服務器查詢最終結果的一次完成查詢過程。
本發明一優選實施例提供了一種分布式域名存儲和解析方法,通過多點分布式存儲域名信息,域名備份解析服務器信息的方式提供域名解析目的服務器的多點存儲。并基于二級服務器、三級服務器…N級服務器的優先規則優選備份服務器,基于TTL保證對應域名更新的時效,提高了解析系統的高可用性,解析系統的多點分布式抗攻擊能力,并增強了對同一請求方的可用服務器有限暴露,多角度提高了DNS解析高可靠保障,減少了攻擊和正常故障導致的服務器失效而產生的無法正常提供域名解析情況的發生。
如圖5所示,在本發明的另一優選實施例中,提供了一種分布式域名存儲和解析系統,包括請求方服務器和域名服務器,具體涉及如下:
域名請求響應單元510,用于域名服務器響應請求方發送的域名解析請求,并將其自身的備份服務器列表發送至請求方,其中,備份服務器列表包括備份服務器IP、優先級、TTL和對應的域名。
服務器請求單元520,用于請求方接收備份服務器列表并存儲在本地,當域名服務器無法響應請求方的域名解析請求時,請求方查找備份服務器列表,并向對應的備份服務器發送域名解析請求。
其中,備份服務器包括遞歸服務器、根服務器、頂級域名服務器、所屬域名解析服務器及請求方服務器中的任意一個或多個。即備份服務器須嚴格按照不小于TTL存儲對應域名解析信息、不篡改對應信息的規則保存對應域名和IP的對應關系,具備該條件的服務器均可作為備份服務器。
可選的,該系統還包括優先級修改單元530,用于備份服務器響應請求方發送的域名解析請求時,向請求方發送自身的備份服務器列表;請求方存儲在本地時,修改備份服務器列表中的優先級。具體地,將優先級加1,優先級的數字越小對應服務器的優先級越高。
可選的,該系統還包括維護單元540,用于按照預先設定的規則維護備份服務器列表,具體如下:將TTL按照對應的單位時間遞減排列,當TTL為0時,對應的域名解析服務器信息從本地列表中刪除,當一個域名的最后一個域名解析服務器信息刪除時,該域名也被刪除。對應的,若一個域名的備份服務器列表中的備份服務器數量少于預設閾值,則向域名的優先級最高的域名服務器發送請求,獲取備份服務器列表。
可選的,該系統還包括檢測單元550,用于檢測優先級最高的域名服務器是否恢復正常響應,若是,則請求方向優先級最高的域名服務器發送域名解析請求。
本發明另一優選實施例提供的分布式域名存儲和解析系統,通過服務器請求單元520多點分布式存儲域名信息,域名備份解析服務器信息的方式提供域名解析目的服務器的多點存儲。通過優先級修改單元530,并基于二級服務器、三級服務器…N級服務器的優先規則優選備份服務器。通過維護單元540基于TTL保證對應域名更新的時效,提高了解析系統的高可用性,解析系統的多點分布式抗攻擊能力,并增強了對同一請求方的可用服務器有限暴露,多角度提高了DNS解析高可靠保障,減少了攻擊和正常故障導致的服務器失效而產生的無法正常提供域名解析情況的發生。
可以理解的是,以上實施方式僅僅是為了說明本發明的原理而采用的示例性實施方式,然而本發明并不局限于此。對于本領域內的普通技術人員而言,在不脫離本發明的精神和實質的情況下,可以做出各種變型和改進,這些變型和改進也視為本發明的保護范圍。