XX融合网关大流量测试丢包问题处理

  一. 【问题描述】

  XX融合网关采用4台H3C F5000防火墙、2台H3C SR8805路由器,其中两台防火墙作为入口防火墙分别命名为FW3、FW4,另外两台防火墙作为出口防火墙分别命名为FW1、FW2;2台路由器通过GRE隧道让手机用户接入。具体拓扑如下:

  

图片2.png


  用户对网络接入设备性能要求很高,需要测试设备性能,每台设备互联端口都是两端口捆绑,用户要求流量测试:达1.4G不丢包,达1.6G丢包小于1%。由于CMNET侧是运营网络,不允许大流量测试,于是设计如下网络测试拓扑图:

  

图片3.png


  流量测试设备由用户提供,经过测试,压力测试设备流量打到1.4G时,从防火墙FW3 ping压力测试设备和服务器丢包严重到达4%,从测试服务器ping测试SP丢包更严重达到12%

  二. 【信息收集】

  实验1:从client(10.60.0.14)分别ping到CISCO交换机出方向接口、FW3入方向接口、FW3出方向接口和FW1入方向接口,ping包大小为56字节。测试结果丢包4%。

  实验2:从client(10.60.0.14)分别ping到FW1入方向接口,ping包大小为56字节。client端100个报文丢12个,通过对FW1和FW3的会话表项统计(dis session table),FW1的ICMP会话出入方向均为90,而FW3上的反方向报文只收到了88个。

  实验3:从防火墙FW01 ping 测试SP丢包4%

  以上测试都是在流量达到1.4G时测试结果。

  三. 【问题分析】

  实验1测试表明测试服务器与FW03之间存在丢包

  实验2测试表明测试服务器与FW01设备之间存在丢包达到12%,其中测试服务器与FW03之间丢包10%,FW03与FW01之间丢包2%,

  丢包的区域如下:

  

图片4.png


  丢包区域主要在上图区域1、区域2、区域3

  以上丢包区域都有共同点,我们设备都与CISCO交换机互联,其中压力测试设备与FW3中间是CISCO 3750,FW3与FW1中间是 CISCO 4500。而且除了CISCO设备还有多个友商设备,其中区域2最复杂,而且都是二层网络,数据流量走向非常复杂。

  测试期间与友商配合测试也发现了友商设备配置问题,例如DPI配置问题,CISCO 3750两个端口在同一个芯片内性能不足等问题,把以上问题排除后,测试丢包改善情况有限。

  经过与CISCO工程师沟通后、并详细了解压力测试设备发包原理后分析出:压力测试设备发包源IP和目的IP地址较少,H3C设备端口转发方式是流转发,基于5元组转发,即相同源目的IP、端口只会从同一个端口转发,虽然我们做了2GE口捆绑,但发包IP地址不变化,则这个IP只会从捆绑口的其中一个端口转发,不会变化。

  所以问题很明显,端口捆绑能达到2GE吞吐量,但测试流量较大部分从其中一个端口转发,而一个端口只有1GE吞吐量,当测试流量超过1G时,就有丢包,为了验证此问题,我们采用4GE捆绑,测试流量达到1.4G时仍然有丢包,这说明猜测正确。

  四. 【处理方法】

  问题已经找出,处理方法很简单,F5000修改捆绑口的流量转发方式,但F5000并无此命令,不过研发在现场,4个小时内修改并重新编译版本,在捆绑口上增加命令:link-aggregation load-sharing mode per-packet,即捆绑口改为逐包转发。

  五. 【结束语】

  升级版本后测试:

  1、 现场调整流量到1.6G,再次验证客户端到服务器的整网丢包率

  大包1500,全网丢包0.4%,即500个报文丢了2个(快速ping操作可以达到小于0.1%)

  小包56,全网无丢包

  2、 现场调整流量到1.4G,ping大包和小包,全网无丢包。

  3、 从C4500交换机上ping客户端和服务器,1.7G无丢包(ping的速度较快)

  流转发技术,即常说的,一次路由,多次转发。特点是匹配第一个IP包后建立硬件转发表项,后续报文不匹配IP表项,直接走硬件。 硬件转发表项中存放的是目的网段与出口信息。逐包就是普通的查找IP路由表转发,每一个包都需要进行CPU查表操作,速度肯定没有流转发快。不过此次修改的逐包转发仅仅是捆绑端口发包方式不同,没有上述逐包转发缺点。


2016年01月