一種旁路緩存域名解析方法和系統(tǒng)的制作方法
【專利摘要】一種旁路緩存域名解析方法,包括:步驟S1000,客戶端發(fā)送DNS解析請求,所述DNS解析請求攜帶了域名和目標DNS服務器信息;步驟S2000,所述DNS解析請求經(jīng)分光器或者路由器被發(fā)送到外部網(wǎng)絡和DNS旁路緩存子系統(tǒng);步驟S3000,所述DNS旁路緩存子系統(tǒng)接收客戶端發(fā)送的域名系統(tǒng)DNS解析請求,確認所述DNS解析請求攜帶的域名和目標DNS服務器信息;步驟S4000,所述DNS旁路緩存子系統(tǒng)確定所述目標DNS服務器在黑名單中;步驟S5000,所述DNS旁路緩存子系統(tǒng)向所述客戶端返回域名解析結(jié)果。本發(fā)明可以提升通信運營商對用戶流量調(diào)度的能力。
【專利說明】一種旁路緩存域名解析方法和系統(tǒng)
【技術領域】
[0001] 本發(fā)明涉及一種旁路緩存域名解析方法和系統(tǒng)。
【背景技術】
[0002] 在IP (Internet Protocol,互聯(lián)網(wǎng)協(xié)議)網(wǎng)絡中,域名系統(tǒng)(Domain Name System, DNS)是因特網(wǎng)最關鍵的基礎服務之一,為眾多網(wǎng)絡應用提供根本性支撐,其主要功 能是將易于人們記憶的域名(Domain Name)與網(wǎng)絡可識別的IP地址作轉(zhuǎn)換。域名和IP地 址之間的轉(zhuǎn)換稱為域名解析,執(zhí)行域名解析的網(wǎng)絡主機可以稱為DNS服務器。通過域名系 統(tǒng)DNS服務器的查詢服務,可以找到所需站點或資源的入口,進而對站點或資源進行訪問。
[0003] 目前一個DNS結(jié)果過程通過會遇到兩種DNS設備,分別是緩存DNS服務器和授權(quán) DNS服務器。
[0004] 緩存服務器通常由通訊運營商管理,比如中國電信,中國聯(lián)通,中國移動管理這大 量的緩存DNS服務器,這些緩存服務器為通訊運營商的用戶提供DNS解析代理服務,這里指 的緩存DNS是指具備緩存或遞歸功能的DNS服務器。
[0005] 授權(quán)服務器通常由域名所有者負責管理,域名所有者負責將域名和IP對應的關 系寫入授權(quán)服務器,授權(quán)服務器只提供自己管理的域名的解析。
[0006] 傳統(tǒng)的DNS解析流程如圖1所示。具體為:1.用戶向運營商緩存DNS發(fā)起DNS請 求;2.運營商緩存DNS如有緩存則直接應答用戶,無緩存時運營商緩存DNS向授權(quán)DNS遞歸 請求;3.授權(quán)DNS應答運營商緩存DNS請求,運營商緩存DNS寫入緩存;4.運營商緩存DNS 應答用戶。
[0007] DNS優(yōu)化系統(tǒng)的業(yè)務流程如圖2所示。具體為:1.用戶向運營商緩存DNS發(fā)起DNS 請求;2.運營商緩存DNS有緩存則直接應答用戶,若無緩存,向授權(quán)DNS遞歸請求;3.劫持 系統(tǒng)鏡像運營商緩存DNS向授權(quán)DNS的遞歸請求;4.劫持系統(tǒng)對鏡像的請求包進行分析, 對比現(xiàn)有列表;5.列表已存在,就應答給運營商緩存DNS,若不存在,丟棄報文,不做任何處 理;4.運營商緩存DNS獲取到劫持系統(tǒng)的應答和授權(quán)DNS的應答報文,通常劫持設備的報 文會優(yōu)先達到運營商緩存DNS,緩存DNS將獲得的結(jié)果緩存到本機;5.運營商緩存DNS將結(jié) 果應答給請求用戶。
[0008] 緩存服務器除了通信運營商控制以外有一些第三方公司也開始搭建緩存DNS服 務器為用戶提供服務,比如谷歌8. 8. 8.8緩存DNS集群,國內(nèi)的114. 114. 114. 114緩存DNS 集群。但是一般通信運營商都會在自己的緩存DNS做一些流量引導策略,來提供用戶的訪 問互聯(lián)網(wǎng)的速度和減低自己的運營成本,比如通過流量調(diào)度減少互聯(lián)互通的帶寬來減少費 用。
[0009] 但是如果用戶使用的第三方緩存DNS服務器,那么通信運營商的DNS服務器上的 優(yōu)化調(diào)度策略就不會對這些用戶生效導致用戶訪問體檢變差,同時運營商成本增高。而上 述的傳統(tǒng)的DNS解析或DNS劫持系統(tǒng)都不能解決這個問題。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明的目的在于,提供一種域名解析方法及系統(tǒng)。
[0011] 用于解決問題的方案
[0012] 為了實現(xiàn)上述目的,本發(fā)明創(chuàng)造提供一種旁路緩存域名解析方法,包括:
[0013] 步驟S1000,客戶端發(fā)送DNS解析請求,所述DNS解析請求攜帶了域名和目標DNS 服務器信息;
[0014] 步驟S2000,所述DNS解析請求經(jīng)分光器或者路由器被發(fā)送到外部網(wǎng)絡和DNS旁路 緩存子系統(tǒng);
[0015] 步驟S3000,所述DNS旁路緩存子系統(tǒng)接收客戶端發(fā)送的域名系統(tǒng)DNS解析請求, 確認所述DNS解析請求攜帶的域名和目標DNS服務器信息;
[0016] 步驟S4000,所述DNS旁路緩存子系統(tǒng)確定所述目標DNS服務器在黑名單中;
[0017] 步驟S5000,所述DNS旁路緩存子系統(tǒng)向所述客戶端返回域名解析結(jié)果。
[0018] 優(yōu)選地,所述DNS旁路緩存子系統(tǒng)向所述客戶端返回域名解析結(jié)果,包括:
[0019] 步驟S5100,如所述DNS旁路緩存子系統(tǒng)確認所述DNS解析請求攜帶的域名是否在 緩存中,
[0020] 步驟S5200,如所述DNS解析請求攜帶的域名在緩存中,向所述客戶端返回域名解 析結(jié)果,
[0021] 步驟S5300,如所述DNS解析請求攜帶的域名不在緩存中,則所述DNS旁路緩存子 系統(tǒng)進行遞歸查詢,并將遞歸查詢結(jié)果寫入緩存,然后向所述客戶端返回域名解析結(jié)果。
[0022] 優(yōu)選地,所述DNS旁路緩存子系統(tǒng)偽裝為目標DNS服務器向所述客戶端返回域名 解析結(jié)果。
[0023] 本發(fā)明還提供一種旁路緩存域名解析系統(tǒng),包括:
[0024] 包抓取模塊,用于抓取客戶端發(fā)送DNS解析請求,所述DNS解析請求攜帶了域名 和目標DNS服務器信息;
[0025] 包過濾模塊,用于過濾所述DNS解析請求攜帶的域名,并確認所述目標DNS服務器 信息是否在黑名單中,并向下述解析模塊發(fā)送未被過濾的域名和目標DNS服務器;
[0026] 解析模塊,用于對域名進行解析,并偽裝為目標DNS服務器向所述客戶端返回域 名解析結(jié)果。
[0027] 優(yōu)選地,旁路緩存域名解析系統(tǒng),還包括遞歸模塊;
[0028] 所述解析模塊,還用于確認域名是否在緩存中,并向所述遞歸模塊發(fā)送不在緩存 中的域名;
[0029] 所述遞歸模塊,用于遞歸查詢域名解析結(jié)果。
[0030] 優(yōu)選地,旁路緩存域名解析系統(tǒng),所述遞歸模塊,還用于向緩存中寫入所述遞歸查 詢域名解析結(jié)果。
[0031] 有益效果
[0032] 使用第三方緩存DNS的網(wǎng)內(nèi)用戶也會被通信運營商的緩存DNS策略所影響,提升 通信運營商對用戶流量調(diào)度的能力。
【專利附圖】
【附圖說明】
[0033] 圖1為傳統(tǒng)的DNS解析流程示意圖;
[0034] 圖2為傳統(tǒng)的DNS劫持流程示意圖;
[0035] 圖3為本發(fā)明一實施例的流程示意圖;
[0036] 圖4為本發(fā)明一實施例的第一返回解析結(jié)果流程示意圖;
[0037] 圖5為本發(fā)明一實施例的第二返回解析結(jié)果流程示意圖;
[0038] 圖6為本發(fā)明優(yōu)化的系統(tǒng)示意圖。
【具體實施方式】
[0039] 下面對本發(fā)明創(chuàng)造實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實 施例僅是本發(fā)明創(chuàng)造部分實施例,而不是全部的實施例?;诒景l(fā)明創(chuàng)造中的實施例,本領 域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明創(chuàng) 造保護的范圍。
[0040] 如圖3所示,一種旁路緩存域名解析方法,包括:
[0041] 步驟S1000,客戶端發(fā)送DNS解析請求,所述DNS解析請求攜帶了域名和目標DNS 服務器信息;
[0042] 步驟S2000,所述DNS解析請求經(jīng)分光器或者路由器被發(fā)送到外部網(wǎng)絡和DNS旁路 緩存子系統(tǒng);
[0043] 步驟S3000,所述DNS旁路緩存子系統(tǒng)接收客戶端發(fā)送的域名系統(tǒng)DNS解析請求, 確認所述DNS解析請求攜帶的域名和目標DNS服務器信息;
[0044] 步驟S4000,所述DNS旁路緩存子系統(tǒng)確定所述目標DNS服務器在黑名單中;
[0045] 步驟S5000,所述DNS旁路緩存子系統(tǒng)向所述客戶端返回域名解析結(jié)果。
[0046] 優(yōu)選地,如圖4所示,所述DNS旁路緩存子系統(tǒng)向所述客戶端返回域名解析結(jié)果, 包括:
[0047] 步驟S5100,如所述DNS旁路緩存子系統(tǒng)確認所述DNS解析請求攜帶的域名是否在 緩存中,
[0048] 步驟S5200,如所述DNS解析請求攜帶的域名在緩存中,向所述客戶端返回域名解 析結(jié)果。
[0049] 優(yōu)選地,如圖5所示,所述DNS旁路緩存子系統(tǒng)向所述客戶端返回域名解析結(jié)果, 包括:
[0050] 步驟S5100,如所述DNS旁路緩存子系統(tǒng)確認所述DNS解析請求攜帶的域名是否在 緩存中,
[0051] 步驟S5300,如所述DNS解析請求攜帶的域名不在緩存中,則所述DNS旁路緩存子 系統(tǒng)進行遞歸查詢,并將遞歸查詢結(jié)果寫入緩存,然后向所述客戶端返回域名解析結(jié)果。
[0052] -個典型的業(yè)務流程如圖6所示,具體為:
[0053] 1.用戶端DNS設置為第三方緩存DNS時,用戶直接向第三方DNS發(fā)起DNS請求;
[0054] 2.旁路緩存域名解析服務器的包抓取模塊獲取用戶請求DNS鏡像;
[0055] 3.緩存解析服務器的DNS包過濾模塊進行包過濾操作,過濾出符合條件的報文傳 遞給解析模塊;
[0056] 4.解析模塊將系統(tǒng)緩存列表已存結(jié)果在應答給請求用戶,如果緩存中沒有的則傳 遞給遞歸模塊;
[0057] 5.遞歸模塊去請求運營商緩存DNS或自己遞歸,運營商緩存DNS負責將請求應答 給旁路緩存域名解析服務器;
[0058] 6.緩存解析服務器將運營商緩存DNS應答的請求緩存到系統(tǒng)列表內(nèi),并將結(jié)果應 答給請求用戶,同時第三方的緩存服務器也會給用戶一個應答,但是通常旁路解析服務器 的應答會優(yōu)先到達,因為通常旁路緩存服務器的網(wǎng)絡路由比較近,所有用戶會優(yōu)先獲得旁 路緩存服務器的應答。
[0059] 本發(fā)明還提供一種旁路緩存域名解析系統(tǒng),包括:
[0060] 包抓取模塊,用于抓取客戶端發(fā)送DNS解析請求,所述DNS解析請求攜帶了域名 和目標DNS服務器信息;
[0061] 包過濾模塊,用于過濾所述DNS解析請求攜帶的域名,并確認所述目標DNS服務器 信息是否在黑名單中,并向下述解析模塊發(fā)送未被過濾的域名和目標DNS服務器;
[0062] 解析模塊,用于對域名進行解析,并偽裝為目標DNS服務器向所述客戶端返回域 名解析結(jié)果。
[0063] 優(yōu)選地,旁路緩存域名解析系統(tǒng),還包括遞歸模塊;
[0064] 所述解析模塊,還用于確認域名是否在緩存中,并向所述遞歸模塊發(fā)送不在緩存 中的域名;
[0065] 所述遞歸模塊,用于遞歸查詢域名解析結(jié)果。
[0066] 優(yōu)選地,旁路緩存域名解析系統(tǒng),所述遞歸模塊,還用于向緩存中寫入所述遞歸查 詢域名解析結(jié)果。
[0067] 旁路緩存域名解析服務器系統(tǒng),主要涉及包抓取模塊、DNS包過濾模塊、DNS解析 模塊,遞歸模塊等。
[0068] 包抓取模塊:由于本發(fā)明需要解決的問題是用戶的緩存DNS設置成第三方的緩存 DNS,所有通信運營商的DNS的策略無法生效的問題,所以我們需要有一個新的模塊來獲取 用戶請求第三方緩存DNS的報文,這需要在用戶和第三方DNS的數(shù)據(jù)包必經(jīng)的路由器或交 換機上COPY -份DNS的請求流量,通常由分光或者鏡向流量的方式,分光或者鏡向的流量 需要被旁路緩存域名解析服務器抓取并提交給包過濾模塊。
[0069] 包過濾模塊:包過濾模塊不僅僅需要過濾掉非DNS報文,同時需要過濾掉通信運 營商的緩存DNS發(fā)出的請求,否則會導致業(yè)務流程死循環(huán),也要過濾掉大量的DNS攻擊報 文,如果這些攻擊報文不被過濾掉會導致攻擊網(wǎng)外第三方攻擊的報文被傳遞給通信運營商 的緩存DNS導致巨大的損失,本發(fā)明通過學習的方式獲取前N個解析結(jié)果正常的域名作為 服務對象,其它的域名一律過濾掉。沒有被過濾掉的域名會被傳遞給下一個模塊,DNS解析 模塊。
[0070] DNS解析模塊:DNS解析模塊拿到去第三方請求的DNS報文后,在緩存中尋找是否 有匹配的記錄,如果有則偽造第三方DNS的IP地址進行應答,如果沒有則會調(diào)用下一個模 塊遞歸模塊進行遞歸將遞歸請求的結(jié)果寫入緩存然后應答用戶,如果需要和通信運營商的 DNS的策略保持一致,哪么DNS解析結(jié)果一定不能使用輪訓或者其它特殊DNS應答策略,必 須要嚴格按照遞歸模塊回復的IP地址順序?qū)P地址回復給用戶,當然如果有其它的策略 也可以在該模塊體現(xiàn)。
[0071] DNS遞歸模塊:為了通信運營商的緩存DNS策略生效需要將DNS的解析結(jié)果優(yōu)化 權(quán)限交給通信運營商的DNS來做,所以不能采用傳統(tǒng)的DNS遞歸方式,要將需要遞歸的請求 轉(zhuǎn)發(fā)給運營商的緩存DNS,為了不給通信運營商的緩存DNS帶來太多的壓力,需要給轉(zhuǎn)發(fā)的 設備建立一個閥值,確保通信運營商的緩存DNS健康運行,不吸收網(wǎng)內(nèi)用戶攻擊網(wǎng)外DNS的 流量。
[0072] 通過旁路的方式獲取網(wǎng)內(nèi)用戶請求第三方緩存DNS域名服務器的請求,通過轉(zhuǎn)發(fā) 的方式同步通信運營商的DNS優(yōu)化調(diào)度策略。通過以上兩點實現(xiàn)使用第三方緩存DNS的 網(wǎng)內(nèi)用戶也會被通信運營商的緩存DNS策略所影響,提升通信運營商對用戶流量調(diào)度的能 力。
[0073] 以上所述,僅為本發(fā)明創(chuàng)造的【具體實施方式】,但本發(fā)明創(chuàng)造的保護范圍并不局限 于此,任何熟悉本【技術領域】的技術人員在本發(fā)明創(chuàng)造揭露的技術范圍內(nèi),可輕易想到變化 或替換,都應涵蓋在本發(fā)明創(chuàng)造的保護范圍之內(nèi)。因此,本發(fā)明創(chuàng)造的保護范圍應所述以權(quán) 利要求的保護范圍為準。
【權(quán)利要求】
1. 一種旁路緩存域名解析方法,其特征在于,包括: 步驟S1000,客戶端發(fā)送DNS解析請求,所述DNS解析請求攜帶了域名和目標DNS服務 器信息; 步驟S2000,所述DNS解析請求經(jīng)分光器或者路由器被發(fā)送到外部網(wǎng)絡和DNS旁路緩存 子系統(tǒng); 步驟S3000,所述DNS旁路緩存子系統(tǒng)接收客戶端發(fā)送的域名系統(tǒng)DNS解析請求,確認 所述DNS解析請求攜帶的域名和目標DNS服務器信息; 步驟S4000,所述DNS旁路緩存子系統(tǒng)確定所述目標DNS服務器在黑名單中; 步驟S5000,所述DNS旁路緩存子系統(tǒng)向所述客戶端返回域名解析結(jié)果。
2. 根據(jù)權(quán)利要求1所述的旁路緩存域名解析方法,其特征在于,所述DNS旁路緩存子系 統(tǒng)向所述客戶端返回域名解析結(jié)果,包括: 步驟S5100,如所述DNS旁路緩存子系統(tǒng)確認所述DNS解析請求攜帶的域名是否在緩存 中, 步驟S5200,如所述DNS解析請求攜帶的域名在緩存中,向所述客戶端返回域名解析結(jié) 果, 步驟S5300,如所述DNS解析請求攜帶的域名不在緩存中,則所述DNS旁路緩存子系統(tǒng) 進行遞歸查詢,并將遞歸查詢結(jié)果寫入緩存,然后向所述客戶端返回域名解析結(jié)果。
3. 根據(jù)權(quán)利要求1或2所述的旁路緩存域名解析方法,其特征在于,所述DNS旁路緩存 子系統(tǒng)偽裝為目標DNS服務器向所述客戶端返回域名解析結(jié)果。
4. 一種旁路緩存域名解析系統(tǒng),其特征在于,包括: 包抓取模塊,用于抓取客戶端發(fā)送DNS解析請求,所述DNS解析請求攜帶了域名和目 標DNS服務器信息; 包過濾模塊,用于過濾所述DNS解析請求攜帶的域名,并確認所述目標DNS服務器信息 是否在黑名單中,并向下述解析模塊發(fā)送未被過濾的域名和目標DNS服務器; 解析模塊,用于對域名進行解析,并偽裝為目標DNS服務器向所述客戶端返回域名解 析結(jié)果。
5. 根據(jù)權(quán)利要求4所述的旁路緩存域名解析系統(tǒng),其特征在于,還包括遞歸模塊; 所述解析模塊,還用于確認域名是否在緩存中,并向所述遞歸模塊發(fā)送不在緩存中的 域名; 所述遞歸模塊,用于遞歸查詢域名解析結(jié)果。
6. 根據(jù)權(quán)利要求5所述的旁路緩存域名解析系統(tǒng),其特征在于,所述遞歸模塊,還用于 向緩存中寫入所述遞歸查詢域名解析結(jié)果。
【文檔編號】H04L29/12GK104065766SQ201410334694
【公開日】2014年9月24日 申請日期:2014年7月14日 優(yōu)先權(quán)日:2014年7月14日
【發(fā)明者】楊麗麗, 劉謙, 王彤 申請人:北京快易博科技有限公司