S系列交换机Eth-trunk负载分担不均配置调整方法
前提条件
本文档以V200R010C00版本的S6720EI为例进行介绍,不同产品及版本配置注意事项和命令行使用限制等差异,请参阅产品软件配套软件版本的产品文档。配置注意事项请查看“配置指南-以太网交换-以太网链路聚合配置”章节的“链路聚合配置注意事项”,各命令行使用限制请查看命令参考。
如何判断设备是否存在Eth-Trunk负载分担不均
通过display interface brief命令回显中InUti字段和OutUti字段可以查看接口最近300秒内的平均带宽使用率。
<HUAWEI> display interface brief InUti/OutUti: input utility/output utility Interface PHY Protocol InUti OutUti inErrors outErrors GigabitEthernet0/0/1 up up 0.06% 0.06% 315 408 GigabitEthernet0/0/2 up up 0.06% 0.07% 229 306
正常情况下,流量在Eth-Trunk负载分担后,会被分配到多条链路上传输。此时,各链路的带宽使用率不超过80%,各链路间带宽使用率相差不超过30%,可以有效提高业务的可靠性。Eth-Trunk负载分担不均是指流量通过负载分担后,仅被分配到一条或者某几条链路上传输,没有被分配到其他链路的情况。此时,通常存在单条链路的带宽使用率超过80%的情况,可能会影响业务正常运行。
需要特别说明的是,Eth-Trunk负载分担分为逐流负载分担和逐包负载分担。由于各流量中包含的数据大小不同,因此无论使用哪种负载分担方式,在现网中都无法保证负载分担后的流量绝对均匀。同时,逐包负载分担在接收数据包时有可能出现乱序的问题,而大部分业务要求保证数据包时序正常,因此在网络设计中推荐使用逐流负载分担。当前版本,S系列交换机仅支持逐流的负载分担,详细原理请查看《S系列交换机链路聚合的负载分担方式》。
负载分担不均定位思路
如果出现负载分担不均的情况,可以通过以下步骤进行确认和调整配置。
- 判断Eth-Trunk负载分担不均的端口是否属于集群/堆叠系统中的跨框设备。
是,查看“集群/堆叠跨版负载分担推荐配置” 章节。
否,进入步骤2。
- 判断设备上是否同时存在ECMP和Eth-Trunk负载分担。
是,查看“ECMP+Eth-Trunk二次负载分担推荐配置”章节。
否,进入步骤3。
- 判断业务流量是否为非已知单播报文。判断方法是如果MAC表中没有该报文的目的MAC地址,则该报文为非已知单播报文。
说明:
负载分担方式只在流量的出接口上生效,因此如果抓包发现单一流量占比其他流量大很多时,需要优先修改上游设备出接口的流量路径,将流量较为均匀引导到本设备上,或者扩容本设备出接口,例如将GE口扩容成XGE口。
是,查看“非已知单播负载分担推荐配置” 章节。
否,查看 “已知单播推荐配置” 章节。
集群/堆叠跨框负载分担推荐配置
在设备集群/堆叠情况下,为了保证流量的可靠传输,流量的出接口通常会设置为跨框Eth-Trunk接口。当集群/堆叠设备转发流量时,通过HASH算法可能会选择跨框的接口转发。由于集群/堆叠设备间线缆带宽有限,跨框转发流量会增加集群/堆叠设备之间的带宽承载压力,同时也降低了流量转发效率。为了解决这个问题,S系列交换机默认使能Eth-Trunk接口流量本地优先转发。此时出现的跨设备端口流量带宽使用率相差超过30%属于正常现象。
但如果此时设备Eth-Trunk的活动接口的带宽不足以承载本设备转发的流量,出现单条链路的带宽使用率超过80%的情况,就需要去使能Eth-Trunk接口流量本地优先转发功能,使本设备的部分流量通过其他设备的Eth-Trunk出接口转发,防止发生丢包。
如果业务对转发性能不敏感,虽然设备接口带宽足以承载转发流量,但是为了保证增强可靠性,防止设备链路故障时,该设备eth-trunk端口无法承载突发流量,也可以在Eth-Trunk视图下配置undo local-preference enable命令,去使能Eth-Trunk接口流量本地优先转发功能。
ECMP+Eth-Trunk二次负载分担推荐配置
先使用ECMP将流量负载分担到多个Eth-Trunk口,再使用Eth-Trunk负载分担的场景中,首先要保证ECMP负载分担均匀,再根据下方步骤调整Eth-Trunk的负载分担配置。
- 如果ECMP普通方式可以负载分担均匀,那么Eth-Trunk负载分担方式没有限制。此时参考其他Eth-Trunk负载分担不均原因排查。
- 如果ECMP普通方式负载分担不均,必须采用增强方式才能负载分担均匀,那么Eth-Trunk优先选择普通方式。
- 如果ECMP必须采用增强方式才能负载分担均匀,且Eth-Trunk采用普通负载分担不均,则Eth-Trunk采用选择增强方式。此时Eth-Trunk有效HASH因子需要比ECMP多。
- 如果现网流量极不均匀,ECMP和Eth-Trunk都采用了增强方式,且配置了大量HASH因子仍存在负载分担不均的现象,则需要调整ECMP和Eth-Trunk的成员数。两者的成员数不能有公约数,例如两者成员数不能选择4和4、4和2、6和3,可以选择3和4、4和5。
非已知单播负载分担推荐配置
非已知单播包括未知单播、组播和广播。当非已知单播流量较大且不均匀时,可以在系统视图下配置unknown-unicast load-balance enhanced,应用增强模板进行负载分担。
框式交换机的配置为unknown-unicast load-balance enhanced lbid。且V200R010C00版本中,S7700的ES0D0G24SA00和ES0D0G24CA00单板或S9700的EH1D2G24SSA0和EH1D2S24CSA0单板同其他类型的单板混绑时,不能配置unknown-unicast load-balance enhanced lbid命令,否则可能会出现丢包或者多包的问题。
已知单播推荐配置
已知单播可以优先尝试配置普通负载分担方式,再尝试配置增强负载分担方式。不同类型流量推荐的负载分担配置不同,需要根据表1-1进行选择,然后依次尝试所列出的方式。除非特殊说明,Eth-Trunk的端口数量需要配置成2的倍数。Eth-Trunk负载分担的基本配置方法请参见普通负载分担方式配置方法和增强型负载分担方式配置方法。查看报文中Protocol字段的方法请参见获取报文头方法。
流量类型 |
流量类型判断方法 |
负载分担方式 |
---|---|---|
普通二层流量 |
报文中Protocol字段为非PPPoE的二层协议 |
|
普通三层流量 |
报文中Protocol字段为TCP/IP或者非MPLS、GTP的三层协议 |
|
PPPoE流量 |
报文中Protocol字段为PPPoE 说明:
PPPoE报文负载分担时,只能解析到报文最外层的二层信息。PPPoE封装内的信息无法解析。 |
|
GTP流量 |
报文中Protocol字段为GTP 说明:
GTP报文负载分担时,只能解析到报文最外层的IP信息。GTP封装内的信息无法解析。 |
|
MPLS流量 |
报文中Protocol字段为MPLS |
MPLS流量只能使用增强方式。由于负载分担选路流程在MPLS封装之前,所以MPLS label的负载分担方式仅支持入口带MPLS标签的报文。根据图1-1中发生出接口负载分担不均的不同MPLS网络角色,按照表1-2调整配置。 |
MPLS网络角色 |
增强方式的负载分担方式 |
---|---|
PE1 |
L2VPN场景:
L3VPN场景:
|
P |
说明:
此场景大多数单板只能使用到MPLS标签进行分担,无法解析到MPLS标签后的原始报文中的IP信息。 mpls field [ 2nd-label | dip | sip | sport | top-label ] * |
PE2 |
说明:
此场景部分单板并不能使用到MPLS标签进行负载分担,只能使用到原始报文中二层信息或IP信息。 L2VPN场景:mpls field [ 2nd-label | dmac | smac | sport | top-label | vlan ] * L3VPN场景:mpls field [ 2nd-label | dip | sip | sport | top-label ] * |
普通负载分担方式配置方法
- 执行命令system-view,进入系统视图。
- 执行命令interface eth-trunk trunk-id,进入Eth-Trunk接口视图。
- 执行命令load-balance { dst-ip | dst-mac | src-ip | src-mac | src-dst-ip | src-dst-mac },根据表1 不同类型流量的负责分担推荐配置进行Eth-Trunk负载分担方式配置。
缺省情况下,Eth-Trunk接口的负载分担模式为src-dst-ip。
下面这个示例显示了如何在接口Eth-Trunk1下配置基于源MAC地址和目的MAC地址的负载分担方式,并查看是否配置成功。
<HUAWEI> system-view [HUAWEI] interface eth-trunk 1 [HUAWEI-Eth-Trunk1] load-balance src-dst-mac [HUAWEI-Eth-Trunk1] quit [HUAWEI] display eth-trunk 1 load-balance Eth-Trunk1's load-balance information: Load-balance Configuration: SA-XOR-DA Load-balance options used per-protocol: L2 : Source XOR Destination MAC address, Vlan ID, Ethertype, Ingress-port IPv4: Source XOR Destination MAC address, Vlan ID, Ethertype, Ingress-port IPv6: Source XOR Destination MAC address, Vlan ID, Ethertype, Ingress-port MPLS: Source XOR Destination MAC address, Vlan ID, Ethertype, Ingress-port
由上述信息可以看出,“Load-balance Configuration”字段显示为“SA-XOR-DA”,说明接口Eth-Trunk1的负载分担方式为基于源MAC地址和目的MAC地址进行负载分担。
项目 |
描述 |
---|---|
Load-balance Configuration |
配置的负载分担方式:
|
Load-balance options used per-protocol |
不同类型报文的负载分担参数。 |
增强型负载分担方式配置方法
- 执行命令system-view,进入系统视图。
- 执行命令load-balance-profile profile-name,创建负载分担模板,并进入模板视图。设备全局公用一个负载分担模板。
- 对于L2、IPv4、IPv6、MPLS报文,可以分别配置负载分担模式,以下步骤可不选、选择其一或多选,请根据表1 不同类型流量的负责分担推荐配置进行Eth-Trunk负载分担方式配置。
- 执行命令l2 field [ dmac | l2-protocol | smac | sport | vlan ] *,配置指定负载分担模板中二层报文的负载分担模式。缺省情况下,二层报文的负载分担模式为smac、dmac。
- 执行命令ipv4 field [ dip | l4-dport | l4-sport | protocol | sip | sport | vlan ] *,配置指定负载分担模板中IPV4报文负载分担模式。缺省情况下,IPv4报文负载分担模式为sip、dip。
- 执行命令ipv6 field [ dip | l4-dport | l4-sport | protocol | sip | sport | vlan ] *,配置指定负载分担模板中IPV6报文负载分担模式。缺省情况下,IPv6报文负载分担模式为sip、dip。
- 执行命令mpls field [ 2nd-label | 3rd-label | dip | dmac | l4-dport | l4-sport | protocol | sip | smac | sport | top-label | vlan ] *,配置指定负载分担模板中的MPLS报文负载分担模式。缺省情况下,MPLS报文负载分担模式为top-label、2nd-label。
- 执行命令quit,返回系统视图。
- 执行命令interface eth-trunk trunk-id,进入Eth-Trunk接口视图。
- 执行命令load-balance enhanced profile profile-name,应用配置的负载分担模板。
下面这个示例显示了如何创建一个负载分担模板a,并在模板中配置IPv6报文负载分担方式为sip、protocol,然后在接口Eth-Trunk1下应用此负载分担模板,最后查看是否配置成功。
<HUAWEI> system-view [HUAWEI] load-balance-profile a [HUAWEI-load-balance-profile-a] ipv6 field sip protocol [HUAWEI-load-balance-profile-a] quit [HUAWEI] interface eth-trunk 1 [HUAWEI-Eth-Trunk1] load-balance enhanced profile a [HUAWEI-Eth-Trunk1] quit [HUAWEI] display eth-trunk 1 load-balance Eth-Trunk1's load-balance information: Load-balance Configuration: ENHANCED Load-balance enhanced profile: a Load-balance options used per-protocol: L2 : Source XOR Destination MAC address IPv4: Source XOR Destination IP address IPv6: Source IP address, IP protocol MPLS: Top XOR Second label
由上述信息可以看出,“Load-balance Configuration”字段显示为“ENHANCED”,说明接口Eth-Trunk1下配置了增强负载分担方式;“Load-balance options used per-protocol”中的“IPv6”字段显示为“Source IP address, IP protocol”,说明IPv6报文负载分担方式为基于源IP地址和协议进行负载分担。
获取报文头方法
当需要获取报文头中Portal字段判断报文类型,或者需要查看报文头中其他信息时,可以使用以下方法。
镜像方式获取报文头
即使流量大于观察接口带宽,无法采集到完整流量,也可以根据采集流量进行分析流量整体模型。当抓包设备无法承载大流量时,可以在交换机的观察口的系统视图下使用qos lr cir 100000 outbound命令配置限速。
下面这个示例显示了如何将的Eth-Trunk1流量镜像到GE 1/0/1。
<HUAWEI> system-view [HUAWEI] observe-port 1 interface GigabitEthernet 1/0/1 [HUAWEI] interface eth-trunk 1 [HUAWEI-Eth-Trunk1] port-mirroring to observe-port 1 outbound
Capture-packet方式获取报文头
如果现网实在不具备第一种镜像的条件,可以考虑在系统视图下使用capture-packet interface interface-typeinterface-number destinationterminal命令获取报文头。建议每次采集间隔一定时间,重复采集50组以上,最后将所有报文头数据汇总分析。
capture-packet方式获取报文头的样本相对较小,有时候并不能反映现网实际流量模型。