技术天地

ESM335x主板对网络风暴的应对措施作者:黄志超    发布时间:2019-4-19    被阅览数:

  成熟和完善的通讯接口支持是英创公司工控主板的一大亮点,对工业中常用的通讯接口在各种场合都有着稳定的运行表现,所以主板被大量应用于和通讯相关的项目中。而对于通讯类的设备,有一些场合会要求通过网络风暴测试。网络风暴一般是指由于网络中充满了广播包或组播包,以至于占满整个网络带宽,导致网络极慢甚至瘫痪的一种故障。


  正常情况下,主板会接收发送过来的广播包和组播包然后进行相关处理和解析,如果整个网络中充满了广播包或组播包,那么主板将会一直处在对网络数据包的处理和解析中,这样就会大量消耗主板的资源,导致主板出现系统响应慢,甚至导致影响整个系统正常运行的情况。针对这种现象和需求,英创公司在ESM335x系列主板上增加了抵抗网络风暴的方案,让主板即使处在网络风暴中也不会消耗过多的资源,保证主板功能的正常运行。


  在ESM335x主板上采用的方法是控制接收广播和组播包的速率,通过英创公司提供的软件工具switch-configs设置,可以将ESM335x主板每秒接收广播和组播包数量进行限制,总共分为10个梯度,从每秒钟分别最多接收10000个广播包和组播包到每秒钟1000个,每个梯度递减1000,这样就避免了接收过多的广播包和组播包,从而导致消耗过多的硬件资源。


  为了测试方案的效果,英创公司使用了PC和ESM3354主板搭建了实验环境,让ESM3354主板和PC通过交换机连接,然后在PC上使用大流量网络数据包生成工具trafgen,产生大量广播包模拟网络风暴的情况,观察在限制接收广播包和组播包速率前后,系统资源的消耗情况有无变化。关于trafgen工具的介绍,可以参考trafgen(8)或者网站:http://man7.org/linux/man-pages/man8/trafgen.8.html。测试硬件环境如下:


ESM335x主板测试应对网络风暴性能.png

测试环境


  trafgen工具可以读取配置文件,根据文件内容生成所设置的数据包,在这次测试中英创公司设计了生成广播包的配置文件,在PC端运行后,就会有大量的广播发出,让局域网内充满了广播包,执行命令后效果如下:


ESM335x主板测试应对网络风暴性能.png

生成广播包


  可以看到PC的8个核心同时在发出广播包,这时通过top指令查看ESM3354主板的CPU状态,如下图:


ESM335x主板测试应对网络风暴性能.png

资源占用


  上图的信息说明ESM3354的CPU资源已经被完全占用,说明处理接收到的广播包已经消耗了许多的硬件资源,导致CPU负载过高,可能会影响其他功能的正常运行。


  这时通过英创公司提供的工具软件switch-configs来限制广播包的接收速率,运行程序时带入参数1,效果为限制ESM3354主板每秒钟最多分别接收1000个广播包和组播包,参数1-10,分别对应1000-10000个包,参数0则表示取消限制,如下图:


ESM335x主板测试应对网络风暴性能.png

设置网络限制


  运行后效果如下图:


ESM335x主板测试应对网络风暴性能.png

资源占用


  从图中的信息看出CPU的负载降下来了,说明板卡此时完全没有受到网络中大量广播包的影响,系统正常运行。因为限制了ESM3354主板接收广播包和组播包的速率,就算网络中还有更多的广播包和组播包,也不会影响ESM3354主板的正常运行。


  所以这次实验验证了ESM3354主板在网络风暴情况下仍然能够正常运行,不会受到网络中大量广播包和组播包的影响,大幅提升了在极端网络条件下设备的稳定性。最后在对主板不同的限制速率情况做了对比测试,并且统计了生成的广播包数量,整理如下:


限制速率测试时间累计广播包数量CPU负载
无限制61s

9201579个数据包

共552094740byte

98%
500061s

9201579个数据包

共552094740byte
2.5%
100061s

9201579个数据包

共552094740byte
0%


  若对此功能有兴趣,需要设置网络设置的switch-configs工具,可与英创的工程师联系。

Go Top