工业防火墙架构与技术【第二节:硬件架构②】

2)、满足对数据包的处理性能的高速度要求

任何防火墙的基本技术功能都是过滤报文。防火墙检查其接收的每个数据包,以确定数据包是否对应于流量模式的所需模板。防火墙然后过滤(丢弃)或转发与这些模板匹配的数据包。这些模板以规则的形式进行建模。在工控防火墙中,有针对已知协议提前建模好的规则模板,也有后期自动学习进行建模的规则模板。由于工控防火墙处理数据包是一个一个处理,包括数据包的校验,数据包每一层包头的处理,所以数据包越小,到达时间就越短,服务器处理数据包要求就越高。比如64B的小包,如果处理数据包要达到线速,那么就要求防火墙67.20纳秒就要处理完一个包,随着物理线路速率越大,处理时间就要求越短,这也就要求服务器硬件和软件都要相应的发展和升级来应对越来越多的数据包处理需求。并且工业环境中各家设备的不同以及使用的工业协议不同,工控防火墙需要同时在工业网络流量中同时并行处理多种工业协议报文。同时,规则库随着时间的增加规则条数也在持续增加,这些都是需要防火墙处理性能的支撑,保障网络数据的传输速度与模式匹配的检测速度满足工业网络的实时性需求。因此,为了考虑工控防火墙对数据包的处理性能以及实时性要求,除了在操作系统层面进行优化设计外,重点考虑在硬件架构设计层面利用硬件加速工控防火墙的处理性能。

一般认为服务器处理能力很强,不是数据包处理的瓶颈,而通过物理线路能够传送数据包的最大速率,即线速(从100Mpbs、1Gbpbs、10Gbpbs、25Gbpbs、40Gbpbs,甚至到100Gpbs)才是网络性能的瓶颈点。当数据包到达防火墙之后,防火墙需要对数据包进行拆包-解析-匹配-过滤-封包-转发的动作。这种动作无疑是整个工业网络线路上的最低速的一环。对于工控防火墙选择何种处理架构是成为工控防火墙乃至工业网络性能影响最为重要的一环。

工控防火墙的处理架构如何能够更快的处理数据包?处理架构是什么?我在这里倾向于理解为“数据从网卡接受数据并通过防火墙内部运作之后再通过网卡传输出去”的这个路径称之为处理架构。这个处理架构包含什么组件,如何运作是我们首先需要明白的问题。

从工控防火墙本身架构来看,这个处理架构包含了:CPU、RAM、主板总线(南北桥或IO桥、PICE)、网卡、网卡控制器。

我们先来说下网卡,网卡作为这个架构的第一道门户,负责数据包的发送和接收。发送流程如下:

1.        CPU通知网卡控制器发送内存中的数据;

2.        网卡控制器使用DMA将内存中的数据拷贝到网卡本地内存的发送队列;

3.        网卡的MAC单元等待数据拷贝完成,准备发送;

4.        网卡MAC单元通过PHY(Port Physical Layer)单元将数据的数字信号转换为对应的电信号或光信号从线缆发送出去;

5.        网卡控制器通知CPU数据发送完成。

其接收流程如下:

1.        网卡的PHY单元接收到数据包信号,将其转换为数字信号;

2.        网卡的MAC单元将数据包存储在本地内存的接收队列上;

3.        网卡控制器使用DMA将数据拷贝到系统内存上;

4.        网卡控制器以中断方式告诉CPU数据包已放在了指定的内存空间。

那么网卡位于体系中的位置就显得十分重要,决定着数据包传输路径的长短。网卡最开始集成在主板通过南桥连接,后来网卡插在PCI插槽上,插在PCI-E插槽上,数据包进入网卡后,需要经过南桥(主要管理IO设备),PCI/PCI-E,北桥(主要管理内存),内存和CPU的处理。网卡需要频繁访问内存存取数据包,CPU处理数据包需要频繁访问内存,此时北桥是瓶颈,当CPU个数增加时,单个内存控制器也是瓶颈。为了解决这些瓶颈,就出现了NUMA(Non-UniformMemory Architecture)架构,每个CPU都有自己的内存(将北桥功能集成到了CPU),每个CPU也有直接管理的PCI-E插槽,低速设备比如SATA/SAS,USB等被PCH,Platform Controller Hub(替换了南桥)管理。多核CPU以及NUMA架构使得数据包处理可以以几乎相同处理性能横向扩展,加上网卡的多队列机制,可以实现网络数据包的并发处理。

同时,在这个环节中,随着网卡的网卡控制器(网卡里面的控制器)的更新发展,也对处理架构的性能提升有着重要的影响。目前的网卡控制器都是ASIC(专用集成电路)芯片,该芯片固化了网络的功能,速度快,设计完成后,成本低。但不可编程。现在针对FPGA的网卡控制器越来越流行,FPGA的网卡控制器的好处就是可编程性,具有软件定义网卡的特质,因此是未来发展的方向。ASIC芯片控制器的发展使得网卡的功能越来越强大,之前很多数据包处理的功能都是CPU来完成,占用大量CPU时间,很多重复简单的工作被网卡控制器来处理大大减轻了CPU的负担,这就是网卡Offload功能。网卡的Offload功能会接管原先CPU的部分网络处理功能,比如将TCP,UDP数据包的checksum计算和校验交由网卡处理;将数据包中发送的时候将大数据包的切分为小数据的封装交由网卡处理;同时将接收到的小包合成为一个大包再给到应用程序,这样既减少了CPU的中断,也减少了CPU处理大量包头的负担;除此之外,DMA将内存中的数据包拷贝到网卡内存时,由于内存中的数据包内容在物理内存上是分散存储的,如果没有Offload功能,DMA没法直接拷贝,需要系统kernel拷贝一次数据让地址连续,有了Offload功能,就可以少一次内存拷贝。

因此在这里我们可以得出性能提升的第一个解决方案:NUMA架构+PCIE网卡直连!这种方案也就是多核并行处理。基于这种方案还可以优化的地方在于,网卡的每个队列会对应一个CPU来处理数据包到达的软中断,合理的将网卡队列绑定到指定的CPU能更好的并发处理数据包,比如将网卡队列绑定到离网卡近的CPU上。

这种方案对于处理架构的性能提升是巨大的,但是成本也是最高的。如果考虑到工业环境的硬件需求,这么多的X86 CPU设计出来的产品似乎也很难去适应工业环境的严苛条件。而基于嵌入式的工业主板来说,集成那么多的X86 CPU无风扇显然又是个悖论。并且网卡的处理机制是数据从网卡到CPU之间的传输依靠“中断”实现,当高速网络流量经过时,频繁的“中断”控制导致CPU 占用率迅速上升,防火墙吞吐速率受到严重影响。这也是现今基于X86架构的工控防火墙性能提升存在困难的原因。

那么现在的基于X86架构的工控防火墙是什么架构?现在的X86架构的工控防火墙,其处理架构基于X86 SMP架构和主板上的网卡位置(南桥/PCI/PCI-E),其处理速度基于网卡位置而不同,位于南桥最慢,位于PCIE最快。不过现在南桥基本上从主板上消失,因此主流的是PCI和PCIE。

根据上述论述我们知道,处理架构到这里,处理器成为了瓶颈。X86的处理架构应用于工控防火墙具有不可弥补的缺陷,因此市面上就有了基于其他处理器构造工控防火墙的处理架构的方案。比如利用ASIC架构、NP架构、FPGA架构、ARM架构以及MIPS架构等。为了工控防火墙性能,处理器的选择也是百花齐放了,比如说就现在国内市面上的工控防火墙调研来看,大部分采用的是基于X86架构,比如力控华康的工控防火墙就是X86架构;少数部分厂商采用MIPS架构,比如威努特的工控防火墙就是基于MIPS架构。其他的处理器方案,ASIC架构是国外厂家采用最多的方案,基于ASIC架构的防火墙从架构上改进了中断机制,数据通过网卡进入系统后,无需经过主CPU处理,而是由集成在系统中的芯片直接处理,完成防火墙的功能,如路由、NAT、防火墙规则匹配等。还有一种是采用NP架构,网络处理器(Network Processor,简称NP)架构是传统防火墙采用的设计方案之一,也可以平滑的迁移到工控防火墙领域。其特点是综合了X86和ASIC的优缺点,采取一个折中的平衡方案。采用NP架构的防火墙,各种算法可以通过硬件实现,在实现复杂的拥塞管理、队列调度、流分类和QoS功能的前提下,还可以达到极高的查找、转发性能,实现“硬转发”。

从这些处理器来说,各自构建的防火墙的各有优劣,X86架构的优点是灵活性高,扩展性好,应用层的处理速度要比MIPS架构好。缺点是性能差,小包速率低(30%-40%)。ASIC架构的优点是性能高。缺点是灵活性低,扩展性差,开发费用高,开发周期长。MIPS架构是目前最为看好的架构,其多核架构,被认为是解决信息安全产品功能与性能之间矛盾的一大硬件法宝。其针对嵌入式的多核处理器架构,也被认为是解决工控安全产品功能与性能之间矛盾的硬件法宝。多核是在同一个硅晶片上集成了多个独立物理核心,每个核心都具有独立的逻辑结构,包括缓存、执行单元、指令级单元和总线接口等逻辑单元,通过高速总线、内存共享进行通信。在实际工作中,每个核心都可以达到2Ghz以上的主频。因此,多核技术无论在性能、灵活性还是在开发的成本和难度方面,都是其他架构不能比拟的。目前Cavium 公司提供的MIPS64架构的Cavium 处理器核心数最多可以达到48核。MIPS自身系统的软件平台较为落后,如果你们公司拥有足够的技术研发力量,可以考虑采用MIPS架构作为工控防火墙的处理器。

时间: 2024-12-26 06:29:30

工业防火墙架构与技术【第二节:硬件架构②】的相关文章

亿级商品详情页架构演进技术解密 | 高可用架构系列

亿级商品详情页架构演进技术解密 | 高可用架构系列 --http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=210272034&idx=1&sn=3be9d2b53c7fec88716ee8affd2515f8&scene=1&srcid=UfXZNNOVZZyZjQmp0VOh&from=groupmessage&isappinstalled=0#rd 此文是开涛在[三体高可用架构群]之分享内容

工业防火墙架构与技术【第二节:硬件架构①】

1.3.   工控防火墙的体系架构 那么工控防火墙是如何设计来支撑其部署到工业生产环境中的?这就需要我们了解工控防火墙的架构,这包括两个方面:软件和硬件两部分.也就是防火墙运行在什么软件系统上以及防火墙安装的硬件平台. 软件和硬件架构是防火墙的骨骼,它决定了防火墙整体的工作水平和性能.一般而言,我们可以把常见的防火墙分为基于硬件防火墙.基于虚拟化架构的防火墙和基于软件的防火墙三类. l  基于硬件的防火墙在硬件方面一般采用了主流的三种架构:X86.ASIC和NP.ASIC和NP是专门设计的实现防

工业防火墙架构与技术【第二节:硬件架构④】

下图展示了主板的主电源供电电路设计图: 下图展示了基于主供电电源的以太网.现场总线.以及485总线需要的电源隔离电路设计图. 除此之外,既然断电也是一种可能存在的单点故障,那么在硬件架构设计的时候,本身工业主板的供电还应该考虑的是双备电源电路设计!也就是冗余电源.下图展示了工业主板针对的双备电源电路设计设计图: 因此工业防火墙在硬件架构设计上需要考虑冗余电源供电,当其中一路电源出现故障时,另外一路电源仍然能够保障防火墙的正常工作,同时需要设计中很短的时间之内将电源的故障进行报警,以使得维修人员及

工业防火墙架构与技术【第二节:硬件架构③】

书接上文 3).满足工业环境稳定性要求 从满足工业环境稳定性要求的角度,工业防火墙的需要从硬件和软件层次去考虑本身的稳定性对工业网络的影响.从这个角度说,工业防火墙需要同时具备软硬件Bypass功能.一旦设备异常或者重启,会启动Bypass功能,而无须担心因为工业防火墙本身出现问题而导致工业网络断网.Bypass顾名思义,就是旁路保护系统,也就是说可以通过特定的触发状态(断电或死机)让两个网络不通过工业防火墙的系统,而直接物理上导通.而这个时候工业防火墙也就不会再对网络中的数据包做处理了.基于这

工业防火墙架构与技术【第一节:概述】

1.1.   工控防火墙概述 我们将应用于工业控制网络环境中的防火墙称为工业控制防火墙(ICF,Industrial Control Firewall).工业防火墙(IFW,IndustrialFirewalls)或工控防火墙(在本文中主要称为工控防火墙).和ICT环境的防火墙作用类似,其是一个具体设备(物理或虚拟),用于两个网络之间的隔离控制.在ICT环境中,防火墙主要用于保护一个网络区域免受来自另一个网络区域的网络攻击和网络入侵行为.因其隔离.防守的属性,灵活应用于网络边界.子网隔离等位置,

【软件构造】第五章第二节 设计可复用的软件

第五章第二节  设计可复用的软件 5-1节学习了可复用的层次.形态.表现:本节从类.API.框架三个层面学习如何设计可复用软件实体的具体技术. Outline 设计可复用的类--LSP 行为子结构 Liskov替换原则(LSP) 各种应用中的LSP 数组是协变的 泛型中的LSP 为了解决类型擦除的问题-----Wildcards(通配符) 设计可复用的类--委派与组合 设计可复用库与框架 Notes ## 设计可复用的类--LSP 在OOP之中设计可复用的类 封装和信息隐藏 继承和重写 多态.子

【软件构造】第七章第二节 错误与异常处理

第七章第二节 错误与异常处理 本节关注:Java中错误和异常处理的典 型技术--把原理落实到代码上! Outline: Java中的错误和异常(java.lang.throwable) 异常 Runtime异常与其他异常(Exception) Checked异常和unchecked异常 checked异常的处理机制 自定义异常 Notes: ## Java中的错误和异常 [Throwable] Java.lang.throwable Throwable 类是 Java 语言中所有错误或异常的超类

[转帖]今天我们来聊聊机框式核心交换机硬件架构演进

今天我们来聊聊机框式核心交换机硬件架构演进 2018-12-17 14:46 出处:其他 作者:佚名 [PConline 干货铺]随着互联网业务的高速发展,对构建互联网基础架构的网络设备提出了更高要求,例如容量.性能.扩展性以及QoS等诸多关键特性,而这往往是由其所采用的硬件架构决定的. 我们以框式核心交换机为例,先后出现了多种硬件架构,而现在最为常用的有三种:Full-Mesh交换架构.Crossbar矩阵交换架构和基于Cell的CLOS交换架构.本文将通过对这三种硬件架构.报文转发流程等原理

全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗

号称全球最低功耗蓝牙单芯片DA14580在可穿戴市场.健康医疗.ibeacon定位等市场得到广泛的应用,但是因为其较为封闭的技术/资料支持导致开发人员有较高的技术门槛,网络上也极少看到有关DA14580的开发技术分享,因此一般企业和一般技术团队都不敢贸然采用该平台,但一旦精通该芯片平台的开发,即可在蓝牙方案应用开发中获得较大的技术优势. 作者在集成电路领域有较为深厚的积累,在DA14580平台也有丰富的开发经验,接下来将以一个系列文章对DA14580的硬件架构和软件体系进行分析.如需技术咨询,请