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通过。
- Eth-Trunk编号:比如
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:对端配置。这是手工模式最高发的故障点。立刻联系对端管理员,确认对方是否已将对应端口加入聚合组(或绑定端口)。如果对端是单端口模式,你这边显示聚合,就会出问题。
- 排查点1:物理层。检查网线、光模块、光纤是否完好,两端设备是否上电,端口是否被
现象: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检查物理接口上是否有残留的冲突配置。
- 排查点:接口类型或VLAN不匹配。检查Eth-Trunk接口和成员物理接口的配置。在手工模式下,一个常见的坑是:你先将物理接口加入了Eth-Trunk,然后又去物理接口视图下配置了
现象:配置了聚合,但带宽没有叠加。
- 排查点1:流量模型。测试时是否使用了单个TCP连接(如单线程下载)?负载分担是基于流的,单个大流只会走一条链路。使用多线程工具(如
iperf -P 4)进行测试才能看到带宽叠加效果。 - 排查点2:哈希算法。如果所有流量都来自同一个源IP去往同一个目的IP,那么基于IP的哈希就会把所有流量都指到同一条链路。考虑更换为基于“源目IP+端口”的哈希模式。
- 排查点1:流量模型。测试时是否使用了单个TCP连接(如单线程下载)?负载分担是基于流的,单个大流只会走一条链路。使用多线程工具(如
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配置,其精髓在于“对称”和“静态”。它像一座精心设计的石拱桥,每一块石头(物理链路)都必须放在预设的位置,一旦就位,结构稳固而高效。但这也意味着,任何一块石头的错位或缺失,都需要人工干预来调整。理解了这一点,你就能在简单可控与灵活智能之间,为你的网络做出最合适的选择。