一种实现IEC60870‑5‑104协议低延迟处理工业防火墙的方法与流程

文档序号:12491544阅读:384来源:国知局
本发明属于工业防火墙深度防护
技术领域
:,尤其涉及的是一种实现IEC60870-5-104协议低延迟处理工业防火墙的方法。
背景技术
::目前工业防护墙针对IEC60870-5-104的防护,整个过程中耗费了相对大量的时间。防火墙接收IEC60870-5-104的数据包,交给防火墙系统进行处理,匹配基本的规则,进行深度防护,字段匹配。现有方案中处理IEC60870-5-104进行如下操作:步骤一、网卡接收IEC60870-5-104数据包:网卡采用普通模式,单队列接收数据包,硬中断方式通知内核。步骤二、:CPU单核处理网卡数据:将网卡队列的数据加载到内核进行处理。步骤三、规则匹配:数据包经过系统规则匹配,匹配配置的上百甚至上千条规则。步骤四、深度防护:开发自己的模块,将数据包信息拷贝到该模块中进行解析并逐字段进行规则匹配;防护结果反馈:根据防护的结果放行或拦截IEC60870-5-104数据包,并将防护结果通知防火墙管理客户端。现有技术存在明显缺点:防火墙网卡在接收数据包时采用单队列网卡,大量的协议数据无法时时进入到网卡进行处理,造成丢包,导致协议通信产生重传,极大增加了通信延迟。数据包进入网卡之后,采用中断的方式通知内核,随着数据包的大量到来,会产生大量的硬件中断,导致CPU响应大量中断无法正常处理数据,造成数据包一直堆积在网卡,延迟增大。进入内核要匹配大量的用户配置的规则,每一个数据包进行大量的数据匹配,延迟与规则数呈线性增长。数据包深度防护过程中单纯用字符串匹配的方式匹配IP、端口、协议字段等数据,极大增加了匹配的耗时,增大延迟。因此,现有技术存在缺陷,需要改进。技术实现要素:本发明所要解决的技术问题是针对现有技术的不足,提供一种实现IEC60870-5-104协议低延迟处理工业防火墙的方法,能够在防火墙防护IEC60870-5-104通信过程中降低其处理延迟,不会因防火墙的防护造成IEC60870-5-104通信故障。本发明提供一种实现IEC60870-5-104协议低延迟处理工业防火墙的方法,包括以下步骤:步骤102:在数据包到来时只触发一次硬中断,后续关闭硬中断并采用轮询方式接收处理数据包,直到没有数据包;步骤104:为每一个队列申请一个中断号,通过SMP架构,将各个队列通过中断绑定到不同的核上,在同一时刻所有的核都可以处理网卡数据;步骤106:根据端口是否为2404以及数据段中前两个字节是否为68H来确定是否为的IEC60870-5-104数据包;步骤108:实现规则匹配批量处理,策略规则主要是针对上下游机器的IP地址进行防护的规则;步骤110:将处理模块直接挂载于内核提供的HOOK点上;步骤112:采用HASH算法,提高四元组、五元组信息的匹配速度。所述的方法,其中,所述步骤102包括在数据包到来之前,网卡驱动采用NAPI模式并修改网卡驱动时只触发一次硬中断。所述的方法,其中,所述步骤102还包括到达轮询最大时间或到达轮询最大数据量时重新开启硬中断。所述的方法,其中,所述步骤104包括:采用多队列网卡,多核CPU,为每一个队列申请一个中断号。所述的方法,其中,所述步骤106包括:应用IEC60870-5-104检测机制,根据端口是否为2404以及数据段中前两个字节是否为68H来确定是否为的IEC60870-5-104数据包。所述的方法,其中,所述步骤108包括:将用户下发的策略规则采用IPSET工具进行优化,实现规则匹配批量处理,策略规则针对上下游机器的IP地址进行防护的规则,防护的规则包括禁止或允许某一IP地址的某一协议类型的数据流。所述的方法,其中,所述步骤108包括:IPSET将多条防护的规则存放于一个地址集合sets。所述的方法,其中,所述步骤110包括:采用基于Linux内核Netfilter架构的HOOK处理机制,将处理模块直接挂载于内核提供的HOOK点上。采用上述方案,降低防火墙上IEC60870-5-104协议通信延迟,本发明从数据进入网卡开始进行优化,CPU内核加速处理,普通规则匹配、深度检测采用最高效的优化匹配及算法匹配,最大限度的降低在对IEC60870-5-104协议进行检查时增加的通信延迟。防火墙设备在开启NAPI、多队列以及SMP多核处理时,小包线速可提升10-20倍。但在开启NAPI时,其轮询的最大时间以及轮询的最大数据量需根据工业防火墙的工作网络环境进行动态配置,遵循公式(数据包大小/600*单位时间数据包个数/400M)%2*(CPU负载/100),公式所得值为1或大于1时立即开启硬中断,公式所得值小于1时关闭硬中断,采用轮询处理数据。附图说明图1为本发明的实施例的流程图。具体实施方式以下结合附图和具体实施例,对本发明进行详细说明。实施例1IEC60870-5-104协议是电力行业广泛应用的,一种调度主站和远方子站远动通信协议,该协议通信过程对延迟要求性较高,而工业防火墙在对IEC60870-5-104协议数据进行接收、处理、深度检测等过程中极大的增加了IEC60870-5-104通信的延迟,极易造成远端通信异常超时,造成通信故障,影响电力网络的正常通信。本发明所提出的IEC60870-5-104协议低延迟技术可极大降低工业防火墙在处理IEC60870-5-104协议数据时的延迟,将防护对IEC60870-5-104正常通信的影响降到最低。方法主要步骤分三步:第一步是从网卡接收数据开始,网卡开启多队列功能,网卡驱动采用NAPI方式。修改网卡驱动,使网卡硬中断处理模式与轮询处理模式能根据工业网络通信状况进行时时的切换,确保大小数据包、高低网络通信量等各种状况时,数据包能以最快的速度被处理。防火墙设备在开启NAPI、多队列以及SMP多核处理时,小包线速可提升10-20倍。但在开启NAPI时,其轮询的最大时间以及轮询的最大数据量需根据工业防火墙的工作网络环境进行动态配置,遵循公式(数据包大小/600*单位时间数据包个数/400M)%2*(CPU负载/100),公式所得值为1或大于1时立即开启硬中断,公式所得值小于1时关闭硬中断,采用轮询处理数据。第二步是利用网卡的多队列、多核CPU,采用SMP绑核技术,为每一个网卡队列申请一个中断号,将各个队列通过中断绑定到不同的CPU核上,可实现在同一时刻所有的CPU核都可以处理网卡数据,实现并发处理特性,提高网卡数据处理速度。第三步是协议防护层面的处理,将用户下发的策略规则采用IPSET等工具进行优化,实现规则匹配批量处理,提高匹配速度,降低延迟;采用基于Linux内核Netfilter架构的HOOK处理机制,将处理模块直接挂载于内核提供的HOOK点上,利用内核模块高匹配性,减少函数调用,减少资源切换耗费,提升处理效率;采用HASH算法,提高四元组、五元组信息的匹配速度。本发明方法能解决工业防火墙在防护IEC60870-5-104协议时导致通信延迟增大,造成通信异常的问题。在上述内容的基础上,如图1所示,本发明提供一种实现IEC60870-5-104协议低延迟处理工业防火墙的方法,包括以下步骤:步骤102:在数据包到来时只触发一次硬中断,后续关闭硬中断并采用轮询方式接收处理数据包,直到没有数据包;步骤104:为每一个队列申请一个中断号,通过SMP架构,将各个队列通过中断绑定到不同的核上,在同一时刻所有的核都可以处理网卡数据;步骤106:根据端口是否为2404以及数据段中前两个字节是否为68H来确定是否为的IEC60870-5-104数据包;步骤108:实现规则匹配批量处理,策略规则主要是针对上下游机器的IP地址进行防护的规则;步骤110:将处理模块直接挂载于内核提供的HOOK点上;步骤112:采用HASH算法,提高四元组、五元组信息的匹配速度。上述方法中,所述步骤102包括在数据包到来之前,网卡驱动采用NAPI模式并修改网卡驱动时只触发一次硬中断。上述方法中,所述步骤102还包括到达轮询最大时间或到达轮询最大数据量时重新开启硬中断。上述方法中,所述步骤104包括:采用多队列网卡,多核CPU,为每一个队列申请一个中断号。上述方法中,所述步骤106包括:应用IEC60870-5-104检测机制,根据端口是否为2404以及数据段中前两个字节是否为68H来确定是否为的IEC60870-5-104数据包。上述方法中,所述步骤108包括:将用户下发的策略规则采用IPSET工具进行优化,实现规则匹配批量处理,策略规则针对上下游机器的IP地址进行防护的规则,防护的规则包括禁止或允许某一IP地址的某一协议类型的数据流。规则匹配批量处理即为批量匹配,IPSET可以将多条规则合并为一条,经合并之后,匹配一条规则实际上是匹配了很多条。上述方法中,所述步骤108包括:IPSET将多条防护的规则存放于一个地址集合sets。不像普通的iptables链是线性的存储和过滤,ip集合存储在带索引的数据结构中,这种结构即使集合比较大也可以进行高效的查找;另一个例子是:IPSET可以创建一条规则,允许22端口经过防火墙,通过ipsetadd可以添加多个ip到这条规则,即实现了这些ip的22端口的数据包都可以通过防火墙。上述方法中,所述步骤110包括:采用基于Linux内核Netfilter架构的HOOK处理机制,将处理模块直接挂载于内核提供的HOOK点上。本发明可以采用模块化、组件化设计原则,通过IEC60870-5-104驱动匹配组件,开启NAPI收包模式并修改网卡驱动,根据数据包的大小、个数实现硬件中断和轮询切换、配合,是效率达到最高,延迟降到最低。ICE104多核处理组件可通过将网卡队列绑定至对应的核心上,使数据包的处理并发执行,提高处理速度、数据包处理量,降低单核处理的负担,降低处理延迟。IEC60870-5-104规则优化组件,通过IPSET工具将用户配置的多条规则创建为一个集合,减少匹配次数,提高性能,降低延迟。IEC60870-5-104高效匹配组件,通过HASH等算法,提高四元组、五元组信息、字符串的匹配速度。采用上述方案,降低防火墙上IEC60870-5-104协议通信延迟,本发明从数据进入网卡开始进行优化,CPU内核加速处理,普通规则匹配、深度检测采用最高效的优化匹配及算法匹配,最大限度的降低在对IEC60870-5-104协议进行检查时增加的通信延迟。防火墙设备在开启NAPI、多队列以及SMP多核处理时,小包线速可提升10-20倍。但在开启NAPI时,其轮询的最大时间以及轮询的最大数据量需根据工业防火墙的工作网络环境进行动态配置,遵循公式(数据包大小/600*单位时间数据包个数/400M)%2*(CPU负载/100),公式所得值为1或大于1时立即开启硬中断,公式所得值小于1时关闭硬中断,采用轮询处理数据。本发明从数据进入网卡开始进行优化加速,驱动模式匹配及模式切换加速、CPU多核处理多队列加速、普通规则匹配加速、深度检测采用最高效的优化匹配及算法匹配进行加速,最大限度的降低在对IEC60870-5-104协议在工业防火墙进行检查时增加的通信延迟。避免了工业防火墙对IEC60870-5-104协议通信的异常干扰,实现工业防火墙既能防护通信协议又不会对通信产生影响的目标。应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1