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

技术编号:15518487 阅读:158 留言:0更新日期:2017-06-04 08:41
本发明专利技术提供一种实现IEC60870‑5‑104协议低延迟处理工业防火墙的方法,方法主要步骤分三步:第一步是从网卡接收数据开始,网卡开启多队列功能,网卡驱动采用NAPI方式。第二步是利用网卡的多队列、多核CPU,采用SMP绑核技术,为每一个网卡队列申请一个中断号,将各个队列通过中断绑定到不同的CPU核上,可实现在同一时刻所有的CPU核都可以处理网卡数据,实现并发处理特性,提高网卡数据处理速度。第三步是协议防护层面的处理,将用户下发的策略规则采用IPSET等工具进行优化,实现规则匹配批量处理,提高匹配速度,降低延迟;本发明专利技术方法能解决工业防火墙在防护IEC60870‑5‑104协议时导致通信延迟增大,造成通信异常的问题。

【技术实现步骤摘要】
一种实现IEC60870-5-104协议低延迟处理工业防火墙的方法
本专利技术属于工业防火墙深度防护
,尤其涉及的是一种实现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:在数据包到来时只触发一次硬中断,后续关闭硬中本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/62/201611233795.html" title="一种实现IEC60870‑5‑104协议低延迟处理工业防火墙的方法原文来自X技术">实现IEC60870‑5‑104协议低延迟处理工业防火墙的方法</a>

【技术保护点】
一种实现IEC60870‑5‑104协议低延迟处理工业防火墙的方法,其特征在于,包括以下步骤:步骤102:在数据包到来时只触发一次硬中断,后续关闭硬中断并采用轮询方式接收处理数据包,直到没有数据包;步骤104:为每一个队列申请一个中断号,通过SMP架构,将各个队列通过中断绑定到不同的核上,在同一时刻所有的核都可以处理网卡数据;步骤106:根据端口是否为2404以及数据段中前两个字节是否为68H来确定是否为的IEC60870‑5‑104数据包;步骤108:实现规则匹配批量处理,策略规则主要是针对上下游机器的IP地址进行防护的规则;步骤110:将处理模块直接挂载于内核提供的HOOK点上;步骤112:采用HASH算法,提高四元组、五元组信息的匹配速度。

【技术特征摘要】
1.一种实现IEC60870-5-104协议低延迟处理工业防火墙的方法,其特征在于,包括以下步骤:步骤102:在数据包到来时只触发一次硬中断,后续关闭硬中断并采用轮询方式接收处理数据包,直到没有数据包;步骤104:为每一个队列申请一个中断号,通过SMP架构,将各个队列通过中断绑定到不同的核上,在同一时刻所有的核都可以处理网卡数据;步骤106:根据端口是否为2404以及数据段中前两个字节是否为68H来确定是否为的IEC60870-5-104数据包;步骤108:实现规则匹配批量处理,策略规则主要是针对上下游机器的IP地址进行防护的规则;步骤110:将处理模块直接挂载于内核提供的HOOK点上;步骤112:采用HASH算法,提高四元组、五元组信息的匹配速度。2.根据权利要求1所述的方法,其特征在于,所述步骤102包括在数据包到来之前,网卡驱动采用NAPI模式并修改网卡驱动时只触发一次硬中断。3.根据权利要求2所述的方法,其特征在于,所述步骤102还包括到达轮询最大时间或到达轮询...

【专利技术属性】
技术研发人员:彭亮韩涛李龙飞王明军郝庆贺
申请(专利权)人:青岛海天炜业过程控制技术股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1