一種策略處理的方法及網絡設備的制作方法
【專利摘要】本發明實施例提供一種策略處理的方法及網絡設備,包括:將多個業務對應的所有業務規則進行混合編排,以構建多個條件數據集;根據構建的多個條件數據集,對接收到的網絡數據包的報文特征信息進行統一條件匹配,輸出條件匹配結果集;根據條件匹配結果集,調用業務應用執行所述條件匹配結果集中各個條件標識對應的策略動作。本發明實施例的方案,通過對多業務規則進行混合編排,將所有業務規則統一組織,在一次報文數據掃描過程中抽取所有業務所需的信息,且只需進行一次匹配和規則驗證過程,減少了多業務之間冗余操作,促進單一設備上的多業務融合,提升設備集成度與性能。
【專利說明】一種策略處理的方法及網絡設備
【技術領域】
[0001]本發明涉及通信【技術領域】,尤其涉及無一種策略處理的方法及網絡設備。
【背景技術】
[0002]在通信系統中,策略控制是各種核心網絡設備(如路由器、交換機、網關等)必不可少的功能,如圖1所示,用戶通過配置界面或特定策略腳本等方式配置多種策略規則,并下發到設備,設備基于策略規則實現設備上多種業務的處理。
[0003]當前網絡設備,尤其是路由器、交換機、網關等設備上,應用業務不斷增多,如應用交付控制(Application Delivery Controller, ADC)、廣域網優化控制(WAN OptimizationController, W0C)、深度包檢測(Deep Packet Inspection, DPI )、入侵預防系統(IntrusionPrevention System, IPS)、統一資源定位符過濾(Uniform/Universal Resource LocatorFilter,URLF)等應用業務等。各種業務應用對應的策略規則類型及數量也在不斷增多。隨著業務規則復雜度的提升,使得策略處理方法在設備高性能及可靠性方面面臨挑戰。
[0004]如圖2所示,現有技術中策略規則的執行包括以下四個步驟:報文數據處理(策略相關信息收集)、條件匹配、規則驗證、動作執行。當設備收到報文數據后,首先進行1-7層數據的處理,通常包括解包、抽取各層報文頭信息、抽取7層協議字段信息等;然后對收集到的信息進行策略條件的驗證,若某些條件得到滿足,則進入規則驗證模塊進行規則匹配;對于匹配到的策略規則則會執行相對應的業務動作。不同業務如果對報文處理過程不同的話,則有可能需要包含一部分報文特殊處理過程。
[0005]現有技術中,當各個業務所需要的報文信息存在重復時,業務處理流程存在重復。t匕如,IPS、URLF、ADC 都需要對 URL (Uniform/Universal Resource Locator,統一資源定位符)信息進行條件匹配,此時,每個業務內部的條件匹配過程是重復的,同樣,規則驗證過程也存在重復。另外,報文的處理有時也存在重復和多余過程,比如當IPS需要掃描整個報文數據,而 URLF 只需要掃描 URL 字段,ADC 只需要 HTTP (Hyper Text Transfer Protocol,超文本傳輸協議)報文頭域數據時,現有技術中通常會在IPS、URLF、ADC業務中獨立對報文進行處理,也就意味著報文會被掃描多次。即使用現有技術,重復操作在報文處理、條件匹配、規則匹配各環節中都可能存在。這種大量重復操作的存在,在擁有復雜策略及多業務的設備上會導致業務性能的下降。
【發明內容】
[0006]本發明實施例提供一種策略處理的方法及網絡設備,用以減少策略執行過程中的冗余和重復操作,提高網絡設備的策略執行性能。
[0007]第一方面,本發明實施例提供一種網絡設備,包括:混合編排器、條件匹配器和規則匹配器,其中:
[0008]所述混合編排器,用于將所述網絡設備上運行的多個業務應用所對應的所有業務規則進行混合編排,每個業務規則包含條件和動作,以提取所述所有業務規則的條件,并利用提取的所述條件構建至少一個條件集,并且生成用于記錄每個業務規則與所述條件集中的條件之間的映射關系的映射關系數據;
[0009]所述條件匹配器,用于根據所述混合編排器構建的各個條件集,對所述網絡設備接收到的網絡數據包的報文特征信息進行條件匹配,并輸出條件匹配結果集;所述條件匹配結果集用于記錄匹配成功的條件;
[0010]所述規則匹配器,用于根據所述條件匹配結果集,以及所述混合編排器生成的所述映射關系數據,確定出匹配成功的業務規則,并觸發所述匹配成功的業務規則所對應的業務應用執行所述匹配成功的業務規則對應的動作。
[0011]在第一方面的第一種可能的實施方式中,所述混合編排器,具體包括:
[0012]規則拆分單元,用于將所述所有業務規則中的每個業務規則拆分成條件和動作;
[0013]條件篩選去重單元,用于提取所述拆分單元拆分成的所述條件,,并去除重復的條件;
[0014]條件分類單元,用于將所述條件篩選去重單元去重之后的條件進行分類,得到至少一種類型的條件集;
[0015]映射單元,用于生成用于記錄每個業務規則與所述條件集中的條件之間的映射關系的映射關系數據。
[0016]結合第一方面的第一種可能的實施方式,在第二種可能的實施方式中,所述映射單元具體用于:將所述條件集中每個條件映射到包含所述條件的所有業務規則上,以建立每個業務規則與所述條件集中的條件之間的映射關系,并生成用于記錄所述映射關系的映射關系數據;或者,所述映射單元具體用于:在規則拆分單元將所述所有業務規則中的每個業務規則拆分成條件和動作時,記錄所述每個業務規則與所述業務規則中的條件之間的映射關系,并在所述所述條件篩選去重單元去除重復的條件之后,調整記錄的所述映射關系,以使所述條件集中的每個條件映射到包含所述條件的所有業務規則上,并生成用于記錄所述調整后的映射關系的映射關系數據。
[0017]結合第一方面,或者第一方面的第一、第二種可能的實施方式,在第三種可能的實施方式中,所述條件匹配器具體用于:將所述網絡設備接收到的網絡數據包的報文特征信息,同時與所述各個條件集中的條件進行匹配,并將匹配成功的條件的標識記錄到所述條件匹配結果集。
[0018]結合第一方面,或者第一方面的第一、第二或第三種可能的實施方式,在第四種可能的實施方式中,該網絡設備還包括:檢測器,用于對所述網絡設備接收到的網絡數據包進行報文檢測,以收集所述網絡數據包的報文特征信息;所述所述條件匹配器,具體用于根據所述混合編排器構建的各個條件集,對所述檢測器收集到的網絡數據包的報文特征信息進行條件匹配,并輸出條件匹配結果集。
[0019]結合第一方面,或者第一方面的第一、第二、第三或第四種可能的實施方式,在第五種可能的實施方式中,所述網絡設備的所有業務規則中,至少有一個業務規則為復合型規則,所述復合型規則為包含多個條件的業務規則;
[0020]所述混合編排器,還用于,記錄每個所述復合型規則中,各個條件之間的邏輯關系;
[0021]所述規則匹配器,具體用于,根據所述條件匹配結果集、所述混合編排器生成的所述映射關系數據,以及所述各個條件之間的邏輯關系,確定出匹配成功的業務規則,并調用所述匹配成功的業務規則所屬的業務應用執行所述匹配成功的業務規則對應的動作,或者發送規則命中消息到所述匹配成功的業務規則所對應的業務應用,以使所述業務應用根據所述規則命中消息,執行所述匹配成功的業務規則對應的動作。
[0022]第二方面,本發明實施例還提供一種多業務的策略處理方法,包括:
[0023]將多個業務應用所對應的所有業務規則進行混合編排,每個業務規則包含條件和動作,以提取所述所有業務規則的條件,并利用提取的所述條件構建至少一個條件集,并且生成用于記錄每個業務規則與所述條件集中的條件之間的映射關系的映射關系數據;
[0024]根據構建的各個條件集,對接收到的網絡數據包的報文特征信息進行條件匹配,以輸出條件匹配結果集;所述條件匹配結果集用于記錄匹配成功的條件;
[0025]根據所述條件匹配結果集,以及生成的所述映射關系數據,確定出匹配成功的業務規則,并觸發所述匹配成功的業務規則所對應的業務應用執行所述匹配成功的業務規則對應的動作。
[0026]在第二方面的第一種可能的實施方式中,所述將多個業務應用所對應的所有業務規則進行混合編排,包括:
[0027]將所述所有業務規則中的每個業務規則拆分成條件和動作,并生成用于記錄所述每個業務規則與所述業務規則中的條件之間的映射關系的映射關系數據;
[0028]提取拆分成的條件,并去除重復的條件;
[0029]將去重之后的條件分類,得到至少一種類型的條件集;
[0030]調整所述映射關系數據,以將所述條件集中的每個條件映射到包含所述條件的一個或多個業務規則上,從而得到述條件集中的條件與各個業務規則之間的映射關系數據。
[0031]在第二方面的第二種可能的實施方式中,所述將多個業務應用所對應的所有業務規則進行混合編排,包括:
[0032]將所述所有業務規則中的每個業務規則拆分成條件和動作;
[0033]提取拆分成的所述條件,并去除重復的條件;
[0034]將去重之后的條件進行分類,得到至少一種類型的條件集;
[0035]將所述條件集中每個條件映射到包含所述條件的所有業務規則上,以得到所述條件集中的條件與各個業務規則之間的映射關系數據。
[0036]結合第二方面,或者第二方面的第一或第二種可能的實施方式,在第三種可能的實施方式中,所述所有業務規則中,至少有一個業務規則為復合型規則,所述復合型規則為包含多個條件的業務規則;
[0037]在將所述所有業務規則中的每個業務規則拆分成條件和動作之后,所述方法還包括:記錄每個所述復合型規則中,各個條件之間的邏輯關系;
[0038]所述根據所述條件匹配結果集,以及生成的所述映射關系數據,確定出匹配成功的業務規則,具體包括:根據所述條件匹配結果集、所述條件集中的條件與到各個業務規則之間的映射關系數據,以及所述各個條件之間的邏輯關系,確定出匹配成功的業務規則,并調用所述匹配成功的業務規則所屬的業務應用執行相應的動作。
[0039]由上述技術方案可知,本發明實施例的策略處理的方法及網絡設備,通過對多業務應用策略規則進行混合編排,在一次報文數據掃描過程中抽取所有業務所需的信息,同時對多業務進行統一的條件匹配和規則匹配,從而減少了多業務之間冗余操作,促進單一設備上的多業務融合,提升設備集成度與性能,同時也降低業務部署和設備硬件成本,提升了網絡設備的競爭力。
【專利附圖】
【附圖說明】
[0040]為了更清楚地說明本發明的技術方案,下面將對實施例中所需要使用的附圖作一簡單地介紹,顯而易見地,下面附圖只是本發明的一些實施例的附圖,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得同樣能實現本發明技術方案的其它附圖。
[0041]圖1為本發明提供的多業務策略控制的層級部署方式示意圖;
[0042]圖2為本發明實施例提供的策略規則執行流程示意圖;
[0043]圖3為本發明實施例提供的企業私有云的網絡示意圖;
[0044]圖4為本發明實施例提供的策略處理方法的流程示意圖;
[0045]圖5為本發明實施例提供的策略處理方法的流程圖;
[0046]圖6為本發明實施例提供的多業務規則混合編排方法示意圖;
[0047]圖7為本發明實施例提供的網絡設備示意圖;
[0048]圖8為本發明實施例提供的混合編排器示意圖;
[0049]圖9為本發明實施例提供的條件匹配器的處理流程示意圖;
[0050]圖10為本發明實施例提供的條件匹配器的處理流程示意圖;
[0051]圖11為本發明實施例提供的規則匹配器處理流程示意圖;
[0052]圖12為本發明實施例提供的策略處理方法流程示意圖;
[0053]圖13為本發明實施例提供的網絡設備示意圖。
【具體實施方式】
[0054]為使本發明的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明的技術方案進行清楚、完整地描述。顯然,下述的各個實施例都只是本發明一部分的實施例。基于本發明下述的各個實施例,本領域普通技術人員即使沒有作出創造性勞動,也可以通過等效變換部分甚至全部的技術特征,而獲得能夠解決本發明技術問題,實現本發明技術效果的其它實施例,而這些變換而來的各個實施例顯然并不脫離本發明所公開的范圍。
[0055]為使本領域一般技術人員更好的了解本發明實施例提供的技術方案,首先對本發明實施例技術方案的應用場景做一些簡單的介紹,本發明實施例提供的技術方案可應用于多應用業策略控制場景下,比如家庭網、接入網、匯聚網,骨干網、企業網、運營商網絡,以及各種私有/公有云。下面以企業網私有云作為一個典型的應用場景做一個簡單說明。
[0056]圖3示出了本發明實施例提供的企業私有云場景的網絡示意圖,如圖3所示,在企業私有云場景下,各個辦公區(Branch Office)通過局域網網關(LAN SW)以及路由器(Router)組建成局域網,同時,各個辦公區構成的局域網通過WAN (Wide Area Network,廣域網)與數據中心(Data Center)互聯,數據中心也部署有多個路由器、網關以及多種服務器(如Web服務器、數據庫服務器等);其中,各個辦公區的路由器和交換機設備上通常會集成防火墻、WOC、IPS、URLF等業務,數據中心的路由器和交換機設備上通常也會集成防火墻、WOC、ADC、IPS等多種業務應用,在這種情形下,路由器和交換機都需要進行多種類型的策略處理。
[0057]需要說明的是,企業私有云場景只是本發明技術方案的一個典型應用場景,并不對本發明的應用場景構成限制,在其它的應用場景中,只要涉及多種類的策略處理,本發明實施例的技術方案均適用。
[0058]下面先總體介紹本發明實施例提供的策略處理方法,如圖4所示,該方法主要包括:報文掃描、混合編排、統一條件匹配,以及統一規則驗證這幾個處理環節。
[0059]其中,報文掃描主要是通過報文檢測手段,比如從2-7層的DPI (Deep PacketInspection,深度報文檢測),從接收到的網絡數據包中抽取多業務所需的所有報文特征信息,比如URL、五元組、協議類型等信息。而且,在報文掃描過程中,不做多余操作,只抽取當前網絡設備運行的業務應用(如WOC、ADC、IPS等)所需的報文特征信息。
[0060]混合編排具體是指對所有業務應用的業務規則進行混合編排,其主要包括:(I)僅針對相關報文信息的差異,抽取同類條件,構建多個類型的條件集;(2)生成條件和規則之間的映射關系;
[0061]需要說明的是,在本發明實施例所指的業務規則,即為業務應用的一種執行策略,其中,一條規則包含條件和動作兩部分,具體地,一條規則中包含的條件可以為一個或多個,動作也可以為一個或多個,且同一業務規則中的多個條件可能來源于不同層次的報文信息,比如規則 if (IP=1.1.1.1&&HTTP.host=www.huawe1.com) then drop packet 中,“IP=1.1.1.1”和“HTTP.host=www.huawe1.com”為兩個并列的條件,其中,前者為L3層的條件,后者為L7層的條件,且兩者在邏輯上為“與”的關系;“drop packet”則為條件匹配時,業務應用需要執行的動作。
[0062]統一條件匹配是指對混合編排后的多個條件集進行統一條件匹配;
[0063]統一規則驗證是指對混合編排后的規則集進行統一的規則匹配,驗證哪些業務規則匹配成功。
[0064]統一條件匹配和統一驗證的目的是,不再對單個的條件和規則做逐個匹配的動作,而是將經過報文掃描后收集的多種報文特征信息,與混合編排后的多個條件集進行統一的條件驗證和規則匹配;比如,還是以上面的規則if (IP=1.1.1.1&&HTTP.host=www.huawe1.com) then drop packet為例,通過報文識別先收集各層次的報文特征信息,然后分別上傳至各個對應的條件數據集進行條件驗證,然后將條件驗證的結果上報給規則匹配模塊進行統一的規則匹配,得出已經命中的規則,最后再執行命中規則對應的業務動作。
[0065]基于上述方法原理,下面介紹一個具體實施例,如圖5所示,本發明實施例提供的多業務的策略處理方法,包括:
[0066]S501,將多個業務對應的所有業務規則進行混合編排,以提取所述所有業務規則的條件,并利用提取的所述條件構建至少一個條件集,并且生成用于記錄每個業務規則與所述條件集中的條件之間的映射關系的映射關系數據;
[0067]需要說明的是,業務規則通常包含條件、動作兩部分,可簡單描述為:
[0068]規則:if (條件集)then(動作集);其中,條件集包括條件及條件間的邏輯關系,通常有AND、OR ;動作集包括對應到一條規則的多個串行或并行的業務動作,通常可順序表示,比如:動作I ;動作2 ;本發明實施例中為了簡單起見,以僅包含了一個條件和動作的規則1:1f (條件l)then動作I,來說明;該規則I表示當條件I滿足時,就執行對應的動作I。
[0069]具體地,在一個實施例中,對多個業務對應的所有業務規則進行混合編排,具體包括:
[0070]S5011,將每個業務規則拆分成條件和動作兩部分,并生成用于記錄所述每個業務規則與所述業務規則中的條件之間的映射關系的映射關系數據;
[0071]需要說明的是,當所有業務規則都是如規則I 一樣的“單條件規則”時,只需要在映射關系數據中記錄每條業務規則中的條件與該業務規則的映射關系即可,對于這樣的業務規則,條件如果驗證成功,也就代表其對應的業務規則已經匹配,該業務規則中包含的動作也可被觸發執行;在一個實施例中,如果所有業務規則中存在包含有多個條件的復合型規則時,僅僅記錄每個業務規則與該業務規則的條件之間的映射關系是不夠的,因為此時條件并不能唯一對應到規則,這就需要在記錄每條規則與該規則的條件的映射關系的同時,還記錄同一規則中各個條件之間的邏輯關系,即這種情形下,需要根據同一規則中包含的每個條件的匹配結果,以及各個條件的邏輯關系,才能確定出規則是否匹配成功。最后需要說明的是,映射關系數據僅僅是一個功能性的名詞,在具體實現中,其可以為數據表、數據文件等等可存儲數據的載體。
[0072]S5012,提取上述拆分成的所有業務規則的條件,并去除重復的條件。
[0073]S5013,對去除重復之后的條件進行分類,以得到至少一種類型的條件集;
[0074]具體地,對去除重復之后的條件進行分類,是將具有相同特點的條件分為一類,例如將進行IP地址匹配的條件分為一類,將進行URL匹配的條件分為一類。當然也可以按匹配方式進行分類,例如按正則表達式方式匹配的條件分為一類等,還可以按照報文信息層次進行分類,比如L3的條件分為一類,L7的條件分為一類等。另外,需要說明的是,在另外一種實施方式中,業務規則中包含的條件不僅可以是與L1-L7報文數據的特征信息相關的條件,還可以包括業務事件、協議類型、業務結果等可以用于判斷某一類業務動作是否執行的策略條件。
[0075]S5014,調整上述映射關系數據,以將上述條件集中的每個條件映射到包含所述條件的所有業務規則上,從而得到述條件集中的條件與到各個業務規則之間的映射關系數據。
[0076]由于步驟S5022對提取出的所有條件,進行了去重,因此分類后得到的各個條件集中的條件均是唯一的,但是去重的同時也破壞了之前建立的映射關系數據,故需要對映射關系數據進行調整,調整之后,包含相同條件的業務規則,均會被映射到條件集中對應的同一條件上,即條件集中的每一個條件,均映射到包含該條件的一個或多個業務規則上。
[0077]當然可以理解的是,在另一個實施例中,可以對上述步驟做進一步簡化,不采用先生成映射關系數據,去重之后再調整的方式,而是在提取所有業務規則的條件,去重并分類形成條件集之后,直接將各個條件集中每個條件映射到包含所述條件的所有業務規則上,以得到所述條件集中的條件與各個業務規則之間的映射關系數據。
[0078]進一步地,在另一個實施例中,在上述步驟S5014之后,還可以包括:
[0079]S5015,將分類之后得到的各個條件集編譯成統一的格式;
[0080]具體地,根據對去重后的條件分類的結果,將分類后的條件集按類別分別編譯,編譯成條件匹配引擎所支持的格式。進一步地,還可以將記錄業務規則與業務規則的條件的映射關系的映射關系數據,編譯成規則匹配引擎所需的格式;另外,如果存在如上所述的復合型規則時,還需要將每個復合型規則中各個條件之間的邏輯關系保存到規則匹配引擎內(或者編譯成規則匹配引擎所支持的格式后再保存)。需要說明的是,條件匹配引擎主要負責各種條件的統一驗證,即驗證哪些業務規則中的條件數據匹配成功,本領域技術人員可以理解的是,條件匹配引擎既可由軟件實現,也可以用硬件邏輯來實現,此處不再贅述。
[0081]下面通過一個具體的實例對上述步驟做一個說明,如圖6所示,當前網絡設備具有的業務規則如下(此處以上述的“單條件”規則為例進行說明):
[0082]IPS-rulel:if (URL= “url_l ”)alert threat I (告警進程 I);
[0083]IPS-rule2:if (IP= “128.1.1.1”)alert threat2 (告警進程 2);
[0084]URLF-rulel:if (URL= “url_2”)block;
[0085]WOC-rulel:if (IP= “128.1.1.1”)read cache (讀緩存);
[0086]ADC-rulel:if (URL= “url_2”)block;
[0087]首先,對各個業務規則進行拆分,將每個業務規則拆分成條件部分和動作部分,同時記錄規則、條件之間的映射關系;圖6中的URL=“url-l”、URL=“url-2”、IP=“128.1.1.1”等均為條件;alert threatl、block、alert threat2均為動作;然后,對拆分出的所有條件進行去重,去重的目的是為了去除重復的條件,比如IPS-rule2與WOC-rulel的條件是重復的,URLF-rulel與ADC-rulel的條件重復,將重復的條件去除后,還需要對條件、規則的映射關系進行調整,比如圖6中所示的條件IP= “128.1.1.1”,經過去重操作后,就需要同時映射到IPS-rule2和WOC-rulel這兩個規則上,條件URL= “url_2”,就需要同時映射到URLF-ruI e I和ADC_ruI e I ;然后,對去重之后的條件進行分類,如圖6所示的,將URL有關的條件歸為一類,將IP有關的條件歸為一類,形成URL條件集和IP條件集。
[0088]S502,根據構建的各個條件集,對接收到的網絡數據包的報文特征信息進行條件匹配,輸出條件匹配結果集;所述條件匹配結果集用于記錄匹配成功的條件;
[0089]具體地,所述網絡數據包的報文特征信息具體包括與各個業務應用的業務規則相關的所有報文特征,也即在驗證各個業務規則中的條件是否匹配時,必須用到的報文特征信息,其具體可以為該網絡數據包的L1-L7的信息,比如與URLF規則的條件相關的URL信息、與IPS規則的條件相關的五元組信息等,網絡數據包的報文特征信息還可以包括業務事件、協議類型、業務結果等可以用于判斷某一類業務動作是否執行的條件相關的報文特征信息。
[0090]假設將各個業務規則的條件進行分類、去重和編譯后,形成了多個條件集,比如URL條件集、IP條件集、應用層協議類型條件集,則對抽取出的報文特征信息進行統一條件匹配,具體包括:將網絡數據包的URL輸入URL條件集進行匹配,同時將網絡數據包的IP輸入到IP地址條件集進行匹配,同時將網絡數據包的應用層協議類型輸入到應用層協議類型條件集進行匹配,匹配的具體過程就是比較網絡數據包的特征信息是否與各個條件集中的條件相匹配或是否符合條件要求。將各個條件集的匹配結果匯總成“條件匹配結果集”,最后上報至規則匹配引擎,其中,條件匹配結果集主要用于指示哪些條件已經匹配成功(命中),具體地,可以將匹配成功的條件,以標識的方式,包含在條件匹配結果集中。
[0091]在一種具體的實現方式中,S502具體包括:[0092]S5021,對接收到的網絡數據包進行報文檢測,以提取所述多個業務應用所需的所有報文特征信息;
[0093]其中,可以通過報文檢測手段,比如從2-7層的DPI(Deep Packet Inspection,深度報文檢測),從接收到的網絡數據包中抽取多業務所需的所有報文特征信息,比如URL、五元組、協議類型等信息。而且,在報文掃描過程中,不做多余操作,只抽取當前網絡設備運行的業務應用(如W0C、ADC、IPS等)所需的報文特征信息。需要說明的是,業務應用所需的報文特征信息,具體是指業務應用所對應的業務規則相關的報文特征信息,或者更確切的說,是該業務規則中的條件對應的報文特征信息,也即在驗證該業務規則包含的條件是否滿足時,必須要用到的報文特征信息。
[0094]S5022將提取的所述報文特征信息,同時與各個條件集中的條件進行匹配,并將匹配成功的條件的標識記錄到所述條件匹配結果集中。
[0095]S503,根據條件匹配結果集,以及生成的所述映射關系數據,確定出匹配成功的業務規則,并觸發所述匹配成功的業務規則所對應的業務應用執行所述匹配成功的業務規則對應的動作。
[0096]在具體的實施例中,如果業務規則為僅包含一個條件的“單條件規則”時,規則匹配引擎會根據映射關系數據中記錄的條件與業務規則之間的映射關系,即可確定哪些業務規則匹配成功,即規則被命中;如果業務規則為包含多個條件的復合型規則時,規則匹配引擎需要根據每個業務規則與條件的映射關系,以及每個業務規則中條件間的邏輯關系,來確定規則是否被命中;最后,觸發匹配成功的業務規則所對應的業務應用執行該業務規則對應的動作。可以理解的是,上述觸發動作執行的過程,具體可以為:調用所述匹配成功的業務規則所屬的業務應用執行所述匹配成功的業務規則對應的動作;或者發送規則命中消息到匹配成功的業務規則所對應的業務應用,以使所述業務應用根據所述規則命中消息,執行所述匹配成功的業務規則對應的動作;或者將每個業務規則的匹配結果上報至對應的業務應用,以使業務根據根據自身的業務規則的匹配情況,來決定是否執行規則對應的動作。
[0097]由上述技術方案可知,本發明實施例的策略處理的方法,通過對多業務規則進行混合編排,將所有業務規則統一組織,在一次報文數據掃描過程中抽取所有業務所需的信息,且只需進行一次條件匹配和規則驗證過程,減少了多業務之間冗余操作,促進單一設備上的多業務融合,提升設備集成度與性能,同時也降低業務部署和設備硬件成本,提升了網絡設備的競爭力。
[0098]下面介紹實現上述方法的一個裝置實施例,如圖7所示,本發明實施例提供一種網絡設備,根據圖7,該網絡設備70包括:混合編排器720、條件匹配器730和規則匹配器740,其中,每個業務規則包含條件和動作;
[0099]混合編排器720,用于將網絡設備70上運行的多個業務所對應的所有業務規則進行混合編排,以提取所述所有業務規則的條件,并利用提取的所述條件構建至少一個條件集,并且生成用于記錄每個業務規則與所述條件集中的條件之間的映射關系的映射關系數據;其中,
[0100]條件匹配器730,用于根據混合編排器720構建的各個條件集,對網絡設備70接收到的網絡數據包的報文特征信息進行條件匹配,并輸出條件匹配結果集;所述條件匹配結果集用于記錄匹配成功的條件;
[0101]規則匹配器740,用于根據條件匹配器730輸出的條件匹配結果集,以及混合編排器720生成的映射關系數據,確定出匹配成功的業務規則,并觸發所述匹配成功的業務規則所對應的業務應用執行所述匹配成功的業務規則對應的動作。
[0102]具體地,在一種實施方式中,如圖8所示,混合編排器720具體包括:規則拆分單元7201、條件篩選去重單元7202、條件分類單元7203,以及映射單元7204 ;其中:
[0103]規則拆分單元7201,主要用于將多業務規則集中的每個業務規則拆分成條件和動作;其中,多業務規則集包含了網絡設備70上運行或部署的一個或多個業務應用所對應的所有業務規則;
[0104]條件篩選去重單元7202,用于提取規則拆分單元7201拆分出的條件,并去除重復的條件;
[0105]條件分類單元7203,用于將條件篩選去重單元7202去重之后的條件分類,得到至少一種類型的條件集;
[0106]具體地,條件分類單元7203將具有相同特點的條件分為一類,例如將進行IP地址匹配的條件分為一類,將進行URL匹配的條件分為一類。當然也可以按匹配方式進行分類,例如按正則表達式方式匹配的條件分為一類等,還可以按照報文信息層次進行分類,比如L3的條件分為一類,L7的條件分為一類等。另外,需要說明的是,在另外一種實施方式中,業務規則中包含的條件不僅可以是與L1-L7報文數據的特征信息相關的條件,還可以包括業務事件、協議類型、業務結果等可以用于判斷某一類業務動作是否執行的策略條件。
[0107]映射單元7204,用于生成所述條件集中的條件與各個業務規則之間的映射關系數據。
[0108]具體地,映射單元7204可以直接將所述條件集中每個條件映射到包含所述條件的所有業務規則上,以得到所述條件集中的條件與各個業務規則之間的映射關系數據;在另一個實施例中,映射單元7204也可以在規則拆分單元7201將所述所有業務規則中的每個業務規則拆分成條件和動作時,生成用于記錄所述每個業務規則與所述業務規則中的條件之間的映射關系的映射關系數據,并在所述條件篩選去重單元7202去除重復的條件之后,調整所述映射關系數據,以將所述條件集中的每個條件映射到包含所述條件的一個或多個業務規則上,從而得到述條件集中的條件與各個業務規則之間的映射關系數據。
[0109]進一步地,在一個實施例中,混合編排器720還包括:編譯單元7205,用于將分類后得到的各種類型的條件集按類別分別編譯成統一的格式;其中,所述統一的格式為條件匹配器730所支持的格式;相應地,條件匹配器730,具體用于根據編譯單元7205編譯成的統一格式的條件集,對網絡設備70接收到的網絡數據包的報文特征信息進行條件匹配,并輸出條件匹配結果集。
[0110]進一步地,編譯單元7205同時還可以將映射單元7204生成的映射關系數據,編譯成規則匹配器740所支持的格式;另外,如果存在如上所述的復合型規則時,還需要將每個業務規則中各個條件之間的邏輯關系保存到規則匹配器740內(或者編譯成規則匹配器所支持的格式后再保存)。
[0111]在一種具體的實現方式中,條件匹配器730具體用于將網絡設備70接收到的網絡數據包的報文特征信息,同時與所述各個條件集中的條件進行匹配,并將匹配成功的條件的標識記錄到所述條件匹配結果集;其中,這里用于匹配的網絡數據包的特征信息,具體包括與網絡設備70上運行的業務應用的業務規則相關的所有報文特征信息,即各個業務規則包含的條件所對應的報文特征信息;條件的標識用于唯一地表示條件,其具體可以為數
字、字母或字符串等。
[0112]條件匹配器730具體根據條件所對應的特征類型、報文特征信息等,在每個類別的條件集內進行統一的條件匹配。需要說明的是,條件集并不限于與L1-L7報文數據的特征信息相關的條件集,還可以包括業務事件、協議類型、業務結果等可以用于判斷某一類業務動作是否執行的其他條件集。
[0113]在一種實施方式中,如圖9所示,條件匹配器730的處理流程如下:
[0114]首先,網絡數據包經過一個或多個處理單元的處理和解析(如圖9中的L3-L7處理,其他處理),將多業務所需的所有報文特征信息抽取出來,提交給條件匹配器進行統一匹配,然后,條件匹配器根據混合編排器生成的各個條件集,對抽取出的報文特征信息進行相應的多模匹配,這種匹配方式是一種集中式的條件匹配,條件匹配器的輸出結果是條件匹配結果集,即已經匹配成功的條件的標識集合,其中每個條件標識唯一表示一個條件。
[0115]在另一個實施例中,網絡設備70還可以包括:檢測器710,用于對接收到的網絡數據包進行報文檢測,以收集所述網絡設備上運行的多個業務所需的所有報文特征信息;相應地,條件匹配器730具體用于,根據混合編排器720構建的各個條件集,對檢測器710收集到的網絡數據包的報文特征信息進行條件匹配,并輸出條件匹配結果集。
[0116]需要說明的是,在實際應用中,檢測器710可以是多個報文處理單元,其中每個報文處理單元單獨負責一種類型的報文掃描,比如專門負責L3處理的處理單元,專門負責L7處理的處理單元等;各個報文處理單元共同抽取出所述多個業務所需的所有報文特征信息;需要說明的是,業務所需的報文特征信息,具體是指網絡設備上的業務應用所對應的所有業務規則相關的報文特征信息,或者更確切的說,是在驗證業務規則包含的各個條件是否匹配時,必須要用到的報文特征信息。在另一種實現方式中,檢測器也可以是一個集成了L3-L7處理,甚至其它類型報文處理功能的多功能處理器,如DPI模塊。另外,本領域技術人員可以理解的是,在實際應用中,檢測器710既可以部署在網絡設備內部,也可以作為一個單獨的業務模塊,部署在網絡設備外部,與網絡設備間通過總線或其他通信方式對接。
[0117]在一種應用場景中,條件匹配器可以為一個單獨的匹配引擎,該匹配引擎可由軟件算法來實現,也可由硬件邏輯來實現。
[0118]在另一種應用場景中,如圖10所示,如果監測器710包含多個報文處理單元,則條件匹配器也可以分為多個邏輯功能單元,以分布式的方式部署到各個報文處理單元中;在這種場景下,混合編排器將分類后得到的條件集,按照特征分類分別下放到對應的報文處理單元,條件匹配器部署在各報文處理單元內部,當報文處理單元抽取出報文特征信息后,直接上報至該報文處理單元中的條件匹配器,如果條件匹配成功時,則將結果上報至條件匹配結果集。
[0119]如圖11所示,規則匹配器740,具體根據條件匹配結果集和映射關系數據中記錄的每個業務規則與該業務規則中的條件之間的映射關系,確定出已經匹配成功的業務規貝U,然后調用業務應用執行該業務規則對應的動作,需要說明的是,如果業務規則為僅包一個條件的“單條件規則”時,規則匹配器740具體會根據條件匹配結果集,以及映射關系數據中記錄的每個業務規則與該業務規則中的條件之間的映射關系,確定哪些業務規則匹配成功,即規則被命中,然后觸發業務應用執行命中的規則所對應的動作;如果業務規則中存在包含有多個條件的復合型規則時,規則匹配器740具體會根據條件匹配結果集、映射關系數據中記錄的每個業務規則與該業務規則中的條件之間的映射關系,以及每個業務規則中的各個條件之間的邏輯關系,來確定規則是否被命中,最后,觸發匹配成功的業務規則所對應的業務應用執行該業務規則對應的動作。具體地,規則匹配器740可以采用進程/函數調用的方式,直接調用所述匹配成功的業務規則所屬的業務應用執行所述匹配成功的業務規則對應的動作;或者發送規則命中消息到匹配成功的業務規則所對應的業務應用,以使所述業務應用根據所述規則命中消息,執行所述匹配成功的業務規則對應的動作;其中,該規則命中消息用于指示業務規則已匹配成功。
[0120]下面通過一個具體的實例,來描述上述網絡設備進行策略執行的過程。圖12是基于本發明實施例的網絡設備,針對HTTP報文URL信息的多業務策略執行方法。根據圖12,首先通過混合編排器對所有業務規則進行混合編排(圖11示出了 3條業務規則),然后,抽取出所有的URL匹配條件下發至URL條件匹配器,并將條件與策略規則及策略動作的對應關系下發至規則匹配器;在策略執行時,報文經過DPI處理后得到的URL信息發送給URL條件匹配器,進行統一的條件匹配,得到的匹配結果發送給規則匹配器,假設此時命中了 ADC的規則,則直接調用ADC業務單元執行對應動作即可。可見,在本發明方法實施例中,URL只需進行一次匹配過程,規則驗證也只需一次,而業務單元的調用也只需一次,去除了多業務之間的冗余操作。
[0121]最后需要說明的是,本發明實施例提供的網絡設備的具體工作原理和工作過程,可以參照前述的方法實施例,此處不再贅述。
[0122]本發明實施例的網絡設備,通過對多業務規則進行混合編排,將所有業務規則統一組織,在一次報文數據掃描過程中抽取所有業務所需的信息,且只需進行一次條件匹配和規則驗證過程,減少了多業務之間冗余操作,促進單一設備上的多業務融合,提升設備集成度與性能,同時也降低業務部署和設備硬件成本,提升了網絡設備的競爭力。
[0123]圖13示出了本發明實施例提供的另一網絡設備示意圖,如圖13所示,網絡設備包括:至少一個處理器1001、存儲器1002、通信接口 1003和總線。處理器1001、存儲器1002和通信接口 1003通過總線連接并完成相互間的通信。所述總線可以是工業標準體系結構(Industry Standard Architecture,簡稱為 ISA)總線、外部設備互連(PeripheralComponent,簡稱為PCI)總線或擴展工業標準體系結構(Extended Industry StandardArchitecture,簡稱為EISA)總線等。所述總線可以分為地址總線、數據總線、控制總線等。為便于表示,圖12中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。其中:
[0124]存儲器1002用于存儲可執行程序代碼,該程序代碼包括計算機操作指令。存儲器1002可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
[0125]在一個實施例中,處理器1001通過讀取存儲器1002中存儲的可執行程序代碼來運行與所述可執行程序代碼對應的程序,以用于:
[0126]將多個業務應用所對應的所有業務規則進行混合編排,每個業務規則包含條件和動作,以提取所述所有業務規則的條件,并利用提取的所述條件構建至少一個條件集,并且生成用于記錄每個業務規則與所述條件集中的條件之間的映射關系的映射關系數據;
[0127]根據構建的各個條件集,對接收到的網絡數據包的報文特征信息進行條件匹配,以輸出條件匹配結果集;所述條件匹配結果集用于記錄匹配成功的條件;
[0128]根據所述條件匹配結果集,以及生成的所述映射關系數據,確定出匹配成功的業務規則,并觸發所述匹配成功的業務規則所對應的業務應用執行所述匹配成功的業務規則對應的動作。
[0129]其中,上述流程的具體細節,可以參照上述方法及裝置實施例,此處不再贅述。
[0130]處理器1001可能是一個中央處理器(Central Processing Unit,簡稱為CPU),或者是特定集成電路(Application Specific Integrated Circuit,簡稱為ASIC),或者是被配置成實施本發明實施例的一個或多個集成電路。
[0131]需說明的是,上述處理器1001除了具有上述功能之外,還可用于執行上述方法實施例中的其他流程,在此不再贅述。
[0132]通信接口 1003主要用于實現本實施例的流量來源確定設備與其他設備或裝置之間的通信。在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的。
[0133]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
[0134]另外,在本發明各個實施例提供的網絡設備中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
[0135]所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0136]最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
【權利要求】
1.一種網絡設備,其特征在于,包括:混合編排器、條件匹配器和規則匹配器,其中: 所述混合編排器,用于將所述網絡設備上運行的多個業務應用所對應的所有業務規則進行混合編排,每個業務規則包含條件和動作,以提取所述所有業務規則的條件,并利用提取的所述條件構建至少一個條件集,并且生成用于記錄每個業務規則與所述條件集中的條件之間的映射關系的映射關系數據; 所述條件匹配器,用于根據所述混合編排器構建的各個條件集,對所述網絡設備接收到的網絡數據包的報文特征信息進行條件匹配,并輸出條件匹配結果集;所述條件匹配結果集用于記錄匹配成功的條件; 所述規則匹配器,用于根據所述條件匹配結果集,以及所述混合編排器生成的所述映射關系數據,確定出匹配成功的業務規則,并觸發所述匹配成功的業務規則所對應的業務應用執行所述匹配成功的業務規則對應的動作。
2.根據權利要求1所述的網絡設備,其特征在于,所述混合編排器,具體包括: 規則拆分單元,用于將所述所有業務規則中的每個業務規則拆分成條件和動作; 條件篩選去重單元,用于提取所述拆分單元拆分成的所述條件,,并去除重復的條件; 條件分類單元,用于將所述條件篩選去重單元去除重復之后的條件進行分類,得到至少一種類型的條件集; 映射單元,用于生成用于記錄每個業務規則與所述條件集中的條件之間的映射關系的映射關系數據。
3.根據權利要求2所述的網絡設備,其特征在于,所述映射單元具體用于:將所述條件集中每個條件映射到包含所述條件的所有業務規則上,以建立每個業務規則與所述條件集中的條件之間的映射關系,并生成用于記錄所述映射關系的映射關系數據; 或者,所述映射單元具體用于:在規則拆分單元將所述所有業務規則中的每個業務規則拆分成條件和動作時,記錄所述每個業務規則與所述業務規則中的條件之間的映射關系,并在所述所述條件篩選去重單元去除重復的條件之后,調整記錄的所述映射關系,以使所述條件集中的每個條件映射到包含所述條件的所有業務規則上,并生成用于記錄所述調整后的映射關系的映射關系數據。
4.根據權利要求2或3所述的網絡設備,其特征在于,所述混合編排器還包括:編譯單元,用于將所述條件分類單元分類后形成的各個類型的條件集,分別編譯成統一的格式,所述統一的格式為所述條件匹配器所支持的格式;所述條件匹配器,具體用于根據所述編譯單元編譯成的統一格式的條件集,對所述網絡設備接收到的網絡數據包的報文特征信息進行條件匹配,并輸出條件匹配結果集。
5.根據權利要求1-4任一項所述的網絡設備,其特征在于,所述條件匹配器具體用于: 將所述網絡設備接收到的網絡數據包的報文特征信息,同時與所述各個條件集中的條件進行匹配,并將匹配成功的條件的標識記錄到所述條件匹配結果集。
6.根據權利要求5所述的網絡設備,其特征在于,還包括: 檢測器,用于對所述網絡設備接收到的網絡數據包進行報文檢測,以收集所述網絡數據包的報文特征信息;所述條件匹配器,具體用于根據所述混合編排器構建的各個條件集,對所述檢測器收集到的網絡數據包的報文特征信息進行條件匹配,并輸出條件匹配結果集。
7.根據權利要求6所述的網絡設備,其特征在于,所述檢測器包括多個報文處理單元,所述多個報文處理單元共同收集得到所述網絡數據包中,所述多個業務應用所需的所有報文特征信息。
8.根據權利要求7所述的網絡設備,其特征在于,所述條件匹配器以分布式的方式部署在所述多個報文處理單元中。
9.根據權利要求1-8任一項所述的網絡設備,其特征在于,所述所有業務規則中,至少有一個業務規則為復合型規則,所述復合型規則為包含多個條件的業務規則; 所述混合編排器,還用于,記錄每個所述復合型規則中,各個條件之間的邏輯關系; 所述規則匹配器,具體用于,根據所述條件匹配結果集、所述混合編排器記錄的所述映射關系,以及所述各個條件之間的邏輯關系,確定出匹配成功的業務規則,并調用所述匹配成功的業務規則所屬的業務應用執行所述匹配成功的業務規則對應的動作,或者發送規則命中消息到所述匹配成功的業務規則所對應的業務應用,以使所述業務應用根據所述規則命中消息,執行所述匹配成功的業務規則對應的動作。
10.一種多業務的策略處理方法,其特征在于,包括: 將多個業務應用所對應的所有業務規則進行混合編排,每個業務規則包含條件和動作,以提取所述所有業務規則的條件,并利用提取的所述條件構建至少一個條件集,并且生成用于記錄每個業務規則與所述條件集中的條件之間的映射關系的映射關系數據; 根據構建的各個條件集,對接收到的網絡數據包的報文特征信息進行條件匹配,輸出條件匹配結果集;所述條件匹配結果集用于記錄匹配成功的條件; 根據所述條件匹配結果集,以及生成的所述映射關系數據,確定出匹配成功的業務規貝U,并觸發所述匹配成功的業務規則所對應的業務應用執行所述匹配成功的業務規則對應的動作。
11.根據權利要求10所述的方法,其特征在于,所述將多個業務應用所對應的所有業務規則進行混合編排,包括: 將所述所有業務規則中的每個業務規則拆分成條件和動作,并生成用于記錄所述每個業務規則與所述業務規則中的條件之間的映射關系的映射關系數據; 提取拆分成的條件,并去除重復的條件; 將去除重復之后的條件分類,得到至少一種類型的條件集; 調整所述映射關系數據,以將所述條件集中的每個條件映射到包含所述條件的所有業務規則上,從而得到述條件集中的條件與各個業務規則之間的映射關系數據。
12.根據權利要求10所述的方法,其特征在于,所述將多個業務應用所對應的所有業務規則進行混合編排,包括: 將所述所有業務規則中的每個業務規則拆分成條件和動作; 提取拆分成的所述條件,并去除重復的條件; 將去除重復之后的條件進行分類,得到至少一種類型的條件集; 將所述條件集中的每個條件映射到包含所述條件的所有業務規則上,以得到所述條件集中的條件與各個業務規則之間的映射關系數據。
13.根據權利要求10-12任一項所述的方法,其特征在于,所述根據構建的各個條件集,對接收到的網絡數據包的報文特征信息進行條件匹配,以輸出條件匹配結果集,包括:對接收到的網絡數據包進行報文檢測,以提取所述多個業務應用所需的所有報文特征信息; 將提取的所述報文特征信息,同時與各個條件集中的條件進行匹配,并將匹配成功的條件的標識記錄到所述條件匹配結果集中。
14.根據權利要求10-13任一項所述的方法,其特征在于,所述所有業務規則中,至少有一個業務規則為復合型規則,所述復合型規則為包含多個條件的業務規則; 在將所述所有業務規則中的每個業務規則拆分成條件和動作之后,所述方法還包括:記錄每個所述復合型規則中,各個條件之間的邏輯關系; 所述根據所述條件匹配結果集,以及生成的所述映射關系數據,確定出匹配成功的業務規則,具體包括:根據所述條件匹配結果集、所述映射關系,以及所述各個條件之間的邏輯關系,確定出匹配成功的業務規則,并調用所述匹配成功的業務規則所屬的業務應用執行相應的動作。
15.根據權利要求10-13任一項所述的方法,其特征在于,所述觸發所述匹配成功的業務規則所對應的業務應用執行所述匹配成功的業務規則對應的動作,包括: 調用所述匹配成功的業務規則所屬的業務應用執行所述匹配成功的業務規則對應的動作;或者發送規則命中消息到所述匹配成功的業務規則所對應的業務應用,以使所述業務應用根據所述規則命中消息,執行所述匹`配成功的業務規則對應的動作。
【文檔編號】H04L12/24GK103688489SQ201280003466
【公開日】2014年3月26日 申請日期:2012年12月3日 優先權日:2012年12月3日
【發明者】劉赫偉, 史云龍 申請人:華為技術有限公司