S9300链路捆绑的流量负载不均衡

发布时间:  2016-10-06 浏览次数:  237 下载次数:  0
问题描述

某广电用户网络1台S9306通过2GE的捆绑链路跟NE40E路由器对接,业务运行中发现S9306的其中一条捆绑链路outbound方向流量负载极不均衡,其中一条链路流量很少。

处理过程

1、查看S9306的端口流量发现eth-trunk10这个捆绑中的outbound方向流量确实很不均衡,其他捆绑组流量正常;


2、是否eth-trunk10上配置了不合理的负载分担方式导致?从配置上看此捆绑组采用默认的负载分担方式,查看文档S9306捆绑链路默认的负载分担方式为src-dst-ip,即基于源和目的ip地址;

interface Eth-Trunk10

 description to NE40E

 port link-type access

 port default vlan 3999

 mode lacp

3、是否此捆绑组流量主用为二层报文?尝试将eth-trunk的负载分担方式修改为src-dst-mac,修改后观察一段时间流量还是无法均衡;

4、查看interface vlanif 3999的配置发现启用了mpls和mpls ldp,是否这个接口下跑的流量都是mpls vpn的流量?跟客户确认确实是此接口主用承载mpls vpn流量的;

interface Vlanif3999

 ip address x.182.1.14 255.255.255.252

 mpls

 mpls ldp

5、对于mpls报文,因为mpls label是加在IP包头前面,所以默认情况下S9300将无法识别此类报文,而当作非ip报文来处理,通过mac进行hash。因此对于这些mpls报文,虽然他们的源/目的ip不同,但他们的源/目的mac都相同(源mac为本端三层接口的mac,目的mac为下一跳三层接口的mac),从而导致S9300在hash的时候根据mac地址把所有的流量都hash到了一条链路上,即时修改负载分担方式为src-dst-mac,但由于源和目的mac都相同,也同样会只hash到一条链路上。

6、针对这种mpls流量,我们可以配置增强负载分担模板来引用到捆绑组中,模板中可以设置根据mpls标签来负载分担,现网修改如下:

[S9306]load-balance-profile mpls

[S9306-load-balance-profile-ampls]mpls field top-label

[S9306]interface Eth-Trunk 10

[S9306-Eth-Trunk10]load-balance enhanced profile mpls

7、修改基于外层标签来进行hash算法后运行一段时间,流量负载基本均衡;

Eth-Trunk10                 up    up        26.78%  18.23%          0          0

   GigabitEthernet1/0/0     up    up        25.74%  19.50%          0          0

   GigabitEthernet2/0/0     up    up        27.61%  17.34%          0          0

根因

S9306交换eht-trunk的默认流量负载分担方式为src-dst-ip,而对于mpls报文,因为mpls label是加在IP包头前面,所以默认情况下S9300将无法识别此类报文,而当作非ip报文来处理,通过mac进行hash从而导致流量负载不均。

解决方案

通过配置根据mpls第一层标签来负载分担增强负载分担模板来引用到捆绑组中后问题解决:

[S9306]load-balance-profile mpls

[S9306-load-balance-profile-ampls]mpls field top-label

[S9306]interface Eth-Trunk 10

[S9306-Eth-Trunk10]load-balance enhanced profile mpls

END