4. 链路级冗余设计
链路级冗余解决的是“两台设备之间或两台设备到同一目的地之间,只有一条物理链路”这一单点故障。它的核心思路不是让一条链路永不断,而是让多条链路同时存在,并在某条链路失效时,流量仍能沿剩余链路转发。企业网中常见的四类手段是:链路聚合(LAG/Eth-Trunk)、跨设备链路聚合(M-LAG/堆叠聚合)、等价多路径(ECMP)以及链路备份与故障切换。它们分别作用于二层链路、跨设备二层链路、三层转发路径和主备路径,适用位置和切换行为差异明显。
链路聚合:把多条物理链路变成一条逻辑链路
链路聚合将同一对设备之间的多条物理链路绑定为一个逻辑接口。以两台交换机之间的 4 条 10GE 链路为例,聚合后形成一个 40G 的逻辑链路,带宽叠加,同时任意一条成员链路故障时,流量自动重分布到剩余成员,业务不中断。聚合的成立条件是成员链路的速率、双工、VLAN 模式、MTU 等参数一致,且两端配置匹配。
聚合口的流量分布不是逐包轮询,而是按哈希算法选择成员链路。常见哈希因子包括源/目的 MAC、源/目的 IP、源/目的端口号。哈希算法的选择直接决定负载是否均衡:如果两台主机之间只有一条 TCP 流,无论多少条成员链路,该流始终走同一条链路,带宽仍受单链路限制。因此,链路聚合适合“多流并发”的场景,而不是单流大带宽场景。
interface Eth-Trunk 10
mode lacp-static
load-balance src-dst-ip
!
interface 10GE1/0/1
eth-trunk 10
!
interface 10GE1/0/2
eth-trunk 10
LACP(链路聚合控制协议)通过 LACPDU 报文协商成员状态,只有两端都确认的链路才进入转发状态。静态聚合不跑 LACP,链路是否可用依赖物理状态;动态 LACP 能检测“物理 up 但对端未正确聚合”的隐性故障,可靠性更高。判断聚合是否正常,可查看成员链路是否全部 Selected、聚合口带宽是否为成员带宽之和、以及各成员流量是否大致均衡。
跨设备链路聚合:把可靠性从链路延伸到设备
普通链路聚合只能防链路故障,不能防设备故障:如果两台交换机之间的聚合链路完好,但其中一台交换机整机宕机,链路仍然中断。跨设备链路聚合(M-LAG、堆叠聚合、vPC 等)让一台服务器或接入交换机同时连接两台独立的核心交换机,两条链路聚合成一个逻辑链路。两台核心交换机之间通过 peer-link 同步 MAC、ARP 和转发表项,对外表现为一台逻辑设备。
M-LAG 的关键在于:服务器侧看到的是一个聚合口,两台核心交换机各自有成员链路;当一台核心交换机故障时,服务器侧聚合口只感知到部分成员失效,剩余成员继续转发,无需重新收敛。peer-link 是 M-LAG 的控制与数据通道,必须使用高带宽直连链路,且不能承载普通业务流量,否则故障时可能引发流量绕行和环路。判断 M-LAG 健康状态,主要看 peer-link 是否正常、双主检测是否通过、以及两台设备上的 MAC 表项是否同步。
ECMP:在三层转发层面实现多路径
ECMP(等价多路径)作用于三层路由转发。当路由器到达同一目的网段存在多条开销相同的路由时,ECMP 将这些路径同时放入转发表,按哈希选择下一跳。与链路聚合不同,ECMP 的成员路径可以是不同物理链路、不同设备、甚至不同运营商,只要路由开销相等。
以企业双出口为例,核心路由器到互联网有两条等开销默认路由,分别指向运营商 A 和运营商 B。开启 ECMP 后,去往不同目的 IP 的流量按哈希分散到两条出口,总吞吐提升,单条出口故障时剩余出口继续转发。ECMP 的哈希通常基于源 IP、目的 IP、源端口、目的端口组合,因此同一会话仍走同一路径,避免乱序。
ip route-static 0.0.0.0 0.0.0.0 202.1.1.1
ip route-static 0.0.0.0 0.0.0.0 202.1.2.1
load-balance ecmp
ECMP 的局限在于:它依赖路由协议或静态路由的等价性,如果两条路径开销不同,只有一条进入转发表;此外,ECMP 不感知路径质量,某条路径虽然可达但丢包严重时,流量仍会按哈希分配过去。因此,ECMP 常与 BFD、NQA 等快速检测机制配合,实现路径级故障剔除。
链路备份与故障切换机制
链路备份是主备模式:一条链路为主用,另一条为备用,主用正常时备用不转发业务,主用故障时切换到备用。常见实现包括接口备份、路由备份、以及基于 BFD 的快速切换。与 ECMP 的“同时使用”不同,备份链路平时闲置,切换时依赖检测和收敛速度。
故障切换时间由三部分决定:故障检测时间、路由/转发表更新时间和流量重新收敛时间。以 BFD 为例,检测周期可配置为 3×10ms,即 30ms 内感知故障;路由协议收到 BFD 事件后重新计算,通常在百毫秒级完成切换。如果只依赖路由协议自身的 Hello 超时,检测时间可能达到秒级,业务中断明显。因此,对时延敏感的业务,应在主备链路两端部署 BFD 或 NQA 联动。
下面这张图对比了四种链路级冗余手段的作用层次、成员关系和故障切换行为,便于在实际组网中按位置选择。
如何组合使用
实际组网中,这四种手段往往叠加使用。接入交换机双上行到两台核心交换机,采用 M-LAG 实现设备级冗余;核心交换机之间跑 OSPF 或 BGP,到出口路由器之间用 ECMP 实现多路径负载;出口路由器到运营商之间用 BFD 联动静态路由做链路备份。这样,从接入到出口,每一段都有冗余,且切换机制与故障类型匹配。
需要特别注意的是,冗余设计不是“越多越好”。链路聚合成员过多会增加哈希不均的概率;ECMP 路径过多会增加转发表规模和排障复杂度;M-LAG 的 peer-link 一旦故障,可能触发双主,需要双主检测机制兜底。设计时应先明确每段链路的故障域和业务容忍中断时间,再选择对应的冗余手段和检测参数。