專利名稱:域名解析方法、域名服務(wù)器及域名系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信系統(tǒng),并且更具體地涉及域名解析方法、域名服務(wù)器及域名系統(tǒng)。
背景技術(shù):
IPv4地址和IPv6地址將長期共存。一臺(tái)雙棧主機(jī)將同時(shí)擁有IPv4和IPv6的地址。目前,為了保持與IPv4協(xié)議的兼容性,新開發(fā)的IPv6應(yīng)用程序?qū)Φ刂返氖褂脤⒆兊渺`活,通過在協(xié)議棧上層引入一套新的SOCKET API(應(yīng)用編程接口),這樣的程序?qū)⒓瓤梢赃\(yùn)行在IPv4協(xié)議棧上又可以運(yùn)行在IPv6協(xié)議棧上。然而,這些新的應(yīng)用程序在進(jìn)行域名解析時(shí)將存在問題,因?yàn)樗鼰o法確認(rèn)它要訪問的機(jī)器的IP版本號(hào)。為了解析一個(gè)給定的域名,這種應(yīng)用程序的域名系統(tǒng)(DNS)解析器,不得不啟動(dòng)兩個(gè)DNS查詢一個(gè)AAAA(或A6)類型的查詢,以及一個(gè)A類型的查詢。
例如,如果運(yùn)行WindowsXP操作系統(tǒng)的雙棧主機(jī)上的網(wǎng)絡(luò)瀏覽器(如Internet Explorer)訪問一個(gè)網(wǎng)站(如www.shanghaionline.com)時(shí),因?yàn)榻馕銎鞑恢涝摼W(wǎng)站的IP版本,所以解析器不得不分別啟動(dòng)一個(gè)AAAA類型的查詢和一個(gè)A類型的查詢以獲得可能的IPv6地址和IPv4地址。
上述涉及兩個(gè)DNS查詢的現(xiàn)有域名解析方法,使應(yīng)用程序不得不等待兩個(gè)DNS查詢的結(jié)果,所以增加了通信延遲。再有,兩次通信浪費(fèi)了網(wǎng)絡(luò)帶寬,不必要地消耗了DNS服務(wù)器的處理資源。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于解決現(xiàn)有技術(shù)中存在的上述通信延遲、網(wǎng)絡(luò)帶寬浪費(fèi)和DNS服務(wù)器處理資源浪費(fèi)的技術(shù)問題,提供一種新穎的域名解析方法、域名服務(wù)器和域名系統(tǒng)。
為此,本發(fā)明提供一種域名解析方法,其特征在于包括以下步驟從解析器接收一條查詢消息;當(dāng)所述查詢消息中的查詢類型為指定類型時(shí),從域名數(shù)據(jù)庫中查找與所述查詢消息中的域名匹配以及與查詢類型A或AAAA匹配的資源記錄;根據(jù)找到的所述資源記錄,構(gòu)造響應(yīng)消息;將所述響應(yīng)消息返回給所述解析器。
本發(fā)明還提供一種域名服務(wù)器,包括域名數(shù)據(jù)庫;用于從解析器接收一條查詢消息的裝置;用于將響應(yīng)消息返回給所述解析器的裝置;其特征在于還包括資源記錄查找裝置,用于當(dāng)所述查詢消息中的查詢類型為指定類型時(shí),從所述域名數(shù)據(jù)庫中查找與所述查詢消息中的域名匹配以及與查詢類型A或AAAA匹配的資源記錄;用于根據(jù)所述匹配的資源記錄構(gòu)造所述響應(yīng)消息的裝置。
本發(fā)明還提供一種域名系統(tǒng),其特征在于包括解析器,用于根據(jù)應(yīng)用程序的IP地址查詢請(qǐng)求,構(gòu)造一個(gè)查詢類型為指定類型的查詢消息;以及域名服務(wù)器,用于響應(yīng)于所述查詢消息,進(jìn)行IP地址解析,并將所述IP地址返回給所述解析器,所述域名服務(wù)器包括域名數(shù)據(jù)庫;用于從解析器接收一條查詢消息的裝置;資源記錄查找裝置,用于當(dāng)所述查詢消息中的查詢類型為指定類型時(shí),從所述域名數(shù)據(jù)庫中查找與所述查詢消息中的域名匹配以及與查詢類型A或AAAA匹配的資源記錄;用于根據(jù)所述匹配的資源記錄構(gòu)造所述響應(yīng)消息的裝置;以及用于將響應(yīng)消息返回給所述解析器的裝置。
根據(jù)本發(fā)明的域名解析方法、域名服務(wù)器和域名系統(tǒng),通過一次查詢,即能獲得雙棧節(jié)點(diǎn)的各種版本的IP地址,所以減少了雙棧節(jié)點(diǎn)IP地址解析過程中的通信延遲、節(jié)約了網(wǎng)絡(luò)帶寬和DNS服務(wù)器處理資源。
在根據(jù)本發(fā)明的結(jié)合附圖閱讀本發(fā)明實(shí)施方式的詳細(xì)描述后,本發(fā)明的其它特點(diǎn)和優(yōu)點(diǎn)將變得更加清楚。
圖1是域名系統(tǒng)(DNS)的示意結(jié)構(gòu)圖;圖2是域名協(xié)議的通信中采用的消息的示意結(jié)構(gòu)圖;圖3是根據(jù)本發(fā)明的域名解析方法的一種實(shí)施例的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖詳細(xì)描述本發(fā)明的實(shí)施例。
圖1是域名系統(tǒng)(DNS)的示意結(jié)構(gòu)圖。標(biāo)號(hào)101表示用戶應(yīng)用程序,102表示解析器,103表示域名服務(wù)器,104表示高速緩存。當(dāng)用戶應(yīng)用程序101希望獲得與一個(gè)特定的域名相關(guān)的主機(jī)地址或郵件信息時(shí),用戶應(yīng)用程序101向解析器102發(fā)送一個(gè)適當(dāng)類型的查詢,查詢中帶有該特定的域名。當(dāng)解析器102收到用戶應(yīng)用程序101發(fā)送的用戶查詢后,解析器102向一個(gè)它所知道的域名服務(wù)器103發(fā)送查詢,請(qǐng)求有關(guān)信息。作為回應(yīng),解析器102或者從域名服務(wù)器103獲得所期望的信息,或者獲得對(duì)另一個(gè)域名服務(wù)器(圖1中未示出)的引用信息。利用這些引用信息,解析器102能夠了解其他域名服務(wù)器的身份和內(nèi)容,并進(jìn)而從其他域名服務(wù)器獲得所期望的信息。也就是說,為了回答一條用戶查詢,解析器102可能不得不向幾個(gè)不同的外部域名服務(wù)器進(jìn)行數(shù)次查詢。
為了提高上述查詢和檢索過程的性能,在向域名服務(wù)器103發(fā)送查詢之前,解析器102首先檢索高速緩存104。如果高速緩存104中保存了所期望的信息,則解析器102直接從高速緩存104獲得相關(guān)的引用項(xiàng)。只有不能在高速緩存104中獲得所期望的信息的情況下,解析器102才向域名服務(wù)器103發(fā)送查詢。在從域名服務(wù)器103或其他域名服務(wù)器獲得了所期望的信息后,用相應(yīng)的加入項(xiàng)更新高速緩存104中的內(nèi)容。高速緩存104中的數(shù)據(jù)可能是不全面的,但是在沒有本地?cái)?shù)據(jù)可被重復(fù)訪問的情況下改進(jìn)了檢索過程的性能。圖1中,用戶查詢和用戶響應(yīng)對(duì)于本地主機(jī)及其操作系統(tǒng)是特定的。用戶查詢一般是操作系統(tǒng)調(diào)用,并且解析器102和高速緩存104是主機(jī)操作系統(tǒng)的一部分。
圖2是域名協(xié)議的通信中采用的消息的示意結(jié)構(gòu)圖。圖1中的解析器102與域名服務(wù)器103之間的查詢和響應(yīng)均采用圖2所示的單一結(jié)構(gòu)。如圖2所示,消息共分五個(gè)部分,即首部201、提問202、回答203、授權(quán)單位204和附加信息205。
每條消息都有首部201。一條消息中的首部201包括用于指定該消息是否包括其他部分的字段,指定該消息是查詢還是響應(yīng)的字段,指定該消息是標(biāo)準(zhǔn)查詢還是其他的操作碼,等等。特別說明的是,首部201有一個(gè)QDCOUNT字段,用于指定提問202部分中包括的入口數(shù)目。QDCOUNT一般取值為1。首部201還有一個(gè)ANCOUNT,用于指定回答203部分中的資源記錄的數(shù)目。
提問202部分,用于承載查詢的“提問”。提問202部分中的每個(gè)入口包括三部分內(nèi)容,即域名、查詢類型、查詢類別。
回答203、授權(quán)單位204、附加信息205均采用相同的格式,即包括可變數(shù)目的資源記錄。每條資源記錄中包括域名、資源記錄類型、數(shù)據(jù)部分類型、時(shí)間間隔長度、數(shù)據(jù)部分長度以及數(shù)據(jù)部分。
關(guān)于圖1和圖2的更詳細(xì)的說明,可參見RFC 1034“DomainConcepts and Facilities”以及RFC 1035“Domain Implementationand Specification”。
圖3是根據(jù)本發(fā)明的域名解析方法的一種實(shí)施例的流程圖。該方法可以運(yùn)行在任何常規(guī)域名服務(wù)器中。
如圖3所示,流程開始于步驟301。
然后,在步驟302,域名服務(wù)器從解析器102接收一條查詢消息。然后,在步驟303,從收到的查詢消息的提問部分獲得域名、查詢類型以及查詢類別等信息。
接著,在步驟304,判斷步驟303中獲得的查詢類型是否為根據(jù)本發(fā)明的指定類型。
這里需要解釋的是,本發(fā)明中規(guī)定了一種新的查詢類型“DSR”,作為本發(fā)明中的指定類型。指定類型“DSR”的類型碼例如可以為248。具有指定類型“DSR”的查詢消息,意味著該查詢希望獲得該查詢中所含的域名的IPv4和IPv6地址,以及其他可能的與該域名相關(guān)的資源記錄。
如果步驟304的判斷結(jié)果為是,則流程進(jìn)行到步驟3052,否則進(jìn)行到步驟3051。
在步驟3051,域名服務(wù)器從域名數(shù)據(jù)庫中查找與步驟303中獲得的域名、查詢類型、查詢類別等匹配的資源記錄。具體查找過程與現(xiàn)有技術(shù)中的一樣,不必做詳細(xì)描述。
在步驟3052,域名服務(wù)器從域名數(shù)據(jù)庫中查找與步驟303中獲得的域名、查詢類型“A”或者查詢類型“AAAA”、查詢類別“IN”匹配的資源記錄。具體查找過程與現(xiàn)有技術(shù)中的類似,不必做詳細(xì)描述。需要說明的是,查詢類型“A”意味著需要查詢與域名對(duì)應(yīng)的IPv4地址,查詢類型“AAAA”意味著需要查詢與域名對(duì)應(yīng)的IPv6地址,查詢類別“IN”意味著查詢的地址是因特網(wǎng)地址。
在步驟3051和步驟3052之后,流程都進(jìn)行到步驟306。
在步驟306,根據(jù)已經(jīng)找到的一條或多條資源記錄,構(gòu)造響應(yīng)消息的各個(gè)部分。如前文所述,響應(yīng)消息同樣遵循圖2所示的結(jié)構(gòu)。
構(gòu)造響應(yīng)消息的過程大致涉及這些內(nèi)容。首先,在消息首部中應(yīng)指明有多少個(gè)回答部分?;卮鸩糠值臄?shù)目與找到的資源記錄的數(shù)目相同。如果沒找到任何匹配的資源記錄,則回答部分的數(shù)目為零。其次,針對(duì)每一條找到的資源記錄,構(gòu)造一個(gè)相應(yīng)的回答部分。對(duì)于步驟3052中找到的每條資源記錄來說,所構(gòu)造的回答部分包括域名、資源記錄類型(“A”或“AAAA”)、IP地址(IPv4或IPv6)等內(nèi)容。
然后,在步驟307,域名服務(wù)器向解析器返回在步驟306構(gòu)造好的響應(yīng)消息。
最后,流程在步驟308結(jié)束。當(dāng)然,流程也可以直接返回到步驟302,構(gòu)成一個(gè)循環(huán)。
下面給出一個(gè)查詢的例子。
假設(shè)圖1中的解析器102向域名服務(wù)器103給出查詢“www.shanghaionline.com,DSR,IN”。
并且假設(shè)域名“www.shanghaionline.com”在域名數(shù)據(jù)庫中的區(qū)域(zone)內(nèi)容為;shanghaionline.com區(qū)域的數(shù)據(jù)庫文件shanghaionline.com.dns;區(qū)域版本23@ IN SOA DNSserver.hostmaster.(23 ;serial number900 ;refresh600 ;retry86400;expire3600);default TTL;區(qū)域NS記錄@NSDNSserver.
;區(qū)域記錄@A 202.112.0.1@AAAA 3ffe::2b0d0fffee3e183www A 201.201.221.5CNAME shanghaionline.comAAAA fe80::2b0d0fffee4e131AAAA fe80::2b0d1fffee4e131client1.comm.A 201.201.2211
AAAA 3ffe::2b0d0ffcfeee303ftp AAAA fe80::2b0d0fffee4e133AAAA fe80::2b0d0fffee4e131ftp2 AAAA fe80::2b0d0fffe3d12346tel AAAA fe80::2b0d0fffe3c29email A 202.112.0.201AAAA fe80::2b0d0fffee4e131www1 A 202.112.0.202AAAA fe80::2b0d0fffee4e131這樣,在圖3的步驟304中,將判斷出查詢類型是指定類型“DSR”,因而,流程進(jìn)行到步驟3052。在步驟3052,從域名數(shù)據(jù)庫中找到以下資源記錄www A 201.201.221.5AAAA fe80::2b0d0fffee4e131AAAA fe80::2b0d1fffee4e131然后,在圖3的步驟306中,構(gòu)造如下的響應(yīng)消息(以下為首部)......0001 0003(以下為提問部分)www.shanghaionline.com ...00f8...
(以下為回答部分)shanghaionline.com ...0001...201.201.221.5shanghaionline.com ...001c...fe80::2b0d0fffee4e131shanghaionline.com ...001c...fe80::2b0d1fffee4e131以上響應(yīng)消息的首部中,“0001”表示提問部分中只有1個(gè)入口,“0003”表示該響應(yīng)消息包括3個(gè)回答。提問部分中,“00f8”(十六進(jìn)制)表示查詢類型DSR的值(即十進(jìn)制的248)。第一個(gè)回答部分中,“0001”表示資源記錄類型為“A”。第二個(gè)和第三個(gè)回答部分中,“001c”表示資源記錄類型為“AAAA”。
將例如圖3所示的方法應(yīng)用到圖1所示的域名服務(wù)器103中,即實(shí)現(xiàn)了根據(jù)本發(fā)明的域名服務(wù)器。
另外,可以對(duì)圖1所示的解析器102做如下修改。當(dāng)解析器102從用戶應(yīng)用程序101收到用戶查詢后,解析器102構(gòu)造查詢,以便在查詢中包括本發(fā)明中的指定查詢類型(如DSR)。當(dāng)解析器102從域名服務(wù)器103收到響應(yīng)后,可將響應(yīng)中包括的IPv4或IPv6地址封裝到用戶響應(yīng)中,并將用戶響應(yīng)返回給用戶應(yīng)用程序101。
雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域內(nèi)熟練的技術(shù)人員可以在所附權(quán)利要求的范圍內(nèi)做出各種變形或修改。
權(quán)利要求
1.一種域名解析方法,其特征在于包括以下步驟從解析器接收一條查詢消息;當(dāng)所述查詢消息中的查詢類型為指定類型時(shí),從域名數(shù)據(jù)庫中查找與所述查詢消息中的域名匹配以及與查詢類型A或AAAA匹配的資源記錄;根據(jù)找到的所述資源記錄,構(gòu)造響應(yīng)消息;將所述響應(yīng)消息返回給所述解析器。
2.根據(jù)權(quán)利要求1的域名解析方法,其特征在于所述找到的資源記錄包括A類型資源記錄和AAAA類型資源記錄中的至少一種。
3.根據(jù)權(quán)利要求2的域名解析方法,其特征在于所述響應(yīng)消息包括IPv4地址和IPv6地址中的至少一種。
4.一種域名服務(wù)器,包括域名數(shù)據(jù)庫;用于從解析器接收一條查詢消息的裝置;用于將響應(yīng)消息返回給所述解析器的裝置;其特征在于還包括資源記錄查找裝置,用于當(dāng)所述查詢消息中的查詢類型為指定類型時(shí),從所述域名數(shù)據(jù)庫中查找與所述查詢消息中的域名匹配以及與查詢類型A或AAAA匹配的資源記錄;用于根據(jù)所述匹配的資源記錄構(gòu)造所述響應(yīng)消息的裝置。
5.根據(jù)權(quán)利要求4的域名服務(wù)器,其特征在于所述匹配的資源記錄包括A類型資源記錄和AAAA類型資源記錄中的至少一種。
6.根據(jù)權(quán)利要求5的域名服務(wù)器,其特征在于所述響應(yīng)消息包括IPv4地址和IPv6地址中的至少一種。
7.一種域名系統(tǒng),其特征在于包括解析器,用于根據(jù)應(yīng)用程序的IP地址查詢請(qǐng)求,構(gòu)造一個(gè)查詢類型為指定類型的查詢消息;以及域名服務(wù)器,用于響應(yīng)于所述查詢消息,進(jìn)行IP地址解析,并將所述IP地址返回給所述解析器,所述域名服務(wù)器包括域名數(shù)據(jù)庫;用于從解析器接收一條查詢消息的裝置;資源記錄查找裝置,用于當(dāng)所述查詢消息中的查詢類型為指定類型時(shí),從所述域名數(shù)據(jù)庫中查找與所述查詢消息中的域名匹配以及與查詢類型A或AAAA匹配的資源記錄;用于根據(jù)所述匹配的資源記錄構(gòu)造所述響應(yīng)消息的裝置;以及用于將響應(yīng)消息返回給所述解析器的裝置。
8.根據(jù)權(quán)利要求7的域名系統(tǒng),其特征在于所述匹配的資源記錄包括A類型資源記錄和AAAA類型資源記錄中的至少一種。
9.根據(jù)權(quán)利要求8的域名系統(tǒng),其特征在于所述響應(yīng)消息包括IPv4地址和IPv6地址中的至少一種。
10.根據(jù)權(quán)利要求7的域名系統(tǒng),其特征在于還包括一個(gè)高速緩存,用于對(duì)所述響應(yīng)消息進(jìn)行緩存。
全文摘要
本發(fā)明提供一種域名解析方法,其特征在于包括以下步驟從解析器接收一條查詢消息;當(dāng)所述查詢消息中的查詢類型為指定類型時(shí),從域名數(shù)據(jù)庫中查找與所述查詢消息中的域名匹配以及與查詢類型A或AAAA匹配的資源記錄;根據(jù)找到的所述資源記錄,構(gòu)造響應(yīng)消息;將所述響應(yīng)消息返回給所述解析器。本發(fā)明還提供相應(yīng)的域名服務(wù)器和相應(yīng)的域名系統(tǒng)。根據(jù)本發(fā)明的域名解析方法、域名服務(wù)器和域名系統(tǒng),通過一次查詢,即能獲得雙棧節(jié)點(diǎn)的各種版本的IP地址,所以減少了雙棧節(jié)點(diǎn)IP地址解析過程中的通信延遲、節(jié)約了網(wǎng)絡(luò)帶寬和DNS服務(wù)器處理資源。
文檔編號(hào)G06F17/30GK1756263SQ20041006669
公開日2006年4月5日 申請(qǐng)日期2004年9月27日 優(yōu)先權(quán)日2004年9月27日
發(fā)明者鄢仁祥, 賓梵翔, 朱克耀, 江瀅瀾, 江瑋 申請(qǐng)人:上海貝爾阿爾卡特股份有限公司