在上一篇笔记中,探讨了单机本地端口镜像(SPAN)的配置。但在真实的机房环境中,监控服务器往往不会和所有被监控设备放在同一台交换机上。当源设备和目的设备跨越多台交换机时,我们就需要用到二层远程端口镜像(RSPAN)。
今天这篇笔记,我将带大家实战配置一个跨三台交换机(Device A -> Device B -> Device C)的 RSPAN 场景,把源端口的流量精准"搬运"到远端服务器。
一、 组网需求与逻辑拆解
场景描述 :
Device A 的 Ten-GigabitEthernet1/0/1 连接着市场部,我们需要监控该端口的双向流量。监控服务器(Server)连接在远端的 Device C 上,中间经过 Device B 进行透传。

核心逻辑 :
RSPAN 的本质是**"借用一个专用 VLAN 作为传输通道"**。
- 源端(Device A):将市场部端口的流量复制,并打上专用 VLAN(如 VLAN 2)的标签,从出端口发往中间设备。
- 中间设备(Device B):只负责放行这个专用 VLAN,不做任何处理。
- 目的端(Device C):收到带 VLAN 2 标签的报文后,剥离标签,并将原始报文发送给监控服务器。
核心避坑预警(必读) :
在整个 RSPAN 传输路径上,所有设备都必须关闭该专用 VLAN 的 MAC 地址学习功能(
undo mac-address mac-learning enable) !原因 :如果开启 MAC 学习,交换机会把镜像报文当成正常业务报文去查 MAC 表转发。而镜像报文的目的 MAC 通常是原始报文的目的 MAC,交换机查不到就会丢弃或错误转发。关闭 MAC 学习后,交换机会将该 VLAN 的报文进行泛洪(Flood),从而确保监控服务器能收到数据。
二、 核心配置步骤(按数据流向配置)
1. 配置源端设备(Device A)
负责抓取流量,并打上专用 VLAN 标签发出。
<DeviceA> system-view
# 创建远程源镜像组 1
[DeviceA] mirroring-group 1 remote-source
# 创建专用 VLAN 2 并【关键】关闭 MAC 地址学习
[DeviceA] vlan 2
[DeviceA-vlan2] undo mac-address mac-learning enable
[DeviceA-vlan2] quit
# 绑定镜像 VLAN、源端口和出端口
[DeviceA] mirroring-group 1 remote-probe vlan 2
[DeviceA] mirroring-group 1 mirroring-port ten-gigabitethernet 1/0/1 both
[DeviceA] mirroring-group 1 monitor-egress ten-gigabitethernet 1/0/2
# 配置出端口为 Trunk,放行 VLAN 2,并关闭 STP
[DeviceA] interface ten-gigabitethernet 1/0/2
[DeviceA-Ten-GigabitEthernet1/0/2] port link-type trunk
[DeviceA-Ten-GigabitEthernet1/0/2] port trunk permit vlan 2
[DeviceA-Ten-GigabitEthernet1/0/2] undo stp enable
[DeviceA-Ten-GigabitEthernet1/0/2] quit
2. 配置中间透传设备(Device B)
仅作为通道,确保专用 VLAN 畅通。
<DeviceB> system-view
# 创建专用 VLAN 2 并【关键】关闭 MAC 地址学习
[DeviceB] vlan 2
[DeviceB-vlan2] undo mac-address mac-learning enable
[DeviceB-vlan2] quit
# 配置上下行端口为 Trunk,放行 VLAN 2
[DeviceB] interface ten-gigabitethernet 1/0/1
[DeviceB-Ten-GigabitEthernet1/0/1] port link-type trunk
[DeviceB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2
[DeviceB-Ten-GigabitEthernet1/0/1] quit
[DeviceB] interface ten-gigabitethernet 1/0/2
[DeviceB-Ten-GigabitEthernet1/0/2] port link-type trunk
[DeviceB-Ten-GigabitEthernet1/0/2] port trunk permit vlan 2
[DeviceB-Ten-GigabitEthernet1/0/2] quit
3. 配置目的端设备(Device C)
负责接收镜像报文,剥离标签,并送给服务器。
<DeviceC> system-view
# 配置上行 Trunk 口,放行 VLAN 2
[DeviceC] interface ten-gigabitethernet 1/0/1
[DeviceC-Ten-GigabitEthernet1/0/1] port link-type trunk
[DeviceC-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2
[DeviceC-Ten-GigabitEthernet1/0/1] quit
# 创建远程目的镜像组 2
[DeviceC] mirroring-group 2 remote-destination
# 创建专用 VLAN 2 并【关键】关闭 MAC 地址学习
[DeviceC] vlan 2
[DeviceC-vlan2] undo mac-address mac-learning enable
[DeviceC-vlan2] quit
# 绑定镜像 VLAN 和目的端口
[DeviceC] mirroring-group 2 remote-probe vlan 2
[DeviceC] interface ten-gigabitethernet 1/0/2
[DeviceC-Ten-GigabitEthernet1/0/2] mirroring-group 2 monitor-port
[DeviceC-Ten-GigabitEthernet1/0/2] undo stp enable
[DeviceC-Ten-GigabitEthernet1/0/2] port access vlan 2
[DeviceC-Ten-GigabitEthernet1/0/2] quit
三、 验证与排错思路
配置完成后,分别在源端和目的端检查镜像组状态:
在 Device C 上验证:
[DeviceC] display mirroring-group all
Mirroring group 2:
Type: Remote destination
Status: Active
Monitor port: Ten-GigabitEthernet1/0/2
Remote probe VLAN: 2
在 Device A 上验证:
[DeviceA] display mirroring-group all
Mirroring group 1:
Type: Remote source
Status: Active
Mirroring port:
Ten-GigabitEthernet1/0/1 Both
Monitor egress port: Ten-GigabitEthernet1/0/2
Remote probe VLAN: 2
排错 Checklist:
- 状态检查 :确保两端
Status都是Active。- MAC 学习检查 :使用
display mac-address mac-learning vlan 2确认三台设备的 VLAN 2 MAC 学习均已关闭。- STP 检查:确认源端的出端口和目的端的监控端口都已关闭 STP,防止端口被阻塞。
- VLAN 连通性:确保中间设备的 Trunk 口没有遗漏放行 VLAN 2。