一種域名解析方法及裝置與流程
2023-07-28 04:11:51 1

本發明涉及通信技術領域,特別涉及一種域名解析方法及裝置。
背景技術:
1984年Paul Mockapetris發布了RFC882和RFC883(隨後被RFC1034和RFC1035代替),系統地描述了域名系統DNS的基本思想,標誌著DNS的誕生。域名系統DNS實現網際網路域名到IP位址的轉換,起到IP層與應用層間的橋梁作用,是HTTP、Email等幾乎所有網際網路應用的基礎服務。其中,DNS域名解析流程如圖1所示:
(1)客戶端向Local DNS(本地域名伺服器)發出域名解析查詢請求;(2)本地域名伺服器檢查其DNS cache(DNS快速緩衝貯存區),發現沒有該記錄,將此請求發送給Authoritative DNS(權威域名伺服器);(3)Authoritative DNS中發現有該請求的記錄,將對應的IP位址返回給Local DNS;(4)Local DNS將解析結果返回客戶端;(5)域名解析完成。
現有技術中,在IPv4v6雙棧情況下,DNS工作流程與上述DNS域名解析流程基本相同,但不同的是DNS會根據客戶端的要求為其提供A記錄和AAAA記錄,具體流程如下:
(1)客戶端向Local DNS發出域名解析查詢請求。同時包含A、AAAA記錄的請求;(2)Local域名伺服器檢查其DNS cache,如果有對應A、AAAA記錄,則直接反饋給用戶;如果發現沒有該A、AAAA記錄,將此請求發送給Authoritative DNS;(3)Authoritative DNS中發現有該請求的A、AAAA記錄,將對應的IPv4/v6地址返回給Local DNS;(4)Local DNS將解析結果返回客戶端;(5)域名解析完成。
在上述場景中,需要注意的是,無論DNS的承載路徑為IPv4或IPv6或雙棧,用戶均可獲取A、AAAA記錄;這就導致了一個嚴重的問題,當前是IPv6 的導入期,用戶可能通過DNS獲取了AAAA記錄,但無法通過IPv6鏈路訪問網站。
如圖2所示,目前國內為數不多的支持IPv6的網站IDC可能僅接入某一個運營商,如果ISP骨幹網不能通過IPv6互通,則會導致用戶無法訪問。即首先雙棧終端獲取AAAA DNS記錄,並使用IPv6訪問該網站,由於骨幹網IPv6不互通將導致用戶訪問失敗;然後IE等瀏覽器需等待數十秒後才可重新發起IPv4訪問。需要注意的是,幾乎所有瀏覽器在獲取A記錄、AAAA記錄後,均優先採用AAAA記錄訪問(選取IPv6通道)。但當發現IPv6通道不可用必須退回IPv4所需的時間較長,其中以IE為內核的瀏覽器尤為明顯,造成用戶體驗下降嚴重。具體的如下表所示:
技術實現要素:
本發明的目的在於提供一種域名解析方法及裝置,解決了當IPv6通道不可用必須退回IPv4通道時所需時間較長的問題,實現對IPv6通道是否可用的檢測,使得用戶直接訪問可用的IPv6通道,提供訪問效率,提升用戶體驗。
為了達到上述目的,本發明實施例提供一種域名解析方法,包括:
根據一客戶端發出的域名解析請求,獲取域名解析得到的AAAA記錄;
根據所述AAAA記錄,確定所述AAAA記錄對應的IPv6資源是否可達;
將對應IPv6資源為可達的AAAA記錄,發送至所述客戶端。
其中,所述域名解析方法還包括:
將對應IPv6資源為可達的AAAA記錄添加至本地DNS伺服器的資源記錄區中。
其中,所述根據所述AAAA記錄,確定所述AAAA記錄對應的IPv6資源是否可達,具體包括:
向所述AAAA記錄對應的IPv6資源發送探測請求數據包;
若接收到針對所述探測數據包返回的探測響應數據包,則確定所述AAAA記錄對應的IPv6資源可達;否則,所述AAAA記錄對應的IPv6資源不可達。
其中,所述向所述AAAA記錄對應的IPv6資源發送探測請求數據包,具體為:
向所述AAAA記錄對應的IPv6資源發送基於ping協議的探測請求數據包。
其中,所述根據所述AAAA記錄,確定所述AAAA記錄對應的IPv6資源是否可達,具體包括:
向所述AAAA記錄對應的IPv6資源發送http訪問請求;
若訪問成功,則確定所述AAAA記錄對應的IPv6資源可達;否則,確定所述AAAA記錄對應的IPv6資源不可達。
其中,所述根據所述AAAA記錄,確定所述AAAA記錄對應的IPv6資源是否可達,具體包括:
向所述AAAA記錄對應的IPv6資源發送探測請求數據包;
若未接收到針對所述探測數據包返回的探測響應數據包括,則確定所述 AAAA記錄對應的IPv6資源不可達;
若接收到針對所述探測數據包返回的探測響應數據包,向所述AAAA記錄對應的IPv6資源發送http訪問請求;訪問成功,則確定所述AAAA記錄對應的IPv6資源可達;訪問失敗,則確定所述AAAA記錄對應的IPv6資源不可達。
其中,所述根據一客戶端發出的域名解析請求,獲取域名解析得到的AAAA記錄,具體包括:
根據所述客戶端發出的域名解析請求,查詢本地DNS伺服器的資源記錄區;
若本地DNS伺服器的資源記錄區中記錄有與所述域名解析請求對應的A記錄和AAAA記錄,從本地DNS伺服器的資源記錄區中獲取所述A記錄和AAAA記錄;
若本地DNS伺服器的資源記錄區中沒有與所述域名解析請求對應的A記錄和AAAA記錄,將所述域名解析請求轉發至上級DNS伺服器,由所述上級DNS伺服器查詢確定A記錄和AAAA記錄,從所述上級DNS伺服器中獲取所述A記錄和AAAA記錄。
其中,所述域名解析方法還包括:
接收所述本地DNS伺服器的資源記錄區發送的更新記錄的請求,獲取所述資源記錄區中的AAAA記錄;
向所述AAAA記錄對應的IPv6資源發送探測請求數據包,若未接收到針對所述探測數據包返回的探測響應數據包,將所述IPv6資源對應的AAAA記錄從所述資源記錄區中刪除。
本發明實施例還提供一種域名解析裝置,包括:
獲取模塊,用於根據一客戶端發出的域名解析請求,獲取域名解析得到的AAAA記錄;
確定模塊,用於根據所述AAAA記錄,確定所述AAAA記錄對應的IPv6資源是否可達;
反饋模塊,用於將對應IPv6資源為可達的AAAA記錄,發送至所述客戶端。
其中,所述域名解析裝置還包括:
記錄模塊,用於將對應IPv6資源為可達的AAAA記錄添加至本地DNS伺服器的資源記錄區中。
其中,所述確定模塊包括:
第一操作模塊,用於向所述AAAA記錄對應的IPv6資源發送探測請求數據包;
第一確定子模塊,用於若接收到針對所述探測數據包返回的探測響應數據包,則確定所述AAAA記錄對應的IPv6資源可達;否則,所述AAAA記錄對應的IPv6資源不可達。
其中,所述第一操作模塊包括:
第一操作子模塊,用於向所述AAAA記錄對應的IPv6資源發送基於ping協議的探測請求數據包。
其中,所述確定模塊包括:
第二操作模塊,用於向所述AAAA記錄對應的IPv6資源發送http訪問請求;
第二確定子模塊,用於若訪問成功,則確定所述AAAA記錄對應的IPv6資源可達;否則,確定所述AAAA記錄對應的IPv6資源不可達。
其中,所述確定模塊包括:
第三操作模塊,用於向所述AAAA記錄對應的IPv6資源發送探測請求數據包;
第三確定子模塊,用於若未接收到針對所述探測數據包返回的探測響應數據包括,則確定所述AAAA記錄對應的IPv6資源不可達;
第四確定子模塊,用於若接收到針對所述探測數據包返回的探測響應數據包,向所述AAAA記錄對應的IPv6資源發送http訪問請求;訪問成功,則確定所述AAAA記錄對應的IPv6資源可達;訪問失敗,則確定所述AAAA記錄對應的IPv6資源不可達。
其中,所述獲取模塊包括:
查詢模塊,用於根據所述客戶端發出的域名解析請求,查詢本地DNS伺服器的資源記錄區;
第一獲取子模塊,用於若本地DNS伺服器的資源記錄區中記錄有與所述域名解析請求對應的A記錄和AAAA記錄,從本地DNS伺服器的資源記錄區中獲取所述A記錄和AAAA記錄;
第二獲取子模塊,用於若本地DNS伺服器的資源記錄區中沒有與所述域名 解析請求對應的A記錄和AAAA記錄,將所述域名解析請求轉發至上級DNS伺服器,由所述上級DNS伺服器查詢確定A記錄和AAAA記錄,從所述上級DNS伺服器中獲取所述A記錄和AAAA記錄。
其中,所述域名解析裝置還包括:
接收穫取模塊,用於接收所述本地DNS伺服器的資源記錄區發送的更新記錄的請求,獲取所述資源記錄區中的AAAA記錄;
更新模塊,用於向所述AAAA記錄對應的IPv6資源發送探測請求數據包,若未接收到針對所述探測數據包返回的探測響應數據包,將所述IPv6資源對應的AAAA記錄從所述資源記錄區中刪除。
本發明的上述技術方案至少具有如下有益效果:
本發明實施例的域名解析方法及裝置中,根據AAAA記錄確定AAAA記錄對應的IPv6資源是否可達,對於可達的資源,對客戶端提供AAAA記錄;對於不可達的資源,刪除該AAAA記錄,不向客戶端提供;通過該域名解析方法,使得客戶端能夠優先與可達的IPv6資源進行通信,而當資源不可達時,直接訪問IPv4資源,避免了由於IPv6資源不可達再退回訪問IPv4資源而導致的時間的浪費,提升了用戶體驗。
附圖說明
圖1表示現有技術中域名解析的原理示意圖;
圖2表示現有技術中雙棧用戶無法訪問IPv6業務的原理示意圖;
圖3表示本發明實施例的域名解析方法的基本步驟示意圖;
圖4表示本發明實施例中採用ping方式驗證IPv6資源是否可行的具體流程圖;
圖5表示本發明實施例中採用ping方式實現資源記錄區的周期性更新的具體流程圖;
圖6表示本發明實施例中採用http方式驗證IPv6資源是否可行的具體流程圖;
圖7表示本發明實施例中採用ping方式和http方式結合驗證IPv6資源是否可行的具體流程圖;
圖8表示本發明實施例的域名解析裝置的組成結構示意圖。
具體實施方式
為使本發明要解決的技術問題、技術方案和優點更加清楚,下面將結合附圖及具體實施例進行詳細描述。
本發明針對現有技術中當IPv6通道不可用必須退回IPv4通道時所需時間較長的問題,提供一種域名解析方法及裝置,根據AAAA記錄確定AAAA記錄對應的IPv6資源是否可達,對於可達的資源,對客戶端提供AAAA記錄;對於不可達的資源,刪除該AAAA記錄,不向客戶端提供;通過該域名解析方法,使得客戶端能夠優先與可達的IPv6資源進行通信,而當資源不可達時,直接訪問IPv4資源,避免了由於IPv6資源不可達再退回訪問IPv4資源而導致的時間的浪費,提升了用戶體驗。
需要說明的是,本發明實施例提供的域名解析方法應用於本地DNS伺服器上,且本發明實施例中提及的客戶端為雙棧客戶端,即同時支持IPv4和IPv6的客戶端,其發送的域名解析請求為雙棧請求。
如圖3所示,本發明實施例提供一種域名解析方法,包括:
步驟31,根據一客戶端發出的域名解析請求,獲取域名解析得到的AAAA記錄;
步驟32,根據所述AAAA記錄,確定所述AAAA記錄對應的IPv6資源是否可達;
步驟33,將對應IPv6資源為可達的AAAA記錄,發送至所述客戶端。
本發明的上述實施例中,AAAA記錄(AAAA record)是用來將域名解析到IPv6地址的DNS記錄。用戶可以將一個域名解析到IPv6地址上,也可以將子域名解析到IPv6地址上。每一個AAAA記錄對應一個IPv6資源,故可根據AAAA記錄判斷其對應的IPV6資源是否可達,IPv6資源可達即該IPv6資源當前可被用戶訪問,且用戶根據該AAAA記錄可訪問其對應的IPv6資源。本發明實施例提供的方法在用戶訪問IPv6資源之前通過對AAAA記錄對應的IPv6資源是否可達進行驗證,並將可達的IPv6資源對應的AAAA記錄反饋至客戶端,使得客戶端能夠根據AAAA記錄訪問IPv6資源,避免了由於IPv6資源不可達 再退回訪問IPv4資源而導致的時間的浪費,提升了用戶體驗。
具體的,步驟31中,根據一客戶端發出的域名解析請求,獲取域名解析得到的AAAA記錄,具體包括:
步驟311,根據所述客戶端發出的域名解析請求,查詢本地DNS伺服器的資源記錄區;
步驟312,若本地DNS伺服器的資源記錄區中記錄有與所述域名解析請求對應的A記錄和AAAA記錄,從本地DNS伺服器的資源記錄區中獲取所述A記錄和AAAA記錄;
步驟313,若本地DNS伺服器的資源記錄區中沒有與所述域名解析請求對應的A記錄和AAAA記錄,將所述域名解析請求轉發至上級DNS伺服器,由所述上級DNS伺服器查詢確定A記錄和AAAA記錄,從所述上級DNS伺服器中獲取所述A記錄和AAAA記錄。
其中,A記錄是用來將域名解析到IPv4地址的DNS記錄。若客戶端發出的域名解析請求為雙棧請求,則本地DNS伺服器需查詢A記錄和AAAA記錄;若客戶端發出的域名解析請求僅包含A記錄的請求,則本地DNS伺服器僅需查詢A記錄;若客戶端發出的域名解析請求僅包含AAAA記錄的請求,則本地DNS伺服器僅需查詢AAAA記錄。需要說明的是,本發明實施例提供的域名解析方法適用於域名解析請求中包含AAAA記錄的請求,即雙棧請求和AAAA請求。
本地DNS伺服器包含一資源記錄區,該資源記錄區中保存與域名解析請求對應的A記錄和AAAA記錄。需要說明的是,若本地DNS伺服器中沒有查找到對應的A記錄和AAAA記錄,需將該域名解析請求轉發至上級DNS伺服器(一般指Authoritative DNS,即權威DNS),由上級DNS伺服器來查找對應的A記錄和AAAA記錄,直到查詢到A記錄和AAAA記錄為止;查詢到的A記錄和AAAA記錄被轉發至本地DNS伺服器,本地DNS伺服器將A記錄和有效的AAAA記錄保存至資源記錄區。其中,有效的AAAA記錄是指對應IPv6資源為可達的AAAA記錄。具體的,所述域名解析方法還包括:
步驟34,將對應IPv6資源為可達的AAAA記錄添加至本地DNS伺服器的資源記錄區中。
簡言之,本地DNS伺服器的資源記錄區(DNS Cache)中保存有與之前的域名解析請求對應的A記錄和/或AAAA記錄,使得後續有與之前相同的域名解析請求時,可以直接從本地DNS伺服器的資源記錄區獲取A記錄和/或AAAA記錄,節省了轉發至上級DNS伺服器進行域名解析再返回結果的時間,提升用戶體驗。進一步的,由於本發明實施例中本地DNS伺服器的資源記錄區中保存的AAAA記錄對應的IPv6資源為可達資源,則客戶端可通過該AAAA記錄直接成功的訪問對應的IPv6資源,避免了訪問IPv6資源失敗再退回訪問IPv4資源浪費的時間,提高了訪問速率,進一步提升用戶體驗。
本發明的上述實施例中,判斷AAAA記錄對應的IPv6資源是否可達的方法具體為(即步驟32具體包括):
步驟321,向所述AAAA記錄對應的IPv6資源發送探測請求數據包;
步驟322,若接收到針對所述探測數據包返回的探測響應數據包,則確定所述AAAA記錄對應的IPv6資源可達;否則,所述AAAA記錄對應的IPv6資源不可達。
需要說明的是,本發明實施例提供的發送的探測請求數據包是為了驗證IPv6資源是否可達,其具體形式至少包括:基於ping協議的探測請求數據包、基於trace命令的探測請求數據包以及基於tracert命令的探測請求數據包。上述具體形式僅為舉例說明,其他能夠堅持網絡是否可達的命令或協議在本發明實施例中同樣適用。本發明的具體實施例中,採用較常用的ping協議為例來描述本發明的具體實現過程,其他協議或命令的檢測過程與ping協議類似,在此不作一一描述。具體的,步驟321包括:
步驟3211,向所述AAAA記錄對應的IPv6資源發送基於ping協議的探測請求數據包。
其中,Ping是Windows下的一個命令在Unix和Linux下也有這個命令。ping也屬於一個通信協議,是TCP/IP協議的一部分。利用「ping」命令可以檢查網絡是否連通,可以很好地分析和判定網絡故障。本發明實施例中,發送探測請求數據包,即是利用ping操作來檢測IPv6網絡是否連通。
具體的,對AAAA記錄進行ping操作(即步驟321),繼而步驟322中,若接收到針對所述探測數據包返回的探測響應數據包,即可以ping通,則確定所 述AAAA記錄對應的IPv6資源可達;否則,即不可以ping通,則確定所述AAAA記錄對應的IPv6資源不可達。
例如,如圖4所示,一雙棧用戶發起域名解析請求,並通過ping方式實現IPv6資源檢測的方法具體如下:
①用戶發起雙棧請求;
②本地DNS查詢Cache(資源記錄區),未找到對應記錄;
③本地DNS進行遞歸查詢(即將雙棧請求轉發至權威DNS);
④權威DNS向本地DNS反饋記錄,包括A記錄和AAAA記錄;
⑤本地DNS對AAAA記錄進行Ping操作;例如IPv6.google.com反饋的AAAA記錄是2002:3A5B::1,則本地DNS發起ping 2002:3A5B::1操作;
⑥根據ping的結果,Local DNS向用戶反饋相應的A或AAAA記錄;即如果可以ping通,則對用戶返回該AAAA記錄,反之不反饋;
⑦本地DNS將A記錄和可以ping通的AAAA記錄更新至Cache。
需要說明的是,為了保證Cache中AAAA記錄的實時性(即其對應的IPv6資源一直可達),本發明實施例中,對Cache中AAAA記錄採用周期性更新的方法進行保存,即定期的對Cache中AAAA記錄重新進行ping操作,可ping通的繼續保留在Cache中,無法ping通的刪除。
具體的,本發明實施例中關於Cache中周期性更新的方法,所述域名解析方法還包括:
步驟35,接收所述本地DNS伺服器的資源記錄區發送的更新記錄的請求,獲取所述資源記錄區中的AAAA記錄;
步驟36,向所述AAAA記錄對應的IPv6資源發送探測請求數據包,若未接收到針對所述探測數據包返回的探測響應數據包(即無法ping通),將所述IPv6資源對應的AAAA記錄從所述資源記錄區中刪除。
例如,如圖5所示,採用ping操作的方式時,本地DNS中Cache周期更新AAAA記錄的具體流程如下:
①Cache內AAAA記錄到期(該周期為預先設置的);
②Cache請求本地DNS對相應記錄更新;
③本地DNS從Cache中獲取需更新的AAAA記錄;
④本地DNS對需更新的AAAA記錄進行Ping操作;
⑤本地DNS根據ping的結果更新Cache內記錄,即可ping通的繼續保留在Cache中,無法ping通的從Cache中刪除。
需要說明的是,僅採用ping的方式來確定通路是否可達可能會發生誤判,例如:網站側埠配置有誤,或IDC內防火牆配置有問題等,均可造成網站IP位址可ping通,但無法訪問的情況。為了降低其誤判率,提升用戶體驗,本發明實施例還提供一種http請求的方式來判斷AAAA記錄對應的IPv6資源是否可達。具體的,由於本地DNS伺服器或DNS調用的其他伺服器記錄有IPv6資源是否訪問成功的記錄,則可在客戶端發起IPv6訪問之前,利用本地DNS伺服器代替客戶端發起IPv6的http請求,以驗證該IPv6資源是否可達。
具體的,本發明上述實施例中,步驟32具體包括:
步驟323,向所述AAAA記錄對應的IPv6資源發送http訪問請求;
步驟324,若訪問成功,則確定所述AAAA記錄對應的IPv6資源可達;否則,確定所述AAAA記錄對應的IPv6資源不可達。
例如,如圖6所示,一雙棧用戶發起域名解析請求,並通過http方式實現IPv6資源檢測的方法具體如下:
①用戶發起雙棧請求;
②本地DNS查詢Cache,未找到對應記錄;
③本地DNS進行遞歸查詢(即將雙棧請求轉發至權威DNS);
④權威DNS向本地DNS反饋記錄,包括A記錄和AAAA記錄;
⑤本地DNS伺服器(或DNS調用其他伺服器)使用HTTP瀏覽器訪問網站,如Fierfox、chrome等。該伺服器記錄IPv6是否訪問成功。
⑥根據伺服器訪問的結果,Local DNS向用戶反饋相應的A或AAAA記錄;及如果訪問成功,則對用戶返回該AAAA記錄,反之不反饋;
⑦本地DNS將A記錄和可以訪問的AAAA記錄更新至Cache。
需要說明的是,關於Cache中周期性更新的方法,採用http的方式進行更新的步驟與採用ping操作的步驟一致,大致為對Cache中AAAA記錄採用周期性更新的方法進行保存,即本地DNS伺服器定期的對Cache中AAAA記錄對應的IPv6資源進行http訪問,可訪問成功的繼續保留在Cache中,無法訪問的刪 除。其具體步驟在此不重複贅述。
綜上,本發明實施例中,判斷IPv6資源是否可達的方式包括:對AAAA記錄進行ping操作和進行http訪問兩種方式,該兩種方式可單獨使用,也可綜合使用,即為了避免單獨使用ping的方式時造成漏判,本發明實施例還提供一種所述根據所述AAAA記錄,確定所述AAAA記錄對應的IPv6資源是否可達的方法,具體包括(即步驟32具體包括):
步驟325,向所述AAAA記錄對應的IPv6資源發送探測請求數據包;
步驟326,若未接收到針對所述探測數據包返回的探測響應數據包括,則確定所述AAAA記錄對應的IPv6資源不可達;
步驟327,若接收到針對所述探測數據包返回的探測響應數據包,向所述AAAA記錄對應的IPv6資源發送http訪問請求;訪問成功,則確定所述AAAA記錄對應的IPv6資源可達;訪問失敗,則確定所述AAAA記錄對應的IPv6資源不可達。
例如,如圖7所示,一雙棧用戶發起域名解析請求,並通過ping方式和http方式綜合的方法實現IPv6資源檢測的方法具體如下:
①用戶發起雙棧請求;
②本地DNS查詢Cache,未找到對應記錄;
③本地DNS進行遞歸查詢(即將雙棧請求轉發至權威DNS);
④權威DNS向本地DNS反饋記錄,包括A記錄和AAAA記錄;
⑤本地DNS對AAAA記錄進行Ping操作;
⑥對於可以ping成功的AAAA記錄,DNS伺服器(或DNS調用其他伺服器)使用HTTP瀏覽器訪問網站,該瀏覽器支持HE,如Fierfox、chrome等。該伺服器記錄IPv6是否訪問成功。如果未ping通,則不進行此步驟。
⑦根據伺服器訪問的結果,本地DNS向用戶反饋相應的A或AAAA記錄;
⑧本地DNS將記錄更新至Cache。
為了更好的實現上述目的,如圖8所示,本發明實施例還提供一種域名解析裝置,包括:
獲取模塊81,用於根據一客戶端發出的域名解析請求,獲取域名解析得到的AAAA記錄;
確定模塊82,用於根據所述AAAA記錄,確定所述AAAA記錄對應的IPv6資源是否可達;
反饋模塊83,用於將對應IPv6資源為可達的AAAA記錄,發送至所述客戶端。
具體的,本發明的上述實施例中所述域名解析裝置還包括:
記錄模塊,用於將對應IPv6資源為可達的AAAA記錄添加至本地DNS伺服器的資源記錄區中。
具體的,本發明的上述實施例中所述確定模塊82包括:
第一操作模塊,用於向所述AAAA記錄對應的IPv6資源發送探測請求數據包;
第一確定子模塊,用於若接收到針對所述探測數據包返回的探測響應數據包,則確定所述AAAA記錄對應的IPv6資源可達;否則,所述AAAA記錄對應的IPv6資源不可達。
具體的,本發明的上述實施例中所述第一操作模塊包括:
第一操作子模塊,用於向所述AAAA記錄對應的IPv6資源發送基於ping協議的探測請求數據包。
具體的,本發明的上述實施例中所述確定模塊82包括:
第二操作模塊,用於向所述AAAA記錄對應的IPv6資源發送http訪問請求;
第二確定子模塊,用於若訪問成功,則確定所述AAAA記錄對應的IPv6資源可達;否則,確定所述AAAA記錄對應的IPv6資源不可達。
具體的,本發明的上述實施例中所述確定模塊82包括:
第三操作模塊,用於向所述AAAA記錄對應的IPv6資源發送探測請求數據包;
第三確定子模塊,用於若未接收到針對所述探測數據包返回的探測響應數據包括,則確定所述AAAA記錄對應的IPv6資源不可達;
第四確定子模塊,用於若接收到針對所述探測數據包返回的探測響應數據包,向所述AAAA記錄對應的IPv6資源發送http訪問請求;訪問成功,則確定所述AAAA記錄對應的IPv6資源可達;訪問失敗,則確定所述AAAA記錄對應的IPv6資源不可達。
具體的,本發明的上述實施例中所述獲取模塊包括:
查詢模塊,用於根據所述客戶端發出的域名解析請求,查詢本地DNS伺服器的資源記錄區;
第一獲取子模塊,用於若本地DNS伺服器的資源記錄區中記錄有與所述域名解析請求對應的A記錄和AAAA記錄,從本地DNS伺服器的資源記錄區中獲取所述A記錄和AAAA記錄;
第二獲取子模塊,用於若本地DNS伺服器的資源記錄區中沒有與所述域名解析請求對應的A記錄和AAAA記錄,將所述域名解析請求轉發至上級DNS伺服器,由所述上級DNS伺服器查詢確定A記錄和AAAA記錄,從所述上級DNS伺服器中獲取所述A記錄和AAAA記錄。
具體的,本發明的上述實施例中所述域名解析裝置還包括:
接收穫取模塊,用於接收所述本地DNS伺服器的資源記錄區發送的更新記錄的請求,獲取所述資源記錄區中的AAAA記錄;
更新模塊,用於向所述AAAA記錄對應的IPv6資源發送探測請求數據包,若未接收到針對所述探測數據包返回的探測響應數據包,將所述IPv6資源對應的AAAA記錄從所述資源記錄區中刪除。
本發明的上述實施例的域名解析方法中,根據AAAA記錄確定AAAA記錄對應的IPv6資源是否可達,對於可達的資源,對客戶端提供AAAA記錄;對於不可達的資源,刪除該AAAA記錄,不向客戶端提供;通過該域名解析方法,使得客戶端能夠優先與可達的IPv6資源進行通信,而當資源不可達時,直接訪問IPv4資源,避免了由於IPv6資源不可達再退回訪問IPv4資源而導致的時間的浪費,提升了用戶體驗
需要說明的是,本發明實施例提供的域名解析裝置的應用上述域名解析方法的裝置,則上述域名解析方法的所有實施例均適用於該域名解析裝置,且均能達到相同或相似的有益效果。
以上所述是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明所述原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。