以下内容摘自最新上市的“四大金刚”图书之一《Cisco交换机配置与管理完全手册》(第二版)(其它三本分别为《Cisco路由器配置与管理完全手册》(第二版)、《H3C交换机配置与管理完全手册》(第二版)和《H3C路由器配置与管理完全手册》(第二版)),目前这四本新书在当当网、京东网、卓越网和互动网等各大书店中均有销售:http://item.jd.com/11273171.html http://item.jd.com/11273170.html http://item.jd.com/11273173.html http://item.jd.com/11273172.html
目前正在进行“有奖试读”活动,有机会同时获得四本各价值108元的新书,快去参加吧:http://blog.chinaunix.net/uid-24789255-id-3826290.html
20.5 CatOS系统交换机上的SPAN配置
本节所介绍的内容适用于运行CatOS映像系统的Catalyst 2900/4500/4000/5500/5000/6500/6000系列交换机。但对于Cisco Catalyst 2900系列交换机,仅以下型号支持SPAN:
l Cisco Catalyst2948G-L2
l Cisco Catalyst2948G-GE-TX
l Cisco Catalyst2980G-A
对于Cisco Catalyst 4000系列交换机,对于模块机箱式交换机,仅有Cisco Catalyst 4003和Cisco Catalyst 4006两个型号的交换机支持SPAN;对于固定配置交换机,仅有Cisco Catalyst4912G型号的交换机支持SPAN。
20.5.1 本地SPAN配置
SPAN功能已逐渐添加到运行CatOS系统的交换机上。在这些交换机上,SPAN配置是由一系列的set span命令组成的,并且有许多可选项,具体命令格式如下(参数说明如表20-2所示):
set span disable [dest_mod/dest_port|all]
或
set span <src_mod|src_ports...|src_vlans...|sc0> <dest_mod/dest_port> [rx|tx|both][inpkts <enable|disable>]
[learning <enable|disable>] [multicast <enable|disable>] [filter <vlans...>][create]
表20-2 CatOS系统交换机中的set span命令参数说明
参数 |
说明 |
disable |
禁止SPAN |
dest_mod |
(可选)监控模块(作为SPAN目标) |
dest_port |
(可选)监控端口(作为SPAN目标) |
all |
(可选)禁止监控所有VLAN通信 |
src_mod |
监控模块(作为SPAN源) |
src_ports... |
监控端口(作为SPAN源) |
src_vlan... |
监控VLAN(作为SPAN源) |
sc0 |
监控sc0管理接口通信 |
rx |
(可选)监控源上接收到的通信 |
tx |
(可选)监控从源上发出的通信 |
both |
(可选)监控源上接收和发送的双向通信 |
inpkts enable |
(可选)在SPAN目标端口上启用正常流入通信的接收 |
inpkts disable |
(可选)禁止SPAN目标端口上正常流入通信的接收 |
learning enable |
(可选)学习包中的源MAC地址 |
learning disable |
(可选)禁止学习包中的源MAC地址 |
filter |
(可选)过滤不需要监控的VLAN |
vlan |
(可选)指定不需要监控的VLAN号 |
create |
(可选)创建新的SPAN会话 |
- sc0:在需要监控sc0管理接口通信时,可以在SPAN配置中指定sc0关键字。这个选项仅可以在运行CatOS 5.1或更高版本的Catalyst 5500/5000/6500/6000系列交换机上使用。
- inpkts enable|disable:这个选项极其重要,但仅在CatOS 4.2及以上版本映像交换机中支持。配置为SPAN目标端口的端口仍将属于它原来的VLAN。如果这个端口是普通访问端口,则在目标端口上接收到数据包后进入VLAN。如果使用一个PC作为Sniffer监控器,则可能需要这台PC与这个VLAN全面连接。如果连接目标端口到其他在网络中创建了环路的设备,这样的连接会存在风险。目标SPAN端口不支持运行STP,可以在这种情况下结束这个存在风险的桥接环。这个选项的默认设置是禁止的,也就是说目标SPAN端口会放弃在端口上接收的包,以阻止桥接环的产生。
- learning enable|disable:这个选项允许禁止目标端口的学习功能。默认情况下,学习功能是启用的,目标端口可以从端口上接收的数据包中学习到MAC地址。这个功能在CatOS 5.2的Catalyst 4500/4000/5500/5000系列和CatOS 5.3的Catalyst 6500/6000系列交换机中支持。
- multicast enable|disable:这个选项用来启用或禁止多播数据包的监控,默认是启用的。这个功能在运行CatOS 5.1或更高版本的Catalyst 5500/5000/6500/6000系列交换机上可用。
在Catalyst 6500/6000系列交换机上,可以通过spanning port 15/1命令使用15/1或16/1端口作为SPAN源端口。这个端口可以监控转发到MSFC(Multilayer Switch Feature Card,多层交换功能卡)上的通信。这个端口捕获到的是软路由或直接连接到MSFC的通信。
下面仅以最新的CatOS系统Catalyst 6500/6000系列交换机为例进行SPAN和RSPAN配置介绍。图20-11所示为Catalyst 6500/6000系列交换机第6插槽中的部分线路卡。在本示例中,配置如下:
图20-11 Catalyst 6500/6000系列交换机第6插槽中的线路卡
l VLAN 1端口6/1和6/2属于VLAN 1。
l VLAN 2端口6/3属于VLAN 2。
l VLAN 3端口6/4和6/5属于VLAN 3。
l 在6/2端口中连接一个Sniffer监控器,并在几种不同情形使用这个端口作为监控端口(也就是前面所说的SPAN目标端口)。
1.监控单一端口
可以使用set span命令来监控单一端口,语法格式为:
set span source_port destination_port
参数source_port和destination_port分别用来指定SPAN源端口和SPAN目标端口。如以下命令可以监控图20-11中端口6/1上的通信到端口6/2上。
switch (enable)> set span 6/1 6/2
每个在6/1端口接收或发送的数据包都将复制一份到6/2端口。使用show span命令可以查看当前SPAN配置汇总,如下:
switch (enable) >show span
Destination : Port 6/2
Admin Source : Port 6/1
Oper Source : Port 6/1
Direction : transmit/receive
Incoming Packets: disabled
Learning : enabled
Multicast : enabled
Filter : -
Status : active
Total local span sessions: 1
2.监控多个端口
前面说到的set span source_ports destination_port命令也允许用户指定多于一个源端口,只需简单地列出所要监控的源端口,各源端口间以英文逗号(,)分隔即可。也可以使用连接符号(-)来指定一个源端口范围。如图20-12所示为指定多于一个源端口的SPAN监控的示例:使用6/2作为SPAN目标端口(或称为监控端口),6/1和6/3~6/5为被监控端口。但目标端口只能有一个,而且总是源端口在命令的前面,目标端口在后面。
图20-12 监控多个端口通信的示例
本示例配置命令如下:
switch (enable) set span 6/1,6/3-5 6/2
【说明】与Catalyst 2900XL/3500XL交换机不同,Catalyst 4500/4000/5500/5000/6500/6000交换机可以监控多个运行早于CatOS 5.1版本的VLAN中的端口。本示例中,被监控的源端口6/1和6/3~6/5分别属于VLAN 1~VLAN 3,而且目标端口6/2与源端口6/1属于同一个VLAN。
3.监控VLAN
与前面介绍的Catalyst Express 500和Catalyst 8500交换机不一样,在CatOS系统Catalyst 4500/4000/5500/5000/6500/6000交换机中可以使用VLAN作为SPAN监控源。可以使用span source_vlan(s) destination_port命令来配置一个端口监控本地整个VLAN的通信,只需要使用一个或多个作为源的VLAN来替代前面的源端口即可(如果有多个源VLAN,同样可以使用逗号分隔或者连接符号连接指定一个范围)。
如图20-13所示的示例是要在6/2端口上监控VLAN 2和VLAN 3这两个本地VLAN的通信。配置命令如下:
switch (enable) set span 2,3 6/2
图20-13 监控VLAN的示例
通过这个命令,每个流入或流出VLAN 2或VLAN 3的通信包都将被复制到6/2端口上进行监控。
4.入口/出口SPAN
在上节介绍的利用SPAN监控VLAN中,流进和流出指定VLAN的通信都将被监控。在Catalyst 4500/4000/5500/5000/6500/6000系列交换机上允许仅监控指定端口的入口或出口方向的通信,只需在命令中添加监控方向的相应关键字,命令格式如下:
set span source_port destination_port [rx | tx | both]
如图20-14所示的示例是要仅监控VLAN 1和VLAN 3中所有流入的通信,然后镜像到6/2端口。
图20-14 仅监控流入指定VLAN的通信的示例
配置命令如下:
switch (enable) set span 1,3 6/2 rx
20.5.2 中继端口上的本地SPAN的配置
中继在交换机上是一种特殊情形,因为在中继端口上可以承载多个VLAN的通信。如果中继端口被选作为源端口,则默认在这个中继端口上的所有VLAN通信都将被监控。当然也可以通过下面将要介绍的VLAN过滤来限定仅监控中继端口上特定VLAN的通信。
1.监控属于中继端口上的一个VLAN通信
图20-15显示了6/5端口是一个承载了所有VLAN的中继端口。现假设想要使用SPAN监控位于VLAN 2中的6/4端口和6/5中继端口的通信到6/2端口上。配置命令如下:
switch (enable) set span 6/4-5 6/2
在这种情况下,在SPAN目标端口上接收到的通信就是一个混合通信,包括想要监控的6/4端口上的通信和6/5中继端口上所有VLAN的通信。也就是说,没办法区别所接收的监控数据包是来自6/4端口,还是来自6/5中继端口上的VLAN。
图20-15 监控中继端口上一个VLAN通信的示例
当然也可以对整个VLAN(如VLAN 2)的通信进行监控(监控示意图如图20-16所示),配置语句如下:
switch (enable) set span 2 6/2
在这种配置下,至少还要监控中继链路上属于VLAN 2的通信。这样就存在一个问题,即同时监控了不想监控的6/3端口(同样属于VLAN 2)上的通信。在CatOS系统中,还包括另一个关键字filter,允许从中继中选择中继链路上需要监控的特定VLAN。配置命令如下(6/5端口是中继端口,这样配置后的监控效果如图20-17所示):
switch (enable) set span 6/4-5 6/2 filter 2
图20-16 监控整个VLAN通信的示例
图20-17 过滤中继端口上的监控VLAN后的监控效果
通过以上这个命令即可达到上述愿望,因为选择了只监控VLAN 2的通信。要注意的是,关键字filter可以指定多个要监控的VLAN,各VLAN间用逗号分隔。
【说明】set span命令中的关键字filter选项仅在Catalyst 4500/4000/6500/6000系列交换机上支持,Catalyst 5500/5000系列交换机不支持这个选项。
2.在目标端口上的中继
如果有一个属于多个不同VLAN的源端口,或者在一个中继端口中的多个VLAN使用SPAN监控,则可能想要标识在监控端口上接收到的数据包属于哪个VLAN。如果在配置某个端口为SPAN目标端口之前在这个端口上启用了中继,即可实现以上愿望。通过这种方法,所有转发到Sniffer监控器的数据包也将以它们各自的VLAN ID进行标识。当然这要求Sniffer监控器能识别相应的VLAN封装方式。示例的具体配置命令如下:
switch (enable) set span disable 6/2
This command will disable your span session.
Do you want to continue (y/n) [n]?y
Disabled Port 6/2 to monitor transmit/receive traffic of Port 6/4-5
2008 Sep 06 02:52:22 %SYS-5-SPAN_CFGSTATECHG:local span session
inactive for destination port 6/2
switch (enable) set trunk 6/2 nonegotiate isl !-- 设置6/2端口为非协商的ISL中继模式
Port(s) 6/2 trunk mode set to nonegotiate.
Port(s) 6/2 trunk type set to isl.
2008 Sep 06 02:52:33 %DTP-5-TRUNKPORTON:Port 6/2 has become isl trunk
switch (enable) set span 6/4-5 6/2
Destination : Port 6/2
Admin Source : Port 6/4-5
Oper Source : Port 6/4-5
Direction : transmit/receive
Incoming Packets: disabled
Learning : enabled
Multicast : enabled
Filter : -
Status : active
2008 Sep 06 02:53:23 %SYS-5-SPAN_CFGSTATECHG:local span session active for destination port 6/2
20.5.3 多个并发本地SPAN会话的配置
到目前为止,仅介绍了单个SPAN会话的创建。在每次键入新的set span命令时,以前的配置都将失效。现在最新的CatOS版本Catalyst 4500/4000/6500/6000系列交换机上可以允许同时进行多个SPAN会话,所以可以同时有多个目标端口。执行set span source destination create命令可以添加其他的SPAN会话。
在如图20-18所示的示例中,6/1端口的双向通信被监控到6/2端口上,VLAN 3中的通信被监控到6/3端口上。
图20-18 多个并发SPAN会话配置示例
具体配置命令如下:
switch (enable) set span 6/1 6/2
2008 Sep 05 08:49:04 %SYS-5-SPAN_CFGSTATECHG:local span session inactive for destination port 6/2
Destination : Port 6/2
Admin Source : Port 6/1
Oper Source : Port 6/1
Direction : transmit/receive
Incoming Packets: disabled
Learning : enabled
Multicast : enabled
Filter : -
Status : active
2008 Sep 05 08:49:05 %SYS-5-SPAN_CFGSTATECHG:local span session active for destination port 6/2
switch (enable) set span 3 6/3 create
Destination : Port 6/3
Admin Source : VLAN 3
Oper Source : Port 6/4-5,15/1
Direction : transmit/receive
Incoming Packets: disabled
Learning : enabled
Multicast : enabled
Filter : -
Status : active
2008 Sep 05 08:55:38 %SYS-5-SPAN_CFGSTATECHG:local span session active for destination port 6/3
现在键入show span命令可以查看是否同时启用了两个SPAN会话,示例如下:
switch (enable) show span
Destination : Port 6/2
Admin Source : Port 6/1
Oper Source : Port 6/1
Direction : transmit/receive
Incoming Packets: disabled
Learning : enabled
Multicast : enabled
Filter : -
Status : active
------------------------------------------------------------------------
Destination : Port 6/3
Admin Source : VLAN 3
Oper Source : Port 6/4-5,15/1
Direction : transmit/receive
Incoming Packets: disabled
Learning : enabled
Multicast : enabled
Filter : -
Status : active
Total local span sessions: 2
如果想要删除当前的多个SPAN会话中的一个,则可以执行如下命令:
set span disable {all | destination_port}
因为每个会话仅允许一个目标端口,所以可以通过目标端口来区别不同的会话。如果想要删除使用6/2作为目标端口的会话,则可以使用以下命令:
switch (enable) set span disable 6/2
This command will disable your span session.
Do you want to continue (y/n) [n]?y
DisabledPort6/2 to monitor transmit/receive traffic of Port 6/1
2000 Sep 05 09:04:33 %SYS-5-SPAN_CFGSTATECHG:local span session inactive
for destination port 6/2
此时可以通过键入show span命令来查看仍然保持的SPAN会话,如下所示:
switch (enable) show span
Destination : Port 6/3
Admin Source : VLAN 3
Oper Source : Port 6/4-5,15/1
Direction : transmit/receive
Incoming Packets: disabled
Learning : enabled
Multicast : enabled
Filter : -
Status : active
Total local span sessions: 1
键入set span disable all命令来禁止当前所有的会话,如下所示:
switch (enable) set span disable all
This command will disable all span session(s).
Do you want to continue (y/n) [n]?y
Disabled all local span sessions
2008 Sep 05 09:07:07 %SYS-5-SPAN_CFGSTATECHG:local span session inactive
for destination port 6/3
switch (enable) show span
No span session configured