• / 21
  • 下載費用:30 金幣  

數據包轉發和安全防護檢測系統、負載均衡方法及裝置.pdf

關 鍵 詞:
數據包 轉發 安全 防護 檢測 系統 負載 均衡 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310753226.4

申請日:

2013.12.31

公開號:

CN103685321A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):H04L 29/06申請日:20131231|||公開
IPC分類號: H04L29/06; H04L12/803(2013.01)I; G06F17/30 主分類號: H04L29/06
申請人: 北京神州綠盟信息安全科技股份有限公司; 北京神州綠盟科技有限公司
發明人: 彭權
地址: 100089 北京市海淀區北洼路4號益泰大廈三層
優先權:
專利代理機構: 北京同達信恒知識產權代理有限公司 11291 代理人: 黃志華
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310753226.4

授權公告號:

||||||

法律狀態公告日:

2016.09.14|||2014.04.23|||2014.03.26

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明公開了數據包轉發和安全防護檢測系統,包括:數據包轉發模塊,多個安全引擎和與多個安全引擎一一對應的環形隊列,其中:數據包轉發模塊包括包收取模塊,包處理模塊和包發送模塊;安全引擎,用于從與自身對應的所述環形隊列中獲取待轉發數據包;對待轉發數據包進行安全防護檢測;將攜帶有安全檢測結果標識的待轉發數據包放入與自身對應的環形隊列中;環形隊列,用于存儲包處理模塊發送的待轉發數據包和與自身對應的安全引擎發送的攜帶有表示安全的安全檢測結果標識的待轉發數據包。采用本發明實施例提供的方案,提高了對數據包進行轉發和安全防護檢測的處理效率。

權利要求書

權利要求書
1.  一種數據包轉發和安全防護檢測系統,其特征在于,包括:數據包轉發模塊,多個安全引擎和與多個安全引擎一一對應的環形隊列,其中:
所述數據包轉發模塊包括包收取模塊,包處理模塊和包發送模塊;
所述包收取模塊,用于接收多個待轉發數據包;將多個所述待轉發數據包發送給所述包處理模塊;
所述包處理模塊,用于接收所述包收取模塊發送的多個所述待轉發數據包;根據預設負載均衡算法,將所述待轉發數據包發送給多個安全引擎中負載能力最強的安全引擎對應的環形隊列;接收多個所述環形隊列中攜帶有安全檢測結果標識的所述待轉發數據包;向所述包發送模塊發送攜帶有表示安全的安全檢測結果標識的待轉發數據包;對攜帶有表示數據包有安全威脅的安全檢測結果標識的待轉發數據包進行丟棄或者阻斷轉發處理;
所述包發送模塊,用于接收所述包處理模塊發送的所述攜帶有表示安全的安全檢測結果標識的待轉發數據包;將所述攜帶有表示安全的安全檢測結果標識的待轉發數據包發送給接收端;
所述安全引擎,用于從與自身對應的所述環形隊列中獲取待轉發數據包;對所述待轉發數據包進行安全防護檢測;將攜帶有安全檢測結果標識的待轉發數據包放入與自身對應的環形隊列中;
所述環形隊列,用于存儲所述包處理模塊發送的所述待轉發數據包和與自身對應的所述安全引擎發送的攜帶有表示安全的安全檢測結果標識的待轉發數據包。

2.  如權利要求1所述的系統,其特征在于,所述包處理模塊,具體用于對從所述包收取模塊接收的多個所述待轉發數據包進行底層協議安全防護檢測;針對每個所述待轉發數據包,當對該待轉發數據包的檢測結果為該待轉發數據包安全時,根據預設負載均衡算法,將該待轉發數據包發送給多個安全引擎中負載能力最強的安全引擎對應的環形隊列;當對該待轉發數據包的檢測結 果為該待轉發數據包有安全威脅時,將該待轉發數據包丟棄或者阻斷轉發處理。

3.  如權利要求1所述的系統,其特征在于,還包括:配置解析模塊,用于根據性能需求和處理器硬件制約條件設置所述數據包轉發模塊的線程個數和安全引擎的個數,對所述數據包轉發模塊和安全引擎進行初始化設置。

4.  如權利要求1所述的系統,其特征在于,所述配置解析模塊,還用于根據已配置的所述安全引擎的個數,分別為每個安全引擎分配與自身對應的環形隊列。

5.  一種負載均衡方法,其特征在于,應用于數據包轉發和安全防護檢測系統,所述數據包轉發和安全防護檢測系統包括:多個用于對數據包進行安全檢測的安全引擎和與多個安全引擎一一對應的環形隊列,所述環形隊列用于存儲與該環形隊列對應的安全引擎將要進行檢測的數據包;所述方法包括:
根據待轉發數據包的源IP、目的IP和所述安全引擎的個數進行哈希運算,得到哈希運算結果;
確定是否存在與所述哈希運算結果對應的環形隊列索引;
當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎;
當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定對所述待轉發數據包進行安全檢測的安全引擎,并建立所述哈希運算結果與確定的該安全引擎對應的環形隊列索引之間的對應關系。

6.  如權利要求5所述的方法,其特征在于,當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎,具體包括:
當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎的負載權值是否不小于預設權值閾值,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流 量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量;
當所述環形隊列索引對應的安全引擎的負載權值不小于預設權值閾值時,確定該環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。

7.  如權利要求6所述的方法,其特征在于,還包括:
當所述環形隊列索引對應的安全引擎的負載權值小于預設權值閾值時,確定所述環形隊列索引對應的安全引擎的負載權值是否為零;
當所述環形隊列索引對應的安全引擎的負載權值不為零時,確定除該環形隊列索引對應的安全引擎以外的負載權值最大的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。

8.  如權利要求7所述的方法,其特征在于,還包括:
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包標記為安全狀態;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包分發給除該安全引擎以外的負載權值最大的安全引擎;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包平均分發給除該安全引擎以外的安全引擎。

9.  如權利要求6所述的方法,其特征在于,確定所述安全引擎的負載權值,具體包括:
每隔預設周期,基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定所述安全引擎的負載權值。

10.  如權利要求5所述的方法,其特征在于,當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定對所述待轉發數據包進行安全檢測的安全引擎,具體包括:
當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引 擎中確定負載權值最大的安全引擎為對所述待轉發數據包進行安全檢測的安全引擎,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量。

11.  如權利要求6-10任一所述的方法,其特征在于,針對每個安全引擎,基于該安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定該安全引擎的負載權值,具體包括:
采用如下公式確定該安全引擎的負載權值:
F(i)=K×Q×[a×(1-Ci/Σi=1nCi)+b×(1-Si/Σi=1nSi)];]]>
其中,F(i)為第i個安全引擎的負載權值,K為常數,Q表示第i個安全引擎的工作狀態,Q=0表示該安全引擎的工作狀態為異常,Q=1表示該安全引擎的工作狀態為正常,Ci為第i個安全引擎的CPU占用率,為各安全引擎的CPU占用率的和,Si為第i個安全引擎的當前數據處理流量,為各安全引擎的當前數據處理流量的和,n為所有安全引擎的個數,a,b為常數,a>b。

12.  一種負載均衡裝置,其特征在于,應用于安全檢測系統,所述安全檢測系統包括:多個用于對數據包進行安全檢測的安全引擎和與多個安全引擎一一對應的環形隊列,所述環形隊列用于存儲與該環形隊列對應的安全引擎將要進行檢測的數據包;所述裝置,包括:
運算單元,用于根據待轉發數據包的源IP、目的IP和所述安全引擎的個數進行哈希運算,得到哈希運算結果;
索引確定單元,用于確定是否存在與所述哈希運算結果對應的環形隊列索引;
第一確定單元,用于當存在與所述哈希運算結果對應的環形隊列索引時, 確定所述環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎;
第二確定單元,用于當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定對所述待轉發數據包進行安全檢測的安全引擎,并建立所述哈希運算結果與確定的該安全引擎對應的環形隊列索引之間的對應關系。

13.  如權利要求12所述的裝置,其特征在于,所述第一確定單元,具體用于當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎的負載權值是否不小于預設權值閾值,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量;當所述環形隊列索引對應的安全引擎的負載權值不小于預設權值閾值時,確定該環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。

14.  如權利要求13所述的裝置,其特征在于,還包括:
第三確定單元,用于當所述環形隊列索引對應的安全引擎的負載權值小于預設權值閾值時,確定所述環形隊列索引對應的安全引擎的負載權值是否為零;
第四確定單元,用于當所述環形隊列索引對應的安全引擎的負載權值不為零時,確定除該環形隊列索引對應的安全引擎以外的負載權值最大的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。

15.  如權利要求14所述的裝置,其特征在于,還包括:
分發單元,用于當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包標記為安全狀態;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包分發給除該安全引擎以外的負載權值最大的安全引擎;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包平均分發給除該安全引擎以外的安全引擎。

16.  如權利要求13所述的裝置,其特征在于,所述第一確定單元,具體用于每隔預設周期,基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定所述安全引擎的負載權值。

17.  如權利要求12所述的裝置,其特征在于,所述第二確定單元,具體用于當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定負載權值最大的安全引擎為對所述待轉發數據包進行安全檢測的安全引擎,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量。

18.  如權利要求13-17任一所述的裝置,其特征在于,所述第一確定單元,具體用于采用如下公式確定所述安全引擎的負載權值:
F(i)=K×Q×[a×(1-Ci/Σi=1nCi)+b×(1-Si/Σi=1nSi)];]]>
其中,F(i)為第i個安全引擎的負載權值,K為常數,Q表示第i個安全引擎的工作狀態,Q=0表示該安全引擎的工作狀態為異常,Q=1表示該安全引擎的工作狀態為正常,Ci為第i個安全引擎的CPU占用率,為各安全引擎的CPU占用率的和,Si為第i個安全引擎的當前數據處理流量,為各安全引擎的當前數據處理流量的和,n為所有安全引擎的個數,a,b為常數,a>b。

說明書

說明書數據包轉發和安全防護檢測系統、負載均衡方法及裝置
技術領域
本發明涉及通信領域,尤其涉及數據包轉發和安全防護檢測系統、負載均衡方法及裝置。
背景技術
在網絡通信中進行數據包轉發時,數據包經過網絡通信中的工作層,可以經過物理層、數據鏈路層、網絡層、傳輸層和應用層等,在數據轉發的過程中,數據包可能會受到安全威脅,例如,數據包可能會受到DTP攻擊,ARP Flood攻擊,SYN Flood攻擊以及應用層的病毒注入等,因此,對于在網絡通信中轉發的數據包,需要進行安全防護檢測,以保證轉發數據包的安全性。
目前,現有的進行數據包轉發和安全防護主要為串行式的數據包處理方式,具體為:獲取一個待轉發數據包,對當前待轉發數據包進行安全防護檢測,當檢測到該當前待轉發數據包存在安全威脅時,對該當前待轉發數據包進行阻斷或丟棄處理,當檢測該當前待轉發數據包安全時,將該當前待轉發數據包發送給接收端,當該當前待轉發數據包轉發結束后,對下一個待轉發數據包進行上述轉發和安全防護處理。
上述現有的數據包轉發和安全防護的處理方式中,由于采用串行的數據包轉發和安全防護處理方式,每次只能針對一個數據包進行轉發和安全防護檢測,數據包轉發和安全防護檢測的效率低。
發明內容
本發明實施例提供數據包轉發和安全防護檢測系統、負載均衡方法及裝置,用以解決現有技術中存在的對數據包進行轉發和安全防護檢測的處理效率低的問題。
本發明實施例提供一種數據包轉發和安全防護檢測系統,其特征在于,包括:數據包轉發模塊,多個安全引擎和與多個安全引擎一一對應的環形隊列,其中:
所述數據包轉發模塊包括包收取模塊,包處理模塊和包發送模塊;
所述包收取模塊,用于接收多個待轉發數據包;將多個所述待轉發數據包發送給所述包處理模塊;
所述包處理模塊,用于接收所述包收取模塊發送的多個所述待轉發數據包;根據預設負載均衡算法,將所述待轉發數據包發送給多個安全引擎中負載能力最強的安全引擎對應的環形隊列;接收多個所述環形隊列中攜帶有安全檢測結果標識的所述待轉發數據包;向所述包發送模塊發送攜帶有表示安全的安全檢測結果標識的待轉發數據包;對攜帶有表示數據包有安全威脅的安全檢測結果標識的待轉發數據包進行丟棄或者阻斷轉發處理;
所述包發送模塊,用于接收所述包處理模塊發送的所述攜帶有表示安全的安全檢測結果標識的待轉發數據包;將所述攜帶有表示安全的安全檢測結果標識的待轉發數據包發送給接收端;
所述安全引擎,用于從與自身對應的所述環形隊列中獲取待轉發數據包;對所述待轉發數據包進行安全防護檢測;將攜帶有安全檢測結果標識的待轉發數據包放入與自身對應的環形隊列中;
所述環形隊列,用于存儲所述包處理模塊發送的所述待轉發數據包和與自身對應的所述安全引擎發送的攜帶有表示安全的安全檢測結果標識的待轉發數據包。
采用本發明提供的上述系統,由于采用多個安全引擎同時對待轉發數據包并行地進行安全檢測,提高了對數據包進行轉發和安全防護檢測的處理效率。
進一步的,所述包處理模塊,具體用于對從所述包收取模塊接收的多個所述待轉發數據包進行底層安全防護檢測;針對每個所述待轉發數據包,當對該待轉發數據包的檢測結果為該待轉發數據包安全時,根據預設負載均衡算法, 將該待轉發數據包發送給多個安全引擎中負載能力最強的安全引擎對應的環形隊列;當對該待轉發數據包的檢測結果為該待轉發數據包有安全威脅時,將該待轉發數據包丟棄或者阻斷轉發處理。
進一步的,上述系統,還包括:配置解析模塊,用于根據性能需求和處理器硬件制約條件設置所述數據包轉發模塊的線程個數和安全引擎的個數,對所述數據包轉發模塊和安全引擎進行初始化設置。
進一步的,所述配置解析模塊,還用于根據已配置的所述安全引擎的個數,分別為每個安全引擎分配與自身對應的環形隊列。
本發明實施例提供一種負載均衡方法,應用于數據包轉發和安全防護檢測系統,所述數據包轉發和安全防護檢測系統包括:多個用于對數據包進行安全檢測的安全引擎和與多個安全引擎一一對應的環形隊列,所述環形隊列用于存儲與該環形隊列對應的安全引擎將要進行檢測的數據包,該方法包括:
根據待轉發數據包的源IP、目的IP和所述安全引擎的個數進行哈希運算,得到哈希運算結果;
確定是否存在與所述哈希運算結果對應的環形隊列索引;
當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎;
當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定對所述待轉發數據包進行安全檢測的安全引擎,并建立所述哈希運算結果與確定的該安全引擎對應的環形隊列索引之間的對應關系。
采用本發明實施例提供的上述方法,由于通過判斷待轉發數據包進行哈希運算的結果是否存在對應的環形隊列索引,確定對待轉發數據包進行安全檢測的安全引擎,對待轉發數據包進行合理的分配,提高了安全引擎對數據包進行安全檢測的性能。
進一步的,當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安 全引擎,具體包括:
當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎的負載權值是否不小于預設權值閾值,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量;
當所述環形隊列索引對應的安全引擎的負載權值不小于預設權值閾值時,確定該環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。
進一步的,上述方法,還包括:
當所述環形隊列索引對應的安全引擎的負載權值小于預設權值閾值時,確定所述環形隊列索引對應的安全引擎的負載權值是否為零;
當所述環形隊列索引對應的安全引擎的負載權值不為零時,確定除該環形隊列索引對應的安全引擎以外的負載權值最大的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。
進一步的,上述方法,還包括:
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包標記為安全狀態;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包分發給除該安全引擎以外的負載權值最大的安全引擎;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包平均分發給除該安全引擎以外的安全引擎。
進一步的,確定所述安全引擎的負載權值,具體包括:
每隔預設周期,基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定所述安全引擎的負載權值。
進一步的,當不存在與所述哈希運算結果對應的環形隊列索引時,從所述 多個安全引擎中確定對所述待轉發數據包進行安全檢測的安全引擎,具體包括:
當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定負載權值最大的安全引擎為對所述待轉發數據包進行安全檢測的安全引擎,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量。
進一步的,針對每個安全引擎,基于該安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定該安全引擎的負載權值,具體包括:
采用如下公式確定該安全引擎的負載權值:
F(i)=K×Q×[a×(1-Ci/Σi=1nCi)+b×(1-Si/Σi=1nSi)];]]>
其中,F(i)為第i個安全引擎的負載權值,K為常數,Q表示第i個安全引擎的工作狀態,Q=0表示該安全引擎的工作狀態為異常,Q=1表示該安全引擎的工作狀態為正常,Ci為第i個安全引擎的CPU占用率,為各安全引擎的CPU占用率的和,Si為第i個安全引擎的當前數據處理流量,為各安全引擎的當前數據處理流量的和,n為所有安全引擎的個數,a,b為常數,a>b。
本發明實施例還提供了一種負載均衡裝置,應用于安全檢測系統,所述安全檢測系統包括:多個用于對數據包進行安全檢測的安全引擎和與多個安全引擎一一對應的環形隊列,所述環形隊列用于存儲與該環形隊列對應的安全引擎將要進行檢測的數據包;所述裝置,包括:
運算單元,用于根據待轉發數據包的源IP、目的IP和所述安全引擎的個數進行哈希運算,得到哈希運算結果;
索引確定單元,用于確定是否存在與所述哈希運算結果對應的環形隊列索引;
第一確定單元,用于當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎;
第二確定單元,用于當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定對所述待轉發數據包進行安全檢測的安全引擎,并建立所述哈希運算結果與確定的該安全引擎對應的環形隊列索引之間的對應關系。
進一步的,所述第一確定單元,具體用于當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎的負載權值是否不小于預設權值閾值,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量;當所述環形隊列索引對應的安全引擎的負載權值不小于預設權值閾值時,確定該環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。
進一步的,上述裝置,還包括:
第三確定單元,用于當所述環形隊列索引對應的安全引擎的負載權值小于預設權值閾值時,確定所述環形隊列索引對應的安全引擎的負載權值是否為零;
第四確定單元,用于當所述環形隊列索引對應的安全引擎的負載權值不為零時,確定除該環形隊列索引對應的安全引擎以外的負載權值最大的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。
進一步的,上述裝置,還包括:
分發單元,用于當所述環形隊列索引對應的安全引擎的負載權值為零時, 將已分發給該安全引擎的數據包標記為安全狀態;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包分發給除該安全引擎以外的負載權值最大的安全引擎;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包平均分發給除該安全引擎以外的安全引擎。
進一步的,所述第一確定單元,具體用于每隔預設周期,基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定所述安全引擎的負載權值。
進一步的,所述第二確定單元,具體用于當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定負載權值最大的安全引擎為對所述待轉發數據包進行安全檢測的安全引擎,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量。
進一步的,所述第一確定單元,具體用于采用如下公式確定所述安全引擎的負載權值:
F(i)=K×Q×[a×(1-Ci/Σi=1nCi)+b×(1-Si/Σi=1nSi)];]]>
其中,F(i)為第i個安全引擎的負載權值,K為常數,Q表示第i個安全引擎的工作狀態,Q=0表示該安全引擎的工作狀態為異常,Q=1表示該安全引擎的工作狀態為正常,Ci為第i個安全引擎的CPU占用率,為各安全引擎的CPU占用率的和,Si為第i個安全引擎的當前數據處理流量,為各安全引擎的當前數據處理流量的和,n為所有安全引擎的個數,a,b為常數,a>b。
采用本發明實施例提供的上述裝置,由于通過判斷待轉發數據包進行哈希運算的結果是否存在對應的環形隊列索引,確定對待轉發數據包進行安全檢測 的安全引擎,對待轉發數據包進行合理的分配,提高了安全引擎對數據包進行安全檢測的性能。
本申請的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本申請而了解。本申請的目的和其他優點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
附圖說明
附圖用來提供對本發明的進一步理解,并且構成說明書的一部分,與本發明實施例一起用于解釋本發明,并不構成對本發明的限制。在附圖中:
圖1為本發明實施例提供的數據包轉發和安全防護檢測系統的結構示意圖;
圖2為本發明實施例提供的數據包轉發模塊的結構示意圖;
圖3為本發明實施例1提供的負載均衡方法的流程圖;
圖4為本發明實施例2提供的負載均衡方法的流程圖;
圖5為本發明實施例3提供的負載均衡裝置的結構示意圖。
具體實施方式
為了給出提高數據包進行轉發和安全防護檢測的處理效率的實現方案,本發明實施例提供了數據包轉發和安全防護檢測系統、負載均衡方法及裝置,以下結合說明書附圖對本發明的優選實施例進行說明,應當理解,此處所描述的優選實施例僅用于說明和解釋本發明,并不用于限定本發明。并且在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
本發明實施例提供了一種數據包轉發和安全防護檢測系統,如圖1所示,包括:數據包轉發模塊101,多個安全引擎102和與多個安全引擎一一對應的環形隊列103,其中:
所述數據包轉發模塊101,如圖2所示,包括:包收取模塊201,包處理模塊202和包發送模塊203;
所述包收取模塊201,用于接收多個待轉發數據包;將多個所述待轉發數據包發送給所述包處理模塊;
所述包處理模塊202,用于接收所述包收取模塊發送的多個所述待轉發數據包;根據預設負載均衡算法,將所述待轉發數據包發送給多個安全引擎中負載能力最強的安全引擎對應的環形隊列;接收多個所述環形隊列中攜帶有安全檢測結果標識的所述待轉發數據包;向所述包發送模塊發送攜帶有表示安全的安全檢測結果標識的待轉發數據包;對攜帶有表示數據包有安全威脅的安全檢測結果標識的待轉發數據包進行丟棄或者阻斷轉發處理;
所述包發送模塊203,用于接收所述包處理模塊發送的所述攜帶有表示安全的安全檢測結果標識的待轉發數據包;將所述攜帶有表示安全的安全檢測結果標識的待轉發數據包發送給接收端;
所述安全引擎101,用于從與自身對應的所述環形隊列中獲取待轉發數據包;對所述待轉發數據包進行安全防護檢測;將攜帶有安全檢測結果標識的待轉發數據包放入與自身對應的環形隊列中;
所述環形隊列103,用于存儲所述包處理模塊發送的所述待轉發數據包和與自身對應的所述安全引擎發送的攜帶有表示安全的安全檢測結果標識的待轉發數據包。
進一步的,包處理模塊202,具體用于對從所述包收取模塊接收的多個所述待轉發數據包進行底層安全防護檢測;針對每個所述待轉發數據包,當對該待轉發數據包的檢測結果為該待轉發數據包安全時,根據預設負載均衡算法,將該待轉發數據包發送給多個安全引擎中負載能力最強的安全引擎對應的環形隊列;當對該待轉發數據包的檢測結果為該待轉發數據包有安全威脅時,將該待轉發數據包丟棄或者阻斷轉發處理。
進一步的,上述系統,還包括:配置解析模塊104,用于根據性能需求和 處理器硬件制約條件設置所述數據包轉發模塊的線程個數和安全引擎的個數,對所述數據包轉發模塊和安全引擎進行初始化設置。
本發明實施例中,在數據包轉發和安全防護檢測系統初始化時,配置解析模塊根據已知的配置解析方式,建立一個一維函數指針數組,以cpu的id為索引,存放每個安全引擎的線程體函數的地址和數據包轉發模塊的每個線程體函數的地址;在線程調試時,直接遍歷這個數組找到函數地址然后設置線程函數運行的CPU掩碼位,然后在對應CPU上綁定調度即可。該初始化過程可根據性能需求與處理器硬件制約條件進行配置,也就是說硬件是可適應的,比較靈活。以數據包轉發模塊為例,配置解析模塊根據性能需求和處理器硬件制約條件設置該數據包轉發模塊的線程個數,當在系統初始化時,根據已知的配置解析文件中,為每個線程設置線程CPU掩碼位并對該線程進行調度,當線程個數為0時,初始化配置錯誤,并輸出錯誤日志,初始化失敗;當線程個數為1時,將數據包轉發模塊與一個指定的CPU綁定,設置線程CPU掩碼位;當線程個數為2時,將數據包轉發模塊中的包收取模塊和包發送模塊與一個指定的CPU綁定,將包處理模塊與另一個指定的CPU綁定,設置線程CPU掩碼位;當線程個數為3時,分別將包收取模塊、包處理模塊和包發送模塊各與一個指定的CPU綁定,并分別設置線程CPU掩碼位。
進一步的,配置解析模塊104,還用于根據已配置的所述安全引擎的個數,分別為每個安全引擎分配與自身對應的環形隊列。
在數據包轉發和安全防護檢測系統中,用于接收數據包的數據包轉發模塊,將數據包分發到各環形隊列中,針對每個環形隊列,該數據包轉發模塊與該環形隊列對應的安全引擎共享該環形對列,該數據包轉發模塊將數據包分發到該環形隊列中后,與該環形隊列對應的安全引擎對該環形隊列中的數據包進行安全檢測后,將帶有安全標識的該數據包重新放入該環形隊列,該數據包轉發模塊可以將該環形隊列中帶有安全標識的該數據包從該環形隊列中取出并做相應處理。在數據包轉發和安全防護檢測系統初始化時,配置解析模塊根據 已配置的安全引擎的個數,在系統的共享內存中為每個安全引擎分配2^12個數據包大小的環形隊列并與該數據包轉發模塊共享,并且根據已知的系統配置文件中的連接狀態跟蹤表大小可以在系統的共享內存中預分配出傳輸控制協議(TCP,Transmission Control Protocol)連接狀態跟蹤表和用戶數據包協議(UDP,User Data Protocol)連接狀態跟蹤表,連接狀態跟蹤表中記錄了數據包的相關信息,例如:TCP或者UDP數據包的源IP、目的IP、源端口和目的端口信息等。同時,該連接狀態跟蹤表中還記錄了TCP或者UDP數據包的狀態信息,例如:服務質量(QOS,Quality of Service)控制標志和入侵防御系統(IPS,Intrusion Prevention System)檢測狀態等。
下面結合附圖,用具體實施例對本發明提供的方法及裝置進行詳細描述。
實施例1:
圖3為本發明實施例1提供一種負載均衡方法,應用于數據包轉發和安全防護檢測系統,該系統包括:數據包轉發模塊、,多個安全引擎和與多個安全引擎一一對應的環形隊列,該方法具體包括如下處理步驟:
步驟301、根據待轉發數據包的源IP、目的IP和所述安全引擎的個數進行哈希運算,得到哈希運算結果。
步驟302、確定是否存在與該哈希運算結果對應的環形隊列索引。
步驟303、當存在與該哈希運算結果對應的環形隊列索引時,確定該環形隊列索引對應的安全引擎為將要對該待轉發數據包進行安全檢測的安全引擎。
步驟304、當不存在與該哈希運算結果對應的環形隊列索引時,從多個安全引擎中確定對該待轉發數據包進行安全檢測的安全引擎,并建立該哈希運算結果與確定的該安全引擎對應的環形隊列索引之間的對應關系。
實施例2:
圖4為本發明實施例2提供的負載均衡方法的流程圖,該方法應用與安全檢測系統,具體包括如下處理步驟:
步驟401、根據待轉發數據包的源IP、目的IP和安全引擎的個數進行哈希 運算,得到哈希運算結果。
本步驟中,可以采用如下公式進行哈希運算:
Index=P*(Sip∧Dip)mod(n);
其中,Index為哈希運算結果,P為常數,例如P=1,Sip為待轉發數據包的源IP,Dip為待轉發數據包的目的IP,∧表示異或運算,mod表示模運算,n為安全引擎的個數。
步驟402、針對每個安全引擎,基于該安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量,確定該安全引擎的負載權值。
其中,負載權值表示該安全引擎的當前數據包處理能力,該當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量。
本步驟中,可以采用如下公式確定該安全引擎的負載權值:
F(i)=K×Q×[a×(1-Ci/Σi=1nCi)+b×(1-Si/Σi=1nSi)];]]>
其中,F(i)為第i個安全引擎的負載權值,K為常數,例如,K=100,Q表示第i個安全引擎的工作狀態,Q=0表示該安全引擎的工作狀態為異常,Q=1表示該安全引擎的工作狀態為正常,Ci為第i個安全引擎的CPU占用率,為各安全引擎的CPU占用率的和,Si為第i個安全引擎當前數據處理流量,為各安全引擎當前數據處理流量的和,n為所有安全引擎的個數,a,b為常數,a>b,例如a=0.8,b=0.2。
針對每個安全引擎,可以每隔預設周期,確定各安全引擎的負載權值,該預設周期可以根據實際經驗和需要進行靈活設置。
上述步驟401和步驟402之間沒有嚴格的先后順序。
步驟403、確定是否存在與該哈希運算結果對應的環形隊列索引,如果是,進入步驟404,如果否,進入步驟409。
步驟404、當存在與該哈希運算結果對應的環形隊列索引時,確定該環形 隊列索引對應的安全引擎的負載權值是否不小于預設權值閾值,如果是,進入步驟405,如果否,進入步驟406。
其中,該預設權值閾值可以根據實際經驗和需要進行靈活設置。
步驟405、當該環形隊列索引對應的安全引擎的負載權值不小于預設權值閾值時,確定該環形隊列索引對應的安全引擎為將要對該待轉發數據包進行安全檢測的安全引擎。
步驟406、當該環形隊列索引對應的安全引擎的負載權值小于預設權值閾值時,確定該環形隊列索引對應的安全引擎的負載權值是否為零,如果是,進入步驟407,如果否,進入步驟408。
步驟407、當環形隊列索引對應的安全引擎的負載權值為零時,對已分發給該安全引擎的待轉發數據包進行處理。
本步驟中,安全引擎的負載權值為零表示該安全引擎已經崩潰,不會再繼續給該安全引擎分發數據包,需要對已分發給該安全引擎的待轉發數據包進行處理,可以采用如下三種方式對已分發給該安全引擎的待轉發數據包進行處理:
第一種方式:將已分發給該安全引擎的待轉發數據包標記為安全狀態;
第二種方式:將除該安全引擎以外的其余安全引擎,按照負載權值從大到小的順序對其余的安全引擎進行排序,將已分發給該安全引擎的待轉發數據包分發給其余的安全引擎中負載權值最大的安全引擎;
第三種方式:將已分發給該安全引擎的數據包平均分發給除該安全引擎以外的待檢測安全引擎。
步驟408、當環形隊列索引對應的安全引擎的負載權值不為零時,確定除該環形隊列索引對應的安全引擎以外的負載權值最大的安全引擎為將要對該待轉發數據包進行安全檢測的安全引擎。
本步驟中,當環形隊列索引對應的安全引擎的負載權值不為零時,將除該安全引擎以外的其余安全引擎,按照負載權值從大到小的順序對其余的安全引 擎進行排序,確定其余的安全引擎中負載權值最大的安全引擎為將要對該待轉發數據包進行安全檢測的安全引擎。
步驟409、當不存在與該哈希運算結果對應的環形隊列索引時,從多個安全引擎中確定對該待轉發數據包進行安全檢測的安全引擎。
本步驟中,可以從多個安全引擎中,將負載權值最大的安全引擎作為對該待轉發數據包進行安全檢測的安全引擎;也可以從多個安全引擎中隨機選擇一個安全引擎作為對該待轉發數據包進行安全檢測的安全引擎。
步驟410、建立該哈希運算結果與確定的該安全引擎對應的環形隊列索引之間的對應關系。
進一步的,在建立該哈希運算結果與確定的該安全引擎對應的環形隊列索引之間的對應關系之后,當對新的待轉發數據包通過哈希運算得到的哈希運算結果與該哈希運算結果相同時,可以根據該哈希運算結果對應的環形隊列索引,確定該環形隊列索引對應的安全引擎為將要對該新的待轉發數據包進行安全檢測的安全引擎。
進一步的,還可以根據該哈希運算結果對應的待轉發數據包的源IP、目的IP和安全引擎的個數,得到待轉發數據包的源IP、目的IP和安全引擎的個數與確定的該安全引擎對應的環形隊列索引之間的對應關系,并將該對應關系記錄在連接狀態跟蹤表中,當為新的待轉發數據包分配安全引擎時,可以在連接狀態跟蹤表中查找是否存在與該新的待轉發數據包的源IP、目的IP和安全引擎的個數相同的信息,如果存在,可以在該連接狀態跟蹤表中查找與該新的待轉發數據包的源IP、目的IP和安全引擎的個數相同的信息對應的環形隊列索引,確定該環形隊列索引對應的安全引擎為將要對該新的待轉發數據包進行安全檢測的安全引擎。
通過本發明上述實施例1和2提供的方法,由于通過判斷待轉發數據包進行哈希運算的結果是否存在對應的環形隊列索引,確定對待轉發數據包進行安全檢測的安全引擎,對待轉發數據包進行合理的分配,提高了安全引擎對數據 包進行安全檢測的性能。
實施例3:
基于同一發明構思,根據本發明上述實施例提供的負載均衡方法,相應地,本發明實施例3還提供了負載均衡裝置,應用于安全檢測系統,所述安全檢測系統包括:多個用于對數據包進行安全檢測的安全引擎和與多個安全引擎一一對應的環形隊列,所述環形隊列用于存儲與該環形隊列對應的安全引擎將要進行檢測的數據包,其結構示意圖如圖5所示,具體包括:
運算單元501,用于根據待轉發數據包的源IP、目的IP和所述安全引擎的個數進行哈希運算,得到哈希運算結果;
索引確定單元502,用于確定是否存在與所述哈希運算結果對應的環形隊列索引;
第一確定單元503,用于當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎;
第二確定單元504,用于當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定對所述待轉發數據包進行安全檢測的安全引擎,并建立所述哈希運算結果與確定的該安全引擎對應的環形隊列索引之間的對應關系。
進一步的,第一確定單元503,具體用于當存在與所述哈希運算結果對應的環形隊列索引時,確定所述環形隊列索引對應的安全引擎的負載權值是否不小于預設權值閾值,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量;當所述環形隊列索引對應的安全引擎的負載權值不小于預設權值閾值時,確定該環形隊列索引對應的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。
進一步的,上述裝置,還包括:
第三確定單元505,用于當所述環形隊列索引對應的安全引擎的負載權值小于預設權值閾值時,確定所述環形隊列索引對應的安全引擎的負載權值是否為零;
第四確定單元506,用于當所述環形隊列索引對應的安全引擎的負載權值不為零時,確定除該環形隊列索引對應的安全引擎以外的負載權值最大的安全引擎為將要對所述待轉發數據包進行安全檢測的安全引擎。
進一步的,上述裝置,還包括:
分發單元507,用于當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包標記為安全狀態;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包分發給除該安全引擎以外的負載權值最大的安全引擎;或者
當所述環形隊列索引對應的安全引擎的負載權值為零時,將已分發給該安全引擎的數據包平均分發給除該安全引擎以外的安全引擎。
進一步的,第一確定單元503,具體用于每隔預設周期,基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定所述安全引擎的負載權值。
進一步的,第一確定單元503,具體用于采用如下公式確定所述安全引擎的負載權值:
F(i)=K×Q×[a×(1-Ci/Σi=1nCi)+b×(1-Si/Σi=1nSi)];]]>
其中,F(i)為第i個安全引擎的負載權值,K為常數,例如,K=100,Q表示第i個安全引擎的工作狀態,Q=0表示該安全引擎的工作狀態為異常,Q=1表示該安全引擎的工作狀態為正常,Ci為第i個安全引擎的CPU占用率,為各安全引擎的CPU占用率的和,Si為第i個安全引擎當前數據處理流量, 為各安全引擎當前數據處理流量的和,n為所有安全引擎的個數,a,b為常數,a>b。
進一步的,第二確定單元504,具體用于當不存在與所述哈希運算結果對應的環形隊列索引時,從所述多個安全引擎中確定負載權值最大的安全引擎為對所述待轉發數據包進行安全檢測的安全引擎,所述負載權值為基于所述安全引擎的工作狀態、CPU占用率和獲取的該安全引擎的當前數據處理流量確定的,所述負載權值表示該安全引擎的當前數據包處理能力,所述當前數據處理流量表示該安全引擎當前單位時間內處理的數據包的流量。
上述各單元的功能可對應于圖3或圖4所示流程中的相應處理步驟,在此不再贅述。
綜上所述,本發明實施例提供的方案,包括:數據包轉發模塊,多個安全引擎和與多個安全引擎一一對應的環形隊列,其中:所述數據包轉發模塊包括包收取模塊,包處理模塊和包發送模塊;所述包收取模塊,用于接收多個待轉發數據包;將多個所述待轉發數據包發送給所述包處理模塊;所述包處理模塊,用于接收所述包收取模塊發送的多個所述待轉發數據包;根據預設負載均衡算法,將所述待轉發數據包發送給多個安全引擎中負載能力最強的安全引擎對應的環形隊列;接收多個所述環形隊列中攜帶有安全檢測結果標識的所述待轉發數據包;向所述包發送模塊發送攜帶有表示安全的安全檢測結果標識的待轉發數據包;對攜帶有表示數據包有安全威脅的安全檢測結果標識的待轉發數據包進行丟棄或者阻斷轉發處理;所述包發送模塊,用于接收所述包處理模塊發送的所述攜帶有表示安全的安全檢測結果標識的待轉發數據包;將所述攜帶有表示安全的安全檢測結果標識的待轉發數據包發送給接收端;所述安全引擎,用于從與自身對應的所述環形隊列中獲取待轉發數據包;對所述待轉發數據包進行安全防護檢測;將攜帶有安全檢測結果標識的待轉發數據包放入與自身對應的環形隊列中;所述環形隊列,用于存儲所述包處理模塊發送的所述待轉發數據包和與自身對應的所述安全引擎發送的攜帶有表示安全的安全檢測結果標 識的待轉發數據包。采用本發明實施例提供的方案,提高了對數據包進行轉發和安全防護檢測的處理效率。
本申請的實施例所提供的數據包轉發和安全防護檢測系統和負載均衡裝置可通過計算機程序實現。本領域技術人員應該能夠理解,上述的模塊劃分方式僅是眾多模塊劃分方式中的一種,如果劃分為其他模塊或不劃分模塊,只要數據包轉發和安全防護檢測系統和負載均衡裝置具有上述功能,都應該在本申請的保護范圍之內。
本申請是參照根據本申請實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。

關于本文
本文標題:數據包轉發和安全防護檢測系統、負載均衡方法及裝置.pdf
鏈接地址:http://www.pqsozv.live/p-6180529.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影