本申請(qǐng)涉及多域名記錄查詢,尤其涉及一種基于偽資源記錄OPT擴(kuò)展支持多域名記錄查詢的方法和系統(tǒng)。
背景技術(shù):
根據(jù)目前的DNS查詢技術(shù)協(xié)議,DNS查詢的請(qǐng)求如A和AAAA記錄,需要由DNS客戶端逐個(gè)發(fā)送給DNS服務(wù)器。但是隨著新應(yīng)用的普及,DNS客戶端經(jīng)常需要同時(shí)獲得A和AAAA記錄,或者A和MX記錄。根據(jù)目前的技術(shù)協(xié)議設(shè)計(jì),需要由DNS客戶端向DNS服務(wù)器逐個(gè)發(fā)送DNS查詢請(qǐng)求,造成查詢時(shí)延增長(zhǎng)和服務(wù)器負(fù)擔(dān)加重。
技術(shù)實(shí)現(xiàn)要素:
為了減少在查詢同一個(gè)名字或者子名字的多個(gè)DNS類型的記錄查詢時(shí)延和DNS服務(wù)器的查詢負(fù)擔(dān),本發(fā)明提出在DNS協(xié)議擴(kuò)展以后,DNS系統(tǒng)由支持單個(gè)域名的單個(gè)類型查詢,變成向同一個(gè)域名的多種類型記錄查詢或者一個(gè)主域名及其子域名的多種類型記錄查詢。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的。
本發(fā)明提出了一種基于偽資源記錄OPT擴(kuò)展支持多域名類型記錄查詢的方法,具體步驟如下:
步驟101、發(fā)起域名的多種類型記錄查詢;
步驟103、對(duì)偽資源記錄OPT進(jìn)行擴(kuò)展,并封裝到DNS數(shù)據(jù)包中;
步驟105、接收所述DNS數(shù)據(jù)包,提取相應(yīng)信息,并進(jìn)行查詢;
步驟107、返回查詢結(jié)果。
其中,步驟103具體包括:
將主域名的查詢信息放進(jìn)DNS包的question部分;
把包括子域名或者主域名的多類型記錄查詢信息根據(jù)擴(kuò)展支持多域名類型記錄查詢的OPT記錄的數(shù)據(jù)格式,依次放進(jìn)OPT記錄后,再放進(jìn)DNS包的additional部分。
其中,步驟105具體包括:
步驟1051、提取主域名信息,針對(duì)主域名進(jìn)行查詢,依據(jù)RFC1034和RFC1035的規(guī)定把查詢獲得的信息放進(jìn)DNS包;
步驟1053、提取OPT記錄中的第一條子域名信息,把獲得的域名記錄信息根據(jù)RFC1034和RFC1035的規(guī)定放進(jìn)DNS包里,把查詢獲得的rcode值,放到相應(yīng)OPT記錄中的R-code部分;
步驟1055、依次逐條提取OPT記錄中的子域名信息,并重復(fù)步驟1053進(jìn)行查詢;
步驟1057、完成所有子域名的信息查詢后,把OPT記錄放進(jìn)DNS包中的addional部分。
其中,步驟107之后還包括:
接收返回的查詢結(jié)果之后,對(duì)主域名信息根據(jù)RFC1034和RFC1035的規(guī)定進(jìn)行解包使用;對(duì)相應(yīng)的子域名信息,通過OPT里面的相應(yīng)記錄里的type,和r-code提取出來,當(dāng)作該子域名的type和rcode使用。
本發(fā)明還提出了一種基于偽資源記錄OPT擴(kuò)展支持多域名類型記錄查詢的系統(tǒng),其包括:
多記錄DNS查詢客戶端,其用于發(fā)起查詢請(qǐng)求和獲取查詢結(jié)果
多記錄DNS查詢服務(wù)器端,其用于響應(yīng)于所述多記錄DNS查詢客戶端的請(qǐng)求進(jìn)行查詢,并返回查詢結(jié)果。
其中,所述多記錄查詢客戶端還包括:
第一封裝模塊,其用于將主域名的查詢信息放進(jìn)DNS包的question部分;
把包括子域名或者主域名的多類型記錄查詢信息根據(jù)擴(kuò)展支持多域名類型記錄查詢的OPT記錄的數(shù)據(jù)格式,依次放進(jìn)OPT記錄后,再放進(jìn)DNS包的additional部分。
其中,所述多記錄DNS查詢服務(wù)器端還包括:
第二提取模塊,其用于提取主域名信息,針對(duì)主域名進(jìn)行查詢,依據(jù)RFC1034和RFC1035的規(guī)定把查詢獲得的信息放進(jìn)DNS包;
并依次逐條提取OPT記錄中的子域名信息,把獲得的域名記錄信息根據(jù)RFC1034和RFC1035的規(guī)定放進(jìn)DNS包里,把查詢獲得的rcode值,放到相應(yīng)OPT記錄中的R-code部分;
第二封裝模塊,其用于完成所有子域名的信息查詢后,把OPT記錄放進(jìn)DNS包中的addional部分。
其中,所述多記錄查詢客戶端還包括:
解包裝模塊,其用于接收返回的查詢結(jié)果之后,對(duì)主域名信息根據(jù)RFC1034和RFC1035的規(guī)定進(jìn)行解包使用;
第一提取模塊,其用于對(duì)相應(yīng)的子域名信息,通過OPT里面的相應(yīng)記錄里的type和r-code提取出來,作為該子域名的type和rcode使用。
本發(fā)明的優(yōu)點(diǎn)在于:通過本發(fā)明可以進(jìn)行同一個(gè)域名的多類型記錄查詢;可以進(jìn)行主域名的子域名的任意類型記錄的信息查詢;把多次往返查詢改成了單次查詢,減少了DNS查詢的往返時(shí)延;在DKIM和DMARC等多種使用場(chǎng)合有重要意義。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
附圖1示出了根據(jù)本發(fā)明實(shí)施方式的一種基于偽資源記錄OPT擴(kuò)展支持多域名類型記錄查詢的編碼結(jié)構(gòu)示意圖;
附圖2示出了根據(jù)本發(fā)明實(shí)施方式的基于偽資源記錄OPT擴(kuò)展支持多域名類型記錄查詢的多記錄查詢DNS數(shù)據(jù)包;
附圖3示出了根據(jù)本發(fā)明實(shí)施方式的偽資源記錄OPT擴(kuò)展支持多域名類型記錄查詢的方法流程圖;
附圖4示出了根據(jù)本發(fā)明實(shí)施方式的一種基于偽資源記錄OPT擴(kuò)展支持多域名類型記錄查詢的系統(tǒng)框圖;
附圖5示出了根據(jù)本發(fā)明實(shí)施例的多記錄查詢DNS數(shù)據(jù)包;
附圖6示出了根據(jù)本發(fā)明實(shí)施例的多記錄查詢DNS反饋包。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施方式。雖然附圖中顯示了本公開的示例性實(shí)施方式,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明提供了一種基于偽資源記錄OPT擴(kuò)展支持多域名類型記錄查詢的機(jī)制,通過對(duì)偽資源記錄OPT擴(kuò)展,增加相關(guān)字段,擴(kuò)展DNS客戶端和DNS服務(wù)器端,可以為互聯(lián)網(wǎng)DNS客戶端提供同一個(gè)域名的多類型記錄查詢功能。
如圖1和2所示,在偽資源記錄OPT上的數(shù)據(jù)部分增加若干個(gè)子問題,第一個(gè)子問題含有Count,Type,R-code,prefix字段,第二個(gè)及后續(xù)的每個(gè)子問題含有Seq,Type,R-code和prefix字段。第一個(gè)子問題的count字段表明DNS查詢包一共有多少個(gè)子問題,Type字段表示所查詢的子問題的類型記錄,R-code用于DNS服務(wù)器對(duì)此名字的查詢的反饋,R-code的字段里的含義參照DNS域名查詢的rcode字段的含義,prefix字段表明子問題與所查詢主域名的區(qū)別部分。第二個(gè)及后續(xù)的每個(gè)子問題的Seq字段表明是所查的第幾個(gè)子問題,Type字段表示所查詢的子問題的類型記錄,R-code用于DNS服務(wù)器對(duì)此名字的查詢的反饋,R-code的字段里的含義參照DNS域名查詢的rcode字段的含義,prefix字段表明子問題與所查詢主域名的區(qū)別部分。
根據(jù)本發(fā)明的實(shí)施方式,如圖3所示,提出一種基于偽資源記錄OPT擴(kuò)展支持多域名類型記錄查詢的方法,具體步驟如下:
步驟101、發(fā)起域名的多種類型記錄查詢;
步驟103、對(duì)偽資源記錄OPT進(jìn)行擴(kuò)展,并封裝到DNS數(shù)據(jù)包中;
步驟105、接收所述DNS數(shù)據(jù)包,提取相應(yīng)信息,并進(jìn)行查詢;
步驟107、返回查詢結(jié)果。
其中,步驟103具體包括:
將主域名的查詢信息放進(jìn)DNS包的question部分;
把包括子域名或者主域名的多類型記錄查詢信息根據(jù)擴(kuò)展支持多域名類型記錄查詢的OPT記錄的數(shù)據(jù)格式,依次放進(jìn)OPT記錄后,再放進(jìn)DNS包的additional部分。
其中,步驟105具體包括:
步驟1051、提取主域名信息,針對(duì)主域名進(jìn)行查詢,依據(jù)RFC1034和RFC1035的規(guī)定把查詢獲得的信息放進(jìn)DNS包;
步驟1053、提取OPT記錄中的第一條子域名信息,把獲得的域名記錄信息根據(jù)RFC1034和RFC1035的規(guī)定放進(jìn)DNS包里,把查詢獲得的rcode值,放到相應(yīng)OPT記錄中的R-code部分;
步驟1055、依次逐條提取OPT記錄中的子域名信息,并重復(fù)步驟1053進(jìn)行查詢;
步驟1057、完成所有子域名的信息查詢后,把OPT記錄放進(jìn)DNS包中的addional部分。
其中,步驟107之后還包括:
接收返回的查詢結(jié)果之后,對(duì)主域名信息根據(jù)RFC1034和RFC1035的規(guī)定進(jìn)行解包使用;對(duì)相應(yīng)的子域名信息,通過OPT里面的相應(yīng)記錄里的type,和r-code提取出來,當(dāng)作該子域名的type和rcode使用,具體type和rcode的使用規(guī)則參照RFC1034和RFC1035的規(guī)則。
如圖4所示,本發(fā)明還提出了一種基于偽資源記錄OPT擴(kuò)展支持多域名類型記錄查詢的系統(tǒng),其包括:
多記錄DNS查詢客戶端,其用于發(fā)起查詢請(qǐng)求和獲取查詢結(jié)果;
多記錄DNS查詢服務(wù)器端,其用于響應(yīng)于所述多記錄DNS查詢客戶端的請(qǐng)求進(jìn)行查詢,并返回查詢結(jié)果。
其中,所述多記錄查詢客戶端還包括:
第一封裝模塊,其用于將主域名的查詢信息放進(jìn)DNS包的question部分;
把包括子域名或者主域名的多類型記錄查詢信息根據(jù)擴(kuò)展支持多域名類型記錄查詢的OPT記錄的數(shù)據(jù)格式,依次放進(jìn)OPT記錄后,再放進(jìn)DNS包的additional部分。
其中,所述多記錄DNS查詢服務(wù)器端還包括:
第二提取模塊,其用于提取主域名信息,針對(duì)主域名進(jìn)行查詢,依據(jù)RFC1034和RFC1035的規(guī)定把查詢獲得的信息放進(jìn)DNS包;
并依次逐條提取OPT記錄中的子域名信息,把獲得的域名記錄信息根據(jù)RFC1034和RFC1035的規(guī)定放進(jìn)DNS包里,把查詢獲得的rcode值,放到相應(yīng)OPT記錄中的R-code部分;
第二封裝模塊,其用于完成所有子域名的信息查詢后,把OPT記錄放進(jìn)DNS包中的addional部分。
其中,所述多記錄查詢客戶端還包括:
解包裝模塊,其用于接收返回的查詢結(jié)果之后,對(duì)主域名信息根據(jù)RFC1034和RFC1035的規(guī)定進(jìn)行解包使用;
第一提取模塊,其用于對(duì)相應(yīng)的子域名信息,通過OPT里面的相應(yīng)記錄里的type和r-code提取出來,作為該子域名的type和rcode使用。
實(shí)施例一、
多記錄DNS查詢客戶端發(fā)起域名的多種類型記錄查詢,比如查詢exmaple.com的A和AAAA記錄,以及mail.example.com的MX記錄。
多記錄DNS查詢客戶端把主域名的查詢信息放進(jìn)DNS包的question部分;把包括子域名或者主域名的多類型記錄查詢信息根據(jù)擴(kuò)展支持多域名類型記錄查詢的OPT記錄的數(shù)據(jù)格式,依次放進(jìn)OPT記錄后,再放進(jìn)DNS包的additional部分。
具體DNS查詢包信息如圖5所示,多記錄DNS查詢服務(wù)器端收到DNS包以后進(jìn)行如下操作:
a)提取主域名信息,先對(duì)主域名進(jìn)行查詢,然后把查詢獲得的信息,依據(jù)RFC1034和RFC1035的規(guī)定放進(jìn)DNS包;
b)提取OPT記錄中的第一條子域名信息,根據(jù)RFC1034和RFC1035的規(guī)定進(jìn)行查詢,把獲得的域名記錄信息根據(jù)RFC1034和RFC1035的規(guī)定放進(jìn)DNS包里,把查詢獲得的rcode值,放到相應(yīng)OPT記錄中的R-code部分;
c)依次逐條提取OPT記錄中的子域名信息,并參照上個(gè)步驟b)進(jìn)行查詢;
d)完成所有子域名的信息查詢后,把OPT記錄放進(jìn)DNS包中的addional部分。
最后形成的DNS反饋包如圖6所示,多記錄DNS查詢服務(wù)器端返回查詢信息。
多記錄DNS查詢客戶端收到信息后,對(duì)主域名信息根據(jù)RFC1034和RFC1035的規(guī)定進(jìn)行解包使用;對(duì)相應(yīng)的子域名信息,通過OPT里面的相應(yīng)記錄里的type,和r-code提取出來,當(dāng)作該子域名的type和rcode使用,具體type和rcode的使用規(guī)則參照RFC1034和RFC1035的規(guī)則。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。