把交换机一个或多个端口(VLAN)的数据镜像到一个或多个端口的方法。

为什么需要端口镜像 ?

通常为了部署 IDS 产品需要监听网络流量(网络分析仪同样也需要),但是在目前广泛采用的交换网络中监听所有流量有相当大的困难,因此需要通过配置交换机来把一个或多个端口(VLAN)的数据转发到某一个端口来实现对网络的监听。

端口镜像的别名

端口镜像通常有以下几种别名:

●Port Mirroring 通常指允许把一个端口的流量复制到另外一个端口,同时这个端口不能再传输数据。

●Monitoring Port 监控端口

●Spanning Port 通常指允许把所有端口的流量复制到另外一个端口,同时这个端口不能再传输数据。

●SPAN port 在 Cisco 产品中,SPAN 通常指 Switch Port ANalyzer。某些交换机的 SPAN 端口不支持传输数据。

●Link Mode port

支持端口镜像的交换机

大多数中档以上的交换机都支持端口镜像功能,但支持程度不同。

端口镜像配置方法

下面是几种交换机的端口镜像配置方法,主要来自于 Talisker Security Wizardry (http://www.securitywizardry.com/) 的 Switch Port Mirroring (http://www.securitywizardry.com/switch.htm)

Cisco 交换机

特点:
● Cisco 2900 和 Cisco 3500XL 系列交换机

● Cisco 2950、Cisco 3550 和 Cisco 3750 系列交换机 Cisco catylist 2550 Cisco catylist 3550 支持2组monitor session en password config term Switch(config)#monitor session 1 destination interface fast0/4(1为session id,id范围为1-2) Switch(config)#monitor session 1 source interface fast0/1 , fast0/2 , fast0/3 (空格,逗号,空格) Switch(config)#exit Switch#copy running-conf startup-conf Switch#show port-monitor

Cisco 5000 系列交换机

使用 CatOS 的 Cisco 4000 和 Cisco 6000 系列交换机

使用 IOS 的 Cisco 4000 和 Cisco 6000 系列交换机

Extreme 交换机

特点:
●只能创建多对一或者一对一的镜像端口

●可以监听 VLAN 的流量

●Extreme 会镜像 IN 和 OUT 的流量。这就意味着在镜像 VLAN 的时候,会看到一个报文至少两次— —从 VLAN 的某个端口出来,并且进入 VLAN 的另一个端口。 版本高于4.1的 Extreme 交换机端口镜像配置方法 {enable | disable} mirroring on port 开启/关闭端口镜像功能,并且指定镜像流量从何端口流出,port-no 只能是一个端口 configure mirroring { add | delete } { vlan | port } 指定镜像哪个或哪些 VLAN 或端口的流量 { vlan | port } 部分可以重复多次 版本低于 4.1 的 Extreme 交换机端口镜像配置方法 enable mirror to port port-no 开启端口镜像功能,并且指定镜像流量从何端口流出,port-no 只能是一个端口 disable mirror 关闭端口镜像功能 config mirror add port 镜像端口 port-no 的流量,如果这个端口包含多个 VLAN 这些流量都会被镜像到目的端口 config mirror add port vlan 镜像端口 port-no 中指定 VLAN 的流量 config mirror add vlan 镜像端口中指定 VLAN 的所有端口的流量 config mirror del port 取消对 port-no 的端口镜像 config mirror del vlan 取消对指定 VLAN 的端口镜像 show mirror

显示端口镜像情况

Foundry 交换机

特点:

●可以创建多对多的端口镜像 Foundry 交换机端口镜像配置方法 在配置模式中(Configuration Mode): interface port monitor { { rx | tx | both}} 确定镜像流量从哪个端口流出,修改此端口配置 指定要镜像哪些端口的哪些流量(rx 指接收的流量,tx 指发送的流量,both 指双向流量),{ { rx | tx | both}} 部分可以重复

Juniper 交换机

特点:

●每交换机只能有一个监听端口

●只能镜像 IPv4 的流量

●只能镜像发送(transit only)的流量,不能镜像接收的流量 Juniper M 系列和 T 系列端口镜像配置方法 usen@router# show forwarding-options port- mirroring { input {family inet; rate ; run- length ;} output interface {next-hop ;} no-filter-check;} }

选择将抽样的流量发送到哪个目的端口 user@router# show firewall filter mirror-sample from {...} then {sample; accept;} 定义抽样过滤器,选择感兴趣的流量 user@router# show interface unit 0 family inet filter {input mirror-sample;} 选择将抽样的过滤器应用到某个端口 端口镜像的风险 加重交换机负载,造成设备不稳定 在某些情况下会丢包,不能保证 100% 镜像流量。例如,由于多个源端口镜像到一个目的端口,目的端口无法处理造成丢包
端口镜像配置
『环境配置参数』

  1. PC1接在交换机E0/1端口,IP地址1.1.1.1/24
  2. PC2接在交换机E0/2端口,IP地址2.2.2.2/24
  3. E0/24为交换机上行端口
  4. Server接在交换机E0/8端口,该端口作为镜像端口
    『组网需求』
  5. 通过交换机端口镜像的功能使用server对两台pc的业务报文进行监控。
  6. 按照镜像的不同方式进行配置:
    1) 基于端口的镜像
    2) 基于流的镜像
    2.数据配置步骤『端口镜像的数据流程』
    基于端口的镜像是把被镜像端口的进出数据报文完全拷贝一份到镜像端口,这样来进行流量观测或者故障定位。
    【3026等交换机镜像】
    S2008/S2016/S2026/S2403H/S3026等交换机支持的都是基于端口的镜像,有两种方法:
    方法一
  7. 配置镜像(观测)端口
    [SwitchA]monitor-port e0/8
  8. 配置被镜像端口
    [SwitchA]port mirror Ethernet 0/1 to Ethernet 0/2
    方法二
  9. 可以一次性定义镜像和被镜像端口
    [SwitchA]port mirror Ethernet 0/1 to Ethernet 0/2 observing-port Ethernet 0/8
    【8016交换机端口镜像配置】
  10. 假设8016交换机镜像端口为E1/0/15,被镜像端口为E1/0/0,设置端口1/0/15为端口镜像的观测端口。
    [SwitchA] port monitor ethernet 1/0/15
  11. 设置端口1/0/0为被镜像端口,对其输入输出数据都进行镜像。
    [SwitchA] port mirroring ethernet 1/0/0 both ethernet 1/0/15
    也可以通过两个不同的端口,对输入和输出的数据分别镜像
  12. 设置E1/0/15和E2/0/0为镜像(观测)端口
    [SwitchA] port monitor ethernet 1/0/15
  13. 设置端口1/0/0为被镜像端口,分别使用E1/0/15和E2/0/0对输入和输出数据进行镜像。
    [SwitchA] port mirroring gigabitethernet 1/0/0 ingress ethernet 1/0/15
    [SwitchA] port mirroring gigabitethernet 1/0/0 egress ethernet 2/0/0

『基于流镜像的数据流程』
基于流镜像的交换机针对某些流进行镜像,每个连接都有两个方向的数据流,对于交换机来说这两个数据流是要分开镜像的。
【3500/3026E/3026F/3050】
〖基于三层流的镜像〗

  1. 定义一条扩展访问控制列表
    [SwitchA]acl num 100
  2. 定义一条规则报文源地址为1.1.1.1/32去往所有目的地址
    [SwitchA-acl-adv-101]rule 0 permit ip source 1.1.1.1 0 destination any
  3. 定义一条规则报文源地址为所有源地址目的地址为1.1.1.1/32
    [SwitchA-acl-adv-101]rule 1 permit ip source any destination 1.1.1.1 0
  4. 将符合上述ACL规则的报文镜像到E0/8端口
    [SwitchA]mirrored-to ip-group 100 interface e0/8

〖基于二层流的镜像〗

  1. 定义一个ACL
    [SwitchA]acl num 200
  2. 定义一个规则从E0/1发送至其它所有端口的数据包
    [SwitchA]rule 0 permit ingress interface Ethernet0/1 egress interface Ethernet0/2
  3. 定义一个规则从其它所有端口到E0/1端口的数据包
    [SwitchA]rule 1 permit ingress interface Ethernet0/2 egress interface Ethernet0/1
  4. 将符合上述ACL的数据包镜像到E0/8
    [SwitchA]mirrored-to link-group 200 interface e0/8

【5516/6506/6503/6506R】
目前该三款产品支持对入端口流量进行镜像

  1. 定义镜像端口
    [SwitchA]monitor-port Ethernet 3/0/2
  2. 定义被镜像端口
    [SwitchA]mirroring-port Ethernet 3/0/1 inbound

【补充说明】

  1. 镜像一般都可以实现高速率端口镜像低速率端口,例如1000M端口可以镜像100M端口,反之则无法实现
  2. 8016支持跨单板端口镜像
    3.测试验证在观测端口上通过工具软件可以看到被镜像端口的相应的报文,可以进行流量观测或者故障定位。