服务器与CE交换机对接出现报文乱序

发布时间:  2016-03-08 浏览次数:  310 下载次数:  0
问题描述

服务器Server1通过LAGCE5850对接,CE5850通过LAG双归到CE12800堆叠系统,CE12800堆叠系统同时又与CE6850堆叠系统LAG对接,服务器Server2也通过LAGCE6850系统对接。

 



 

客户为了提高服务器、带宽利用率,服务器Server1的网卡采用逐包负载分担方式与CE5850对接。客户发现Server2收到的报文,出现比较明显的报文乱序。
告警信息
处理过程

1.      CE交换机上通过命令查询IP会话在LAG上负载分担到的成员口,确认一个IP会话的报文只从一个成员口转发出去,CE交换机的逐流负载分担没有问题;

2.      CE5850与服务器对接的LAG成员口上抓包,发现同一个IP会话的报文从不同的LAG成员口进入设备,存在引起乱序问题的风险;

3.   使用不同设备进行模拟验证,确认不同设备均可能由于服务器的逐包负载分担方式对接,导致报文经过后出现乱序,由此确认问题原因为服务器与CE交换机对接方式不合理。
根因

1、乱序问题的原因,是由于服务器Server1的网卡采用逐包负载分担方式与CE5850对接。

2、逐包负载分担方式下,服务器会轮流向LAG的不同成员口发送报文,同一个会话的流量可能从不同的路径进入CE5850

3、不同LAG成员口虽然逻辑上属于同一个LAG,但是报文处理的很多流程是独立的。当报文从不同的路径进入设备,处理的时延存在不同程度的差异,到达一定程度时,就可能导致先进设备的报文反而后处理完,引起乱序问题。

4、同一个会话从相同的LAG成员口进入设备(即逐流负载分担方式),这种情况下每个报文处理流程一致,且遵循先进先出,就可以避免乱序问题。
解决方案
服务器设备采用逐流负载分担方式。
建议与总结

逐包负载分担方式实现简单且负载非常均衡,但是可能引起报文乱序问题,这是业界共识,很多内部和外部的资料中都有提及。报文乱序问题在很多情况下是不能接受的,因此逐包负载分担方式已逐步被逐流负载分担方式替代,逐流负载分担已成为主流。

CE交换机只支持主流负载分担方式,自身对接不存在此问题。但是和友商设备对接的时候需要特别注意,友商设备上不要配置成逐包负载分担方式。

此外,报文乱序对业务也不是一定会产生影响。通常来说,语音通话、在线视频这类低时延业务对报文乱序比较敏感,而网页浏览、邮件这类业务对于报文乱序的容忍度则相对较高。但是从网络角度而言,还是要避免报文乱序的发生。

END