本發(fā)明涉及網(wǎng)絡(luò)通信,尤其涉及一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法。
背景技術(shù):
1、dpi(深度包檢測(cè))引擎接收上游平臺(tái)分發(fā)的流量,對(duì)流量進(jìn)行深度解析與內(nèi)容識(shí)別。
2、dpi引擎通過(guò)上游平臺(tái)提供的流量過(guò)濾接口,可根據(jù)協(xié)議關(guān)鍵字段、內(nèi)容關(guān)鍵字等特定條件對(duì)流量進(jìn)行過(guò)濾,由上游平臺(tái)將符合特定條件的中標(biāo)流量打標(biāo)并輸入到dpi引擎進(jìn)行處理,過(guò)濾接口本質(zhì)上是在上游平臺(tái)插入相應(yīng)的過(guò)濾規(guī)則,根據(jù)調(diào)用接口時(shí)傳遞的過(guò)濾條件參數(shù),將符合要求的流量打標(biāo)分發(fā)到dpi引擎。
3、一臺(tái)節(jié)點(diǎn)上可啟動(dòng)多個(gè)處理相同協(xié)議流量的dpi引擎,為便于管理,這些處理相同協(xié)議流量的dpi引擎被劃分到同一個(gè)虛擬用戶下,每個(gè)dpi引擎均需調(diào)用上游平臺(tái)提供的過(guò)濾接口,將所需的流量打標(biāo)后分發(fā)到對(duì)應(yīng)dpi引擎綁定的網(wǎng)卡。
4、圖1是dpi引擎部署模式,節(jié)點(diǎn)1上啟動(dòng)了dpi引擎1、dpi引擎2、dpi引擎3、dpi引擎4共4個(gè)dpi引擎,其中dpi引擎1、dpi引擎2、dpi引擎3處理相同類(lèi)型流量,因此被劃分到同一用戶下,即用戶1下,dpi引擎4處理另外一種類(lèi)型流量,被劃分到用戶2下,4個(gè)dpi引擎均通過(guò)上游平臺(tái)提供的過(guò)濾接口注冊(cè)所需的流量,上游平臺(tái)會(huì)給同一用戶的流量打上用戶專(zhuān)屬標(biāo)記,同一用戶的流量可再根據(jù)容器網(wǎng)卡的mac地址進(jìn)行分流,上游平臺(tái)通常提供分流機(jī)制(如基于流的5元組),將同一用戶的流量(相同協(xié)議類(lèi)型的流量)分流到用戶下的多個(gè)dpi引擎,一條完整的流必須被分流到同一個(gè)dpi引擎處理,否則會(huì)影響數(shù)據(jù)的完整性。
5、快速、高效的收取流量是提升dpi引擎性能的前提,當(dāng)前,dpi引擎接收上游平臺(tái)發(fā)送流量的方式有以下兩種:
6、1、通過(guò)物理網(wǎng)卡接收流量,在節(jié)點(diǎn)物理網(wǎng)卡上啟動(dòng)dpdk收取流量;
7、2、基于sr-iov技術(shù),將物理網(wǎng)卡虛擬化為多塊vf網(wǎng)卡,在vf網(wǎng)卡上啟動(dòng)dpdk收取流量。
8、以上兩種流量獲取方式均存在弊端:
9、方式1受限于物理網(wǎng)卡數(shù)量(dpdk必須獨(dú)占網(wǎng)卡),節(jié)點(diǎn)上只能啟動(dòng)少量的dpi引擎,每個(gè)dpi引擎綁定一塊物理網(wǎng)卡,通過(guò)dpdk接收、處理特定類(lèi)型協(xié)議的流量,此方式無(wú)法充分利用節(jié)點(diǎn)cpu、內(nèi)存資源,容易造成節(jié)點(diǎn)資源浪費(fèi)。
10、方式2解決了物理網(wǎng)卡數(shù)量限制的問(wèn)題,但會(huì)顯著增加上游平臺(tái)過(guò)濾規(guī)則數(shù)量,會(huì)造成上游系統(tǒng)分流性能下降,原因是節(jié)點(diǎn)上啟動(dòng)的每個(gè)dpi引擎都需要調(diào)用上游平臺(tái)的過(guò)濾接口,通過(guò)向上游系統(tǒng)增加過(guò)濾規(guī)則,將自己所需的流量下發(fā)到與dpi引擎綁定的vf網(wǎng)卡,即使這些dpi引擎運(yùn)行在同一臺(tái)節(jié)點(diǎn)上。
11、此外,流量往往具有動(dòng)態(tài)特性,通常需要根據(jù)流量負(fù)載的動(dòng)態(tài)變化情況,動(dòng)態(tài)啟動(dòng)、停止對(duì)應(yīng)的dpi引擎,以上兩種方式無(wú)法在保障系統(tǒng)性能的情況下實(shí)現(xiàn)dpi引擎的快速啟停。
12、最后,網(wǎng)卡技術(shù)的發(fā)展日新月異,當(dāng)前市面上的網(wǎng)卡均不同程度的支持硬件offload和流量快速交換,上述兩種流量接收方式無(wú)法充分發(fā)揮網(wǎng)卡硬件性能。
13、因此,針對(duì)上述場(chǎng)景,急需一種解決方案,既能靈活應(yīng)對(duì)流量動(dòng)態(tài)變化情況,又能實(shí)現(xiàn)流量的高效、快速接收。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)背景技術(shù)的不足提供了一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法。
2、本發(fā)明為解決上述技術(shù)問(wèn)題采用以下技術(shù)方案:
3、一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法,具體包含如下步驟;
4、步驟1,在節(jié)點(diǎn)上創(chuàng)建完全運(yùn)行于用戶空間的虛擬交換機(jī),即ovs+dpdk網(wǎng)橋;
5、步驟2,將節(jié)點(diǎn)的將物理網(wǎng)卡加入到ovs+dpdk網(wǎng)橋下,用于統(tǒng)一接收節(jié)點(diǎn)上所有dpi引擎的流量;
6、步驟3,基于sr-iov技術(shù)將用于收取流量的物理網(wǎng)卡虛擬化為多個(gè)vf網(wǎng)卡,將vf網(wǎng)卡按需分配給不同的dpi引擎,并根據(jù)dpi引擎啟停狀態(tài),動(dòng)態(tài)維護(hù)ovs+dpdk網(wǎng)橋的端口和流表;
7、步驟4,基于所述ovs+dpdk網(wǎng)橋,將物理網(wǎng)卡接收的流量按規(guī)則分發(fā)到對(duì)應(yīng)的dpi引擎,實(shí)現(xiàn)dpi引擎流量的快速收取和高效轉(zhuǎn)發(fā)。
8、作為本發(fā)明一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法的進(jìn)一步優(yōu)選方案,將節(jié)點(diǎn)物理網(wǎng)卡即pf網(wǎng)卡以dpdk類(lèi)型接口添加到ovs+dpdk網(wǎng)橋下,作為ovs+dpdk網(wǎng)橋的收包接口,上游平臺(tái)將多個(gè)dpi引擎的關(guān)聯(lián)流量下放到此接口,通過(guò)ovs+dpdk在用戶空間實(shí)現(xiàn)流量的快速收取。
9、作為本發(fā)明一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法的進(jìn)一步優(yōu)選方案,所述ovs+dpdk網(wǎng)橋支持openflow協(xié)議,通過(guò)配置openflow流表,基于數(shù)據(jù)包中預(yù)設(shè)的標(biāo)記字段進(jìn)行掩碼匹配,以識(shí)別流量所屬的用戶或類(lèi)型,從而實(shí)現(xiàn)流量的精確分發(fā)。
10、作為本發(fā)明一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法的進(jìn)一步優(yōu)選方案,所述標(biāo)記字段包含在數(shù)據(jù)包的源mac地址字段中。
11、作為本發(fā)明一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法的進(jìn)一步優(yōu)選方案,采用openflow進(jìn)行流量分發(fā)時(shí),利用openflow的group?table實(shí)現(xiàn)流量的負(fù)載均衡,根據(jù)宿主機(jī)上dpi引擎所屬用戶,動(dòng)態(tài)進(jìn)行g(shù)roup?table的創(chuàng)建和銷(xiāo)毀,通過(guò)group?table的負(fù)載均衡算法實(shí)現(xiàn)流量在同一用戶下不同dpi引擎間的分發(fā)。
12、作為本發(fā)明一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法的進(jìn)一步優(yōu)選方案,采用vf代理方案實(shí)現(xiàn)dpi引擎收包.
13、作為本發(fā)明一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法的進(jìn)一步優(yōu)選方案,每個(gè)vf網(wǎng)卡創(chuàng)建對(duì)應(yīng)的vf代理網(wǎng)卡,vf網(wǎng)卡與vf代理網(wǎng)卡構(gòu)成網(wǎng)卡對(duì);將vf代理網(wǎng)卡添加到ovs+dpdk網(wǎng)橋下作為dpi引擎流量分發(fā)接口,將vf網(wǎng)卡分配給dpi引擎作為收包接口。
14、作為本發(fā)明一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法的進(jìn)一步優(yōu)選方案,將vf所屬的pf網(wǎng)卡作為ovs+dpdk的收包端口,將vf代理網(wǎng)卡作為ovs+dpdk的分流端口,將vf網(wǎng)卡作為dpi引擎的收包網(wǎng)卡。
15、本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
16、本發(fā)明一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法,通過(guò)引入節(jié)點(diǎn)二次分流機(jī)制,將節(jié)點(diǎn)上所有dpi引擎的流量集中發(fā)送到節(jié)點(diǎn)物理網(wǎng)卡,在節(jié)點(diǎn)上實(shí)現(xiàn)多個(gè)用戶dpi引擎流量的快速、高效收取,不同用戶的流量到達(dá)節(jié)點(diǎn)后,根據(jù)流量標(biāo)記和負(fù)載均衡策略,在多個(gè)dpi引擎之間分發(fā)流量,實(shí)現(xiàn)dpi引擎流量的高效收取分發(fā),當(dāng)流量負(fù)載動(dòng)態(tài)變化時(shí),可支持dpi引擎的快速啟停,同時(shí)滿足流量接收性能和流量負(fù)載動(dòng)態(tài)變化的需求。
1.一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法,其特征在于:具體包含如下步驟;
2.根據(jù)權(quán)利要求1所述的一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法,其特征在于:
3.根據(jù)權(quán)利要求1所述的一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法,其特征在于:所述ovs+dpdk網(wǎng)橋支持openflow協(xié)議,通過(guò)配置openflow流表,基于數(shù)據(jù)包中預(yù)設(shè)的標(biāo)記字段進(jìn)行掩碼匹配,以識(shí)別流量所屬的用戶或類(lèi)型,從而實(shí)現(xiàn)流量的精確分發(fā)。
4.根據(jù)權(quán)利要求2所述的一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法,其特征在于:所述標(biāo)記字段包含在數(shù)據(jù)包的源mac地址字段中。
5.根據(jù)權(quán)利要求1所述的一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法,其特征在于:
6.根據(jù)權(quán)利要求1所述的一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法,其特征在于:
7.根據(jù)權(quán)利要求1所述的一種基于ovs+dpdk技術(shù)加速數(shù)據(jù)分發(fā)的方法,其特征在于: