• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于雙重檢索修正域名系統(tǒng)的最長(zhǎng)匹配規(guī)則

      2023-09-18 02:23:52趙寶康李安藝
      關(guān)鍵詞:域名雙重號(hào)碼

      周 聰,陶 靜,趙寶康,李安藝

      (國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)

      1 引言

      隨著互聯(lián)網(wǎng)的快速發(fā)展,為了方便人們利用域名形式訪問(wèn)網(wǎng)絡(luò)中的主機(jī),域名服務(wù)系統(tǒng)DNS(Domain Name System)應(yīng)運(yùn)而生。RFC1034[1]取代之前的RFC882系統(tǒng)地描述了DNS的基本思想(標(biāo)志著DNS的誕生),其原理是客戶(hù)端根據(jù)查詢(xún)得到的資源記錄類(lèi)型和關(guān)聯(lián)數(shù)據(jù)進(jìn)行下一步的通信。

      Linux系統(tǒng)的DNS服務(wù)由BIND (Berkeley Internet Name Domain)軟件實(shí)現(xiàn),目前95%以上的DNS服務(wù)器都是由其搭建的[2]。中小型企業(yè)也可以選擇微軟公司的Windows server系列搭建域名服務(wù)器。目前對(duì)域名解析系統(tǒng)的研究主要集中在安全性方面[3-6],也有文獻(xiàn)將其與大數(shù)據(jù)方法結(jié)合后實(shí)現(xiàn)數(shù)據(jù)可視化[7],還有去中心化架構(gòu)的DNS系統(tǒng)設(shè)計(jì)[8]。

      在安全性方面,針對(duì)隱私保護(hù)問(wèn)題,由于DNS基于明文傳輸數(shù)據(jù),使用加密技術(shù)將DNS請(qǐng)求與響應(yīng)的數(shù)據(jù)包進(jìn)行加密,從而保證數(shù)據(jù)包不被監(jiān)聽(tīng)和利用,其代表性技術(shù)包括DoT(DNS-over-TLS)[9]、DoH(DNS-over-HTTPS)[10]、DNS-over-QUIC(Quick UDP Internet Connections)[11]和DNSCrypt[12]。在性能優(yōu)化設(shè)計(jì)方面,張偉等[13]設(shè)計(jì)了一種支持多進(jìn)程共享的高效哈希表,用于存儲(chǔ)域名數(shù)據(jù)、實(shí)現(xiàn)域名快速查詢(xún)和解決緩存大量域名時(shí)的哈希沖突問(wèn)題;還依據(jù)域名和資源記錄類(lèi)型預(yù)先構(gòu)建應(yīng)答數(shù)據(jù),對(duì)重復(fù)域名數(shù)據(jù)進(jìn)行壓縮,加快DNS請(qǐng)求處理時(shí)構(gòu)建應(yīng)答報(bào)文的速度,提高緩存服務(wù)器的處理性能。秦豐林等[14]根據(jù)雙棧環(huán)境的特點(diǎn),設(shè)計(jì)了IPv6協(xié)議的地址自動(dòng)配置機(jī)制,為用戶(hù)終端無(wú)感知地自動(dòng)配置DNSv6服務(wù)器,通過(guò)增加DNS配置的冗余方式來(lái)提高DNS服務(wù)的可靠性。

      DNSSEC(Domain Name System SECurity extensions)[15]協(xié)議引入了數(shù)字簽名技術(shù),通過(guò)對(duì)響應(yīng)數(shù)據(jù)進(jìn)行簽名可以驗(yàn)證響應(yīng)結(jié)果的正確性。針對(duì)實(shí)施條件中存在的安全隱患,Bau等[16]模擬了DNSSEC中的加解密操作并成功發(fā)現(xiàn)了一些偽造的漏洞。Herzberg等[17]分析了DNSSEC面臨的挑戰(zhàn)和存在的不足。Goldberg等[18]的研究表明DNSSEC部署很容易受到區(qū)域枚舉攻擊。

      DNS技術(shù)旨在幫忙用戶(hù)以容易記憶的方式檢索網(wǎng)絡(luò)資源,從互聯(lián)網(wǎng)出現(xiàn)之初使用IP地址通信,到目前的計(jì)算機(jī)網(wǎng)絡(luò)尋訪定位方式,該項(xiàng)技術(shù)已取得了很大的發(fā)展,DNS域名服務(wù)被應(yīng)用于更多的領(lǐng)域。彭巍等[19]基于Hadoop技術(shù)分析運(yùn)營(yíng)商的DNS海量數(shù)據(jù),并對(duì)分析的結(jié)果進(jìn)行闡述,通過(guò)報(bào)表、圖形等多種方式進(jìn)行呈現(xiàn),實(shí)現(xiàn)DNS數(shù)據(jù)多維度分析。蔡榮彥等[20]提出了基于域名關(guān)聯(lián)的惡意移動(dòng)應(yīng)用檢測(cè)方法,以DNS域名為檢測(cè)分析對(duì)象識(shí)別網(wǎng)絡(luò)流量中的惡意域名,利用DNS請(qǐng)求流量的時(shí)間特征尋找惡意域名的關(guān)聯(lián)域名,并將關(guān)聯(lián)域名與文本分類(lèi)樣本庫(kù)進(jìn)行對(duì)比,確定惡意移動(dòng)應(yīng)用的名稱(chēng)。Cui等[21]利用數(shù)據(jù)挖掘的方法對(duì)域名的日志數(shù)據(jù)進(jìn)行分析,從而檢測(cè)出異常。

      在DNS去中心化設(shè)計(jì)方面,朱國(guó)庫(kù)等[22]設(shè)計(jì)了根域去中心化的方案,從而形成聯(lián)盟來(lái)對(duì)根服務(wù)器的數(shù)據(jù)進(jìn)行解析;朱建明等[23]提出了利用區(qū)塊鏈來(lái)構(gòu)建數(shù)據(jù)動(dòng)態(tài)認(rèn)證的模型;趙赫等[24]提出用區(qū)塊鏈來(lái)保護(hù)數(shù)據(jù)。

      ENUM(Electronic Numbers to URI Mapping)是電話(huà)號(hào)碼映射工作組制定的協(xié)議[25,26],它定義了將E.164號(hào)碼映射為域名的規(guī)則,以及在互聯(lián)網(wǎng)DNS系統(tǒng)中存儲(chǔ)該域名信息的方法。每個(gè)E.164號(hào)碼轉(zhuǎn)化成的域名對(duì)應(yīng)系統(tǒng)的唯一資源標(biāo)識(shí),從而使其成為可以在互聯(lián)網(wǎng)中使用的網(wǎng)絡(luò)地址。采用ENUM技術(shù),通過(guò)電話(huà)號(hào)碼可以獲得用戶(hù)郵件、IP傳真和個(gè)人網(wǎng)頁(yè)等多種信息。

      ENUM技術(shù)是當(dāng)前計(jì)算機(jī)網(wǎng)絡(luò)資源尋址方式的熱點(diǎn),在三網(wǎng)融合中被大量應(yīng)用[27]。該技術(shù)的核心分為3部分:電話(huà)號(hào)碼預(yù)處理、DNS配置和ENUM解析。

      在電話(huà)號(hào)碼預(yù)處理階段:當(dāng)用戶(hù)輸入的號(hào)碼為“+86-01-234567”時(shí),去掉數(shù)字以外的其它符號(hào),并在數(shù)字之前加“.”,得到“8.6.0.1.2.3.4.5.6.7”,將其反轉(zhuǎn)并添加后綴得到符號(hào)串“7.6.5.4.3.2.1.0.6.8.e164.arpa”。在DNS配置階段:上述字符串按NAPTR(Naming Authority PoinTeR)記錄[1]的格式存儲(chǔ)于區(qū)域文件。在ENUM解析階段:當(dāng)用戶(hù)使用支持ENUM技術(shù)的設(shè)備輸入電話(huà)號(hào)碼后,該設(shè)備完成號(hào)碼預(yù)處理,并將字符串按DNS協(xié)議發(fā)出,從DNS服務(wù)器得到與此ENUM相應(yīng)的唯一資源標(biāo)識(shí)集合,用戶(hù)根據(jù)自身的需求選擇相關(guān)的資源,繼續(xù)執(zhí)行相應(yīng)的協(xié)議完成操作。如:用戶(hù)在Outlook Express輸入“+86-01-234567”,DNS服務(wù)器將對(duì)應(yīng)的“Sip:xxx”和“Mailto:xxx”等資源標(biāo)識(shí)給用戶(hù),用戶(hù)若選擇“Mailto:xxx”,可與電話(huà)號(hào)碼為“+86-01-234567”的使用者進(jìn)行郵件溝通。

      2 最長(zhǎng)匹配規(guī)則

      ENUM支持在NAPTR記錄中使用符號(hào)“*”,以實(shí)現(xiàn)解析過(guò)程模糊匹配。模糊匹配過(guò)程依據(jù)最長(zhǎng)匹配策略,如下所示:

      以BIND(版本9.7.3)為例,在DNS配置階段,使用4個(gè)號(hào)碼:1*,12,13*,141。注冊(cè)NAPTR記錄如下:

      *.1.e164.arpa.IN NAPTR 1 1 “U” “sip+E2U” “resolving result:A”

      2.1.e164.arpa.IN NAPTR 1 1 “U” “sip+E2U” “resolving result:B”

      *.3.1.e164.arpa.IN NAPTR 1 1 “U” “sip+E2U” “resolving result:C”

      1.4.1.e164.arpa.IN NAPTR 1 1 “U” “sip+E2U” “resolving result:D”

      當(dāng)用戶(hù)需要查詢(xún)號(hào)碼1311時(shí),按最長(zhǎng)匹配規(guī)則,域名系統(tǒng)BIND返回解析結(jié)果C;當(dāng)用戶(hù)查詢(xún)號(hào)碼13,14或者142時(shí),域名系統(tǒng)BIND返回“無(wú)結(jié)果”,以號(hào)碼142為例,按最長(zhǎng)匹配規(guī)則,用戶(hù)應(yīng)該收到解析結(jié)果A。

      為進(jìn)一步驗(yàn)證RFC關(guān)于最長(zhǎng)匹配規(guī)則的定義,在Windows server 2003上注冊(cè)相同號(hào)碼進(jìn)行解析,兩者的解析結(jié)果之間存在差異,詳細(xì)如表1所示。由此可知:BIND系統(tǒng)的最長(zhǎng)匹配規(guī)則功能不符合RFC描述。

      Table 1 BIND and Windows server’s domain name resolution

      通過(guò)比較不同的版本BIND-9.8、BIND-9.9和BIND-9.17.18,其解析的結(jié)果與BIND-9.7.3的一致,即后續(xù)版本的最長(zhǎng)匹配規(guī)則功能亦不符合RFC描述。

      3 雙重檢索規(guī)則

      根據(jù)表1的解析過(guò)程,可將結(jié)果分為4類(lèi):

      (1)Ⅰ類(lèi)(表1的第2個(gè)和第8個(gè)用例):在DNS系統(tǒng)中明確注冊(cè)的記錄,如號(hào)碼12和141,BIND與Windows server均能得到正確的解析結(jié)果。

      (2)Ⅱ類(lèi)(表1的第6個(gè)和第7個(gè)用例):在DNS系統(tǒng)中注冊(cè)通配符“*”記錄,可匹配變長(zhǎng)的號(hào)碼,如果已注冊(cè)13*,則131和1311將被解析為其結(jié)果。

      (3)Ⅲ類(lèi)(表1的第3個(gè)、第4個(gè)和第9個(gè)用例):按RFC1034關(guān)于通配符的定義,當(dāng)出現(xiàn)“*”時(shí),解析結(jié)果應(yīng)滿(mǎn)足模糊檢索的要求,但BIND與Windows server的解析結(jié)果存在差異。

      從用戶(hù)的角度來(lái)看,最長(zhǎng)匹配規(guī)則更趨向于認(rèn)同Windows server的解析結(jié)果,與RFC1034的描述一致。

      (4)Ⅳ類(lèi)(表1的第1個(gè)和第5個(gè)用例):不滿(mǎn)足上述3種場(chǎng)景,即未注冊(cè)的記錄。

      針對(duì)第Ⅲ類(lèi)情況,本文提出了雙重檢索匹配算法,即:在BIND系統(tǒng)中,當(dāng)號(hào)碼E無(wú)法獲得解析結(jié)果時(shí),系統(tǒng)生成一個(gè)新的號(hào)碼E′,以E′重新進(jìn)行檢索,最終結(jié)果返回至用戶(hù),具體流程如圖1所示。

      Figure 1 Search process comparison

      圖1a為原BIND系統(tǒng)的檢索流程,圖1b為改進(jìn)后的檢索流程。從圖1可知,當(dāng)號(hào)碼E的解析結(jié)果不存在時(shí),將生成新號(hào)碼E′再次檢索,故稱(chēng)為雙重檢索規(guī)則。

      由于系統(tǒng)在檢索前,需要保存檢索的內(nèi)容,所以在第2次檢索時(shí),需要先保持原號(hào)碼的檢索條件,重置新的檢索狀態(tài),執(zhí)行新號(hào)碼檢索后,恢復(fù)原號(hào)碼的檢索條件,并返回給用戶(hù)。

      為提高2次檢索的效率,本文設(shè)計(jì)新號(hào)碼生成算法,如算法1所示。

      算法1生成雙重檢索號(hào)碼E′

      輸入:待檢測(cè)的號(hào)碼E。

      輸出:新的號(hào)碼E′。

      步驟1若號(hào)碼E不包含*,退出;否則執(zhí)行步驟2。

      步驟2根據(jù)號(hào)碼E獲取區(qū)域文件名。

      步驟3獲取區(qū)域文件中所有記錄,形成2個(gè)鏈表ts與tn,其中ts以“*” 開(kāi)頭,tn以數(shù)字開(kāi)頭。若ts為*.1和*.3.1,則分別對(duì)應(yīng)號(hào)碼1*和13*;若tn為2.1和1.4.1,則分別對(duì)應(yīng)號(hào)碼12和141。

      步驟4若tn不為空,依次刪除號(hào)碼E的最低位,并與鏈表tn各項(xiàng)比較,如若存在相同項(xiàng),則置E′為空,跳轉(zhuǎn)至步驟6。若號(hào)碼E為123*,則與tn比較的字符串依次為2.1和1。

      步驟5若ts不為空,依次將號(hào)碼E的最低位置為“*”,并與鏈表ts各項(xiàng)比較,若存在相同項(xiàng),則置E′為ts的當(dāng)前值,跳轉(zhuǎn)至步驟6。若號(hào)碼E為123*,則與ts比較的字符串依次為*.2.1和*.1。

      步驟6清空鏈表ts和tn,關(guān)閉區(qū)域文件,返回E′。

      4 雙重檢索過(guò)程實(shí)現(xiàn)

      圖1b中的陰影部分通過(guò)調(diào)用原系統(tǒng)函數(shù)實(shí)現(xiàn),其它部分均在BIND系統(tǒng)的函數(shù)query_find中實(shí)現(xiàn)。

      (1)存在記錄判斷。

      此處為雙重檢索的入口,判斷記錄是否存在的標(biāo)志為變量result與type。第1次檢索完成后,result變量返回檢索結(jié)果。經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)值為196611(針對(duì)141注冊(cè)后無(wú)法解析142的場(chǎng)景)或65628(針對(duì)141注冊(cè)后無(wú)法解析14的場(chǎng)景),且變量type的值為35(ENUM記錄類(lèi)型的值)時(shí),需進(jìn)入圖1b的雙重檢索流程。

      (2)保護(hù)號(hào)碼E的檢索條件。

      號(hào)碼E的內(nèi)容(變量名為client→query.qname→ndate)與長(zhǎng)度(變量名為client→query.qname→length)分別存入臨時(shí)變量數(shù)據(jù)組t中。

      (3)重置檢索狀態(tài)。

      ①清空第1次的檢索結(jié)果,將變量fname→ndata,fname→length,fname→label和fname→attributes置空或置零。

      ②將號(hào)碼E′的內(nèi)容和長(zhǎng)度分別賦值檢索變量client→query.qname→ndate和client→query.qname→length。

      ③為檢索數(shù)量(變量名為segment)、標(biāo)識(shí)位(變量名為client→query.qname→label)、偏移量(變量名為client→query.qname→offsets)賦初值。

      (4)以號(hào)碼E′執(zhí)行檢索。

      調(diào)用原BIND的檢索方法dns_db_find(),但當(dāng)前狀態(tài)下檢索的內(nèi)容從第1次的號(hào)碼E變成為E′。

      (5)恢復(fù)號(hào)碼E檢索狀態(tài)。

      以E′完成檢索,恢復(fù)至號(hào)碼E時(shí)的狀態(tài),將臨時(shí)變量t的內(nèi)容分別賦值給lient→query.qname→ndate和client→query.qname→length。

      雙重檢索實(shí)際上是通過(guò)算法1找到了與號(hào)碼E最長(zhǎng)匹配的另一個(gè)新號(hào)碼E′,重新調(diào)用BIND的檢索方法得到新的結(jié)果,并恢復(fù)到原號(hào)碼E的情景返回給用戶(hù),這一過(guò)程對(duì)用戶(hù)透明。

      為了滿(mǎn)足BIND系統(tǒng)應(yīng)用DNSSEC[15]的要求,在重置初始化檢索狀態(tài)過(guò)程中將2個(gè)變量置為NULL即可,即node與rdateset→methods;其它變量與非DNSSEC處理過(guò)程一致。

      5 實(shí)驗(yàn)驗(yàn)證

      本文在BIND-9.7.3基礎(chǔ)上完成雙重檢索修改最長(zhǎng)匹配規(guī)則,對(duì)比前后2次的解析結(jié)果,如表2所示。

      Table 2 Domain name resolutions of BIND after being modified

      從表2可知,使用雙重檢索修正后,BIND的解析結(jié)果與Windows server 2003的解析結(jié)果一致,同時(shí)符合標(biāo)準(zhǔn)文獻(xiàn)RFC1034對(duì)通配符最長(zhǎng)匹配的定義。

      使用DNS性能測(cè)試工具dnsperf對(duì)雙重檢索修正后的BIND服務(wù)進(jìn)行測(cè)試,其每秒查詢(xún)次數(shù)(并發(fā)數(shù))、響應(yīng)時(shí)間2項(xiàng)指標(biāo)與修正前的基本一致,因此,修正過(guò)程對(duì)性能影響可忽略不計(jì),詳細(xì)數(shù)據(jù)如表3所示。

      Table 3 Performance of BIND before and after being modified

      表3的前1~6列為dnsperf配置的參數(shù):C指定客戶(hù)端數(shù)量;Q限制每秒查詢(xún)數(shù)量;i指定查詢(xún)的間隔;符號(hào)“√”表示當(dāng)前參數(shù)值有效,且值為表頭第2行的方框內(nèi)容。表3的后2列為dnsperf測(cè)試結(jié)果,在上述3個(gè)參數(shù)選定的前提下,每個(gè)場(chǎng)景運(yùn)行100次,分別計(jì)算查詢(xún)消耗時(shí)間和每秒查詢(xún)次數(shù)的平均值。由于某些場(chǎng)景的查詢(xún)消耗時(shí)間為0,符號(hào)“/”表示查詢(xún)結(jié)果無(wú)法計(jì)算。

      從表3可以看出,基于修改后的雙重檢索BIND服務(wù)與原服務(wù)性能在同一個(gè)量級(jí),兩者數(shù)值相差不大。

      通過(guò)計(jì)算每秒查詢(xún)次數(shù)的兩者之差與兩者之和的比值,比較兩者在每秒查詢(xún)次數(shù)上的相對(duì)偏差,其結(jié)果如圖2所示。

      Figure 2 Relative deviation of query times per second

      從圖2可知,3個(gè)場(chǎng)景的偏差非常小,如〈c,i,Q〉=〈1,10,1000〉、〈c,i,Q〉=〈100,1,1〉、〈c,i,Q〉=〈100,10,1〉;2個(gè)場(chǎng)景的偏差較大,如〈c,i,Q〉=〈100,1,1000〉、〈c,i,Q〉=〈100,10,1000〉。

      在用戶(hù)并發(fā)數(shù)與查詢(xún)總量增加的情況下,由于基于二次檢索的BIND服務(wù)查詢(xún)次數(shù)增加,性能與原BIND的偏差有所增長(zhǎng),相應(yīng)的性能有所下降,但都處于15%以下,性能影響不大。

      6 結(jié)束語(yǔ)

      BIND軟件在域名服務(wù)系統(tǒng)中占比很高,但實(shí)現(xiàn)最長(zhǎng)匹配功能時(shí)與RFC描述存在偏差,需要通過(guò)對(duì)比Windows server 解析結(jié)果進(jìn)一步確認(rèn)。本文在保持BIND原有架構(gòu)不變的基礎(chǔ)上,使用雙重檢索規(guī)則,修正后的BIND解析結(jié)果更符合RFC中關(guān)于最長(zhǎng)匹配規(guī)則的定義,同時(shí)不影響軟件性能。這種修改策略將為標(biāo)準(zhǔn)服務(wù)更多定制化需求提供了一種可行的方案。同時(shí),該系統(tǒng)已在實(shí)網(wǎng)中部署應(yīng)用。

      猜你喜歡
      域名雙重號(hào)碼
      自然與成長(zhǎng)的雙重變奏
      說(shuō)號(hào)碼 知顏色
      一個(gè)號(hào)碼,一個(gè)故事
      猜出新號(hào)碼
      化解“雙重目標(biāo)”之困
      如何購(gòu)買(mǎi)WordPress網(wǎng)站域名及綁定域名
      騰訊八百萬(wàn)美元收購(gòu)域名
      “雙重打擊”致恐龍滅絕
      這個(gè)號(hào)碼很吉祥
      頂級(jí)域名爭(zhēng)奪戰(zhàn):ICANN放出1930個(gè)通用頂級(jí)域名,申請(qǐng)者有上千家
      全椒县| 峡江县| 康定县| 梁河县| 江西省| 和顺县| 望谟县| 交城县| 林周县| 江华| 敦化市| 会昌县| 桂林市| 嘉定区| 桐梓县| 德保县| 特克斯县| 南部县| 海门市| 阿坝| 兴国县| 榆树市| 韩城市| 板桥市| 京山县| 精河县| 平顺县| 桐柏县| 琼海市| 怀远县| 北票市| 齐河县| 禹城市| 荃湾区| 分宜县| 长葛市| 松滋市| 仙游县| 淄博市| 安岳县| 台南市|