简介
SPAN(Switched Port Analyzer 交换式端口分析器)技术主要是用来监控交换机上的数据流,大体可分为两种类型,本地SPAN(SPAN)——Local SPAN和远程SPAN(RSPAN)——Remote SPAN,它们在实现方法上稍有不同。利用SPAN技术我们可以把交换机上某些想要被监控端口的数据流Copy或Mirror一份,发送给连接在监控端口上的流量分析仪,比如Cisco的IDS或是装了SNIFFER工具的PC。受控端口和监控端口可以在同一台交换机上(本地SPAN),也可以在不同的交换机上(远程SPAN)。
实验
配置IP地址、VLAN及路由:
SW1(config)#vlan 1
SW1(config)#vlan 2
SW1(config)#int f0/1SW1(config-if)#switchport mode accessSW1(config-if)#switchport access vlan 1SW1(config)#int f0/2SW1(config-if)#switchport mode accessSW1(config-if)#switchport access vlan 2SW1(config)#int f0/11SW1(config-if)#switchport trunk encapsulation dot1qSW1(config-if)#switchport mode trunkSW1(config-if)#switchport trunk native vlan 999 //为了实验效果,把Native VLAN设为不存在的VLAN,
使得链路上不会有Native帧的存在SW1(config)#ip routingSW1(config)#int vlan 1SW1(config-if)#ip add 172.16.1.254 255.255.255.0SW1(config-if)#no shSW1(config)#int vlan 2SW1(config-if)#ip add 172.16.2.254 255.255.255.0SW1(config-if)#no sh
SW2(config)#vlan 1
SW2(config)#vlan 2
SW2(config)#int f0/3SW2(config-if)#switchport mode accessSW2(config-if)#switchport access vlan 1SW2(config)#int f0/4SW2(config-if)#switchport mode accessSW2(config-if)#switchport access vlan 1SW2(config)#int f0/10SW2(config-if)#switchport mode accessSW2(config-if)#switchport access vlan 2SW2(config)#int f0/11SW2(config-if)#switchport trunk encapsulation dot1qSW2(config-if)#switchport mode trunkSW2(config-if)#switchport trunk native vlan 999R1(config)#int f0/0R1(config-if)#ip add 172.16.1.1 255.255.255.0R1(config-if)#no shR1(config)#ip route 0.0.0.0 0.0.0.0 f0/0 172.16.1.254R2(config)#int f0/0R2(config-if)#ip add 172.16.2.2 255.255.255.0R2(config-if)#no shR2(config)#ip route 0.0.0.0 0.0.0.0 f0/0 172.16.2.254R3(config)#int f0/0R3(config-if)#ip add 172.16.1.3 255.255.255.0R3(config-if)#no shR3(config)#ip route 0.0.0.0 0.0.0.0 f0/0 172.16.1.254
R4(config)#int f0/0R4(config-if)#ip add 172.16.1.4 255.255.255.0R4(config-if)#no shR4(config)#ip route 0.0.0.0 0.0.0.0 f0/0 172.16.1.254
配置SPAN:SW2(config)#monitor session 1 source int f0/3 both //配置SPAN的源为F0/3接口的收和发的流量SW2(config)#monitor session 1 destination int f0/10 //配置SPAN的目标接口为F0/10
说明:默认时(除非特殊配置),SPAN目标接口(如实验中为F0/10)的接入设备将不能接发数据流量。
实验调试:
在PC上开启抓包软件,然后从R3上PingR4:
SW2(config)#monitor session 1 source int f0/11 both //增加F0/11为SPAN的源
在PC上开启抓包软件,然后从R1上PingR4:
说明:
①抓包时可能看不到帧中的dot1q和isl标签,这是因为网卡收到带有dot1q和isl标签的帧后通常会把标签剥离。
不同的网卡有不同的解决方案,见http://wiki.wireshark.org/capturesetup/vlan#/windows (WireShark),
如Intel网卡,在注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-
BFC1-08002BE10318}\00nn中添加字符串类型的项MonitorModeEnabled=1,并重启计算机即可。
②使用ISL封装的默认情况下,当数据帧从目标接口发送出时,ISL封装会被去掉以Native发出的。
可配置命令:SW2(config)#monitor session 1 destination int f0/10 encapsulation replicate
复制到目标接口的帧将保持源接口的封装。复制到目标接口的帧封装和目标接口上的配置无关,即使目标接口
(如试验中为F0/10)配置了mode access或者封装dot1q,终端(如试验中为PC)收到的还是源接口上帧的格式。
注意:monitor session 1 destination int f0/10 encapsulation dot1q或monitor session 1 destination
int f0/10 encapsulation isl命令意思是复制到目标接口的帧将重新封装为dot1q或者isl。但Catalyst 3560
交换机上,该命令实际上是无效的。
SW2#show monitor session 1 //查看会话监控
配置RSPAN:
SW1(config)#vlan 100
SW1(config-vlan)#remote-span //创建Vlan 100作为RSPAN VLAN
SW1(config)#monitor session 1 source vlan 2 rx //配置SPAN的源为Vlan 2的接收流量
SW1(config)#monitor session 1 destination remote vlan 100 //配置SPAN的目标为Vlan 100
SW2(config)#no monitor session 1 //删除monitor session 1,因为它占用了F0/10接口
SW2(config)#vlan 100
SW2(config-vlan)#remote-span
SW2(config)#monitor session 2 source remote vlan 100 //配置monitor session 2的源为
remote Vlan 100
SW2(config)#monitor session 2 destination int f0/10 ingress vlan 2 //配置monitor session 2
的目标为F0/10接口
注意:试验中“Ingress”参数允许F0/10接口接收PC发送的帧,并且数据帧以Native封装,数据帧发往Vlan 2。