笔记:跨设备二层远程端口镜像(RSPAN)配置

在上一篇笔记中,探讨了单机本地端口镜像(SPAN)的配置。但在真实的机房环境中,监控服务器往往不会和所有被监控设备放在同一台交换机上。当源设备和目的设备跨越多台交换机时,我们就需要用到二层远程端口镜像(RSPAN)

今天这篇笔记,我将带大家实战配置一个跨三台交换机(Device A -> Device B -> Device C)的 RSPAN 场景,把源端口的流量精准"搬运"到远端服务器。

一、 组网需求与逻辑拆解

场景描述

Device A 的 Ten-GigabitEthernet1/0/1 连接着市场部,我们需要监控该端口的双向流量。监控服务器(Server)连接在远端的 Device C 上,中间经过 Device B 进行透传。

核心逻辑

RSPAN 的本质是**"借用一个专用 VLAN 作为传输通道"**。

  1. 源端(Device A):将市场部端口的流量复制,并打上专用 VLAN(如 VLAN 2)的标签,从出端口发往中间设备。
  2. 中间设备(Device B):只负责放行这个专用 VLAN,不做任何处理。
  3. 目的端(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

  1. 状态检查 :确保两端 Status 都是 Active
  2. MAC 学习检查 :使用 display mac-address mac-learning vlan 2 确认三台设备的 VLAN 2 MAC 学习均已关闭。
  3. STP 检查:确认源端的出端口和目的端的监控端口都已关闭 STP,防止端口被阻塞。
  4. VLAN 连通性:确保中间设备的 Trunk 口没有遗漏放行 VLAN 2。