本發(fā)明屬于工業(yè)防火墻深度防護
技術(shù)領(lǐng)域:
:,尤其涉及的是一種實現(xiàn)IEC60870-5-104協(xié)議低延遲處理工業(yè)防火墻的方法。
背景技術(shù):
::目前工業(yè)防護墻針對IEC60870-5-104的防護,整個過程中耗費了相對大量的時間。防火墻接收IEC60870-5-104的數(shù)據(jù)包,交給防火墻系統(tǒng)進行處理,匹配基本的規(guī)則,進行深度防護,字段匹配?,F(xiàn)有方案中處理IEC60870-5-104進行如下操作:步驟一、網(wǎng)卡接收IEC60870-5-104數(shù)據(jù)包:網(wǎng)卡采用普通模式,單隊列接收數(shù)據(jù)包,硬中斷方式通知內(nèi)核。步驟二、:CPU單核處理網(wǎng)卡數(shù)據(jù):將網(wǎng)卡隊列的數(shù)據(jù)加載到內(nèi)核進行處理。步驟三、規(guī)則匹配:數(shù)據(jù)包經(jīng)過系統(tǒng)規(guī)則匹配,匹配配置的上百甚至上千條規(guī)則。步驟四、深度防護:開發(fā)自己的模塊,將數(shù)據(jù)包信息拷貝到該模塊中進行解析并逐字段進行規(guī)則匹配;防護結(jié)果反饋:根據(jù)防護的結(jié)果放行或攔截IEC60870-5-104數(shù)據(jù)包,并將防護結(jié)果通知防火墻管理客戶端?,F(xiàn)有技術(shù)存在明顯缺點:防火墻網(wǎng)卡在接收數(shù)據(jù)包時采用單隊列網(wǎng)卡,大量的協(xié)議數(shù)據(jù)無法時時進入到網(wǎng)卡進行處理,造成丟包,導(dǎo)致協(xié)議通信產(chǎn)生重傳,極大增加了通信延遲。數(shù)據(jù)包進入網(wǎng)卡之后,采用中斷的方式通知內(nèi)核,隨著數(shù)據(jù)包的大量到來,會產(chǎn)生大量的硬件中斷,導(dǎo)致CPU響應(yīng)大量中斷無法正常處理數(shù)據(jù),造成數(shù)據(jù)包一直堆積在網(wǎng)卡,延遲增大。進入內(nèi)核要匹配大量的用戶配置的規(guī)則,每一個數(shù)據(jù)包進行大量的數(shù)據(jù)匹配,延遲與規(guī)則數(shù)呈線性增長。數(shù)據(jù)包深度防護過程中單純用字符串匹配的方式匹配IP、端口、協(xié)議字段等數(shù)據(jù),極大增加了匹配的耗時,增大延遲。因此,現(xiàn)有技術(shù)存在缺陷,需要改進。技術(shù)實現(xiàn)要素:本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種實現(xiàn)IEC60870-5-104協(xié)議低延遲處理工業(yè)防火墻的方法,能夠在防火墻防護IEC60870-5-104通信過程中降低其處理延遲,不會因防火墻的防護造成IEC60870-5-104通信故障。本發(fā)明提供一種實現(xiàn)IEC60870-5-104協(xié)議低延遲處理工業(yè)防火墻的方法,包括以下步驟:步驟102:在數(shù)據(jù)包到來時只觸發(fā)一次硬中斷,后續(xù)關(guān)閉硬中斷并采用輪詢方式接收處理數(shù)據(jù)包,直到?jīng)]有數(shù)據(jù)包;步驟104:為每一個隊列申請一個中斷號,通過SMP架構(gòu),將各個隊列通過中斷綁定到不同的核上,在同一時刻所有的核都可以處理網(wǎng)卡數(shù)據(jù);步驟106:根據(jù)端口是否為2404以及數(shù)據(jù)段中前兩個字節(jié)是否為68H來確定是否為的IEC60870-5-104數(shù)據(jù)包;步驟108:實現(xiàn)規(guī)則匹配批量處理,策略規(guī)則主要是針對上下游機器的IP地址進行防護的規(guī)則;步驟110:將處理模塊直接掛載于內(nèi)核提供的HOOK點上;步驟112:采用HASH算法,提高四元組、五元組信息的匹配速度。所述的方法,其中,所述步驟102包括在數(shù)據(jù)包到來之前,網(wǎng)卡驅(qū)動采用NAPI模式并修改網(wǎng)卡驅(qū)動時只觸發(fā)一次硬中斷。所述的方法,其中,所述步驟102還包括到達輪詢最大時間或到達輪詢最大數(shù)據(jù)量時重新開啟硬中斷。所述的方法,其中,所述步驟104包括:采用多隊列網(wǎng)卡,多核CPU,為每一個隊列申請一個中斷號。所述的方法,其中,所述步驟106包括:應(yīng)用IEC60870-5-104檢測機制,根據(jù)端口是否為2404以及數(shù)據(jù)段中前兩個字節(jié)是否為68H來確定是否為的IEC60870-5-104數(shù)據(jù)包。所述的方法,其中,所述步驟108包括:將用戶下發(fā)的策略規(guī)則采用IPSET工具進行優(yōu)化,實現(xiàn)規(guī)則匹配批量處理,策略規(guī)則針對上下游機器的IP地址進行防護的規(guī)則,防護的規(guī)則包括禁止或允許某一IP地址的某一協(xié)議類型的數(shù)據(jù)流。所述的方法,其中,所述步驟108包括:IPSET將多條防護的規(guī)則存放于一個地址集合sets。所述的方法,其中,所述步驟110包括:采用基于Linux內(nèi)核Netfilter架構(gòu)的HOOK處理機制,將處理模塊直接掛載于內(nèi)核提供的HOOK點上。采用上述方案,降低防火墻上IEC60870-5-104協(xié)議通信延遲,本發(fā)明從數(shù)據(jù)進入網(wǎng)卡開始進行優(yōu)化,CPU內(nèi)核加速處理,普通規(guī)則匹配、深度檢測采用最高效的優(yōu)化匹配及算法匹配,最大限度的降低在對IEC60870-5-104協(xié)議進行檢查時增加的通信延遲。防火墻設(shè)備在開啟NAPI、多隊列以及SMP多核處理時,小包線速可提升10-20倍。但在開啟NAPI時,其輪詢的最大時間以及輪詢的最大數(shù)據(jù)量需根據(jù)工業(yè)防火墻的工作網(wǎng)絡(luò)環(huán)境進行動態(tài)配置,遵循公式(數(shù)據(jù)包大小/600*單位時間數(shù)據(jù)包個數(shù)/400M)%2*(CPU負(fù)載/100),公式所得值為1或大于1時立即開啟硬中斷,公式所得值小于1時關(guān)閉硬中斷,采用輪詢處理數(shù)據(jù)。附圖說明圖1為本發(fā)明的實施例的流程圖。具體實施方式以下結(jié)合附圖和具體實施例,對本發(fā)明進行詳細(xì)說明。實施例1IEC60870-5-104協(xié)議是電力行業(yè)廣泛應(yīng)用的,一種調(diào)度主站和遠方子站遠動通信協(xié)議,該協(xié)議通信過程對延遲要求性較高,而工業(yè)防火墻在對IEC60870-5-104協(xié)議數(shù)據(jù)進行接收、處理、深度檢測等過程中極大的增加了IEC60870-5-104通信的延遲,極易造成遠端通信異常超時,造成通信故障,影響電力網(wǎng)絡(luò)的正常通信。本發(fā)明所提出的IEC60870-5-104協(xié)議低延遲技術(shù)可極大降低工業(yè)防火墻在處理IEC60870-5-104協(xié)議數(shù)據(jù)時的延遲,將防護對IEC60870-5-104正常通信的影響降到最低。方法主要步驟分三步:第一步是從網(wǎng)卡接收數(shù)據(jù)開始,網(wǎng)卡開啟多隊列功能,網(wǎng)卡驅(qū)動采用NAPI方式。修改網(wǎng)卡驅(qū)動,使網(wǎng)卡硬中斷處理模式與輪詢處理模式能根據(jù)工業(yè)網(wǎng)絡(luò)通信狀況進行時時的切換,確保大小數(shù)據(jù)包、高低網(wǎng)絡(luò)通信量等各種狀況時,數(shù)據(jù)包能以最快的速度被處理。防火墻設(shè)備在開啟NAPI、多隊列以及SMP多核處理時,小包線速可提升10-20倍。但在開啟NAPI時,其輪詢的最大時間以及輪詢的最大數(shù)據(jù)量需根據(jù)工業(yè)防火墻的工作網(wǎng)絡(luò)環(huán)境進行動態(tài)配置,遵循公式(數(shù)據(jù)包大小/600*單位時間數(shù)據(jù)包個數(shù)/400M)%2*(CPU負(fù)載/100),公式所得值為1或大于1時立即開啟硬中斷,公式所得值小于1時關(guān)閉硬中斷,采用輪詢處理數(shù)據(jù)。第二步是利用網(wǎng)卡的多隊列、多核CPU,采用SMP綁核技術(shù),為每一個網(wǎng)卡隊列申請一個中斷號,將各個隊列通過中斷綁定到不同的CPU核上,可實現(xiàn)在同一時刻所有的CPU核都可以處理網(wǎng)卡數(shù)據(jù),實現(xiàn)并發(fā)處理特性,提高網(wǎng)卡數(shù)據(jù)處理速度。第三步是協(xié)議防護層面的處理,將用戶下發(fā)的策略規(guī)則采用IPSET等工具進行優(yōu)化,實現(xiàn)規(guī)則匹配批量處理,提高匹配速度,降低延遲;采用基于Linux內(nèi)核Netfilter架構(gòu)的HOOK處理機制,將處理模塊直接掛載于內(nèi)核提供的HOOK點上,利用內(nèi)核模塊高匹配性,減少函數(shù)調(diào)用,減少資源切換耗費,提升處理效率;采用HASH算法,提高四元組、五元組信息的匹配速度。本發(fā)明方法能解決工業(yè)防火墻在防護IEC60870-5-104協(xié)議時導(dǎo)致通信延遲增大,造成通信異常的問題。在上述內(nèi)容的基礎(chǔ)上,如圖1所示,本發(fā)明提供一種實現(xiàn)IEC60870-5-104協(xié)議低延遲處理工業(yè)防火墻的方法,包括以下步驟:步驟102:在數(shù)據(jù)包到來時只觸發(fā)一次硬中斷,后續(xù)關(guān)閉硬中斷并采用輪詢方式接收處理數(shù)據(jù)包,直到?jīng)]有數(shù)據(jù)包;步驟104:為每一個隊列申請一個中斷號,通過SMP架構(gòu),將各個隊列通過中斷綁定到不同的核上,在同一時刻所有的核都可以處理網(wǎng)卡數(shù)據(jù);步驟106:根據(jù)端口是否為2404以及數(shù)據(jù)段中前兩個字節(jié)是否為68H來確定是否為的IEC60870-5-104數(shù)據(jù)包;步驟108:實現(xiàn)規(guī)則匹配批量處理,策略規(guī)則主要是針對上下游機器的IP地址進行防護的規(guī)則;步驟110:將處理模塊直接掛載于內(nèi)核提供的HOOK點上;步驟112:采用HASH算法,提高四元組、五元組信息的匹配速度。上述方法中,所述步驟102包括在數(shù)據(jù)包到來之前,網(wǎng)卡驅(qū)動采用NAPI模式并修改網(wǎng)卡驅(qū)動時只觸發(fā)一次硬中斷。上述方法中,所述步驟102還包括到達輪詢最大時間或到達輪詢最大數(shù)據(jù)量時重新開啟硬中斷。上述方法中,所述步驟104包括:采用多隊列網(wǎng)卡,多核CPU,為每一個隊列申請一個中斷號。上述方法中,所述步驟106包括:應(yīng)用IEC60870-5-104檢測機制,根據(jù)端口是否為2404以及數(shù)據(jù)段中前兩個字節(jié)是否為68H來確定是否為的IEC60870-5-104數(shù)據(jù)包。上述方法中,所述步驟108包括:將用戶下發(fā)的策略規(guī)則采用IPSET工具進行優(yōu)化,實現(xiàn)規(guī)則匹配批量處理,策略規(guī)則針對上下游機器的IP地址進行防護的規(guī)則,防護的規(guī)則包括禁止或允許某一IP地址的某一協(xié)議類型的數(shù)據(jù)流。規(guī)則匹配批量處理即為批量匹配,IPSET可以將多條規(guī)則合并為一條,經(jīng)合并之后,匹配一條規(guī)則實際上是匹配了很多條。上述方法中,所述步驟108包括:IPSET將多條防護的規(guī)則存放于一個地址集合sets。不像普通的iptables鏈?zhǔn)蔷€性的存儲和過濾,ip集合存儲在帶索引的數(shù)據(jù)結(jié)構(gòu)中,這種結(jié)構(gòu)即使集合比較大也可以進行高效的查找;另一個例子是:IPSET可以創(chuàng)建一條規(guī)則,允許22端口經(jīng)過防火墻,通過ipsetadd可以添加多個ip到這條規(guī)則,即實現(xiàn)了這些ip的22端口的數(shù)據(jù)包都可以通過防火墻。上述方法中,所述步驟110包括:采用基于Linux內(nèi)核Netfilter架構(gòu)的HOOK處理機制,將處理模塊直接掛載于內(nèi)核提供的HOOK點上。本發(fā)明可以采用模塊化、組件化設(shè)計原則,通過IEC60870-5-104驅(qū)動匹配組件,開啟NAPI收包模式并修改網(wǎng)卡驅(qū)動,根據(jù)數(shù)據(jù)包的大小、個數(shù)實現(xiàn)硬件中斷和輪詢切換、配合,是效率達到最高,延遲降到最低。ICE104多核處理組件可通過將網(wǎng)卡隊列綁定至對應(yīng)的核心上,使數(shù)據(jù)包的處理并發(fā)執(zhí)行,提高處理速度、數(shù)據(jù)包處理量,降低單核處理的負(fù)擔(dān),降低處理延遲。IEC60870-5-104規(guī)則優(yōu)化組件,通過IPSET工具將用戶配置的多條規(guī)則創(chuàng)建為一個集合,減少匹配次數(shù),提高性能,降低延遲。IEC60870-5-104高效匹配組件,通過HASH等算法,提高四元組、五元組信息、字符串的匹配速度。采用上述方案,降低防火墻上IEC60870-5-104協(xié)議通信延遲,本發(fā)明從數(shù)據(jù)進入網(wǎng)卡開始進行優(yōu)化,CPU內(nèi)核加速處理,普通規(guī)則匹配、深度檢測采用最高效的優(yōu)化匹配及算法匹配,最大限度的降低在對IEC60870-5-104協(xié)議進行檢查時增加的通信延遲。防火墻設(shè)備在開啟NAPI、多隊列以及SMP多核處理時,小包線速可提升10-20倍。但在開啟NAPI時,其輪詢的最大時間以及輪詢的最大數(shù)據(jù)量需根據(jù)工業(yè)防火墻的工作網(wǎng)絡(luò)環(huán)境進行動態(tài)配置,遵循公式(數(shù)據(jù)包大小/600*單位時間數(shù)據(jù)包個數(shù)/400M)%2*(CPU負(fù)載/100),公式所得值為1或大于1時立即開啟硬中斷,公式所得值小于1時關(guān)閉硬中斷,采用輪詢處理數(shù)據(jù)。本發(fā)明從數(shù)據(jù)進入網(wǎng)卡開始進行優(yōu)化加速,驅(qū)動模式匹配及模式切換加速、CPU多核處理多隊列加速、普通規(guī)則匹配加速、深度檢測采用最高效的優(yōu)化匹配及算法匹配進行加速,最大限度的降低在對IEC60870-5-104協(xié)議在工業(yè)防火墻進行檢查時增加的通信延遲。避免了工業(yè)防火墻對IEC60870-5-104協(xié)議通信的異常干擾,實現(xiàn)工業(yè)防火墻既能防護通信協(xié)議又不會對通信產(chǎn)生影響的目標(biāo)。應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換,而所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3