技術(shù)領(lǐng)域
本發(fā)明涉及動(dòng)態(tài)數(shù)據(jù)注入的裝置及方法,尤其是一種用于虛擬專(zhuān)用撥號(hào)網(wǎng)中動(dòng)態(tài)數(shù)據(jù)注入的裝置及其方法。
背景技術(shù):
VPDN(Virtual Private Dial-up Network,虛擬專(zhuān)用撥號(hào)網(wǎng)絡(luò)),是基于撥號(hào)用戶的虛擬專(zhuān)用撥號(hào)網(wǎng)業(yè)務(wù),亦即以撥號(hào)接入的方式上網(wǎng),通過(guò)公共電話交換網(wǎng)傳輸數(shù)據(jù)時(shí)對(duì)網(wǎng)絡(luò)數(shù)據(jù)的封包和加密;VPDN中可以傳輸私有數(shù)據(jù),達(dá)到私有網(wǎng)絡(luò)的安全級(jí)別。它是利用IP網(wǎng)絡(luò)的承載功能結(jié)合相應(yīng)的認(rèn)證和授權(quán)機(jī)制建立起來(lái)的安全的虛擬專(zhuān)用網(wǎng),是近年來(lái)隨著Internet技術(shù)的發(fā)展而迅速發(fā)展起來(lái)的一種技術(shù)。
目前比較常用的VPDN業(yè)務(wù)是,企業(yè)出差人員和跨區(qū)域辦公的企業(yè)可以遠(yuǎn)程經(jīng)過(guò)公共網(wǎng)絡(luò)、通過(guò)虛擬的加密通道與企業(yè)內(nèi)部的網(wǎng)絡(luò)連接,而公共網(wǎng)絡(luò)上的用戶則無(wú)法穿過(guò)虛擬通道訪問(wèn)該企業(yè)的內(nèi)部網(wǎng)絡(luò);另外VPDN業(yè)務(wù)還有一些其他的典型業(yè)務(wù)如:保險(xiǎn)行業(yè)無(wú)線定損應(yīng)用、電力行業(yè)的無(wú)線移動(dòng)抄表應(yīng)用等。目前應(yīng)用在VPDN業(yè)務(wù)上的轉(zhuǎn)發(fā)分流設(shè)備能夠通過(guò)各種高效的查詢方法將數(shù)據(jù)流過(guò)濾以及轉(zhuǎn)發(fā),這種裝置和方法可以很好的解決對(duì)VPDN業(yè)務(wù)進(jìn)行監(jiān)控以及統(tǒng)計(jì)的需求,但是如果需要在同一個(gè)裝置上既能監(jiān)視上網(wǎng)用戶的行為又能給上網(wǎng)用戶推送自定義的數(shù)據(jù),即對(duì)上網(wǎng)用戶的上網(wǎng)請(qǐng)求干預(yù)后再返回給用戶,如有非法的請(qǐng)求或者企業(yè)內(nèi)部指定的請(qǐng)求需要監(jiān)視但又不丟棄用戶的請(qǐng)求,傳統(tǒng)的基于VPDN的分流設(shè)備是不能滿足這種需求的。
傳統(tǒng)的分流設(shè)備的結(jié)構(gòu)圖如圖1所示。其中,網(wǎng)絡(luò)I的上網(wǎng)數(shù)據(jù)通過(guò)串接口達(dá)到分類(lèi)匹配模塊后只能單向的通過(guò)業(yè)務(wù)口輸出到監(jiān)控設(shè)備。
申請(qǐng)?zhí)?213628508的中國(guó)發(fā)明專(zhuān)利申請(qǐng)公開(kāi)了虛擬專(zhuān)用撥號(hào)網(wǎng)業(yè)務(wù)數(shù)據(jù)包的轉(zhuǎn)發(fā)方法,利用會(huì)話號(hào)進(jìn)行相應(yīng)會(huì)話的快速查詢,快速的定位到相應(yīng)的VPDN數(shù)據(jù)區(qū);將用戶的數(shù)據(jù)通過(guò)查詢后轉(zhuǎn)發(fā)出去,并不能改變用戶的請(qǐng)求目標(biāo),也不能做到將上網(wǎng)用戶的上網(wǎng)行為干預(yù)后再返回給用戶,即不能動(dòng)態(tài)的將自定義的數(shù)據(jù)注入給用戶。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的問(wèn)題是目前VPDN服務(wù)中并不能實(shí)現(xiàn)對(duì)上網(wǎng)用戶的上網(wǎng)行為進(jìn)行干預(yù)后再返回給用戶的現(xiàn)狀。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提出的具體技術(shù)方案是:一種用于虛擬專(zhuān)用撥號(hào)網(wǎng)中動(dòng)態(tài)數(shù)據(jù)注入的裝置,包括:串接口單元1、全局控制單元2、分類(lèi)匹配單元3、業(yè)務(wù)單元4、回傳單元5;
所述串接口單元1,是至少一對(duì)串接在網(wǎng)絡(luò)服務(wù)器和交換機(jī)之間作為串聯(lián)流量的轉(zhuǎn)發(fā)口;
所述全局控制單元2,是通過(guò)配置界面配置業(yè)務(wù)口和回傳口,配置需要重定向到回傳口數(shù)據(jù)包的規(guī)則和行為;初始化流表;
所述分類(lèi)匹配單元3,是接收串接口單元1的數(shù)據(jù)包,查詢規(guī)則后根據(jù)結(jié)果轉(zhuǎn)發(fā)至業(yè)務(wù)單元4、串接口單元1或者回傳單元5;接收回傳單元5的數(shù)據(jù)包,查詢流表,分析數(shù)據(jù)包的上下行方向,查詢?cè)丝?;置?shù)據(jù)包的 轉(zhuǎn)發(fā)端口為查詢到的端口后發(fā)送給串接口單元1;
所述業(yè)務(wù)單元4,是接收分類(lèi)匹配單元3的數(shù)據(jù)包,根據(jù)上述結(jié)果標(biāo)簽將數(shù)據(jù)包轉(zhuǎn)發(fā)到特定的設(shè)備或者其他的網(wǎng)絡(luò)中;
所述回傳單元5,是接收分類(lèi)匹配單元3的數(shù)據(jù),將數(shù)據(jù)發(fā)送至外接的服務(wù)器,接收外接服務(wù)器的數(shù)據(jù)包并將數(shù)據(jù)包發(fā)送給分類(lèi)匹配單元3。
上述串接口單元1是成對(duì)的;裝置上可以有多對(duì)串接口以滿足串接多條鏈路。
上述串接口單元1,包含串接口A和串接口B,接收分類(lèi)匹配單元輸出的數(shù)據(jù)包,根據(jù)上下行方向分別從串接口B和串接口A轉(zhuǎn)發(fā)到原始鏈路中。
上述全局控制單元2運(yùn)行于本發(fā)明裝置的CPU上,通過(guò)數(shù)據(jù)總線控制其他的單元。
上述全局控制單元2通過(guò)管理界面設(shè)置接口的屬性為業(yè)務(wù)口或者回傳口,初始化流表的空間。本發(fā)明裝置上可見(jiàn)的物理接口中了除了串接口、管理串口和管理網(wǎng)口外,其他所有的接口都可以是業(yè)務(wù)口或者回傳口,業(yè)務(wù)口和回傳口需要用戶明確的定義,但一個(gè)接口不能既是回傳口也是業(yè)務(wù)口。
上述分類(lèi)匹配單元3接收串接口單元1輸入的數(shù)據(jù)包,并在流表中查詢行為,如若沒(méi)有命中則新建流到流表中,然后再查詢規(guī)則;如若命中則將數(shù)據(jù)包的行為置為流的行為;同時(shí)分類(lèi)匹配單元3接收回傳單元5輸入的數(shù)據(jù)包,并在流表中查詢流是否存在,如若存在則需要分析數(shù)據(jù)包的上下行方向,根據(jù)上下行方向查詢端口,并置數(shù)據(jù)包的轉(zhuǎn)發(fā)端口為查詢到的端口。
上述回傳單元5接收來(lái)自分類(lèi)匹配單元3并且命中特定規(guī)則的數(shù)據(jù)包,將所述數(shù)據(jù)包發(fā)送至外接的服務(wù)器;接收外接服務(wù)器發(fā)送的數(shù)據(jù)包給分類(lèi)匹配單元3。
本發(fā)明是串接在原始鏈路中,并可以外接服務(wù)器,該外接服務(wù)器根據(jù)不同的規(guī)則產(chǎn)生不同的數(shù)據(jù)包,并將所述數(shù)據(jù)包通過(guò)回傳口發(fā)回本發(fā)明裝置中,本發(fā)明裝置再通過(guò)分類(lèi)匹配單元中的流表匹配上述數(shù)據(jù)包的原端口,并給上述數(shù)據(jù)包打上原端口的結(jié)果標(biāo)簽,最終根據(jù)結(jié)果標(biāo)簽將上述動(dòng)態(tài)數(shù)據(jù)包發(fā)送至原始鏈路中,自此就實(shí)現(xiàn)了面向虛擬專(zhuān)用撥號(hào)網(wǎng)的動(dòng)態(tài)數(shù)據(jù)注入。
本發(fā)明還提供一種用于虛擬專(zhuān)用撥號(hào)網(wǎng)中動(dòng)態(tài)數(shù)據(jù)注入的方法,步驟包括:
步驟S1,串接口單元1接收上網(wǎng)用戶的上網(wǎng)請(qǐng)求,并提取上網(wǎng)請(qǐng)求數(shù)據(jù)包的流特征;
步驟S2,分類(lèi)匹配單元3匹配需要轉(zhuǎn)發(fā)到回傳口的數(shù)據(jù)包;
根據(jù)流特征判斷是否在流表中存在,若存在判斷該數(shù)據(jù)包的命中門(mén)限值;若不存在則根據(jù)所述流特征在流表中動(dòng)態(tài)創(chuàng)建一條流,并將所述新建的流更新到流表中,再查詢規(guī)則;
判斷數(shù)據(jù)包的命中數(shù),若大于流的命中門(mén)限值,置所述數(shù)據(jù)包的行為為查詢流的行為,若小于流動(dòng)命中門(mén)限值則需要查詢規(guī)則;
命中數(shù)小于命中門(mén)限或者在流表中不存在的數(shù)據(jù)包,查詢規(guī)則集中的三類(lèi)規(guī)則,三類(lèi)規(guī)則分為:target規(guī)則、L4規(guī)則、L7規(guī)則;
根據(jù)規(guī)則查詢結(jié)果給數(shù)據(jù)包打上行為標(biāo)簽結(jié)果;
步驟S3,回傳口接收外接服務(wù)器動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)包,并查詢流表;
所述流表指步驟S2中動(dòng)態(tài)更新過(guò)的流表;
查詢流表表示,根據(jù)所述數(shù)據(jù)包的流特征在流表中查詢符合該特征的流是否存在;若存在,分析所述數(shù)據(jù)包的上下行方向;若不存在則置該數(shù)據(jù)包的行為為丟棄;
步驟S4,分析上下行方向,查詢端口號(hào);
所述分析上下行方向表示,如果所述數(shù)據(jù)包方向?yàn)樯闲?,則需要在上述流表中查詢目的端口;如果所述數(shù)據(jù)包的方向?yàn)橄滦?,則需要在上述流表中查詢?cè)炊丝?;并置所述?shù)據(jù)包的轉(zhuǎn)發(fā)端口為查詢到的目的端口或者源端口;
步驟S5,根據(jù)流的行為和轉(zhuǎn)發(fā)端口將數(shù)據(jù)包發(fā)送到原始鏈路。
技術(shù)效果:
如圖2所示,當(dāng)企業(yè)的出差人員經(jīng)過(guò)公共網(wǎng)絡(luò)訪問(wèn)企業(yè)內(nèi)部的網(wǎng)絡(luò)時(shí),企業(yè)內(nèi)部的網(wǎng)絡(luò)可對(duì)VPDN的上網(wǎng)數(shù)據(jù)進(jìn)行監(jiān)控和干預(yù),如有非法的請(qǐng)求或者企業(yè)內(nèi)部指定的請(qǐng)求需要監(jiān)視但又不丟棄用戶的請(qǐng)求時(shí)就可采用本發(fā)明的動(dòng)態(tài)數(shù)據(jù)注入裝置和方法。
與現(xiàn)有技術(shù)相比,本發(fā)明增加了回傳單元,解決了對(duì)上網(wǎng)用戶的上網(wǎng)請(qǐng)求干預(yù)后再返回給用戶的需求。本裝置上的業(yè)務(wù)口既能實(shí)現(xiàn)公知的數(shù)據(jù)過(guò)濾據(jù)轉(zhuǎn)發(fā)業(yè)務(wù),并且還能實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)注入的業(yè)務(wù),且業(yè)務(wù)口和回傳口的定義可以在全局控制單元靈活的配置,這種靈活性和可擴(kuò)展性可以極大的滿足日益復(fù)雜的業(yè)務(wù)需求。
附圖說(shuō)明
圖1是傳統(tǒng)的過(guò)濾轉(zhuǎn)發(fā)裝置結(jié)構(gòu)圖。
圖2是本發(fā)明裝置的網(wǎng)絡(luò)接入位置圖。
圖3是本發(fā)明面向VPDN的動(dòng)態(tài)數(shù)據(jù)注入的裝置結(jié)構(gòu)圖。
圖4是本發(fā)明面向VPDN的動(dòng)態(tài)數(shù)據(jù)注入的裝置及其方法的結(jié)構(gòu)模塊圖。
圖5是本發(fā)明面向VPDN的動(dòng)態(tài)數(shù)據(jù)注入的裝置及其方法的基本流程圖。
圖6是本發(fā)明面向VPDN的動(dòng)態(tài)數(shù)據(jù)注入的裝置及其方法的詳細(xì)數(shù)據(jù)流程圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施對(duì)本發(fā)明作進(jìn)一步說(shuō)明。在下列描述中,限于篇幅原因,不再對(duì)一些現(xiàn)有公知常識(shí)的內(nèi)容,包括結(jié)構(gòu)和功能進(jìn)行贅述。
如圖2所示,本發(fā)明提供一種串接在網(wǎng)絡(luò)服務(wù)器(簡(jiǎn)稱:LNS)和交換機(jī)之間的裝置,圖2是本發(fā)明面向VPDN的動(dòng)態(tài)數(shù)據(jù)注入的裝置及其方法的網(wǎng)絡(luò)接入位置圖。
本發(fā)明裝置的結(jié)構(gòu)圖如圖3所示。網(wǎng)絡(luò)I的上網(wǎng)數(shù)據(jù)通過(guò)串接口達(dá)到分類(lèi)匹配模塊,分類(lèi)匹配模塊可以實(shí)現(xiàn)傳統(tǒng)的轉(zhuǎn)發(fā)過(guò)濾,轉(zhuǎn)發(fā)數(shù)據(jù)到監(jiān)控設(shè)備,還能實(shí)現(xiàn)把上述數(shù)據(jù)通過(guò)回傳口輸出到外接的服務(wù)器,并接收外接服務(wù)器產(chǎn)生的數(shù)據(jù)回傳到原始網(wǎng)絡(luò)中。
圖4是本發(fā)明面向VPDN的動(dòng)態(tài)數(shù)據(jù)注入的裝置及其方法的結(jié)構(gòu)模塊圖。
包括串接口單元1中的串接口A和串接口B、全局控制單元2、分類(lèi)匹配單元3、業(yè)務(wù)單元4、回傳單元5。
串接口A:提供一對(duì)外部端口的其中1個(gè),用以連接2個(gè)被串接網(wǎng)元設(shè)備的其中1個(gè),作為串接流量轉(zhuǎn)發(fā)口的其中一個(gè)。
端口A為可見(jiàn)的物理接口,可為光接口或者電接口,具備一種或者多重速率能力。端口A和端口B是一對(duì)串接口,這屬于公知的內(nèi)容,在此不再贅述。
串接口B:提供一對(duì)外部端口的其中1個(gè),用以連接2個(gè)被串接網(wǎng)元設(shè)備的其中1個(gè),作為串接流量轉(zhuǎn)發(fā)口的其中一個(gè)。
端口B為可見(jiàn)的物理接口,可為光接口或者電接口,具備一種或者多重速率能力。端口B和端口A是一對(duì)串接口,這屬于公知的內(nèi)容,在此不再贅述。
全局控制單元2:提供配置界面,指定裝置上的接口哪些為業(yè)務(wù)口,哪些為回傳口,可以指定裝置上任意數(shù)量的非串接口為回傳口。
分類(lèi)匹配單元3:接收串接口單元1的數(shù)據(jù),在流表中查詢數(shù)據(jù)包所屬的特征流,如果查詢成功則得到匹配結(jié)果,如果查詢失敗再查詢規(guī)則,得到匹配結(jié)果。
具體地,接收串接口單元1輸入的數(shù)據(jù)包,提取流特征,然后在流表中查詢?cè)摋l流是否存在。根據(jù)所述查詢結(jié)果新建流或者繼續(xù)查詢規(guī)則。查詢流成功的數(shù)據(jù)包直接得到轉(zhuǎn)發(fā)結(jié)果,否則查詢規(guī)則得到轉(zhuǎn)發(fā)結(jié)果。
接收回傳口的數(shù)據(jù)包,在流表中查詢上述數(shù)據(jù)包所屬的流是否存在,如果存在,分析所述數(shù)據(jù)包的上下行方向,并查找端口號(hào),最后根據(jù)轉(zhuǎn)發(fā)端口號(hào)轉(zhuǎn)發(fā)原始數(shù)據(jù)包。這屬于公知的內(nèi)容,在此不再詳述。
業(yè)務(wù)單元4:接收分類(lèi)匹配單元3的數(shù)據(jù)包并根據(jù)轉(zhuǎn)發(fā)行為轉(zhuǎn)發(fā)數(shù)據(jù)包,這屬于公之內(nèi)容,在此不再詳述。
回傳單元5:接收分類(lèi)匹配單元3匹配的特定數(shù)據(jù)包并轉(zhuǎn)發(fā)所述數(shù)據(jù)包至外接的服務(wù)器;接收外接的服務(wù)器產(chǎn)生的數(shù)據(jù)包并將所述數(shù)據(jù)包轉(zhuǎn)發(fā)至分類(lèi)匹配單元3進(jìn)行行為結(jié)果查詢和上下行分析?;貍骺谑俏锢砩峡梢?jiàn)的端口,可以是電口或者收發(fā)的光口。
如圖5是本發(fā)明面向VPDN的動(dòng)態(tài)數(shù)據(jù)注入的方法基本流程圖。
步驟S1,串接口單元1接收上網(wǎng)用戶的上網(wǎng)請(qǐng)求,并提取上網(wǎng)請(qǐng)求數(shù)據(jù)包的流特征;
步驟S2,分類(lèi)匹配單元3匹配需要轉(zhuǎn)發(fā)到回傳口的數(shù)據(jù)包;
根據(jù)流特征判斷是否在流表中存在,若存在判斷該數(shù)據(jù)包的命中門(mén)限值;若不存在則根據(jù)所述流特征在流表中動(dòng)態(tài)創(chuàng)建一條流,并將所述新建的流更新到流表中,再查詢規(guī)則;
判斷數(shù)據(jù)包的命中數(shù),若大于流的命中門(mén)限值,置所述數(shù)據(jù)包的行為為查詢流的行為,若小于流動(dòng)命中門(mén)限值則需要查詢規(guī)則;
命中數(shù)小于命中門(mén)限或者在流表中不存在的數(shù)據(jù)包,查詢規(guī)則集中的三類(lèi)規(guī)則,三類(lèi)規(guī)則分為:target規(guī)則、L4規(guī)則、L7規(guī)則;
根據(jù)規(guī)則查詢結(jié)果給數(shù)據(jù)包打上行為標(biāo)簽結(jié)果;
步驟S3,回傳口接收外接服務(wù)器動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)包,并查詢流表;
所述流表指步驟S2中動(dòng)態(tài)更新過(guò)的流表;
查詢流表表示,根據(jù)所述數(shù)據(jù)包的流特征在流表中查詢符合該特征的流是否存在;若存在,分析所述數(shù)據(jù)包的上下行方向;若不存在則置該數(shù)據(jù)包的行為為丟棄;
步驟S4,分析上下行方向,查詢端口號(hào);
所述分析上下行方向表示,如果所述數(shù)據(jù)包方向?yàn)樯闲校瑒t需要在上述流表中查詢目的端口;如果所述數(shù)據(jù)包的方向?yàn)橄滦校瑒t需要在上述流表中查詢?cè)炊丝冢徊⒅盟鰯?shù)據(jù)包的轉(zhuǎn)發(fā)端口為查詢到的端口;
步驟S5,根據(jù)流的行為和串接口將數(shù)據(jù)包發(fā)送到原始鏈路。
下面結(jié)合圖6以某公司的一個(gè)具體需求為例,對(duì)本發(fā)明面向VPDN的動(dòng)態(tài)數(shù)據(jù)注入的裝置作示例性說(shuō)明。
如圖6所示,用戶名為終端1,發(fā)送域名(domain)為"www.wiki.com",且搜索的關(guān)鍵字為"VPDN"的數(shù)據(jù)請(qǐng)求從串接口A進(jìn)入本發(fā)明裝置。本發(fā)明裝置可以將訪問(wèn)“www.wiki.com”的HTTP請(qǐng)求報(bào)文重定向到公司內(nèi)部的wiki服務(wù)器優(yōu)先進(jìn)行搜索,如果在公司內(nèi)部的wiki上沒(méi)有搜到關(guān)鍵字的結(jié)果就將請(qǐng)求發(fā)送給www.wiki.com。本發(fā)明裝置完成以上功能的方法包括如下步驟:
初始狀態(tài)中,串接口A連接公司內(nèi)部局域網(wǎng)的路由器,串接口B連接公司外網(wǎng)的路由器,串接口C連接了一臺(tái)服務(wù)器1,假設(shè)這臺(tái)服務(wù)器的ip地址為"192.168.8.100",且這臺(tái)服務(wù)器上運(yùn)行著公司內(nèi)部的wiki網(wǎng)站。
用戶通過(guò)SSH登錄到設(shè)備的管理界面,配置接口C為回傳口,配置一條domain="www.wiki.com"的規(guī)則,設(shè)置這條規(guī)則的轉(zhuǎn)發(fā)行為為“從接口C轉(zhuǎn)發(fā)?!?/p>
步驟6a01,終端1向"www.wiki.com"發(fā)起HTTP請(qǐng)求,關(guān)鍵字為“VPDN”。假設(shè)終端1的IP地址為192.168.8.111,該局域網(wǎng)的網(wǎng)關(guān)為192.168.8.1。
步驟6a02,串接口A收到請(qǐng)求報(bào)文后,首先從數(shù)據(jù)包中提取流特征,即sip="192.168.8.111", dip="192.168.8.1", sport="A", dport="B", protocol="http";然后進(jìn)入步驟6a03。
流表項(xiàng)的信息如下表表1所示,通常流是由五元組所唯一定義的,包括協(xié)議類(lèi)型(Protocol)、源IP(sip)、目的IP(dip)、源端口(sport)、目的端口(dport)。具有相同五元組特征的數(shù)據(jù)包屬于同一條流。由于五元組區(qū)分了源和目的IP,因此這樣的流具有單向的特征。對(duì)于一個(gè)完整的交互過(guò)程,其數(shù)據(jù)包將屬于兩條不同的流。在很多應(yīng)用中更關(guān)注的是連接,即完整的交互過(guò)程。連接包括了兩條源IP地址、源端口與目的IP地址、目的端口互換的流。為了便于表述,這里用流的概念來(lái)表示連接,或者說(shuō)是雙向流。這樣一條流由協(xié)議類(lèi)型與一對(duì)IP、端口組來(lái)唯一定義。初始狀態(tài)下流表為空,原始端口號(hào)、目的端口號(hào)和協(xié)議類(lèi)型暫時(shí)填為0,原始IP和目的IP暫時(shí)填為0.0.0.0,流的行為暫時(shí)填為丟棄(drop)。表1:
步驟6a03,利用提取的流特征查找流表,如果在流表中找到了符合這條流特征的流,則轉(zhuǎn)入步驟6a04,否則進(jìn)入步驟6a05。
步驟6a04,如果數(shù)據(jù)包所屬的流在流表中存在:這條流的前門(mén)限值(matchCounter)個(gè)包都會(huì)查詢規(guī)則表(轉(zhuǎn)步驟6a07),直到查不到匹配規(guī)則,或者超過(guò)這個(gè)門(mén)限值(matchCounter),則該用戶定義的靜態(tài)流的行為決定后續(xù)數(shù)據(jù)包的轉(zhuǎn)發(fā)方式。門(mén)限值(matchCounter)默認(rèn)為10,用戶可以在命令行中自定義這個(gè)值。
步驟6a05,如果在流表中沒(méi)有匹配到原始端口號(hào)為A,目的端口號(hào)為B,原始IP為192.168.8.111,目的端口號(hào)為192.168.8.1,協(xié)議類(lèi)型為http的流,則在流表中新建這條流,并更新到流表中,然后進(jìn)入第二層規(guī)則查詢。更新后的流表內(nèi)容見(jiàn)下表表2所示:
步驟6a06,如果流存在且命中數(shù)大于流的命中門(mén)限值,置查詢流的行為為數(shù)據(jù)包最終的行為。
步驟6a07,在流表中沒(méi)有命中的數(shù)據(jù)包和小于門(mén)限值的數(shù)據(jù)包,都需要進(jìn)行第二層的規(guī)則匹配。
規(guī)則的匹配通過(guò)規(guī)則表來(lái)實(shí)現(xiàn),本發(fā)明包含4個(gè)規(guī)則集和3類(lèi)規(guī)則組成。3類(lèi)規(guī)則包括:特定對(duì)象(target)規(guī)則、L4規(guī)則、L7規(guī)則。target規(guī)則可與L4或L7規(guī)則組合,即同時(shí)命中target規(guī)則的分類(lèi)表項(xiàng)和L4規(guī)則的分類(lèi)表項(xiàng)或L7規(guī)則的分類(lèi)表項(xiàng)才算命中。
每個(gè)規(guī)則子類(lèi)按不同的匹配處理和轉(zhuǎn)發(fā)方式分為4個(gè)優(yōu)先級(jí),每個(gè)優(yōu)先級(jí)可以設(shè)置各自的數(shù)據(jù)處理和轉(zhuǎn)發(fā)行為。每個(gè)優(yōu)先級(jí)里面可以添加20K具有相同處理行為的規(guī)則分類(lèi)表項(xiàng)(class-entry)。
未命中任何規(guī)則的數(shù)據(jù)包會(huì)自動(dòng)命中成為default的表項(xiàng),并且按default定義的行為進(jìn)行處理。
數(shù)據(jù)包首先查詢target規(guī)則表,然后根據(jù)行為查詢L4或者L7的表。通過(guò)設(shè)置target規(guī)則表的default決定先查L(zhǎng)4還是L7。
target規(guī)則包含兩種分類(lèi)表項(xiàng):ip和name。ip是用戶連接認(rèn)證成功后所使用的上網(wǎng)IP;name是radius和ppp用戶名。
target規(guī)則有1-4以及default優(yōu)先級(jí),1是最高優(yōu)先級(jí),4是最低優(yōu)先級(jí),default是默認(rèn)優(yōu)先級(jí)。每個(gè)優(yōu)先級(jí)可以添加分類(lèi)表項(xiàng)的容量為20K,不同優(yōu)先級(jí)不允許存儲(chǔ)相同規(guī)則,默認(rèn)優(yōu)先級(jí)default不允許配置規(guī)則。
默認(rèn)優(yōu)先級(jí)default的默認(rèn)行為是loop,其余優(yōu)先級(jí)的默認(rèn)行為未設(shè)置(UNSET)。每個(gè)優(yōu)先級(jí)的行為可配置,target規(guī)則的行為可配置為loop、drop、fw hash、redirect hash、to l4、to l7,即正常轉(zhuǎn)發(fā)、丟棄、hash轉(zhuǎn)發(fā)(正常轉(zhuǎn)發(fā)同時(shí)復(fù)制到回傳口或輸出口)、重定向(重定向到輸出口或回傳口)、轉(zhuǎn)至L4規(guī)則查詢、轉(zhuǎn)至L7規(guī)則查詢。
L4規(guī)則表項(xiàng)如下表表3所示,包含ip、protocol、protocol+port、domain幾種類(lèi)型的分類(lèi)表項(xiàng)。ip是數(shù)據(jù)包L2TP內(nèi)層的ip;protocol內(nèi)層中的protocol;protocol+port是{UDP|TCP}+端口號(hào);domain是dns請(qǐng)求的域名,最終是匹配域名對(duì)應(yīng)的ip,ip由設(shè)備自動(dòng)獲取dns響應(yīng)包學(xué)習(xí)得到。默認(rèn)情況下規(guī)則表項(xiàng)為空,暫時(shí)不填入任何數(shù)據(jù)。表3:
L4規(guī)則都有1-4以及default優(yōu)先級(jí),1是最高優(yōu)先級(jí),4是最低優(yōu)先級(jí),default為默認(rèn)優(yōu)先級(jí)。每個(gè)優(yōu)先級(jí)可以添加分類(lèi)表項(xiàng)的容量為20K,默認(rèn)優(yōu)先級(jí)不允許配置規(guī)則,不同優(yōu)先級(jí)不允許存儲(chǔ)相同規(guī)則。
默認(rèn)優(yōu)先級(jí)default的默認(rèn)行為是loop,其余優(yōu)先級(jí)的默認(rèn)行為未設(shè)置(UNSET)。每個(gè)優(yōu)先級(jí)的行為可配置,L4規(guī)則的行為可配置為loop、drop、fw hash、redirect hash、to l7,即正常轉(zhuǎn)發(fā)、丟棄、hash轉(zhuǎn)發(fā)、hash 重定向、轉(zhuǎn)至L7規(guī)則查詢。
默認(rèn)優(yōu)先級(jí)的行為還可以設(shè)置為to l7,轉(zhuǎn)至L7規(guī)則查詢。若同時(shí)命中不同優(yōu)先級(jí),取優(yōu)先級(jí)最高規(guī)則對(duì)應(yīng)的轉(zhuǎn)發(fā)行為。dns域名對(duì)應(yīng)的ip會(huì)根據(jù)設(shè)備收到的dns數(shù)據(jù)包動(dòng)態(tài)維護(hù),每個(gè)域名最多保存256個(gè)ip,獲取的ip的個(gè)數(shù)超過(guò)該數(shù)目會(huì)自動(dòng)覆蓋最初保存的ip。
L7規(guī)則包含ud、host、uri、host+uri分類(lèi)表項(xiàng)。主動(dòng)控制和被動(dòng)監(jiān)視最多分別支持128條ud分類(lèi)表項(xiàng),每條4個(gè)ud,每個(gè)ud支持四個(gè)字節(jié)。
L7規(guī)則都有1-4以及default優(yōu)先級(jí),1是最高優(yōu)先級(jí),4是最低優(yōu)先級(jí),default是默認(rèn)優(yōu)先級(jí)。每個(gè)優(yōu)先級(jí)可以添加分類(lèi)表項(xiàng)的容量為20K,默認(rèn)優(yōu)先級(jí)不允許配置規(guī)則,不同優(yōu)先級(jí)不允許存儲(chǔ)相同規(guī)則。
默認(rèn)優(yōu)先級(jí)default的默認(rèn)行為是loop,其余優(yōu)先級(jí)的默認(rèn)行為未設(shè)置(UNSET)。每個(gè)優(yōu)先級(jí)的行為可配置,L7規(guī)則的行為可配置為loop、drop、fw hash、redirect hash、to l4,即正常轉(zhuǎn)發(fā)、丟棄、hash轉(zhuǎn)發(fā)、hash重定向、轉(zhuǎn)至L4規(guī)則查詢。
默認(rèn)優(yōu)先級(jí)的行為還可設(shè)置為to l4,轉(zhuǎn)到L4規(guī)則查詢。若同時(shí)命中不同優(yōu)先級(jí),取優(yōu)先級(jí)最高規(guī)則對(duì)應(yīng)的轉(zhuǎn)發(fā)行為。
終端1根據(jù)用戶設(shè)置的靜態(tài)規(guī)則優(yōu)先匹配target規(guī)則,由于target規(guī)則表項(xiàng)中不對(duì)域名(domain)進(jìn)行匹配,而L4規(guī)則會(huì)對(duì)域名(domian)匹配,所以用戶可以將target的default規(guī)則設(shè)置為轉(zhuǎn)向L4,具體的規(guī)則配置如下所示:
add ruleset 1 control l4: 1 domain= "www.wiki.com"
由于公司需要對(duì)"www.wiki.com"的請(qǐng)求重定向到內(nèi)部的wiki,就需要在靜態(tài)規(guī)則中配置一條將上述規(guī)則中的ruleset 1 從回傳口C轉(zhuǎn)發(fā)的行為,具體行為配置如下所示(假設(shè)回傳口C的在本發(fā)明裝置上的物理接口號(hào)為9):
set ruleset 1 control target: default to l4
set ruleset 1 control l4: 1 redirect hash s 9
行為轉(zhuǎn)發(fā)和規(guī)則集的對(duì)應(yīng)表,由于是公知內(nèi)容,本處就不再詳述。
步驟6a08,終端1的數(shù)據(jù)請(qǐng)求包如果在規(guī)則集中匹配到規(guī)則表項(xiàng),就將該數(shù)據(jù)包的行為置為規(guī)則的行為。
步驟6a09,如果終端1的數(shù)據(jù)請(qǐng)求包在規(guī)則集中匹配失敗,置該數(shù)據(jù)包的行為為丟棄。
步驟6b01, 終端1的數(shù)據(jù)請(qǐng)求通過(guò)回傳口C發(fā)送給了IP地址為192.168.6.100的服務(wù)器1。服務(wù)器1在數(shù)據(jù)庫(kù)中查找關(guān)鍵字為“VPDN”的數(shù)據(jù),并將查詢到的結(jié)果回傳給接口C。
步驟6b02,回傳口收到數(shù)據(jù)后首先提取數(shù)據(jù)包的流特征,并在表1所述的流表中查詢流。如果找到符合特征的流,轉(zhuǎn)到步驟6b03,否則轉(zhuǎn)到6b04。
步驟6b03,服務(wù)器1發(fā)回來(lái)的數(shù)據(jù)包,如果在流表中存在符合該數(shù)據(jù)包特征的流,首先需要分析數(shù)據(jù)包的上下行方向。本實(shí)例中,終端1的請(qǐng)求數(shù)據(jù)在服務(wù)器1經(jīng)過(guò)處理后返回的數(shù)據(jù)有可能是上行也有可能是下行;如果在服務(wù)器1的數(shù)據(jù)庫(kù)中找到了關(guān)鍵字為“VPDN”的信息,則數(shù)據(jù)包為應(yīng)答包,就為下行;如果在服務(wù)器1的數(shù)據(jù)庫(kù)中未找到關(guān)鍵字為“VPDN”的信息,則需要將終端1的請(qǐng)求重新返回到鏈路中,此時(shí)回傳口C收到的數(shù)據(jù)包為請(qǐng)求包,為上行。數(shù)據(jù)包的信息下表表4所示:
步驟6b04,服務(wù)器1發(fā)回的數(shù)據(jù)包如果沒(méi)有在流表中匹配成功,則置該包的行為為丟棄。
步驟6b05,根據(jù)步驟5、6b03中分析上下行的結(jié)果,更新表4內(nèi)容。如果服務(wù)器1發(fā)回來(lái)的數(shù)據(jù)包為上行數(shù)據(jù),即沒(méi)有找到關(guān)鍵字為“VPDN”的信息;則需要在表2所示的流表中查找這條數(shù)據(jù)包的原始目的端口號(hào),表2中找到了目的端口為B。如果服務(wù)器1發(fā)回來(lái)的數(shù)據(jù)包為下行數(shù)據(jù),即找到了關(guān)鍵字為“VPDN”的信息;則需要在表2所示的流表中查找這條數(shù)據(jù)包的原始輸入端口號(hào),表2中找到了原始端口為A。更新后的表4有兩種可能,如下表表5和表6所示。表5:
表6:
步驟610,根據(jù)數(shù)據(jù)包的轉(zhuǎn)發(fā)行為將數(shù)據(jù)包從特定端口轉(zhuǎn)發(fā)出去,或者丟棄。這里的轉(zhuǎn)發(fā)行為可以轉(zhuǎn)發(fā)到回傳口,也可以轉(zhuǎn)發(fā)到串接口。
綜上所述,結(jié)果即為:公司的服務(wù)器上如果能找到“VPDN”的內(nèi)容,則將公司內(nèi)部的wiki網(wǎng)頁(yè)推送回用戶端,如果在公司內(nèi)部沒(méi)有找到“VPDN”的資料則將www.wiki.com中搜索“VPDN”的請(qǐng)求發(fā)送出去轉(zhuǎn)至域名為www.wiki.com的網(wǎng)站。
綜上所述,本實(shí)施例中用戶通過(guò)VPDN的上網(wǎng)請(qǐng)求已經(jīng)被公司內(nèi)部的網(wǎng)絡(luò)設(shè)備進(jìn)行了干預(yù),但并沒(méi)有丟棄用戶的請(qǐng)求;并且還對(duì)用戶發(fā)起的互聯(lián)網(wǎng)請(qǐng)求進(jìn)行了內(nèi)部數(shù)據(jù)優(yōu)先匹配,即將內(nèi)部數(shù)據(jù)庫(kù)中的數(shù)據(jù)注入給了上網(wǎng)的用戶,因此實(shí)現(xiàn)了面向VPDN的動(dòng)態(tài)數(shù)據(jù)注入的需求。