新闻动态

News information

《工业信息安全》杂志刊登:工业防火墙高可用保障技术综述【2】

<<返回

2024年03月04日 08:00

3、整机冗余设计

由于工业防火墙通常串接入工控网络中,在工控网络区域之间起到安全隔离与访问控制作用,如果工业防火墙整机出现故障,会影响工控网络区域之间的通信。因此,[1] 我们在产品设计时有必要针对工业防火墙整机做冗余设计。

① 整机冗余设计部署场景

双机热备(HA)通常使用2台设备做冗余设计,在实际部署的时候也可以根据需求增加到4台。最终的效果都是1台设备故障,再选1台设备接替其工作,保障生产业务流量不中断。在工控网络环境中,经常遇到如下五种场景。[[i]]
场景一:双机工业墙工作在路由模式,上行和下行分别连接二层交换机。如图13。

图片

场景二:双机工业墙工作在路由模式,上行和下行分别连接三层交换机。如图14





图片

场景三:双机工业墙工作在镜像模式,上行和下行分别连接三层交换机。如图15。


图片


场景四:双机工业墙工作在透明(桥)模式,上行和下行分别连接二层交换机。如图 16。



图片

场景五:双机工业墙工作在透明(桥)模式,上行和下行分别连接三层交换机。如图17。

图片


② 整机冗余设计基本原理

(1)场景一原理介绍

双机工业墙工作在路由模式,上行和下行分别连接二层交换机。如图18。


图片


方案1双机热备(HA)模式:主备备份方式。

方案1双机热备(HA)原理:FW1将VRRP11和22的优先级都设置为100,FW2将VRRP11和22的优先级都设置为50,优先级为100的FW1成为VRRP11和12的主,所有流量都流经FW1处理。


主备备份方式,应该注意工业墙上VRRP同步切换的问题,即在同一台工业墙上所有VRRP应该保持状态一致。假如工业墙上的VRRP未进行状态同步切换,当FW1的G0/0/2接口故障时,VRRP11发生状态切换。FW1的VRRP11状态切换成Fault状态,同时FW2的VRRP11切换成Active状态。这样FW2成为VRRP11中的主,并向SW3发送免费ARP报文,刷新SW3中的MAC表项。此时PLC1访问上位机1的报文就通过FW2转发了。但是由于FW1与SW4之间的链路是正常的,所以VRRP22的状态是不变的,FW1仍然是VRRP22的主,而FW2是VRRP22的备。因此,上位机1返回给PLC1的回程报文依然会转发给FW1,而FW1的下行接口GE0/0/2是故障的,所以FW1只能丢弃此回程报文,这将导致业务流量中断。


方案2双机热备(HA)模式:主主负载方式。

方案2双机热备(HA)原理:主主负载方式,FW1将VRRP11优先级设置为100,VRRP22优先级设置为50。FW2将VRRP11优先级设置50,VRRP22优先级设置为100。当上位机1访问PLC1时,走VRRP22优先级为100的FW2,流量从PLC1返回的时,走VRRP11优先级为100的FW1,此时流量就同时分担到了FW1和FW2。


主主负载方式,相对于主备备份方式,我觉得在产品设计上最容易被忽视的是会话快速备份,会话快速备份功能可以解决来回路径不一致场景时,可能把第一个回包丢弃的问题,如图19。

图片




(2)场景二原理介绍

双机工业墙工作在路由模式,上行和下行分别连接三层交换机。如图20。

图片




方案1双机热备(HA)模式:主备备份方式,双机工业墙与交换机之间运行OPSF。

方案1双机热备(HA)原理:主备备份方式,“备墙不建立OSPF邻居”或“备墙将OSPF的Cost值调到最大”,主墙故障时备墙重新建立OSPF邻居。“备墙不建立OSPF邻居”方式,重新收敛需要的时间会多一些,“备墙将OSPF的Cost值调到最大”可以设计成自动的调整。


方案2双机热备(HA)模式:主主负载方式,双机工业墙与交换机之间运行OPSF。

方案2双机热备(HA)原理:主主负载方式,此时两台墙的负载分担完全由OSPF接管,按照动态路由协议流转。由于OSPF的收敛需要时间(理论值约5s),我们可以通过调整Hello和Dead等手段在一定程度上来加快收敛。


(3)场景三原理介绍

场景三:双机工业墙工作在镜像模式,上行和下行分别连接三层交换机。如图21。

图片


双机热备(HA)模式:主备备份方式。

双机热备(HA)原理:FW1与FW2业务口的IP地址相同,双机热备(HA)只能采用主备备份方式。称为镜像模式的原因是,因为除了心跳口地址外,其他配置几乎一模一样,可以把两台墙看成一台墙。


主备备份方式,此时FW1与FW2同一时间,只有一台工业墙在工作。双机热备(HA)形成之后,所有配置(包括地址、路由、策略等)都只需在一台工业墙上配置,然后配置会自动备份给另外一台工业墙。


(4)场景四原理介绍

场景四:双机工业墙工作在透明(桥)模式,上行和下行分别连接二层交换机。如图22。

图片


双机热备(HA)模式:主备备份方式(主主负载方式最终效果也是主备备份效果)。


双机热备(HA)原理:主备备份配置时,备墙不参与RSTP计算,也不透传BPDU,交换机没有阻塞接口,防环机制由备墙承担。因为备墙不进行业务转发,所以最终效果是主备备份效果。如图23。

图片


主主负载方式最终效果也是主备备份效果。原因是主主负载配置时,备墙不参与RSTP计算,但是透传BPDU,交换机有阻塞接口,防环机制由交换机管理。因为连接交换机阻塞接口的墙不转发业务,所以效果也是主备备份效果。如图24。

图片


(5)场景五原理介绍

场景五:双机工业墙工作在透明(桥)模式,上行和下行分别连接三层交换机。如图25。

图片



双机热备(HA)模式:主主负载方式。


双机热备(HA)原理:工业墙工作在透明桥模式,数据通过相关检查后,会直接进行透传转发。业务的负载分担主要是由链路捆绑技术来控制,可以配置基于源/目的+IP/MAC的组合方式将流量分散到不同的链路上,避免流量都走同一条路径造成流量的拥塞;双机热备(HA)起到了辅助配合的效果,比如通过会话快速备份保证来回路径不一致时业务仍正常持续转发。如图26。


图片


如果工业墙工作于主备备份方式,备[1] 墙上的接口将被禁用,连接交换机的接口就无法进行通信,无法建立OSPF路由。这样当主备切换时,新的主墙(原备墙)的接口被启用,它的上下行交换机才开始新建OSPF路由,而OSPF路由的新建需要一定的时间,所以会导致业务的暂时中断,工业场景中不太容易被接受。


4、软件功能高可用性设计

软件功能高可用性设计,主要考虑三方面能力的设计:

软件功能成熟性:软件功能本身尽可能低的故障率;

软件功能容错性:软件功能即使出现故障或异常,软件功能的核心能力仍然提供;

软件功能可恢复性:软件功能所有能力即使丧失,也能够在尽可能短的时间内恢复正常。

而这三方面能力的设计,往往涉及并行计算、分布式计算、集群计算等技术。计算的基本模型如图27。

图片




如果计算执行单元是多个,在同一时间执行一个或多个计算任务,则称之为并行计算,如图28:

图片


如果将一个计算任务拆成多个计算子任务,交给一个或多个计算执行单元计算,则称之为分布式计算,如图29。

图片


如果多个计算执行单元一起完成某个计算任务,称之为集群计算。多个计算执行元计算功能可能是相同的,也可能是不同的;多个计算执行单元承担的计算子任务可能是相同的,也可能是不同的;多个计算执行单元之间可能是主动或被动冗余的,也可能处于负载分担模式。


如果集群里面的多个计算执行单元处于主动或被动冗余模式,则称之为高可用集群。高可用集群工作模式分为三种。

(1)主从模式(非对称)

这种模式组建的高可用集群[[i]]通常包含2或多个节点,其中一个作为主节点(active),其他作为备份节点(standy)。备份节点随时都在检测主节点的健康状况,当主节点发生故障时,服务会自动切换到备份节点上以保证服务正常运行。备份节点平时不会启动服务,只有发生故障时才会有用,因此会造成一定浪费。


(2)对称模式

这种模式组建的高可用集群包含2个或多个节点和一个或多个服务,其中每一个节点都运行着不同的服务且相互作为备份。两个节点互相检测对方的健康状况,当其中一个节点发生故障时,该节点上的服务会自动切换到另一个节点上去。这样可以保证服务正常运行。


(3)混合模式

这种集群包含多个节点和多个服务。每一个节点都可能运行和不运行服务,每个节点都监视着几个指定的服务,当其中的一个节点发生故障时,会自动切换到这其他节点上去。


工业防火墙软件系统主要是嵌入式软件,涉及内核和用户态程序。如果工业防火墙的业务处理子系统采用或参考了Intel DPDK工具包,而且工业防火墙如果是多核处理器,则在软件层面可以进行下列软件功能高可用性设计:


①整个业务处理子系统的实时故障检测和重启(是业务处理子系统重启,不是整个工业防火墙软件系统重启)。


②针对多个硬件处理线程或核实时故障检测和重启某个硬件线程或核。运行在硬件多个处理线程或核上软件设计,可以设计成高可用集群。


5、旁路BYPASS设计

六方云工业防火墙系统的逻辑结构如图30所示。

图片


看门狗(Watch dog),如果是硬件看门狗,作用是用来监控处理器的异常状态,并对于处于异常的处理器进行复位,重启。如果是软件看门狗,作用是用来监控某个软件程序的异常状态,并对于处于异常的软件程序进行复位,重启。


看门狗的主体是个定时器,并由被监控处理器或软件程序提供周期性“喂狗”信号,对定时器清零(俗称“清狗”)。处理器或软件程序正常时,由于能定时“清狗”,看门狗内的定时器不会溢出。当处理器或软件程序出现故障,则不能继续提供“清狗”信号,使得看门狗内定时器不断累加溢出,从触发复位信号[1] 对处理器或软件程序复位[2] ,重启等操作。


(1) 旁路软件系统

工业防火墙可以利用硬件看门狗旁路上层运行在处理器上的软件系统,使得上层软件系统故障后可以快速恢复网络通信。运行原理:当上层软件系统因为故障不能继续提供“清狗”信号超过一定时间后,则通过某种方式使得网络流量不再上送到上层软件系统而直接从另外一个物理接口发送出去,相当于两个物理接口之间有一根网线连接起来。


电接口与光接口的实现方式有点差异。如果是电接口,则可以通过处理器的GPIO来操作下面的继电器来实现通断,如图31所示。


图片

GPIO输出低电位或设备断电时,弹簧提供拉力使动断触点闭合,物理接口的旁路功能开启。GPIO输出高电位时铁芯通电,线圈产生磁力,将上方衔铁吸引下来,动合触点闭合,物理接口的旁路功能关闭。


由于继电器的物理尺寸以及成本都较低,因此继电器可以焊接在工业防火墙主板。光接口旁路功能,由于早期光保护器物理尺寸以及成本都较高,一般采用下面的外置光旁路装置来实现光接口的旁路功能,如图32。


图片


其工作原理如图33所示:

图片


工业防火墙与旁路保护装置之间一般通过RS232或485串口通信实现心跳检测,当旁路保护装置检测到工业防火墙不响应心跳问询超过一定时间后,通过电路控制切换光信号不再经过工业防火墙而直接联通,从而旁路避开工业防火墙。

当前由于光保护器无奈尺寸越来越小,也可以将光保护器内置在工业防火墙机箱内部,工作原理相同,不过相对电接口旁路功能实现,成本还是偏高。

从上面实现可以看出,通过看门狗实现网络流量绕过工业防火墙软件系统故障,旁路切换的时间=看门狗定时器溢出时间+上下游网络设备接口链路重协商时间。为了避免频繁的旁路切换,门狗定时器溢出时间不能设置太短,一般在10s到60s之间。如果设置太长,比如分钟级,再加上物理接口旁路切换后,物理链路会变为“down”状态,与之连接的上下游网络设备比如工业交换机会重新进行链路协商。如果没有生成树协议,大部分需要3s的协商时间;如果有生成树协议参与协商,平均需要35s。因此,旁路切换最短在13s,最长超过1分钟,在工业场景下,实际对工控网络通信的中断影响还是存在的。

(2)旁路网络协议栈
工业防火墙部署方式为旁路部署时,工业防火墙上层软件系统故障,可以做到网络通信自恢复,但自恢复时间还是有点长,看门狗定时器溢出时间,不能省掉,可以根据场景设置最优值,当如果能够省掉上下游网络设备接口链路重协商时间,那么网络通信恢复时间会少35s左右,对于工业场景下是非常重要的。

工业防火墙软件系统故障,可以分为系统故障、网络协议处理故障、安全业务功能故障。如果只是网络协议处理故障,比如会话管理、流量转发不正常,但驱动工作正常,则没有必要物理接口做物理链路层旁路切换,在驱动层面不将流量送到网络协议处理栈,直接在驱动层发送出去,这样就可以避免工业防火墙上下游网络设备接口的链路层重协商,因此即可省掉上下游网络设备接口链路重协商时间。

旁路网络协议处理故障,则可以使用软件看门狗机制,在驱动层监控网络协议栈的工作状态,如果发现网络协议栈异常,则实施旁路切换。

(3)旁路安全业务模块
安全业务模块旁路同理网络协议栈旁路,只不过,监控安全业务功能的状态指标可以不只是故障指标,还可以是一些资源消耗指标,比如内存消耗、CPU消耗、存储消耗等,也可以是一些负载指标,比如流量吞吐、速率等。

结束语

本文对工业设备相关的高可用性进行了研究,从各类高可行性技术的场景和内容,以及保障生产的角度对工控网络的应用进行了分析探讨,重点阐述了高可用性技术在生产链路全时贯通和生产系统连续运行方面所发挥的作用。


当前工控网络不再是单纯的OT网络,而是OT、IT、IoT高度融合的网络,需要保障操作信息的全时受控,要求尽可能低的时延、尽可能低的抖动,尽可能少的乱序,对高可用性的要求会越发强烈。


参考文献

[1]]若客.NT的五个九——与HP中国公司微机系统部副总经理杨诺础谈高可用性[J].中国计算机用户,1999(32):29.

[[1]]凌和生.美国空军对MIL-F-9490D的验证梗概[J].航空标准化与质量,1992(01):34-37.

[[1]]孙怀义.冗余设计技术与可靠性关系研究[J].仪器仪表学报,2007(11):2089-2092.

[[1]]华为USG6000系列下一代防火墙技术白皮书[EB/OL].(2014-03-12)[2023-11-25].https://wenku.baidu.com/view/38e0646559eef8c75fbfb3f8.html.

[[1]]孟祥飞. 防火墙双机热备系统的设计与实现[D].哈尔滨工业大学,2018.

[[1]]css_Chan.高可用集群概念及工作原理[EB/OL]51cto,(2017-05-02)[2023-9-18].https://blog.51cto.com/ccschan/1921251



未完待续……


来源:《工业信息安全》2023年第6期