1. 项目背景与核心价值最近在整理几个机房的网络架构发现不少核心交换机到服务器的连接还是单条千兆或者万兆线路。平时业务量不大时相安无事但一到业务高峰期或者做数据备份、虚拟机迁移时这条“独木桥”就成了性能瓶颈网络延迟飙升监控告警响个不停。这时候链路聚合技术就该上场了。它不是什么新鲜玩意儿但在提升网络可靠性和带宽方面依然是性价比最高的方案之一尤其对于华为设备用户来说配置过程清晰且稳定。这次我们聚焦在华为设备上配置手工负载分担模式的链路聚合。为什么不提LACP因为手工模式在某些场景下更直接、更可控比如对接一些不支持LACP的老旧设备或者在实验室环境快速搭建测试网络时。它的核心价值很简单把多条物理链路捆绑成一个逻辑通道Eth-Trunk实现带宽叠加和链路冗余。一条链路断了流量自动切换到其他链路业务几乎无感知需要更大带宽时加根线就行扩容成本极低。如果你正在管理华为交换机、路由器或者负责服务器网络接入面对单点故障和带宽瓶颈的困扰那么手动配置一个Eth-Trunk会是你的必备技能。接下来我会结合命令行实操和背后的原理带你走通整个配置流程并分享一些只有踩过坑才知道的注意事项。2. 链路聚合技术原理与模式选择在动手敲命令之前有必要先搞清楚我们到底在配置什么。链路聚合标准说法叫Link Aggregation在华为世界里它被实现为Eth-Trunk。你可以把它理解为一个“逻辑端口”这个端口背后由一条或多条物理以太网链路作为成员。2.1 手工负载分担模式是如何工作的手工负载分担模式顾名思义就是需要管理员手工创建Eth-Trunk并手工将物理接口加入其中。它不依赖任何协商协议如LACP来建立聚合链路。一旦配置完成设备就会认为这些物理链路属于同一个聚合组并开始基于配置的负载分担算法来分发流量。它的工作流程可以概括为静态绑定管理员在两端设备上分别创建编号相同的Eth-Trunk接口并将物理接口加入。状态检测设备通过物理层的信号状态如link-down来判断成员链路是否失效。只要物理链路是Up的设备就认为它可以承载流量。流量分发当数据包需要通过Eth-Trunk转发时设备会根据源/目的MAC地址、IP地址等信息通过一个哈希算法计算出一个值根据这个值决定由哪一条物理成员链路来发送这个数据包。这样可以确保同一个会话的流量走同一条路径避免乱序。2.2 为什么选择手工模式而非LACP这是配置前必须做的决策。两种模式对比如下特性手工负载分担模式LACP模式协商机制无协议协商完全静态配置。使用LACP协议报文进行动态协商和链路状态维护。配置复杂度简单只需在本端配置。略复杂需要两端设备都启用并正确配置LACP。链路检测仅依赖物理层状态。无法检测对端设备或对端接口的状态。通过LACPDU报文检测对端接口状态能检测到一些物理层Up但协议层Down的故障。灵活性差。要求两端Eth-Trunk接口的物理成员数量、速率、双工模式必须完全一致否则可能无法聚合或出现环路。好。支持活动链路选举可以处理两端成员数量不一致的情况提供更优的容错。典型场景1. 对接不支持LACP的网络设备或服务器。2. 需要快速搭建、环境可控的测试或临时网络。3. 网络拓扑极其稳定且追求配置最简单。1. 华为设备与支持LACP的华为或其他品牌设备对接。2. 生产环境追求更高的可靠性和灵活的链路管理。注意手工模式最大的风险在于“静态”。如果对端设备没有配置聚合或者错误地将线缆接到了不同的设备上手工模式下的交换机依然会向所有成员链路发送流量这极有可能导致网络环路引发广播风暴。因此在手工模式下确保两端配置的对称性和线缆连接的准确性至关重要。2.3 负载分担算法浅析“负载分担”不是“负载均衡”。它并不能做到像服务器集群那样精确地让每条链路流量完全相等。其核心是一个哈希算法输入通常是数据包的某些特征值如MAC、IP、端口号输出一个索引指向某条成员链路。华为设备允许我们配置负载分担的模式例如基于源MAC地址同一台服务器发出的所有流量可能始终走同一根线。适合服务器上行流量。基于目的MAC地址发往同一台设备的流量走同一根线。基于源IP地址同一个用户IP的流量路径固定。基于目的IP地址访问同一个服务器IP的流量路径固定。基于源目IP/MAC组合更复杂的哈希分散度更好。选择哪种模式取决于你的流量模型。如果网络中存在“大象流”单个数据流特别大选择更细粒度的哈希模式如IP端口可以更好地利用所有链路带宽。默认配置在大多数情况下是适用的。3. 华为设备手工Eth-Trunk配置全流程理论清楚了我们进入实战环节。假设场景是一台华为S5735交换机作为核心需要与一台服务器或另一台交换机通过两条万兆链路互联提升带宽和可靠性。我们采用手工负载分担模式。3.1 配置前检查与规划这是避免后续踩坑的关键一步请务必执行。物理链路检查使用display interface brief命令确认计划用于聚合的物理接口例如10GE1/0/1和10GE1/0/2物理状态是UP没有错包、丢包。确保两条链路速率、双工模式一致都是10G全双工。可以使用display interface 10GE1/0/1查看详细信息。拓扑与对端确认在白板或文档上画出示意图明确线缆两端连接的设备及端口号。至关重要与对端设备管理员确认对方也将以手工模式配置聚合且使用的Eth-Trunk编号、成员端口与你方规划一致。如果对端是服务器需在操作系统内配置好对应的网卡绑定模式如Linux的bonding mode 0/balance-rr或Windows的NIC组合-静态成组。规划参数Eth-Trunk编号比如1。成员接口10GE1/0/1和10GE1/0/2。VLAN规划这个Eth-Trunk是接入Access端口还是Trunk端口需要允许哪些VLAN通过假设我们需要它作为一个Trunk允许VLAN 10和20通过。3.2 核心配置步骤详解登录交换机进入系统视图。HUAWEI system-view [HUAWEI] sysname Core-Switch [Core-Switch]第一步创建Eth-Trunk接口并指定模式[Core-Switch] interface eth-trunk 1 [Core-Switch-Eth-Trunk1] mode manual load-balanceinterface eth-trunk 1创建编号为1的Eth-Trunk逻辑接口。mode manual load-balance这是关键命令指定该Eth-Trunk使用手工负载分担模式。如果忘记配置模式默认可能是LACP或其它会导致和对端无法对接。第二步将物理接口加入Eth-Trunk有两种方法推荐方法一因为更清晰且不易出错。方法一在Eth-Trunk接口视图下添加[Core-Switch-Eth-Trunk1] trunkport 10ge 1/0/1 to 1/0/2这条命令一次性将1/0/1和1/0/2端口加入。如果端口不连续则需要分别添加[Core-Switch-Eth-Trunk1] trunkport 10ge 1/0/1 [Core-Switch-Eth-Trunk1] trunkport 10ge 1/0/2方法二在物理接口视图下加入[Core-Switch] interface 10ge 1/0/1 [Core-Switch-10GE1/0/1] eth-trunk 1 [Core-Switch-10GE1/0/1] quit [Core-Switch] interface 10ge 1/0/2 [Core-Switch-10GE1/0/2] eth-trunk 1实操心得我强烈推荐并始终使用方法一。原因有二首先逻辑更清晰所有聚合相关的配置都在Eth-Trunk视图下完成便于管理和查看其次当你需要将接口从Eth-Trunk中移除时在物理接口视图下执行undo eth-trunk可能会因为该接口有其他配置如VLAN而失败而在Eth-Trunk视图下用undo trunkport则更直接安全。第三步配置Eth-Trunk接口的网络属性根据之前的规划我们将Eth-Trunk 1配置为Trunk端口允许VLAN 10和20通过。[Core-Switch-Eth-Trunk1] port link-type trunk [Core-Switch-Eth-Trunk1] port trunk allow-pass vlan 10 20如果需要配置IP地址作为三层路由接口则先需要将接口类型改为route三层模式再配置IP。[Core-Switch-Eth-Trunk1] port link-type route [Core-Switch-Eth-Trunk1] ip address 192.168.1.1 24第四步可选配置负载分担算法如果我们想优化流量分布可以调整负载分担算法。例如基于源目IP地址进行哈希[Core-Switch] load-balance profile default [Core-Switch-load-balance-profile-default] ip l4-src-dst [Core-Switch-load-balance-profile-default] quit这条全局命令会修改默认的负载分担模板影响设备上所有的Eth-Trunk。你也可以创建独立的模板并应用到特定的Eth-Trunk上实现更精细的控制。4. 配置验证、故障排查与深度优化配置完成后绝对不能假设它已经正常工作。必须通过一系列检查来验证。4.1 核心验证命令与解读查看Eth-Trunk摘要信息[Core-Switch] display eth-trunk 1这是最重要的命令。你需要关注以下输出WorkingMode: NORMAL旁边应显示为MANUAL确认是手工模式。Status应该是Up。PortName列表应该看到10GE1/0/1和10GE1/0/2且它们的Status都是Up。如果状态是Down说明物理链路或对端有问题。Line Protocol Status应该是Up。查看接口计数与状态[Core-Switch] display interface eth-trunk 1查看这个逻辑接口的详细状态、输入输出流量、错包等。配置完成后你可以尝试从对端发起ping或iperf测试同时观察该接口的流量计数器 (Input/Output bandwidth utilization)应该能看到流量在增长。验证物理接口状态[Core-Switch] display interface 10ge 1/0/1 brief确认物理接口的“Phy”状态是“Up”且“Protocol”状态也是“Up”。在手工模式下只要物理状态Up协议状态就会Up。4.2 常见故障排查思路即使按照步骤配置也可能遇到问题。下面是一个典型的排查链路现象display eth-trunk显示成员端口状态为Down。排查点1物理层。检查网线、光模块、光纤是否完好两端设备是否上电端口是否被shutdown。使用display transceiver interface 10ge 1/0/1 verbose检查光模块信息。排查点2对端配置。这是手工模式最高发的故障点。立刻联系对端管理员确认对方是否已将对应端口加入聚合组或绑定端口。如果对端是单端口模式你这边显示聚合就会出问题。现象Eth-Trunk接口协议状态Down但成员物理状态都是Up。排查点接口类型或VLAN不匹配。检查Eth-Trunk接口和成员物理接口的配置。在手工模式下一个常见的坑是你先将物理接口加入了Eth-Trunk然后又去物理接口视图下配置了port link-type或port default vlan。这是错误的所有二层/三层属性都应在Eth-Trunk接口上配置物理接口加入Trunk后不应再单独配置这些属性否则会导致冲突和协议Down。使用display this interface 10ge 1/0/1检查物理接口上是否有残留的冲突配置。现象配置了聚合但带宽没有叠加。排查点1流量模型。测试时是否使用了单个TCP连接如单线程下载负载分担是基于流的单个大流只会走一条链路。使用多线程工具如iperf -P 4进行测试才能看到带宽叠加效果。排查点2哈希算法。如果所有流量都来自同一个源IP去往同一个目的IP那么基于IP的哈希就会把所有流量都指到同一条链路。考虑更换为基于“源目IP端口”的哈希模式。4.3 高级优化与注意事项MTU问题如果网络中存在需要巨帧Jumbo Frame的应用务必在Eth-Trunk接口上统一设置MTU如mtu 9216并且确保路径上所有设备包括对端的MTU设置一致否则会导致分片或丢包。生成树协议STP交互Eth-Trunk接口作为一个逻辑接口参与STP计算。你需要确保Eth-Trunk接口的STP成本、优先级等参数配置合理。通常聚合链路的高带宽会使其STP路径成本变低更容易成为根路径。与堆叠Stack或集群CSS的配合在华为交换机堆叠环境中Eth-Trunk的成员端口可以跨设备分布形成跨设备链路聚合M-LAG这能实现设备级冗余是更高阶的用法。手工模式在跨设备场景下配置需格外小心要确保堆叠系统已经正确建立。配置保存与回滚在生产环境操作前使用save保存当前配置。进行变更时可以先使用commit命令如果设备支持进行临时提交测试或者使用配置回滚点功能 (checkpoint)以便在出现问题时快速恢复。手工负载分担模式的Eth-Trunk配置其精髓在于“对称”和“静态”。它像一座精心设计的石拱桥每一块石头物理链路都必须放在预设的位置一旦就位结构稳固而高效。但这也意味着任何一块石头的错位或缺失都需要人工干预来调整。理解了这一点你就能在简单可控与灵活智能之间为你的网络做出最合适的选择。