xsZb0psbhgYQBJp5v6Iwne3CM/A6aA7xX
[0072]veYbCgh4Gwrq+a6NjsGj s4uCH00PllkjbtCYTZcTZ3X0i6p02PXLlnE/
[0073]hfX+lYk5fgSAkXy3j0YP57vilpbNQIZ6TDtvFQsLfAuowUGeX7zvSAeF
[0074]3gkjhn0TMkwCYkVRKuKL25AgF2ej3u6NjHVrqkH0a2nd26r0QAHbYdr+
[0075]f1SKujdaJTffb+ws8YSc5xSUF0GMFuPJ+cizffB2raSDEcuyKZ2vTenYBN
[0076]g/foxqU9fZbDIe3yjffKmNL/u45aPCxLCzdj9R3X25w7j6KLQ2pkvy4DL
[0077]62/fJIJjFtQhU0BC/0boGTbTnlzfwSS0R0Zr6rZwIqs0/mm2FwGEjA12
[0078]KvA0TgkSbHLf+k0msvNLh7EgBNxrlN5tjffuqUD3BHUFnrXejJ9P86kT/eyab6xGiVmI =
[0079]vmware.com.411 IN RRSIG DNSKEY 10 2 600 20150219172007 2015012017200742203vmware.com.
[0080]0aKGhLM6cktkIvkpdmlsLypMyzY0uqE4pkaYfVfQffgH25IMAvEHXa/Mz
[0081]uZDvUqAx6iI8nwpHneG/xalAG7dvd2w3qwNQThI/g5QPXJ6oSaiBeqXy
[0082]s0c47I86CNgudoQqHQ10XqPb8PWI51ffHQcIEd2xf8Y8gPYz6c81bNxZ YEc =;;Querytime:209msec
[0083]SERVER: 8.8.8.8#53 (8.8.8.8)
[0084]WHEN:Wed Jan 21 18:43:17 PST 2015
[0085]MSG SIZE rcvd:1761
[0086]DNS響應(yīng)消息共有1761個(gè)字節(jié),其中包括3個(gè)DNSKEY資源記錄、3個(gè)RRSIG資源記錄和1個(gè)OPT資源記錄。在實(shí)際的網(wǎng)絡(luò)環(huán)境中,1761字節(jié)的響應(yīng)消息在傳輸過程中一般會(huì)發(fā)生IP層分割并被丟棄,導(dǎo)致DNS解析失敗。
[0087]本發(fā)明采用應(yīng)用層DNS消息分割的方式,在服務(wù)器端將響應(yīng)消息分成三個(gè)分片:第一個(gè)分片中包含兩個(gè)128字節(jié)的DNSKEK資源記錄、兩個(gè)128字節(jié)的RRSIG資源記錄和一個(gè)OPT資源記錄;第二個(gè)分片包含一個(gè)512字節(jié)的DNSKEY資源記錄和一個(gè)OPT資源記錄;第三個(gè)分片包含一個(gè)512字節(jié)的RRSIG資源記錄和一個(gè)OPT資源記錄。每個(gè)0ΡΤ資源記錄的FRAGMENT選項(xiàng)中包含總的分片數(shù)3和當(dāng)前的分片序列號(hào)1、2、3。
[0088]三個(gè)分片因?yàn)榘叽缱銐蛐?,穿過網(wǎng)絡(luò)時(shí)不會(huì)被分割并丟棄。解析器依次接受到所有的三個(gè)分片,并重組成完整的DNS響應(yīng)消息。所以說通過提出的應(yīng)用層DNS響應(yīng)消息分割的方案能夠很好的擴(kuò)展DNS響應(yīng)包的大小,保證了在DNS系統(tǒng)中一些新的擴(kuò)展方案的順利實(shí)施。
【主權(quán)項(xiàng)】
1.一種基于應(yīng)用層DNS消息分割的DNS包擴(kuò)展方法,其特征在于,基于應(yīng)用層DNS消息分割的方案能夠突破DNS響應(yīng)消息512字節(jié)的限制,采用在應(yīng)用層進(jìn)行DNS消息的分割和重組,并通過UDP協(xié)議傳輸,保持了 DNS協(xié)議的靈活性同時(shí)實(shí)現(xiàn)了 DNS消息的可擴(kuò)展性;該方法包括:需要說明DNS消息分割的標(biāo)準(zhǔn)、DNS消息分片信息的表示、應(yīng)用層DNS消息分割功能的標(biāo)識(shí)和識(shí)別、分片重裝的工作原理; 所述說明DNS消息分割的標(biāo)準(zhǔn),傳統(tǒng)的DNS協(xié)議已經(jīng)沒有足夠的字段進(jìn)行協(xié)議擴(kuò)展,而EDNSO協(xié)議是一個(gè)向后兼容并支持DNS進(jìn)一步擴(kuò)展的協(xié)議,所以擴(kuò)展方案是以EDNSO為基礎(chǔ),并在EDNSO之上增加一些新的字段來實(shí)現(xiàn); 所述DNS消息分片信息的表示,首先在ENDSO的OPT偽資源記錄的Z域中定義一個(gè)AF位來標(biāo)識(shí)當(dāng)前的DNS邏輯實(shí)體對(duì)應(yīng)用層DNS消息分割的支持,由于在Z字段中第一個(gè)位已經(jīng)被DNSSEC所使用,所以將第二個(gè)位定義為AF位; 所述應(yīng)用層DNS消息分割功能的標(biāo)識(shí)和識(shí)別,在OPT的RDATA字段擴(kuò)展一個(gè)新的FRAGMENT選項(xiàng)字段來標(biāo)識(shí)每個(gè)分片的信息,考慮到UDP不存在ACK機(jī)制,一個(gè)8bit位的分片數(shù)量是比較適中的;選項(xiàng)的數(shù)據(jù)部分包含兩個(gè)字節(jié),第一個(gè)字節(jié)定義當(dāng)前的DNS消息包含幾個(gè)分片,第二個(gè)字節(jié)表示當(dāng)前分片的序號(hào);基于應(yīng)用層DNS消息分割的工作流程,需要在DNS標(biāo)準(zhǔn)協(xié)議中擴(kuò)展的新的字段,EDNS0規(guī)定最大的DNS消息的尺寸是4096字節(jié),這個(gè)長度基本能夠滿足當(dāng)前的各方面需求,如果像TXT資源記錄那樣不能容納在一個(gè)最大為4096的DNS包中,可以切換到基于TCP的DNS傳輸方案。2.根據(jù)權(quán)利要求1所述一種基于應(yīng)用層DNS消息分割的DNS包擴(kuò)展方法,其特征在于,所述應(yīng)用層DNS消息分割的工作流程,當(dāng)服務(wù)器端接受到請求消息后,確認(rèn)DNS請求消息的AF位置為1,同時(shí)認(rèn)為響應(yīng)消息足夠大,將進(jìn)行分片;如果當(dāng)前的服務(wù)器不支持應(yīng)用層DNS消息分割方案,將忽略AF位,將TC位置為1,按照協(xié)議中的流程返回響應(yīng)消息;如果當(dāng)前的服務(wù)器支持應(yīng)用層DNS消息分割的方案,將會(huì)對(duì)響應(yīng)消息進(jìn)行分片;分片的標(biāo)準(zhǔn)是建議每個(gè)分片盡量不超過512字節(jié),并按照資源記錄的邊界進(jìn)行分割,且每個(gè)分片的大小不一定必須一致,但同時(shí)分片的大小不能太小,以防止碎片化;同時(shí)將AF位置為1,將TC位置為0,F(xiàn)RAGMENT選項(xiàng)中填寫所有分片的數(shù)量和每個(gè)分片的序號(hào),同時(shí)按照每個(gè)DNS分片中的各類資源記錄的數(shù)量,如實(shí)填寫每個(gè)分片中DNS報(bào)頭的資源記錄的計(jì)數(shù)值,其它字段的填寫按照一般的DNS協(xié)議執(zhí)行,且每個(gè)分片所填的信息都一致。3.根據(jù)權(quán)利要求1所述一種基于應(yīng)用層DNS消息分割的DNS包擴(kuò)展方法,其特征在于,所述分片重裝的工作原理以DNS系統(tǒng)中不同實(shí)體的行為來說明: 一個(gè)支持應(yīng)用層DNS消息分割的解析器,將其OPT中Z域的AF位置為1,將FRAGMENT選項(xiàng)中的 Total Fragment Number 和 Current Fragment Number 分別置為 0,由于擴(kuò)展了該方案后已經(jīng)不存在包尺寸的限制,所以在解析器中,應(yīng)該將所支持的最大UDP負(fù)載指定為最大值4096字節(jié),4096字節(jié)的DNS響應(yīng)消息尺寸目前足夠能夠滿足當(dāng)前各種需求;請求消息的其它部分同普通的支持H)NS0的DNS消息一致。4.根據(jù)權(quán)利要求3所述一種基于應(yīng)用層DNS消息分割的DNS包擴(kuò)展方法,其特征在于,所述應(yīng)用層DNS消息分割的解析器,支持應(yīng)用層DNS消息分割的解析器需要記錄從發(fā)送時(shí)刻到接收到第一個(gè)DNS響應(yīng)消息分片的時(shí)刻的時(shí)間間隔,作為一個(gè)DNS請求的RTT值,當(dāng)解析器接收到第一個(gè)DNS響應(yīng)消息的分片并確認(rèn)AF位為1后,啟動(dòng)計(jì)時(shí)器和重裝隊(duì)列等待剩余分片;計(jì)時(shí)器的等待時(shí)間是一個(gè)RTT,如果在一個(gè)RTT時(shí)間間隔之內(nèi)接收到了所有的分片,則終止計(jì)時(shí)器,將所有分片重新組裝成完整的DNS響應(yīng)消息,并銷毀隊(duì)列,如果RTT到期,仍未收到所有的分片,則認(rèn)為部分的分片丟失或其它情況存在,這時(shí)已終止計(jì)時(shí),并銷毀等待隊(duì)列;并認(rèn)定DNS請求失敗,則采用TCP發(fā)送DNS請求。5.根據(jù)權(quán)利要求3所述一種基于應(yīng)用層DNS消息分割的DNS包擴(kuò)展方法,其特征在于,所述支持應(yīng)用層消息分割的服務(wù)器,DNS服務(wù)器支持應(yīng)用層DNS消息分割機(jī)制確認(rèn)響應(yīng)消息足夠大需要被分割,且確認(rèn)請求服務(wù)的解析器也支持應(yīng)用層DNS消息分割,則DNS服務(wù)器根據(jù)資源記錄集的大小將DNS相應(yīng)消息分割成大小適中的DNS響應(yīng)消息的分片,并分別以UDP包的形式發(fā)送出去;在每個(gè)分片中的AF位置為1,F(xiàn)RAGMENT選項(xiàng)中的Total FragmentNumber和Current Fragment Number分別設(shè)置為總的分片數(shù)量和當(dāng)前的分片的序號(hào)。
【專利摘要】本發(fā)明公開了屬于互聯(lián)網(wǎng)通信技術(shù)領(lǐng)域的一種基于應(yīng)用層DNS消息分割的DNS包擴(kuò)展方法。該方法包括:需要說明DNS消息分割的標(biāo)準(zhǔn)、DNS消息分片信息的表示、應(yīng)用層DNS消息分割功能的標(biāo)識(shí)和識(shí)別、分片重裝的工作原理,采用在應(yīng)用層進(jìn)行DNS消息的分割和重組,能夠突破DNS響應(yīng)消息512字節(jié)的限制,并通過UDP協(xié)議傳輸,保持了DNS協(xié)議的靈活性同時(shí)實(shí)現(xiàn)了DNS消息的可擴(kuò)展性;本方法不存在因IP分片在中間件中被丟棄導(dǎo)致的在接收端IP分片重新組裝失敗的問題;不需要建立TCP連接,因而能夠降低響應(yīng)時(shí)間。服務(wù)器端不需要維護(hù)TCP連接的狀態(tài)信息同時(shí),相對(duì)基于TCP的方案有優(yōu)勢。
【IPC分類】H04L29/12
【公開號(hào)】CN105306621
【申請?zhí)枴緾N201510822527
【發(fā)明人】宋林健, 劉 東, 李震, 李鳳民, 潘居臣, 宋松, 余冬, 萬潤夏, 龔道彪
【申請人】北京天地互連信息技術(shù)有限公司, 中國石油天然氣股份有限公司華北油田分公司
【公開日】2016年2月3日
【申請日】2015年11月24日