交换机做链路聚合,配置界面上通常有两个选项:静态聚合、动态聚合。名字看着差不多,实际协商方式、故障发现能力、配置要求差别不小,配错一端往往直接不通。

静态聚合是什么

静态聚合也叫手工模式,管理员在两端设备上手动把若干端口加入聚合组,设备不做任何协商,直接认为这些口属于同一条逻辑链路。华为叫 mode manual load-balance,思科叫 channel-group X mode on。

好处是兼容性最好,对端不支持 LACP、甚至是服务器网卡在特定模式下,都能用。坏处是没有状态检测,一端少配了一个口、或者光纤一端断了但光模块还在发光,设备依然会把流量往这条链路上发,造成丢包。

动态聚合是什么

动态聚合基于 IEEE 802.3ad(LACP),两端周期性发送 LACPDU 报文,互相确认对方的系统 ID、端口状态、操作 Key 是否匹配。只有协商通过的端口才会进入转发状态。华为叫 mode lacp-static,思科叫 mode active 或 passive。

LACP 有两个角色:active 主动发包,passive 只在收到报文后才回应。两端都配 passive 会一直停在协商中,这是最常见的配置错误。

核心差异对比

  • 故障检测:动态聚合能通过 LACPDU 判断对端链路是否正常,静态聚合只能靠物理层 up/down;
  • 错连识别:端口插错到别的交换机或别的聚合组时,LACP 会拒绝;静态聚合照单全收,容易形成环路;
  • 配置一致性:两端模式必须匹配,一端静态一端动态,通常起不来;
  • 带宽利用:两者都按哈希分配流量,单条 TCP 流不会叠加带宽。

实际怎么选

交换机与交换机之间,优先选动态聚合。园区网里经常有变更,插错线、配置漏改的情况很多,LACP 能自动挡掉这些问题。

服务器接交换机时看网卡驱动支持。Linux bond 的 mode 4 对应 LACP,mode 0、mode 1 是不协商的静态方式,交换机侧就要配静态聚合。

对端是老旧设备、不支持 802.3ad,或者用的是某些虚拟化平台的虚拟交换机(例如部分版本的 vSphere Standard Switch 对此支持有限),只能用静态聚合。

切换时注意

已经在跑业务的链路从静态改动态,会短暂中断。两端尽量同时改,改之前确认成员口的速率、双工、VLAN 配置完全一致,否则协商完之后部分端口仍会被 Unselect。