第121篇:Smart Link 与 Monitor Link 原理

关键词:Smart Link、Monitor Link、RSM 报文、二层冗余、快速倒换、华为专有协议、与STP互斥


一、引言

第120篇介绍了堆叠与 VRRP 结合的高可用方案,解决了网关层冗余。但在接入层,大量场景只需实现"两条上行链路的主备切换",此时部署完整的 STP/RSTP 显得过于复杂,且收敛速度无法满足语音和视频等实时业务的要求。

Smart Link 是华为自主研发的二层快速切换技术,专为简单主备场景设计。它不依赖 BPDU 协商,切换时间从 STP 的秒级压缩到毫秒级。配合 Monitor Link 功能,还能实现上行链路故障的全网联动切换。

二、核心概念

Smart Link 将交换机上的两个或多个物理端口编为一个"主备组",正常情况下只有主端口(Active)转发数据,备端口(Standby)处于阻塞状态。当主端口故障时,流量瞬间切换到备端口。

Smart Link 基本架构 - 图示

维度 STP/RSTP/MSTP Smart Link
标准归属 IEEE 802.1D/w/s 国际标准 华为专有协议
切换时间 STP 约 30 秒,RSTP 1-2 秒,MSTP 1-2 秒 毫秒级(< 50ms)
拓扑能力 支持任意环型/网状拓扑 仅支持主备(Active/Standby)
负载分担 MSTP 多实例可实现负载分担 不支持负载分担(一主多备)
协议报文 BPDU(协议号 0x8100) RSM/GRSM(协议号 0x88E8)
配置复杂度 需理解根桥、路径成本、实例映射 只需指定主备端口
与 Eth-Trunk 兼容 可以共存 同一端口不能同时加入 Smart Link 和 Eth-Trunk

Monitor Link 是 Smart Link 的扩展功能,用于监控"上行链路"的状态。当被监控的上行接口 Down 时,自动触发 Smart Link 切换,使流量切换到备用的上行路径。

Monitor Link 联动机制 - 图示

典型场景:接入交换机通过 GE0/0/2 连接到核心交换机,通过 GE0/0/3 连接到备用汇聚。同时 Monitor Link 监控 GE0/0/1(连接上层路由器的上行口)。当 GE0/0/1 Down 时,自动将 Smart Link 切换到备用路径。

三、技术细节

Smart Link 切换时,仅将本地流量切换到备端口还不够——下游设备(如对端交换机或终端)的 MAC 地址表仍然将目的 MAC 指向旧的主端口。因此,华为设计了 RSM(Resume Signal Message)报文来刷新下游设备的转发表项。

RSM 报文:Smart Link 切换的核心机制 - 图示

RSM 报文类型:

类型 以太网类型 说明
RSM 0x88E8 普通 RSM,携带源 MAC 地址
GRSM(Group RSM) 0x88E8 组 RSM,携带 Smart Link 组 ID,可精确指定刷新范围
MRSM(MAC RSM) 0x88E8 MAC RSM,携带具体的 MAC 地址列表
角色 数量 状态 说明
主端口(Active) 1 个 Forwarding 正常转发数据
备端口(Standby) 1~N 个 Blocked 主端口故障后接管
负载分担端口 可选 Forwarding 与主端口同时转发(多主模式)

Smart Link 和 STP 在同一端口上互斥。如果一个端口加入了 Smart Link 组,STP 在该端口自动被禁止;如果端口启用了 STP,Smart Link 无法将该端口加入组。

Smart Link 与 STP 互斥 - 图示

四、实战配置/案例分析

# ========== 接入交换机配置 ==========
<HUAWEI> system-view
[HUAWEI] sysname Access-SW

# 创建 Smart Link 组 0
[Access-SW] smart-link group 0

# 指定主端口
[Access-SW-smartlink-group0] active interface GigabitEthernet 0/0/2
[Access-SW-smartlink-group0] active interface GigabitEthernet 0/0/2

# 指定备端口
[Access-SW-smartlink-group0] standby interface GigabitEthernet 0/0/3

# 使能 Smart Link 组
[Access-SW-smartlink-group0] enabled

# 配置 RSM 刷新模式为 GRSM(推荐)
[Access-SW-smartlink-group0] flush-mode grsm

# 配置 GRSM 报文的源 MAC(可选,默认使用系统 MAC)
[Access-SW-smartlink-group0] flush-mode grsm source-mac 00e0-fc00-0001

# 配置 GRSM 泛洪端口(指定从哪些端口发送 GRSM 报文)
[Access-SW-smartlink-group0] flush-mode grsm flood-port GigabitEthernet 0/0/3

# 退出 Smart Link 组配置
[Access-SW-smartlink-group0] quit

# ========== 验证 ==========
[Access-SW] display smart-link group 0
# Smart Link Group ID : 0
# State               : Enabled
# Active Interface    : GigabitEthernet0/0/2
# Standby Interface   : GigabitEthernet0/0/3
# Flush Mode          : GRSM
# ========== 在接入交换机上配置 Monitor Link ==========
[Access-SW] smart-link monitor link-group 0 interface GigabitEthernet 0/0/1

# 含义:监控 GE0/0/1 接口
# 当 GE0/0/1 从 Up 变为 Down 时,触发 Smart Link Group 0 切换(主→备)
# 当 GE0/0/1 从 Down 变为 Up 时,触发 Smart Link Group 0 回切(备→主)

# 也可以配置多个监控接口
[Access-SW] smart-link monitor link-group 0 interface GigabitEthernet 0/0/4

# ========== 验证 Monitor Link ==========
[Access-SW] display smart-link monitor link-group 0
# Link-Group ID     : 0
# Monitor Interface : GigabitEthernet0/0/1
# Monitor State     : Up

4.3 故障案例:视频监控网络录像断点问题

场景描述

某医院视频监控网络采用 RSTP 做链路冗余。当主汇聚链路光模块故障时,RSTP 需要约 2 秒才能完成拓扑收敛。在这 2 秒内,视频录像机无法收到视频流,产生断点。医院安保部门反馈,每次链路切换后都需要手动补录丢失的画面,严重影响安保工作。

网络拓扑

视频摄像头 → 接入交换机 →(主链路:GE0/0/2)→ 汇聚交换机 → NVR 录像机
                           (备链路:GE0/0/3)→ 备用汇聚交换机

原始方案的问题

# 原方案:RSTP 配置
[Access-SW] stp mode rstp
[Access-SW] stp priority 4096
# 主链路 Cost 低,备链路被阻塞
# 故障时 RSTP 收敛约 2 秒

排查过程

# 查看 RSTP 收敛时间
[Access-SW] display stp brief
# 端口状态切换耗时统计

# 查看日志确认切换时间
[Access-SW] display logbuffer | include RSTP
# Jan 15 10:23:45 2024 Access-SW %%01STP/4/PORT_STATE(l)[0]:Port GigabitEthernet0/0/2 state changed to DISABLED.
# Jan 15 10:23:47 2024 Access-SW %%01STP/4/PORT_STATE(l)[1]:Port GigabitEthernet0/0/3 state changed to FORWARDING.
# 两次事件间隔约 2 秒

改造方案

改用 Smart Link + GRSM 刷新:

# 先关闭 RSTP
[Access-SW] undo stp enable

# 配置 Smart Link
[Access-SW] smart-link group 0
[Access-SW-smartlink-group0] active interface GigabitEthernet 0/0/2
[Access-SW-smartlink-group0] standby interface GigabitEthernet 0/0/3
[Access-SW-smartlink-group0] enabled
[Access-SW-smartlink-group0] flush-mode grsm
[Access-SW-smartlink-group0] quit

# 验证切换时间
# 模拟主端口 Down
[Access-SW] interface GigabitEthernet 0/0/2
[Access-SW-GigabitEthernet0/0/2] shutdown
# 查看日志
[Access-SW] display logbuffer | include SMARTLINK
# Jan 15 14:05:23 2024 Access-SW %%01SMARTLINK/4/PORT_SWITCH(l):Smart-link group 0 switched from GigabitEthernet0/0/2 to GigabitEthernet0/0/3.
# 切换耗时 < 50 毫秒

改造结果

切换时间从 2 秒降至 50 毫秒以内,视频录像无断点,医院安保部门确认录像完整。

场景描述

某园区网络升级时,运维人员在接入交换机上同时配置了 RSTP 和 Smart Link,导致端口状态反复在 Forwarding 和 Blocking 之间切换。

排查

[Access-SW] display stp brief
# 发现 GE0/0/2 和 GE0/0/3 的 STP 状态异常

[Access-SW] display smart-link group 0
# Smart Link 组已创建

[Access-SW] display logbuffer | include SMARTLINK
# %%01SMARTLINK/4/CONFLICT:Port GigabitEthernet0/0/2 is in STP and Smart Link conflict.

根因

GE0/0/2 和 GE0/0/3 同时加入了 Smart Link 组,但全局启用了 STP,两个协议在端口上冲突。

处理

# 方案一:在 Smart Link 端口上关闭 STP
[Access-SW] interface GigabitEthernet 0/0/2
[Access-SW-GigabitEthernet0/0/2] undo stp enable
[Access-SW] interface GigabitEthernet 0/0/3
[Access-SW-GigabitEthernet0/0/3] undo stp enable

# 方案二(推荐):全局关闭 STP,纯用 Smart Link
[Access-SW] undo stp enable

五、总结

项目 说明
Smart Link 本质 华为专有的二层主备快速切换技术
切换时间 毫秒级(< 50ms),远快于 STP/RSTP
RSM 报文 通知对端刷新 MAC 表,加速流量恢复
GRSM 优势 携带 Smart Link 组 ID,精确刷新,减少不必要的 MAC 表删除
Monitor Link 监控上行接口状态,联动 Smart Link 切换
与 STP 关系 同一端口互斥,需关闭 STP 或在该端口禁止 STP
适用场景 简单主备场景,对切换时间要求极高的场景(语音/视频/监控)
不适用场景 复杂环型拓扑、需要负载分担的场景

思考

  1. Smart Link 切换后发送 GRSM 报文刷新对端 MAC 表。如果中间经过多层级联交换机,GRSM 报文是否需要逐跳泛洪?如何控制 GRSM 的传播范围避免影响无关设备?

  2. Monitor Link 触发 Smart Link 切换的条件是监控接口的物理状态 Down。如果监控接口物理 Up 但实际无法转发(如 ACL 丢弃、路由不可达),Monitor Link 能否感知?

  3. Smart Link 不支持负载分担。如果需要两条上行链路同时承载流量且具备冗余能力,应该选择什么方案?Smart Link 能否与 Eth-Trunk 配合实现某种形式的负载分担?

下篇预告:第122篇:Smart Link 主备切换与回流保护