智能船舶网络风暴测试及抑制技术

2021-06-28 12:57周毅
船海工程 2021年3期
关键词:环路报文数据包

周毅

(中海油能源发展股份有限公司 采油服务公司,天津 300452)

作为智能船舶的“信息高速公路”,网络平台通过交换机、网关、服务器等网络信息设备将船舶主要系统及设备如主推进系统、辅机及电站系统、辅助设备及系统采集纳入到一个统一的网络中,实现信息的统一采集、分发、共享并得到有效的管理[1-2]。考虑网络设备故障、病毒攻击、环路等因素,网络平台系统可能面临网络风暴的风险,导致网络传输性能下降,甚至网络瘫痪,影响各智能应用的正常运行。各船的网络环境不同,需针对各种类型船舶设定适合的网络风暴策略。目前挪威船级社(DNVGL)已经强制要求船载计算机网络系统需按照相关规范要求完成并通过网络风暴测试[3]。CCS船级社要求智能船舶如需取得相应的智能符号,需完成并通过网络风暴测试[4]。

1 网络风暴机理分析

1.1 原因分析

1)网络设备选型不当。三层网络交换机在进行数据包转发时,首先解析数据包中的目的IP物理设备的MAC地址(media access control address),如果交换机地址表中没有对应的MAC地址,将会发出广播帧寻址,如果局域网中存在对应MAC地址的物理终端,交换机将收到MAC地址回复帧,并加入到本身的路由表,且转发数据包。如果交换机未收到MAC地址回复帧,则直接丢弃该数据包,从网络通信机理上,三层交换机自身不会产生网络风暴。但是如果在网络平台设计中,选用二层交换机或多端口转发器(HUB),上述网络设备在收到数据包后,不会检查数据包中的目的IP物理设备的MAC地址,直接转发给局域网内所有通信端口,很容易产生网络风暴。

2)网线短路。现代交换机多采用存储转发技术,将输入端口接收的数据包暂时缓存,首先检查数据包是否正确,同时过滤掉冲突包错误,待确定数据包内容、格式正确后,取出包中的目的地址,通过查找路由表确定目的端口地址,最后将该包发送出去。在船舶网线敷设、接线或者长期使用过程中,均可能因线路短路,导致该交换机接收到大量不符合转发原则的数据包,造成交换机处理器长期处于繁忙状态,正常业务数据包无法及时转发,从而导致缓冲区溢出,产生丢包。

3)网卡损坏。网络终端设备的网卡负责与其他网络设备进行通信,产生/接收数据包。当网卡损坏后,一方面可能会导致该网络终端离线,无法产生或接收网络中的数据包,该情形下,无法产生网络风暴;另一方面损坏的网卡可能会重复高频地向网络中发送大量无用数据包,或者与交换机形成环路,导致无用的数据包占用交换机大部分的处理转发能力,阻塞正常的数据包转发。

4)网络环路。由于网线连接失误,导致一条物理网络线路的两端,同时接在了一台网络交换机中,形成连接环路,或者由于2层交换机缺少生成树协议(spanning tree protocol,STP协议),无法自动切断级联交换机之间的冗余端口,形成拓扑环路。上述2种网络环路均会造成每一个数据帧均在网络中重复广播,网络负载呈指数式上升,最终超出当前交换机处理能力,阻塞正常数据帧的处理业务。

5)网络病毒。网络病毒,如Funlove、震荡波、RPC等,在局域网内快速传播,占用大量网络带宽,引起网络堵塞。

1.2 危害分析

典型智能船舶网络平台架构见图1[7],由1台防火墙组成数据边界安全层,1台核心交换机和2台汇聚交换机组成无冗余配置的数据传输层,设备接入层中各个网络终端或其他信息系统(如局域网系统、CCTV系统等)按照冗余及就近原则连接至汇聚交换机或核心交换机。

图1 典型智能船舶网络平台架构

在图1所示架构基础上,构造拓扑环路,见图2。

图2 网络风暴故障分析拓扑

按照图2所示的架构,在上海船舶研究设计院智能船舶创新实验室(以下简称上船院实验室)搭建测试环境,见图3。

图3 上船院实验室模拟测试环境

将个人笔记本模拟为1#网络终端,IP配置为192.168.0.1/24网段的任意一个地址,核心交换机IP配置为192.168.0.1/24网段的任一地址,然后将3台交换机的STP协议通过“stp disenable”命令关闭。打开个人笔记本命令行界面,设置ping(Packet Internet Groper,因特网包探索器)命令的参数,目的IP设置为核心交换机的IP地址,次数设置为10次,执行上述ping命令。通过人为构造环路,模拟网络风暴产生,单个网络终端仅发送10个数据帧,10 s内在网络中最终产生了16万个广播,网络中充斥着大量广播报文,导致交换机、服务器被动接收网络中的广播数据包并且进行相关处理,极大消耗了交换机的CPU资源、内存资源。如果没有即时解决网络风暴,会对交换机、服务器硬件造成不可挽回的损伤,导致交换机、服务器瘫痪,局域网整体无法工作。

1.3 抑制措施

1.3.1 主动抑制措施

1)优化网络拓扑。智能船舶网络平台所有交换机选用3层网管型交换机,且针对冗余配置的场景,所有冗余交换机默认开启STP协议,避免因物理设备通信机理和拓扑环路而产生网络风暴。

2)VLAN隔离及网络风暴控制。合理规划并配置智能船舶网络平台的网络策略,合理划分虚拟局域网(virtual local area network,VLAN)、缩小广播域,进而将全网的广播/组播/单播风暴隔离在单个VLAN中,不会对其他业务VLAN产生影响。同时在交换机每个千兆以太网口上设置报文速率上行/下行阈值,当某个端口在一个检测时间间隔内接收广播/组播/单播报文的平均速率大于配置的最大阈值时,设备会对该接口进行风暴控制,风暴控制动作包括阻塞报文和关闭接口。如果对报文进行阻塞,当该接口接收报文的平均速率小于设定最小阈值时,当前接口会放开对该报文的阻塞。如果风暴控制动作为关闭接口,则需要手动执行命令来开启接口,或者使能接口状态自动恢复为UP功能。

1.3.2 被动抑制的措施

1)网络监测。在智能船舶网络平台中部署网络流量监控软件,如eSight、sniffer等,实时监测局域网内的通信情况。当发现广播、组播或单播报文数据异常增多时,自动推送报警信息并迅速定位故障原因,切断网络风暴源头。

2)系统升级。对局域网内的网络设备定时升级补丁库、病毒库,防止因病毒入侵。

2 测试验证

2.1 测试环境

基于LNG加注船智能化关键技术项目,完成“海洋石油301”LNG运输船网络平台架构,在上船院实验室构建相应的测试环境,见图4。为方便表示网络风暴测试的输入输出数据流及环路测试,图4所示的测试拓扑仅包括“海洋石油301”LNG运输船网络平台的主干网络部分(仅包括双冗余交换网络、防火墙)。其他接入设备,包括服务器、智能网关等,未在图4中示出,不影响网络风暴抑制策略的验证。测试拓扑设备组成清单见表1,测试设备清单见表2,Test Center设备主要用于模拟产生广播/组播/单播模式下的大流量,并注入到测试拓扑中,Windows PC主要用于监测网络状态。

图4 网络平台模拟测试拓扑

表1 测试拓扑设备组成清单

表2 测试设备清单

2.2 测试内容

网络风暴抑制策略验证测试分为测试仪器模拟打入大流量、人为构造环路两种测试场景。测试仪器模拟打流将测试本测试拓扑下的所有VLAN,见表3。按照图4测试拓扑示意,将测试仪器接入到交换机空闲端口中,并将该端口配置为相应待测试的VLAN,并配置主动抑制策略和被动抑制策略进行广播/组播/单播网络风暴测试。人为构造环路测试场景仅随机挑选2个交换机空闲端口作为测试端口,使用网络跳线短接这2个测试端口进行测试。

表3 模拟测试拓扑的VLAN规划

2.2.1 广播风暴抑制测试

1)将Test Center连接至汇聚交换机的下行接口,如图4中“入口流量”所示。在Test Center上位机软件中,构造广播报文,通过修改VLANID实现遍历所有业务VLAN测试需求。

2)逐步增加Test Center注入流量的速率,观察对业务的影响,直至找到流量速率上限max_threshold,并将该阈值配置在核心交换机和汇聚交换机所有端口中。

3)将测试仪器发送广播报文速率调整至高于max_threshold,模拟大流量注入场景下的广播风暴。

4)将测试仪器发送广播报文速率调整至低于max_threshold,同时将汇聚交换机的2个测试端口短接,模拟人为构造环路场景下的广播风暴。

5)查看交换机日志记录,验证广播风暴抑制策略的有效性。

2.2.2 组播风暴抑制测试

在Test Center上位机软件中,构造组播报文,重复广播风暴抑制测试中的步骤,验证组播风暴抑制策略的有效性。

2.2.3 单播风暴抑制测试

在Test Center上位机软件中,构造单播报文,重复广播风暴抑制测试中的步骤,验证单播风暴抑制策略的有效性。

2.3 测试结果分析

在广播风暴抑制策略测试中,当测试仪器发送广播报文速率高于max_threshold时,交换机产生对应端口的告警,并触发风暴控制动作(阻塞报文或关闭接口);当测试仪器发送广播报文速率低于max_threshold时,相应端口的报警消除,端口状态恢复正常;人为构造环路形成后,广播报文在2个测试端口间被重复转发,相应端口使用率很快达到100%状态,同时触发风暴控制动作。

在组播风暴抑制策略测试中,当测试仪器发送广播报文速率高于max_threshold时,交换机产生对应端口的告警,并触发风暴控制动作(阻塞报文或关闭接口);当测试仪器发送广播报文速率低于max_threshold时,相应端口报警消除,端口状态恢复正常;人为构造环路形成后,组播报文在2个测试端口间被重复转发,相应端口的使用率很快达到100%状态,同时触发风暴控制动作。

在单播风暴抑制策略测试中,当测试仪器发送广播报文速率高于max_threshold时,交换机产生对应端口的告警,并触发风暴控制动作(阻塞报文或关闭接口);当测试仪器发送广播报文速率低于max_threshold时,相应端口的报警消除,端口状态恢复正常;人为构造环路形成后,组播报文在2个测试端口间被重复转发,相应端口使用率很快达到100%状态,同时触发风暴控制动作。

3 结论

本文针对智能船舶网络平台可能面临的网络风暴,从网络通信机理出发,分析网络风暴发生的可能原因,并提出了主动风暴抑制策略和被动分别抑制策略,从事前和事后两个维度出发,有效降低船舶网络风暴发生的概率以及对其他业务系统的影响,最后基于“海洋石油301”LNG运输船的网络平台架构,在上海船舶研究设计院智能船舶创新实验室搭建模拟测试环境,验证了针对单播、组播、广播网络通信模式的风暴抑制策略的有效性,降低网络风暴产生的未知单播帧所造成的损害及蔓延。

希望测试能够为行业包括设计方、建造方、营运管理方提供参考。

猜你喜欢
环路报文数据包
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
通过交换机检测解决网络环路的探索
二维隐蔽时间信道构建的研究*
外差式光锁相环延时对环路性能影响
基于Python的汽车CAN总线报文格式转换系统的设计与实现
基于报文类型的限速值动态调整
C#串口高效可靠的接收方案设计
一种解决内外网间桥接或环路问题的方法
网络数据包的抓取与识别