干了这么多年网络,我越来越觉得链路聚合这个功能被很多人低估了。尤其是在接入层和汇聚层,业务一多、流量一上来,单条千兆链路说堵就堵,而链路聚合往往是最快、最稳、也最省钱的解法。华为设备上叫Eth-Trunk,思科叫PortChannel,锐捷H3C也都各有叫法,但思路是同一个:把多条物理链路捆成一条逻辑链路,既扩带宽,又做冗余。今天这篇就专门聊华为交换机的二层链路聚合,从原理、规划到配置、排障,一次说透。
如果你正在用华为交换机(S5700、S6700、S12700这些常见系列都适用),或者在学校做enSP实验遇到过Eth-Trunk不会配、配完不通、通了但负载不均这类问题,这篇文章应该能帮你省下不少折腾时间。我会把手工模式和LACP模式都讲清楚,再把实际项目中踩过的坑和排查思路一并整理出来。
1. 为什么要做二层链路聚合:先解决“带宽不够”和“链路不可靠”这两个老问题
1.1 链路聚合到底解决了什么
先说带宽问题。一台服务器或者一台汇聚交换机,单根千兆网线的极限就是1Gbps,满了以后要么丢包、要么排队,业务表现就是“卡”。过去很多人的第一反应是换万兆设备,但万兆光口模块、万兆网卡、万兆线缆的成本摆在那里,预算不够的时候根本换不动。链路聚合的思路就很直接:用两根、四根甚至八根千兆线同时跑,逻辑上把它们当一根用,带宽就能线性叠加。两根千兆聚合就是2Gbps,四根就是4Gbps,不用动现有的设备线缆,成本几乎为零。
再说可靠性。单条链路一旦出现物理故障(网线被踩断、光模块老化、接口松动),业务直接就断了。链路聚合把多条物理链路捆在一起后,某一条断了,流量会自动切换到剩下的链路上。对于绝大多数业务来说,这种切换是毫秒级的,用户基本感知不到。这一点在生产环境里比带宽叠加更值钱,因为网络故障导致的业务中断损失,往往远超那几条链路本身的价值。
二层链路聚合特指在交换机的二层转发层面做捆绑,也就是物理接口工作在二层模式(switchport)下,Eth-Trunk本身也是二层逻辑口,上面可以跑VLAN、配Trunk、接终端或下联其他交换机。这个场景在企业园区网里最常见:接入交换机到汇聚交换机之间、汇聚到核心之间、服务器双网卡接到交换机上,都是典型应用位置。
1.2 核心概念与关键术语
在HCIE、HCIP的教材里,链路聚合的术语不少,但真正干活时只需要记清楚几个:
- Eth-Trunk:华为设备上链路聚合的逻辑接口名,也是配置入口。可以理解为把所有物理成员口“虚拟化”成一个口,外部设备看到的是这个逻辑口。
- 成员接口(Member Interface):加入Eth-Trunk的物理口,比如GE0/0/1、GE0/0/2。成员口自己的独立配置会被覆盖,由Eth-Trunk接口统一接管。
- 手工负载分担模式:不跑协商协议,直接把多个物理口加入Eth-Trunk,两端手动配置保持一致即可。华为命令为 mode manual load-balance。
- LACP模式:使用IEEE 802.3ad定义的LACP协议,两端自动协商谁在组里、谁是活跃、谁是备份。华为命令为 mode lacp-static(静态LACP)或 mode lacp-dynamic(动态LACP)。
- 负载分担(Load Balance):Eth-Trunk对经过的流量按一定哈希算法分配到各成员链路上,让多条链路尽量均衡地发挥作用。
- 活动链路(Active)与备份链路(Standby):在LACP模式下,系统会根据优先级和最大活动链路数,选出活跃成员口转发数据,剩下做备份。
理解了这些概念,再回看配置命令就顺了。因为无论手工还是LACP,最终都是围绕“建Eth-Trunk、加成员口、配业务、调负载”这几步在转。
1.3 华为设备上的实现方式概览
华为园区交换机(比如S5735、S5720)的Eth-Trunk配置入口和思科不太一样。思科是走到物理口下写channel-group,华为是在系统视图下先建Eth-Trunk接口再往里塞成员口,或者反过来在物理口下调用eth-trunk编号。核心是那个编号:两端Eth-Trunk编号可以不相等,但实际部署时建议保持一致,方便排查和维护。
华为较新的VRP版本(V200R005及以后)支持两种模式:手工负载分担和LACP模式。手工模式不需要对端跑协议,两端各配各的,只要成员口的速率、双工、VLAN属性一致就能通,适合纯二层简单场景。LACP模式则更智能,两端通过LACPDU报文协商,可以自动感知对端成员口状态,并且能设置活跃链路数上限、备用链路,故障恢复也更快,适合对可靠性要求高的汇聚与核心互联。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 动手之前:华为二层交换机链路聚合的规划与准备
2.1 网络拓扑与业务需求确认
配置前先画个图,哪怕在纸上画都行。你得清楚这几件事:Eth-Trunk两端分别接在哪两台设备上,中间几条物理线,跑的是什么业务(VLAN数量、终端类型、是否跨Trunk),以及对带宽和冗余的期望值是多少。
举个例子,接入层两台交换机S1和S2做汇聚,S1到汇聚交换机SW-A用两对千兆光纤互连,中间需要透传10个业务VLAN。此时Eth-Trunk要建在两台设备互联的口上,业务VLAN在Eth-Trunk逻辑口上配Trunk允许通过,而不是在成员物理口上一个个配——这是新手最容易搞错的地方。如果你只在某个成员口上配了trunk allow-pass vlan,另一个成员口没配,就会出现“时通时不通”的诡异现象。
另外要确认物理线缆的连接关系:两条链路必须分别接在两端对应的物理口上,比如本端GE0/0/1和GE0/0/2分别接到对端GE0/0/1和GE0/0/2(编号可以对调,但物理链路不能交叉错乱)。如果一根线本端GE0/0/1接到对端GE0/0/3,另一根本端GE0/0/2接到对端GE0/0/4,只要两边成员口都在同一个Eth-Trunk里,功能上没问题,但建议按同编号接线,排障时一目了然。
2.2 模式选型:手工负载分担 vs LACP
选模式之前,先看对端设备支持什么。如果对端也是华为交换机,首选LACP模式(静态LACP即可,动态LACP适合两台设备都由同一控制器管理的场景)。如果对端是思科、H3C、锐捷或者服务器网卡,需要确认对方支持的LACP版本。绝大多数场景下都兼容,因为LACP本身就是IEEE标准。
如果对端是老旧的傻瓜交换机、或者一台不支持LACP的服务器,那就只能用手工负载分担模式。手工模式华为侧不需要协商,只要本端把成员口加进Eth-Trunk,对端虽然没法感知这个“逻辑口”,但它只要是把对应物理口都配成Trunk并放通VLAN,数据照样能通。代价是没有协商机制,链路故障的感知和切换速度不如LACP快,也没有备份链路的自动管理。
实际项目中我的选择习惯是:交换机互联、核心到汇聚,一律LACP模式;到服务器如果服务器网卡支持teaming(如Intel网卡、Broadcom网卡),也用LACP;设备老旧或者对方不支持,才退而求其次用手工模式。原因很简单:LACP模式下的故障检测更快、更准确,而且有完备的协议状态可以查,出了问题不用靠猜。
2.3 配置前必查的几条硬件与接口约束
华为交换机的Eth-Trunk有几个硬性约束,配之前一定要确认,不然后面全白搭:
- 成员口的工作模式必须一致。二层Eth-Trunk里的成员口都必须是二层口,不能有的access有的trunk,更不能把三层路由口直接丢进去。
- 成员口的速率和双工必须一致。比如不能一个GE口配100M、另一个GE口配1000M,华为设备在加入时会报警,甚至直接拒绝加入。
- 成员口不能是其他Eth-Trunk的成员,一个物理口只能属于一个Eth-Trunk。
- 不能把用于堆叠、镜像观察口、业务环回的接口拿来做Eth-Trunk成员。
- 不同型号的设备对Eth-Trunk数量、单组最大成员数有上限。比如S5720系列单组最多支持8个成员口,S12700能更多。配置前可以display capacity或查产品文档确认,别按最大数拍脑袋。
这些约束听上去细碎,但在实际排障时,90%的“Eth-Trunk起不来”都跟它们有关。下一节我就直接给实操配置,每一段命令后面跟着说为什么这么写。
3. 华为设备二层链路聚合配置实操
3.1 手工负载分担模式配置
先讲手工模式,因为命令最简单,也最容易理解。假设场景:SW-A和SW-B之间用GE0/0/1和GE0/0/2两根线互联,业务VLAN是10和20,两端都要放通,Eth-Trunk编号我们用1。
在SW-A上配置:
bash复制system-view
[HUAWEI] sysname SW-A
[SW-A] interface Eth-Trunk 1
[SW-A-Eth-Trunk1] mode manual load-balance
[SW-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/1
[SW-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/2
[SW-A-Eth-Trunk1] port link-type trunk
[SW-A-Eth-Trunk1] port trunk allow-pass vlan 10 20
[SW-A-Eth-Trunk1] quit
在SW-B上做同样的配置(Eth-Trunk编号也可用1,但华为允许不同编号,只要两端成员口对应即可)。
几个注意点:
- mode manual load-balance 这条命令不是所有版本都有。有些老版本默认就是手工模式,不需要敲。但写上更稳妥,显示清晰。
- trunkport 用来把物理口加进Eth-Trunk,也可以在物理口视图下写 eth-trunk 1,效果一样。我更推荐在Eth-Trunk下用trunkport,因为一次可以加多个口,比如trunkport GigabitEthernet 0/0/1 to 0/0/4,省事。
- 业务配置(port link-type、trunk allow-pass vlan)必须写在Eth-Trunk逻辑口下,不要写到成员口下。加了成员口之后,物理口的原有配置会被清空或与Eth-Trunk冲突。
- 如果两端都是华为交换机,手工模式不需要任何协商,通了之后display eth-trunk 1能看到成员口是Up状态。
3.2 LACP模式配置
再说LACP模式。同样场景,SW-A和SW-B用GE0/0/1和GE0/0/2互联,希望其中一条作为活跃链路,另一条作为备份(active/standby),总带宽反而只有1Gbps,但冗余性更强。如果你希望两条链路同时工作,就不要设置max active-linknumber为1,保持默认即可。
bash复制system-view
[HUAWEI] sysname SW-A
[SW-A] interface Eth-Trunk 1
[SW-A-Eth-Trunk1] mode lacp-static
[SW-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/1
[SW-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/2
[SW-A-Eth-Trunk1] port link-type trunk
[SW-A-Eth-Trunk1] port trunk allow-pass vlan 10 20
[SW-A-Eth-Trunk1] quit
SW-B配置和SW-A基本一致,但有一点要注意:LACP协商时需要有一端作为主动方。默认情况下,LACP系统优先级都是32768,两端一样。为了让协商稳定,通常手动把一端设为更高优先级(数值更小),比如在SW-A上设置:
bash复制[SW-A] lacp priority 1000
这个lacp priority是全局的系统优先级,会影响LACP协商时的“谁说了算”。数值越小优先级越高。在Eth-Trunk下还可以针对每个成员口设置接口优先级(lacp priority命令在接口视图下),用于决定哪些口是活跃、哪些是备份。不设置的话,默认接口优先级都是32768,此时选择活跃链路时按接口编号从小到大选。
再看一个场景:四条物理链路聚合,但只希望两条活跃、两条备份。配置如下:
bash复制[SW-A] interface Eth-Trunk 1
[SW-A-Eth-Trunk1] mode lacp-static
[SW-A-Eth-Trunk1] max active-linknumber 2
[SW-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/1 to 0/0/4
[SW-A-Eth-Trunk1] quit
这种情况下,SW-A会从四条成员口里选两条作为活跃链路,另外两条进入Standby状态。选谁,取决于接口优先级和接口号。如果你想让GE0/0/1和GE0/0/2成为活跃口,可以在接口下设置:
bash复制[SW-A] interface GigabitEthernet 0/0/1
[SW-A-GigabitEthernet0/0/1] lacp priority 1000
[SW-A-GigabitEthernet0/0/1] quit
[SW-A] interface GigabitEthernet 0/0/2
[SW-A-GigabitEthernet0/0/2] lacp priority 1000
[SW-A-GigabitEthernet0/0/2] quit
这样活跃链路就是1和2,3和4做备份。这个功能在对接服务器双网卡需要冗余而业务流量又不大时很实用。
3.3 常见业务配置:VLAN、Trunk与Eth-Trunk配合
二层Eth-Trunk最常用的业务就是配Trunk透传VLAN。前面已经演示了port link-type trunk和port trunk allow-pass vlan 10 20的写法。再说两个细节:
- 如果VLAN范围很大,可以用10 to 20的写法,比如port trunk allow-pass vlan 10 to 20。注意华为语法里to两边都要有空格。
- 如果希望Eth-Trunk透传所有VLAN(包括未来的VLAN),可以用port trunk allow-pass vlan all。但生产环境不建议这么干,因为把未知VLAN全放过去,容易让广播域扩大,安全性和稳定性都不好。建议精确放通业务VLAN。
还有一个和VLAN相关的坑:Eth-Trunk成员口所属的PVID(默认VLAN)也要保持一致。如果两端Eth-Trunk的PVID不一致,即使trunk allow-pass配置了,某些帧(尤其是未打标签的帧)还是会被丢弃或打错标签。检查方法:
bash复制display interface Eth-Trunk 1
display port vlan
正常情况下,两端Eth-Trunk的PVID应该相同。如果不相同,在Eth-Trunk下用port trunk pvid vlan XXX修改。
3.4 负载分担策略调整与查看
配好之后别急着走,负载分担策略值得调一调。华为Eth-Trunk默认的负载分担方式根据型号不同会有差异,常见的是基于源MAC和目的MAC的哈希。对于二层流量来说,如果不指定,默认多数是src-dst-mac。但默认不一定是最优的。
什么时候需要调?如果你的业务是大流量大文件传输,源目MAC地址比较固定(比如就两台服务器互传),那默认的MAC哈希可能导致所有流量都哈希到同一条成员链路上,其他链路闲着,完全起不到带宽叠加的效果。这时候可以改成基于IP的哈希:
bash复制[SW-A-Eth-Trunk1] load-balance dst-ip
华为支持的负载分担参数一般有:src-mac、dst-mac、src-dst-mac、src-ip、dst-ip、src-dst-ip、src-port、dst-port、src-dst-port、vlan等。具体支持哪些,可以用load-balance ?查询。
我常用的调整思路是:
- 二层纯内网流量(没有经过三层路由的),优先用src-dst-mac。
- 三层路由流量占比高(比如网关在汇聚核心上),优先用src-dst-ip。
- 如果业务端口固定、需要更细粒度均衡(比如大量TCP连接),可以试src-dst-port。
- 注意哈希算法的粒度是“流”,不是“包”。同一个流的包永远走同一条物理链路,这样才能保证报文不乱序。所以负载是否均衡,取决于流是否够多够分散。流越多、越分散,均衡效果越好。
查看当前负载分担配置、成员口状态、流量统计,用下面几条:
bash复制display eth-trunk 1
display interface Eth-Trunk 1
display lacp statistics
display eth-trunk 1 是最常用的,能看到逻辑口状态、模式、成员口列表、每个成员口是Active还是Standby。display lacp statistics可以看LACP报文收发统计,如果收不到对端的LACP报文,检查物理链路、本端模式、系统优先级。
4. 故障排查与优化实录
4.1 典型故障一:Eth-Trunk接口全部down
现象:display eth-trunk 1看到成员口全是Down,或者Eth-Trunk逻辑口Down。
排查顺序:
- 先看物理层。display interface GigabitEthernet 0/0/1,看物理口是否Up。如果物理口Down,大概率是网线、光模块、对端设备没通电。这个不用怪Eth-Trunk配置。
- 物理口Up了但Eth-Trunk Down,检查成员口是否加入成功。display eth-trunk 1看是否有成员口处于Up状态。
- 确认成员口速率、双工是否一致。如果一根线是1G光纤,另一根是百兆电口,速率不一致,华为可能让高速口Down掉,避免流量乱序。
- 确认两端Eth-Trunk模式一致。手工模式和LACP模式不能对接。一端手工一端LACP,协商失败,Eth-Trunk也起不来。
4.2 典型故障二:LACP协商不成功
现象:本端LACP模式,对端也是LACP,但display eth-trunk 1里所有成员口只有本端Up,对端状态一直显示Down,或者显示Standby。
排查思路:
- 先确认对端是不是真的配了LACP模式。两端都必须是同一个模式,手工和LACP不行,静态和动态LACP一般可以互通,但建议保持一致。
- 看LACP系统优先级。如果两端系统优先级相同,会选择MAC地址小的一端作为主动方,一般也能协商成功,但结果可能不是你想要的。建议手动设置一端优先级更高。
- 看接口优先级。如果你设置了接口优先级,但活跃链路数不足,可能有些口被强制Standby。是不是预期行为?如果想让所有链路都活跃,把max active-linknumber改大或删除。
- 检查线缆。LACP协商需要收到对端的LACPDU,如果线缆有问题(常见于光衰过大、收发方向接错),协商报文根本过不来。用display lacp statistics看收包数量,如果一直为0,多半是线缆物理层的锅。
4.3 典型故障三:带宽叠加了,但流量还是慢
现象:Eth-Trunk已经起来了,两条链路都Up,但实际传输速度还是只有1Gbps。
这个坑我踩过很多次。Eth-Trunk的负载分担是基于流的,不是基于字节数。如果你在测试时只跑一个TCP连接,那么这个流的哈希结果只会落在某一条成员链路上,另一条链路利用率可能是0%。这不代表配置有问题,而是负载分担的粒度决定的。
解决方法:
- 用多线程或多TCP连接测试(比如iperf开多个并行流),看总带宽能不能叠加。
- 检查负载分担模式,调整为适合当前业务的哈希因子(流比较离散时,src-dst-ip通常效果不错)。
- 如果你的业务就是单一大流量(比如一个FTP上传一个大文件),链路聚合根本帮不上忙,这时要么换更高速率接口,要么换支持逐包负载分担的设备(但逐包可能导致乱序,有另外的坑)。
4.4 常见问题速查表
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| Eth-Trunk成员口Down | 物理链路故障、对端设备关机 | 检查光模块、网线、对端状态 |
| 成员口Up但Eth-Trunk Down | 两端模式不一致、VLAN配置冲突 | 统一模式,检查trunk配置 |
| LACP协商不成功 | 系统优先级/接口优先级设置不当、线缆故障 | 设置一端lacp priority更高,检查LACP收包 |
| 链路都Up但带宽不叠加 | 负载分担哈希导致单流固定走一条链路 | 调load-balance、用多流测试 |
| 时通时不通 | 部分成员口VLAN没放通、PVID不一致 | 对比两端Eth-Trunk的VLAN配置 |
| 设备报警Eth-Trunk成员数超限 | 单组最大成员数限制 | 查询产品文档,降低成员口数量 |
再补充一个华为特有的坑:如果你把Eth-Trunk的成员口配置从access改成trunk,或者反过来,有可能需要先把成员口从Eth-Trunk中移除、清除原配置再重新加入。不要直接在成员口视图下改链路类型,有时候配置会冲突,导致接口被Lock或无法保存。稳妥的做法是:
bash复制[SW-A] interface Eth-Trunk 1
[SW-A-Eth-Trunk1] undo trunkport GigabitEthernet 0/0/1
[SW-A-Eth-Trunk1] quit
[SW-A] interface GigabitEthernet 0/0/1
[SW-A-GigabitEthernet0/0/1] undo shutdown
[SW-A-GigabitEthernet0/0/1] port link-type trunk
[SW-A-GigabitEthernet0/0/1] quit
[SW-A] interface Eth-Trunk 1
[SW-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/1
最后再分享一个enSP模拟器里的心得:很多人在enSP里做链路聚合实验,会发现LACP模式起不来。这多半是因为enSP的某些交换机型号(比如S5700的老型号)对LACP支持不完整,或者模拟器版本有bug。解决思路很简单:换成S5700较新型号(如S5700-24TP-SI-AC或S5720),或者干脆先用手工负载分担模式完成实验,明白原理后再上真机验证。模拟器毕竟是模拟器,命令差异和真实设备之间多少有点出入,别让工具限制了你的理解。
4.5 结合其他华为交换特性的扩展思路
链路聚合在华为设备上不是一个孤立功能,它有非常多的搭配玩法。比如和堆叠/iStack配合,可以实现跨设备的链路聚合,也就是说两台交换机堆叠成一个逻辑交换机后,服务器的一根网线接在堆叠的第一台设备上,另一根接在堆叠的第二台设备上,只要这两根线在同一个Eth-Trunk里,服务器和堆叠之间就能形成跨设备冗余。这比单台设备上的链路聚合可靠性又高了一个级别。
另外,链路聚合还经常和端口镜像接口搭配使用:如果你想抓取跨Eth-Trunk的流量,镜像源可以是Eth-Trunk接口,但要注意镜像目的口不能再是Eth-Trunk成员口。还有一个常见操作是把Eth-Trunk配置成Observe Port的源,用于入侵检测或流量分析设备。
链路聚合也常出现在和防火墙/IPS对接的旁路部署中。防火墙上两个接口做双机热备,交换机侧用Eth-Trunk把流量导过去,这时候二层链路聚合、LACP、VRRP、策略路由经常要放一起设计。链路聚合解决的是链路层冗余,VRRP解决的是网关冗余,两者搭配才能实现真正的无单点故障。
考虑到很多读者手头只有enSP模拟器,我补充一点实验建议:enSP里Eth-Trunk的成员口加入后,部分模拟器版本存在“保存再启动后配置丢失”的Bug,尤其是LACP模式。实验做完后建议用display current-configuration interface Eth-Trunk 1确认配置已经存在,再执行save保存。如果重启后配置丢失,多半是模拟器的配置存储问题,不要纠结成真机故障。真机上只要save了,配置一般不会丢。
再说一个新手常见误区:Eth-Trunk不是万能的交换机堆叠,不能拿它替代堆叠做跨设备统一管理。Eth-Trunk只是把两条物理链路变成一条逻辑链路,两台设备仍然是两台独立交换机,管理面、控制面都是分开的。如果你想用一套配置管理两台设备,那是堆叠(iStack/Cluster)的活儿,别混淆。
链路聚合在二层网络里还有一个和老协议交互的问题:STP(生成树协议)。Eth-Trunk作为整体参与STP计算,成员口不会各自计算端口角色。如果两台交换机之间既有Eth-Trunk链路,又有其他直连链路,STP会计算出哪个端口作为转发端口、哪个作为阻塞端口。此时如果Eth-Trunk和那个其他链路连着同一个VLAN,设计上要小心,避免出现环路又因为LACP把Eth-Trunk接口Down掉导致环路风险。实际项目中,如果确定了Eth-Trunk是唯一的互联通道,建议把其他冗余直连物理链路都纳入同一个Eth-Trunk或者物理上断开,别留“不可控”的冗余路径。
LACP还有一个特性值得提一下:快速切换。当一条活跃成员链路发生故障时,LACP能快速感知并把流量切换到其他活跃链路上。华为默认的LACP超时时间是长超时(30秒),如果你希望更快收敛,可以在Eth-Trunk接口下配置lacp timeout fast,把超时时间缩短到3秒。代价是LACPDU报文发送更频繁,占用一点点带宽和控制面CPU,收益是故障感知速度更快。如果你的业务对丢包极其敏感,建议开启fast超时。不过要注意,两端都要配置,否则协商不一致。
说起LACP超时,我在一个项目里遇到过很奇怪的现象:两台交换机用四条千兆光纤做Eth-Trunk,业务高峰期偶尔出现一两秒的闪断,然后用display lacp statistics一看,发现成员链路偶尔会Down一下马上又恢复。排查下来,是光模块的光衰到了临界值,LACP超时时间内经常收不到对端报文,触发了链路Down。这类问题用display interface GigabitEthernet 0/0/1看光模块信息就能发现,比如Rx Power在临界值附近。解决方式是更换光模块或清洁光纤接头,不是配置的锅。
关于Eth-Trunk的负载分担,我再补充一个进阶技巧:华为有个“增强负载分担”功能,支持基于VXLAN、MPLS等外层报文头做哈希,适合数据中心大二层场景。普通园区网用不上,但如果你的交换机是CloudEngine系列,在VXLAN组网下做Eth-Trunk,可以留意这个能力。园区网的S系列交换机一般不涉及,不用花太多精力研究。
如果你在做enSP实验,还有个细节:enSP里不同型号的交换机,甚至同一型号不同软件版本,命令细节会有差别。比如早期enSP版本对Eth-Trunk的负载分担参数支持不全,有些命令敲进去会报错。遇到这种情况,先display version看看设备版本,再查对应版本的命令手册,别把模拟器的报错当成真实设备的配置限制。
链路聚合配好后,日常维护命令也值得养成习惯。我每次巡检会执行三条:display eth-trunk看成员状态、display interface Eth-Trunk 1看流量统计、display lacp statistics看协商报文。三条命令能在几十秒内判断Eth-Trunk健康度。特别是流量统计,如果某条成员链路的Input/Output一直是0,而其他链路有流量,说明负载分担不均匀,就该考虑调哈希因子了。
这些细节在实际项目中积累下来,都是踩坑换来的。链路聚合并不是什么高深技术,但它对网络的稳定性和带宽利用率的提升是实实在在的。配置不难,难的是理解它的工作方式、选对模式、在合适的地方使用,并且知道出了问题从哪里开始排查。如果你正准备在现网引入链路聚合,我的建议是:先小范围试点,用真实业务流量跑一段时间,看负载分担情况,确认无误后再推广到其他互联链路。毕竟网络割接这事儿,稳妥永远是第一位的。
