亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

應(yīng)用于dns查詢的ip地址列表存儲(chǔ)和查詢方法

文檔序號(hào):9870455閱讀:864來(lái)源:國(guó)知局
應(yīng)用于dns查詢的ip地址列表存儲(chǔ)和查詢方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于信息技術(shù)、DNS技術(shù)領(lǐng)域,具體設(shè)及一種應(yīng)用于DNS查詢的IP地址列表 存儲(chǔ)和查詢方法。
【背景技術(shù)】
[0002] IP地址的匹配廣泛存在于DNS(Domain Name System,域名系統(tǒng))查詢過(guò)程中,比如 服務(wù)器端的查詢黑白名單、View(視圖)的客戶端的IP地址列表、遞歸服務(wù)器的Sodlist(路 由重定向)配置等等,IP地址列表的快速匹配在一定程度上影響著查詢的效率。
[0003] Radix Tree(基數(shù)樹)是常用的IP路由存儲(chǔ)結(jié)構(gòu),實(shí)際上IP路由查找正是Radix 化ee最常用的領(lǐng)域之一。在存儲(chǔ)IP數(shù)據(jù),尤其是CIDR(無(wú)類別域間路由,Classless Inter-Domain Routing) 的 時(shí)候, Radix 退化成一種二叉樹 ,左右子樹分別表示 IP 的二進(jìn)制表示的 1 或者0,所W對(duì)于IPv4,Radix樹的最大高度是32。對(duì)于CIDR的存儲(chǔ),只需要存儲(chǔ)前綴位就可 W了,比如存儲(chǔ)130.50.30.40/18,只需要存儲(chǔ)前18位即可,后面的14位不用存儲(chǔ),因?yàn)樵诓?找ACL(訪問(wèn)控制列表)的時(shí)候,只要對(duì)比到第18位就可W確定是否讓此IP通過(guò)驗(yàn)證。BIND9 中A化的實(shí)現(xiàn)就是基于Radix Tree eNginx(-種高性能的服務(wù)器,Engine X)中的Geo模塊 (用于作全局負(fù)載功能)也用Radix化ee存儲(chǔ)CIDR形式的IP。
[0004] 除此之外常用的IP存儲(chǔ)結(jié)構(gòu)還有順序表、四級(jí)HA甜表等。各結(jié)構(gòu)的復(fù)雜度如表1所 示:
[0005] 表1.不同IP存儲(chǔ)結(jié)構(gòu)的復(fù)雜度
[0007] 運(yùn)些結(jié)構(gòu)有個(gè)共同的缺點(diǎn),W Vi ew為例,配置N個(gè)Vi ew時(shí),就需要建立N個(gè)樹(表), 匹配一條IP時(shí),最壞的情況是需要查找N次。如果業(yè)務(wù)較多的情況下(先匹配黑白名單、再匹 配權(quán)威View,最后匹配遞歸Sodlist),查詢次數(shù)(時(shí)間)不論采用哪種結(jié)構(gòu)都會(huì)成倍增長(zhǎng)。

【發(fā)明內(nèi)容】

[0008] 本發(fā)明針對(duì)上述問(wèn)題,提供一種應(yīng)用于DNS查詢的IP地址列表存儲(chǔ)和查詢方法,能 夠快速進(jìn)行IP匹配,提高DNS查詢的效率,并降低配置的策略與業(yè)務(wù)對(duì)查詢效率的影響。
[0009] 本發(fā)明中,"業(yè)務(wù)"是指需要實(shí)現(xiàn)的不同功能,比如視圖功能、訪問(wèn)控制功能等;"策 略"是指每個(gè)功能下的不同策略標(biāo)識(shí),比如視圖功能下配置視圖一、視圖二,或者訪問(wèn)控制 功能配置允許訪問(wèn)、拒絕訪問(wèn)等。
[0010] 本發(fā)明采用的技術(shù)方案如下:
[0011] -種IP地址列表存儲(chǔ)方法,其特征在于,包括如下步驟:
[0012] I)將每個(gè)策略的IP地址列表進(jìn)行去重處理,然后進(jìn)行存儲(chǔ);
[0013] 2)將每個(gè)業(yè)務(wù)的不同策略的IP地址列表進(jìn)行合并,構(gòu)建成"IP地址列表+策略"的 形式并存儲(chǔ),合并過(guò)程中視業(yè)務(wù)要求遵循IP最長(zhǎng)匹配原則或者優(yōu)先級(jí)原則;
[0014] 3)將不同業(yè)務(wù)的"IP地址列表+策略"存儲(chǔ)結(jié)構(gòu)繼續(xù)進(jìn)行合并,構(gòu)建成"IP地址列表 +業(yè)務(wù)+策略"的形式并存儲(chǔ);
[0015] 4)對(duì)"IP地址列表+業(yè)務(wù)+策略"的存儲(chǔ)結(jié)構(gòu)按照IP地址列表起始地址大小進(jìn)行排 序。
[0016] 進(jìn)一步地,步驟2)所述IP最長(zhǎng)匹配原則是指收到一個(gè)IP數(shù)據(jù)包時(shí),將數(shù)據(jù)包的目 的IP地址與IP列表中的表項(xiàng)進(jìn)行逐位查找,直到找到匹配度最長(zhǎng)的條目;所述優(yōu)先級(jí)原則 是指收到一個(gè)IP數(shù)據(jù)包時(shí),將數(shù)據(jù)包的目的IP地址與IP列表中的表項(xiàng)進(jìn)行匹配,找到匹配 時(shí)優(yōu)先級(jí)最局的條目。
[0017] 進(jìn)一步地,步驟1)采用下列方式之一存儲(chǔ)每個(gè)策略的IP地址列表:紅黑樹、數(shù)組、 鏈表。
[0018] 進(jìn)一步地,步驟2)和步驟3)采用下列方式之一存儲(chǔ)合并后的IP地址列表:數(shù)組、 Radi X樹、四級(jí)HA甜表。
[0019] 進(jìn)一步地,步驟2)和步驟3)采用數(shù)組存儲(chǔ)合并后的IP地址列表,并將形成的"IP地 址列表+業(yè)務(wù)+策略"的數(shù)組拆為兩個(gè)數(shù)組W提高查詢效率,其中,數(shù)組一存儲(chǔ)IP起始地址, 數(shù)組二存儲(chǔ)"IP結(jié)束地址+業(yè)務(wù)+策略";在查詢時(shí)對(duì)IP起始地址的數(shù)組采用二分法進(jìn)行查 詢,查到后獲取數(shù)組下標(biāo),到對(duì)應(yīng)的另一 IP數(shù)組中獲取對(duì)應(yīng)的業(yè)務(wù)及策略。
[0020] 進(jìn)一步地,步驟2)在合并的過(guò)程中根據(jù)優(yōu)先級(jí)進(jìn)行IP段的拆分、去重,優(yōu)先級(jí)相同 時(shí)按照IP最長(zhǎng)匹配進(jìn)行拆分、去重。
[0021] 進(jìn)一步地,步驟3)在不同業(yè)務(wù)直接合并時(shí)不存在優(yōu)先級(jí)的區(qū)別,W保證數(shù)組覆蓋 每個(gè)業(yè)務(wù)的每個(gè)策略的所有IP段。
[0022] -種DNS查詢方法,首先權(quán)威服務(wù)器或遞歸服務(wù)器采用上述方法對(duì)IP地址列表進(jìn) 行存儲(chǔ),然后通過(guò)存儲(chǔ)的IP地址列表進(jìn)行DNS查詢。
[0023] 進(jìn)一步地,將形成的"IP地址列表+業(yè)務(wù)+策略"拆為兩個(gè)數(shù)組W提高查詢效率,其 中,數(shù)組一存儲(chǔ)IP起始地址,數(shù)組二存儲(chǔ)"IP結(jié)束地址+業(yè)務(wù)+策略",然后對(duì)IP起始地址的數(shù) 組采用二分法進(jìn)行查詢,查到后獲取數(shù)組下標(biāo),到對(duì)應(yīng)的另一IP數(shù)組中獲取對(duì)應(yīng)的業(yè)務(wù)及 策略。
[0024] 本發(fā)明的關(guān)鍵點(diǎn)是:1)每個(gè)策略的IP地址列表儲(chǔ)存時(shí),可W采用紅黑樹的方式進(jìn) 行存儲(chǔ),WIP段為key,W業(yè)務(wù)數(shù)據(jù)為infO;也可W視情況采用其他方式存儲(chǔ),如采用數(shù)組、 鏈表等方式存儲(chǔ)IP地址。2)合并IP地址列表時(shí)有兩種原則,IP最長(zhǎng)匹配原則和優(yōu)先級(jí)原則。 根據(jù)業(yè)務(wù)的不同,在策略合并的過(guò)程中采用不同的原則,因此,每個(gè)業(yè)務(wù)的保存結(jié)構(gòu)需要進(jìn) 行相應(yīng)的變化。W紅黑樹為例,key值均為IP地址,info的值需要視業(yè)務(wù)的不同存儲(chǔ)view, id/acl_denyW及優(yōu)先級(jí)。3)二分法查詢需要對(duì)數(shù)組進(jìn)行排序,不同的業(yè)務(wù)的IP數(shù)組進(jìn)行合 并后,需要進(jìn)一步排序。4)該存儲(chǔ)結(jié)構(gòu)對(duì)配置的策略個(gè)數(shù)與業(yè)務(wù)個(gè)數(shù)不做限制。本發(fā)明對(duì)配 置的業(yè)務(wù)類型、策略類型都不作要求,可作為通用模塊廣泛應(yīng)用于權(quán)威、遞歸服務(wù)器。
[0025] 本發(fā)明的技術(shù)核屯、在于通過(guò)IP地址的合并、拆分將不同業(yè)務(wù)的IP地址列表整合到 一起,對(duì)于整合后的IP地址列表的存儲(chǔ)方式和查詢方法除了上述實(shí)施方式提出的通過(guò)兩個(gè) 數(shù)組進(jìn)行存儲(chǔ)并利用二分法進(jìn)行查詢W外,可根據(jù)具體應(yīng)用場(chǎng)景進(jìn)行靈活調(diào)整,并不局限 于利用數(shù)組的方式進(jìn)行存儲(chǔ),也不局限于利用二分法的方式進(jìn)行查詢。前文提到的Radix 樹、四級(jí)HASH表都可W用于存儲(chǔ)合并拆分后的IP地址列表,具體使用時(shí)根據(jù)存儲(chǔ)空間和時(shí) 間復(fù)雜度的取舍,選擇合適的存儲(chǔ)方式和查詢算法。
[00%]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:
[0027] 1)二分法查詢的復(fù)雜度為0(L〇G2(N)),W2個(gè)View為例,每個(gè)View的match_ clients(客戶端IP列表)的IP列表為2~10,傳統(tǒng)的二分法最壞查找次數(shù)為10+10次,合并為2 ' 10巧的數(shù)組后,最壞查找次數(shù)為11次。
[00%] 2)DNS查詢過(guò)程中需要進(jìn)行多次IP匹配,采用上述結(jié)構(gòu)后,只需要一次查詢就可 W,減少查詢次數(shù),W查詢黑白名單+View為例,黑白名單IP列表為2~10,View的match, clients的IP列表為2~10,采用傳統(tǒng)的結(jié)構(gòu)查詢的次數(shù)為10+10次,采用新的存儲(chǔ)方式后,查 詢的次數(shù)為11次。
[0029] 3)采用W上方案后,DNS查詢過(guò)程中,策略W及業(yè)務(wù)的配置個(gè)數(shù)對(duì)查詢時(shí)間的影響 大大降低。本發(fā)明在現(xiàn)有的IP存儲(chǔ)結(jié)構(gòu)上上進(jìn)行了改進(jìn),操作簡(jiǎn)單,能夠減少查詢次數(shù),提 高查詢效率。
【附圖說(shuō)明】
[0030] 圖1是實(shí)施例1中按照優(yōu)先級(jí)原則進(jìn)行業(yè)務(wù)合并的示意圖。
[0031] 圖2是實(shí)施例1中按照IP最長(zhǎng)匹配原則進(jìn)行業(yè)務(wù)合并的示意圖。
[0032] 圖3是實(shí)施例1中合并后的數(shù)組示意圖。
[0033] 圖4是實(shí)施例2中按照各IP數(shù)組內(nèi)合并的示意圖。
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1