本發(fā)明涉及云計算領域,尤其涉及一種用于實現(xiàn)深度包檢測優(yōu)化的方法、裝置和系統(tǒng)。
背景技術:
DPI(Deep Packet Inspection,深度包檢測)技術是一種基于網(wǎng)絡協(xié)議棧應用層信息的流量檢測和控制技術。其中,其對數(shù)據(jù)包的檢測“深度”是相對于普通的報文分析層次相比較而言的?!捌胀▓笪臋z測”通常僅分析網(wǎng)絡協(xié)議棧4層以下的內(nèi)容,主要包括源地址、目的地址、源端口、目的端口以及協(xié)議類型,而DPI除了對上述這些層次的信息進行分析外,還增加了對應用層信息的分析,進而識別各種應用及其具體內(nèi)容。
隨著混合云(Hybrid Cloud)、虛擬私有云(Virtual Private Cloud,VPC)等創(chuàng)新云服務對于數(shù)據(jù)中心網(wǎng)絡功能按需部署需求的日益增加,DPI也正在成為公有云服務中需要為客戶靈活交付的服務能力。然而,現(xiàn)有的DPI設備一般部署在數(shù)據(jù)中心網(wǎng)絡的出口,通過鏡像方式將所有的網(wǎng)絡流量導入到DPI設備。DPI過程對于性能有極高的要求,軟件設備很難承擔相應工作,如果為租戶引入專屬硬件又需要付出高昂的代價。同時,當網(wǎng)絡流量過大時,DPI設備可能會無法承擔全部流量的數(shù)據(jù)解析工作,只好將一部分流量做隨機的丟棄處理,這就導致了DPI解析結果不精確。這是目前需要亟待解決的問題之一。
技術實現(xiàn)要素:
本發(fā)明的發(fā)明人發(fā)現(xiàn)了上述現(xiàn)有技術中存在問題,并因此針對上 述問題中的至少一個問題提出了一種新的技術方案。
根據(jù)本發(fā)明的一個方面,提供了一種用于實現(xiàn)深度包檢測優(yōu)化的方法,包括:
深度包檢測前端設備在通過網(wǎng)絡接收到數(shù)據(jù)報文后,在規(guī)則表中查詢是否存在與數(shù)據(jù)報文相對應的策略規(guī)則,其中規(guī)則表中包括的策略規(guī)則由規(guī)則控制器下發(fā);
若未查詢到與數(shù)據(jù)報文相對應的策略規(guī)則,則深度包檢測前端設備向規(guī)則控制器發(fā)送策略請求,以便規(guī)則控制器下發(fā)與數(shù)據(jù)報文相對應的策略規(guī)則;
深度包檢測前端設備在接收到規(guī)則控制器下發(fā)的與數(shù)據(jù)報文相對應的策略規(guī)則后,將接收到的與數(shù)據(jù)報文相對應的策略規(guī)則寫入規(guī)則表中;
深度包檢測前端設備利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。
在一個實施例中,若查詢到與數(shù)據(jù)報文相對應的策略規(guī)則,則深度包檢測前端設備利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。
在一個實施例中,還包括:深度包檢測前端設備根據(jù)轉(zhuǎn)發(fā)報文數(shù)計算當前的處理能力;
深度包檢測前端設備根據(jù)規(guī)則控制器下發(fā)的最大轉(zhuǎn)發(fā)能力信息,判斷當前處理能力是否超過預設的最大轉(zhuǎn)發(fā)能力;
若當前處理能力超過預設的最大轉(zhuǎn)發(fā)能力,則深度包檢測前端設備向規(guī)則控制器發(fā)送超過最大處理能力上報信息,以便規(guī)則控制器增加丟棄報文策略規(guī)則;
深度包檢測前端設備在接收到規(guī)則控制器下發(fā)的丟棄報文策略規(guī)則后,將接收到的丟棄報文策略規(guī)則寫入規(guī)則表中。
在一個實施例中,深度包檢測前端設備利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理的步驟包括:
深度包檢測前端設備利用與數(shù)據(jù)報文相對應的策略規(guī)則,將數(shù)據(jù) 報文轉(zhuǎn)發(fā)到深度包檢測設備進行處理,或?qū)?shù)據(jù)報文丟棄。
在一個實施例中,還包括:深度包檢測前端設備在進行初始化操作時,與規(guī)則控制器建立管理通路;
深度包檢測前端設備在接收到規(guī)則控制器下發(fā)的信息后,判斷下發(fā)信息是否為最大處理能力信息;
若下發(fā)信息為最大處理能力信息,則深度包檢測前端設備記錄最大處理能力信息;
若下發(fā)信息不是最大處理能力信息,則深度包檢測前端設備進一步判斷下發(fā)信息是否為具有策略規(guī)則的流表信息;
若下發(fā)信息為流表信息,則深度包檢測前端設備記錄流表信息。
根據(jù)本發(fā)明的另一方面,提供了一個用于實現(xiàn)深度包檢測優(yōu)化的方法。包括:
規(guī)則控制器在接收到深度包檢測前端設備發(fā)送的信息后,判斷接收到的信息是否為策略請求;
若接收到的信息為策略請求,則規(guī)則控制器從策略請求中提取出數(shù)據(jù)報文信息,其中深度包檢測前端設備在未查詢到與所接收的數(shù)據(jù)報文相對應的策略規(guī)則時發(fā)送策略請求;
規(guī)則控制器生成與數(shù)據(jù)報文信息相對應的策略規(guī)則;
規(guī)則控制器將生成的策略規(guī)則下發(fā)給深度包檢測前端設備,以便深度包檢測前端設備利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。
在一個實施例中,若接收到的信息不是策略請求,則規(guī)則控制器進一步判斷接收到的信息是否為超過最大處理能力上報信息;
若接收到的信息為超過最大處理能力上報信息,則規(guī)則控制器增加丟棄報文策略規(guī)則;
規(guī)則控制器將增加的丟棄報文策略規(guī)則下發(fā)給深度包檢測前端設備。
在一個實施例中,還包括:規(guī)則控制器在進行初始化操作時,與深度包檢測前端設備建立管理通路;
規(guī)則控制器根據(jù)深度包檢測設備的處理能力,確定深度包檢測前端設備在單位時間內(nèi)的最大處理能力;
規(guī)則控制器將最大處理能力信息下發(fā)給深度包檢測前端設備;
規(guī)則控制器生成相應的具有策略規(guī)則的流表信息,并將生成的流表信息下發(fā)給深度包檢測前端設備。
根據(jù)本發(fā)明的一個方面,提供了一種用于實現(xiàn)深度包檢測優(yōu)化的深度包檢測前端設備,包括:
查詢單元,用于在通過網(wǎng)絡接收到數(shù)據(jù)報文后,在規(guī)則表中查詢是否存在與數(shù)據(jù)報文相對應的策略規(guī)則,其中規(guī)則表中包括的策略規(guī)則由規(guī)則控制器下發(fā);
策略單元,用于若未查詢到與數(shù)據(jù)報文相對應的策略規(guī)則,則向規(guī)則控制器發(fā)送策略請求,以便規(guī)則控制器下發(fā)與數(shù)據(jù)報文相對應的策略規(guī)則;在接收到規(guī)則控制器下發(fā)的與數(shù)據(jù)報文相對應的策略規(guī)則后,將接收到的與數(shù)據(jù)報文相對應的策略規(guī)則寫入規(guī)則表中;
報文處理單元,用于利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。
在一個實施例中,報文處理單元,還用于若查詢到與數(shù)據(jù)報文相對應的策略規(guī)則,則利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。
在一個實施例中,策略單元,還用于根據(jù)轉(zhuǎn)發(fā)報文數(shù)計算當前的處理能力;根據(jù)規(guī)則控制器下發(fā)的最大轉(zhuǎn)發(fā)能力信息,判斷當前處理能力是否超過預設的最大轉(zhuǎn)發(fā)能力;若當前處理能力超過預設的最大轉(zhuǎn)發(fā)能力,則向規(guī)則控制器發(fā)送超過最大處理能力上報信息,以便規(guī)則控制器增加丟棄報文策略規(guī)則;在接收到規(guī)則控制器下發(fā)的丟棄報文策略規(guī)則后,將接收到的丟棄報文策略規(guī)則寫入規(guī)則表中。
在一個實施例中,報文處理單元,具體用于利用與數(shù)據(jù)報文相對應的策略規(guī)則,將數(shù)據(jù)報文轉(zhuǎn)發(fā)到深度包檢測設備進行處理,或?qū)?shù)據(jù)報文丟棄。
在一個實施例中,策略單元,還用于在進行初始化操作時,與規(guī) 則控制器建立管理通路;在接收到規(guī)則控制器下發(fā)的信息后,判斷下發(fā)信息是否為最大處理能力信息;若下發(fā)信息為最大處理能力信息,則記錄最大處理能力信息;若下發(fā)信息不是最大處理能力信息,則進一步判斷下發(fā)信息是否為具有策略規(guī)則的流表信息;若下發(fā)信息為流表信息,則記錄流表信息。
根據(jù)本發(fā)明的一個方面,提供了一種用于實現(xiàn)深度包檢測優(yōu)化的規(guī)則控制器,包括:
信息處理單元,用于在接收到深度包檢測前端設備發(fā)送的信息后,判斷接收到的信息是否為策略請求;
策略生成單元,用于若接收到的信息為策略請求,則從策略請求中提取出數(shù)據(jù)報文信息,其中深度包檢測前端設備在未查詢到與所接收的數(shù)據(jù)報文相對應的策略規(guī)則時發(fā)送策略請求;生成與數(shù)據(jù)報文信息相對應的策略規(guī)則;將生成的策略規(guī)則下發(fā)給深度包檢測前端設備,以便深度包檢測前端設備利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。
在一個實施例中,信息處理單元,還用于若接收到的信息不是策略請求,則進一步判斷接收到的信息是否為超過最大處理能力上報信息;
策略生成單元,還用于若接收到的信息為超過最大處理能力上報信息,則增加丟棄報文策略規(guī)則;將增加的丟棄報文策略規(guī)則下發(fā)給深度包檢測前端設備。
在一個實施例中,信息處理單元,還用于在進行初始化操作時,與深度包檢測前端設備建立管理通路;
策略生成單元,還用于根據(jù)深度包檢測設備的處理能力,確定深度包檢測前端設備在單位時間內(nèi)的最大處理能力;將最大處理能力信息下發(fā)給深度包檢測前端設備;生成相應的具有策略規(guī)則的流表信息,并將生成的流表信息下發(fā)給深度包檢測前端設備。
根據(jù)本發(fā)明的又一方面,提供了一種用于實現(xiàn)深度包檢測優(yōu)化的系統(tǒng),包括:
深度包檢測前端設備,為上述任一實施例涉及的深度包檢測前端設備;
規(guī)則控制器,為上述任一實施例涉及的規(guī)則控制器。
深度包檢測設備,用于接收深度包檢測前端設備轉(zhuǎn)發(fā)的數(shù)據(jù)報文并進行處理。
本發(fā)明的用于實現(xiàn)深度包檢測優(yōu)化的方法和系統(tǒng),通過引入SDN(Software Defined Network,軟件定義網(wǎng)絡)技術,以數(shù)據(jù)流為單位對需要進入DPI檢測的流量流向進行控制,減少需要檢測的數(shù)據(jù)包數(shù)量,實現(xiàn)了DPI功能的按需部署,避免了現(xiàn)有技術中DPI設備隨機丟棄數(shù)據(jù)包造成的解析不精確的問題。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例或描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明深度包檢測前端設備檢測優(yōu)化方法一個實施例的流程圖。
圖2為本發(fā)明深度包檢測前端設備檢測優(yōu)化方法另一個實施例的流程圖。
圖3為本發(fā)明深度包檢測前端設備初始化流程圖。
圖4為本發(fā)明規(guī)則控制器檢測優(yōu)化方法一個實施例的流程圖。
圖5為本發(fā)明規(guī)則控制器檢測優(yōu)化方法另一個實施例的流程圖。
圖6為本發(fā)明規(guī)則控制器檢測初始化流程圖。
圖7為本發(fā)明中深度包檢測前端設備的一個實施例的示意圖。
圖8為本發(fā)明中規(guī)則控制器的一個實施例的示意圖。
圖9為本發(fā)明實現(xiàn)深度包檢測優(yōu)化的系統(tǒng)的一個實施例的示意圖。
圖10為本發(fā)明實現(xiàn)深度包檢測優(yōu)化的系統(tǒng)的網(wǎng)絡架構圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明深度包檢測前端設備檢測優(yōu)化方法一個實施例的流程圖。如圖1所示,本實施例的方法步驟如下:
步驟101,在通過網(wǎng)絡接收到數(shù)據(jù)報文后,在規(guī)則表中查詢是否存在與數(shù)據(jù)報文相對應的策略規(guī)則,其中規(guī)則表中包括的策略規(guī)則由規(guī)則控制器下發(fā)。其中,具有策略規(guī)則的流表信息可以包括轉(zhuǎn)發(fā)報文流表、丟棄報文流表和缺省項報文流表。
在一個實施例中,規(guī)則控制器為SDN控制器,用來引導哪些流量用于轉(zhuǎn)發(fā)檢測,哪些流量丟棄。SDN技術的核心思想是將網(wǎng)絡設備的控制平面與數(shù)據(jù)平面分離,并由控制平面開放軟件可編程的接口供網(wǎng)絡用戶對網(wǎng)絡設備的控制能力進行靈活調(diào)用。對于深度包檢測場景而言,引入SDN的最大優(yōu)勢是能夠以數(shù)據(jù)流(Flow)為單位進行網(wǎng)絡中數(shù)據(jù)流量流向的控制,從而可以有選擇地(例如以租戶為單位)將特定網(wǎng)絡流量靈活地導入到深度包檢測設備中,降低深度包檢測設備壓力,避免現(xiàn)有深度包檢測設備難以有效滿足混合云、虛擬私有云等云服務場景中深度包檢測設備需求的問題。
步驟102,若未查詢到與數(shù)據(jù)報文相對應的策略規(guī)則,則向規(guī)則控制器發(fā)送策略請求,以便規(guī)則控制器下發(fā)與數(shù)據(jù)報文相對應的策略規(guī)則。
步驟103,在接收到規(guī)則控制器下發(fā)的與數(shù)據(jù)報文相對應的策略規(guī)則后,將接收到的與數(shù)據(jù)報文相對應的策略規(guī)則寫入規(guī)則表中。
步驟104,利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。例如,將數(shù)據(jù)報文轉(zhuǎn)發(fā)至深度包檢測設備進行處理,或?qū)?shù)據(jù)報文丟棄。
如圖1所示的實施例中,通過引入SDN技術,以數(shù)據(jù)流為單位對需要進入DPI檢測的流量流向進行控制,減少需要檢測的數(shù)據(jù)包數(shù)量,實現(xiàn)了深度包檢測功能的按需部署,避免了現(xiàn)有技術中深度包檢測設備隨機丟棄數(shù)據(jù)包造成的解析不精確的問題。
圖2為本發(fā)明的深度包檢測前端設備檢測優(yōu)化方法另一個實施例的流程圖。如圖2所示,本實施例的方法步驟如下:
步驟201,通過網(wǎng)絡接收數(shù)據(jù)報文。
步驟202,在規(guī)則表中查詢是否存在與數(shù)據(jù)報文對應的策略規(guī)則。若不存在,則進入步驟203;若存在,則進入步驟205。
步驟203,向規(guī)則控制器發(fā)送策略請求,以便規(guī)則控制器下發(fā)與數(shù)據(jù)報文相對應的策略規(guī)則。
步驟204,在接收到規(guī)則控制器下發(fā)的與數(shù)據(jù)報文相對應的策略規(guī)則后,將接收到的與數(shù)據(jù)報文相對應的策略規(guī)則寫入規(guī)則表中。
步驟205,利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。例如,將數(shù)據(jù)報文轉(zhuǎn)發(fā)至深度包檢測設備進行處理,或?qū)?shù)據(jù)報文丟棄。
在另一個實施例中,還包括:
步驟206,根據(jù)轉(zhuǎn)發(fā)報文數(shù)計算當前的處理能力。
步驟207,根據(jù)規(guī)則控制器下發(fā)的最大轉(zhuǎn)發(fā)能力信息,判斷當前處理能力是否超過預設的最大轉(zhuǎn)發(fā)能力。
步驟208,若當前處理能力超過預設的最大轉(zhuǎn)發(fā)能力,則向規(guī)則控制器發(fā)送超過最大處理能力上報信息,以便規(guī)則控制器增加丟棄報文策略規(guī)則。然后返回步驟201。
若當前能力沒有到達預設的最大轉(zhuǎn)發(fā)能力,則繼續(xù)按照現(xiàn)有的策略規(guī)則對數(shù)據(jù)進行轉(zhuǎn)發(fā)或丟棄。若當前處理能力超過預設的最大轉(zhuǎn)發(fā)能力時,則向規(guī)則控制器發(fā)送超過最大處理能力上報信息,以便規(guī)則控制器增加丟棄報文策略規(guī)則。在接收到規(guī)則控制器下發(fā)的丟棄報文策略規(guī)則后,將接收到的丟棄報文策略規(guī)則寫入規(guī)則表中。并按照更新后的規(guī)則表進行數(shù)據(jù)轉(zhuǎn)發(fā)或丟棄。避免了現(xiàn)有技術中深度檢測設備 對待測數(shù)據(jù)的隨機丟棄,得到的測試結果更準確。其中,規(guī)則控制器生成的不限于現(xiàn)有技術中的根據(jù)五元組進行數(shù)據(jù)包解析的粗放方式,而是可以根據(jù)更豐富的數(shù)據(jù)流特征,例如來自云管理平臺等外部組件的租戶網(wǎng)絡相關的VxLAN ID(虛擬可擴展局域網(wǎng)標識)等相關信息,更靈活的選擇轉(zhuǎn)發(fā)或丟棄的數(shù)據(jù)報文。
圖3為本發(fā)明深度包檢測前端設備初始化流程的一個實施例的流程圖。如圖3所示,本實施例的方法步驟如下:
步驟301,在進行初始化操作時,與規(guī)則控制器建立管理通路。
步驟302,在接收到規(guī)則控制器下發(fā)的信息后,判斷下發(fā)信息是否為最大處理能力信息。
步驟303,若下發(fā)信息為最大處理能力信息,則記錄最大處理能力信息。
步驟304,若下發(fā)信息不是最大處理能力信息,則進一步判斷下發(fā)信息是否為具有策略規(guī)則的流表信息。
步驟305,若下發(fā)信息為流表信息,則記錄流表信息。
本實施例中,策略規(guī)則可以是主動規(guī)則,也可以是被動規(guī)則,當為主動規(guī)則時,規(guī)則控制器下發(fā)的為已制定的靜態(tài)規(guī)則。當為被動規(guī)則時,規(guī)則控制器根據(jù)上報的數(shù)據(jù)流信息進行分析,針對性的下發(fā)策略規(guī)則并定期動態(tài)調(diào)整,以適應多變的網(wǎng)絡環(huán)境。
圖4為本發(fā)明規(guī)則控制器檢測優(yōu)化方法一個實施例的流程圖。如圖4所示,本實施例的方法步驟如下:
步驟401,在接收到深度包檢測前端設備發(fā)送的信息后,判斷接收到的信息是否為策略請求。
步驟402,若接收到信息為策略請求,則從策略請求中提取出數(shù)據(jù)報文信息,其中深度包檢測前端設備在未查詢到與所接收的數(shù)據(jù)報文相對應的策略規(guī)則時發(fā)送策略請求。
步驟403,生成與數(shù)據(jù)報文信息相對應的策略規(guī)則。
步驟404,將生成的策略規(guī)則下發(fā)給深度包檢測前端設備,以便深度包檢測前端設備利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文 進行處理。例如,策略規(guī)則可以包括轉(zhuǎn)發(fā)報文流表、丟棄報文流表、缺省項報文流表。
本實施例中,策略規(guī)則可以是主動規(guī)則,也可以是被動規(guī)則,當為主動規(guī)則時,規(guī)則控制器下發(fā)的為已制定的靜態(tài)規(guī)則。當為被動規(guī)則時,規(guī)則控制器根據(jù)上報的數(shù)據(jù)流信息進行分析,針對性的下發(fā)策略規(guī)則并定期動態(tài)調(diào)整,以適應多變的網(wǎng)絡環(huán)境。
圖5為本發(fā)明規(guī)則控制器檢測優(yōu)化方法另一個實施例的流程圖。如圖5所示,本實施例的方法步驟如下:
步驟501,接收深度包檢測前端設備發(fā)送的信息。
步驟502,判斷接收到的信息是否為策略請求。若是,則進入步驟503;否則,進入步驟506。
步驟503,若接收到的信息為策略請求,則從策略請求中提取出數(shù)據(jù)報文信息,其中深度包檢測前端設備在未查詢到與所接收的數(shù)據(jù)報文相對應的策略規(guī)則時發(fā)送策略請求。
步驟504,生成與數(shù)據(jù)報文信息相對應的策略規(guī)則。其中生成規(guī)則不限于現(xiàn)有SDN技術中的根據(jù)五元組進行數(shù)據(jù)包解析的方式,而是可以根據(jù)更豐富的數(shù)據(jù)流特征,例如來自云管理平臺等外部組件的租戶網(wǎng)絡相關的VxLAN ID等相關信息,更靈活的選擇轉(zhuǎn)發(fā)或丟棄的數(shù)據(jù)報文。
步驟505,將生成的策略規(guī)則下發(fā)給深度包檢測前端設備,以便深度包檢測前端設備利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。
步驟506,若接收到的信息不是策略請求,則進一步判斷接收到的信息是否為超過最大處理能力上報信息。
步驟507,若接收到的信息為超過最大處理能力上報信息,則增加丟棄報文策略規(guī)則。
步驟508,將增加的丟棄報文策略規(guī)則下發(fā)給深度包檢測前端設備。
為了避免現(xiàn)有技術中深度包檢測設備在數(shù)據(jù)報文超過其最大處 理能力時隨機丟棄數(shù)據(jù)的問題。本實施例中,當接收到的信息為超過最大處理能力上報信息,則增加丟棄報文策略規(guī)則并發(fā)送給深度包檢測前端設備,以便深度包檢測前端設備根據(jù)策略規(guī)則丟棄相應的數(shù)據(jù),轉(zhuǎn)發(fā)檢測所必須的數(shù)據(jù),使得深度包檢測設備的檢測結果更加準確。
圖6為本發(fā)明規(guī)則控制器初始化流程圖。如圖6所示,本實施例的方法步驟如下:
步驟601,在進行初始化操作時,與深度包檢測前端設備建立管理通路。
步驟602,根據(jù)深度包檢測設備的處理能力,確定深度包檢測前端設備在單位時間內(nèi)的最大處理能力。
步驟603,將最大處理能力信息下發(fā)給深度包檢測前端設備。
步驟604,生成相應的具有策略規(guī)則的流表信息,并將生成的流表信息下發(fā)給深度包檢測前端設備。其中具有策略規(guī)則的流表信息可以包括轉(zhuǎn)發(fā)報文流表、丟棄報文流表、缺省項報文流表。
圖7為本發(fā)明的深度包檢測前端設備的一個實施例的示意圖,如圖7所示,包括查詢單元701、策略單元702和報文處理單元703,其中:
查詢單元701用于在通過網(wǎng)絡接收到數(shù)據(jù)報文后,在規(guī)則表中查詢是否存在與數(shù)據(jù)報文相對應的策略規(guī)則,其中規(guī)則表中包括的策略規(guī)則由規(guī)則控制器下發(fā)。
策略單元702用于若未查詢到與數(shù)據(jù)報文相對應的策略規(guī)則,則向規(guī)則控制器發(fā)送策略請求,以便規(guī)則控制器下發(fā)與數(shù)據(jù)報文相對應的策略規(guī)則;在接收到規(guī)則控制器下發(fā)的與數(shù)據(jù)報文相對應的策略規(guī)則后,將接收到的與數(shù)據(jù)報文相對應的策略規(guī)則寫入規(guī)則表中。
在一個實施例中,策略單元702還用于根據(jù)轉(zhuǎn)發(fā)報文數(shù)計算當前的處理能力;根據(jù)規(guī)則控制器下發(fā)的最大轉(zhuǎn)發(fā)能力信息,判斷當前處理能力是否超過預設的最大轉(zhuǎn)發(fā)能力;若當前處理能力超過預設的最大轉(zhuǎn)發(fā)能力,則向規(guī)則控制器發(fā)送超過最大處理能力上報信息,以便 規(guī)則控制器增加丟棄報文策略規(guī)則;在接收到規(guī)則控制器下發(fā)的丟棄報文策略規(guī)則后,將接收到的丟棄報文策略規(guī)則寫入規(guī)則表中。
在一個實施例中,策略單元702還用于在進行初始化操作時,與規(guī)則控制器建立管理通路;在接收到規(guī)則控制器下發(fā)的信息后,判斷下發(fā)信息是否為最大處理能力信息;若下發(fā)信息為最大處理能力信息,則記錄最大處理能力信息;若下發(fā)信息不是最大處理能力信息,則進一步判斷下發(fā)信息是否為策略規(guī)則;若下發(fā)信息為策略規(guī)則,則記錄策略規(guī)則。
報文處理單元703用于利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。例如具體用于利用與數(shù)據(jù)報文相對應的策略規(guī)則,將數(shù)據(jù)報文轉(zhuǎn)發(fā)到深度包檢測設備進行處理,或?qū)?shù)據(jù)報文丟棄。
在一個實施例中,報文處理單元703還用于若查詢到與數(shù)據(jù)報文相對應的策略規(guī)則,則利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。
圖7所示實施例中,深度包檢測前端設備,根據(jù)規(guī)則控制器下發(fā)的策略規(guī)則,對待檢測的數(shù)據(jù)報文進行管理,根據(jù)客戶需求丟棄不需要檢測的數(shù)據(jù)包,減少深度包檢測設備檢測的數(shù)據(jù)包數(shù)量,從而減輕了深度包檢測設備的處理壓力。深度包檢測前端設備可以是一個獨立的物理設備,可以是深度包檢測設備中的一個模塊,將控制面和數(shù)據(jù)面分離。當為獨立物理設備時,深度包檢測前端設備可以不影響現(xiàn)有的深度包檢測設備的結構和狀態(tài),但是會增加組網(wǎng)復雜度;當為深度包檢測設備中的一個模塊時,雖然會改變現(xiàn)有的深度包檢測設備的結構,但是可以利用深度包檢測設備自身的高性能包解析能力,更高效的開展數(shù)據(jù)包信息的匹配和轉(zhuǎn)發(fā)控制。本領域技術人員可以根據(jù)實際需求,進行靈活配置。
圖8為本發(fā)明的規(guī)則控制器的一個實施例的示意圖,包括信息處理單元801和策略生成單元802,其中,
信息處理單元801用于在接收到深度包檢測前端設備發(fā)送的信息后,判斷接收到的信息是否為策略請求。
策略生成單元802用于若接收到的信息為策略請求,則從策略請求中提取出數(shù)據(jù)報文信息,其中深度包檢測前端設備在未查詢到與所接收的數(shù)據(jù)報文相對應的策略規(guī)則時發(fā)送策略請求;生成與數(shù)據(jù)報文信息相對應的策略規(guī)則;將生成的策略規(guī)則下發(fā)給深度包檢測前端設備,以便深度包檢測前端設備利用與數(shù)據(jù)報文相對應的策略規(guī)則對數(shù)據(jù)報文進行處理。
在一個實施例中,信息處理單元801還用于若接收到的信息不是策略請求,則進一步判斷接收到的信息是否為超過最大處理能力上報信息。策略生成單元802還用于若接收到的信息為超過最大處理能力上報信息,則增加丟棄報文策略規(guī)則;將增加的丟棄報文策略規(guī)則下發(fā)給深度包檢測前端設備。
在一個實施例中,信息處理單元801還用于在進行初始化操作時,與深度包檢測前端設備建立管理通路。策略生成單元802還用于根據(jù)深度包檢測設備的處理能力,確定深度包檢測前端設備在單位時間內(nèi)的最大處理能力;將最大處理能力信息下發(fā)給深度包檢測前端設備;生成相應的具有策略規(guī)則的流表信息,并將生成的流表信息下發(fā)給深度包檢測前端設備。其中具有策略規(guī)則的流表信息可以包括轉(zhuǎn)發(fā)報文流表、丟棄報文流表、缺省項報文流表。
如圖8所示的實施例中,規(guī)則控制器可以為SDN控制器,基于OpenFlow(開放數(shù)據(jù)流)協(xié)議。OpenFlow協(xié)議通過對OpenFlow流表的下發(fā)和網(wǎng)絡中未匹配數(shù)據(jù)包的上報,實現(xiàn)了SDN控制器對網(wǎng)絡的集中化控制。其中,OpenFlow流表能夠體現(xiàn)出豐富的數(shù)據(jù)流的特征(例如租戶網(wǎng)絡相關的VxLAN ID等相關信息),并且支持靈活的結構定義,能夠有效地避免傳統(tǒng)的根據(jù)五元組進行數(shù)據(jù)包解析的粗放方式。
圖9為本發(fā)明的用于實現(xiàn)深度包檢測優(yōu)化的系統(tǒng)的一個實施例的示意圖。包括:
深度包檢測前端設備901,為上述任一實施例涉及的深度包檢測前端設備。
規(guī)則控制器902,為上述任一實施例涉及的規(guī)則控制器。
深度包檢測設備903用于接收深度包檢測前端設備901轉(zhuǎn)發(fā)的數(shù)據(jù)報文并進行處理。
圖10為本發(fā)明的系統(tǒng)具有應用于數(shù)據(jù)中心網(wǎng)絡深度包檢測的網(wǎng)絡架構圖。本發(fā)明在現(xiàn)有的深度包檢測系統(tǒng)中,增加了深度包檢測前端設備1001和規(guī)則控制器1002,深度包檢測前端設備1001接收待檢測的數(shù)據(jù)報文,通過規(guī)則控制器1002下發(fā)的策略規(guī)則對數(shù)據(jù)進行轉(zhuǎn)發(fā)或丟棄,以數(shù)據(jù)流為單位對需要進入深度包檢測設備1003的流量流向進行控制,減少需要檢測的數(shù)據(jù)包數(shù)量,實現(xiàn)了深度包檢測功能的按需部署,避免了現(xiàn)有技術中深度包檢測設備隨機丟棄數(shù)據(jù)包造成的解析不精確的問題。
本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對于本領域的普通技術人員而言是顯然的。選擇和描述實施例是為了更好說明本發(fā)明的原理和實際應用,并且使本領域的普通技術人員能夠理解本發(fā)明從而設計適于特定用途的帶有各種修改的各種實施例。