有趣的广播风暴——使用eNSP模拟交换环路
我们知道交换网络如果发生环路后果非常严重,轻者可以让终端上网变慢、重者可以全网瘫痪。工作的过程中有些故障产生是由于环路产生的,下面我先为大家讲解几种环路的可能性:
一、接入层设备连接终端,终端连线错误。如把IP电话的两个接口接入同一个接入层交换机上,交换机不支持生成树。
二、接入层交换机生成树被关闭,交换机自己接线接成环路。如交换机自身1接口接到5接口
三、接入层到核心层交换机生成树配置错误。如在级联接口上配置了BPDU过滤
四、交换机之间光纤连接出现单向通信故障。如一根光线中断或光模块有故障。
五、生成树不兼容或生成树协议报文被拥塞丢弃。如思科的PVRST+和H3C的RSTP就有兼容性问题
网络故障发生后,如何才能判断故障是由环路引发的呢?举个例子,如果网络访问速度变慢,ping外网有严重丢包,ping内网有延时很大,故障的原因可能有多种。怎么才能断定这个故障是环路引发的呢,有三个现象可以用来做诊断,分别是:
一、广播风暴:链路上的广播包可以占满带宽,100M约30000~50000/pps。
Word 资料
.
二、多帧复制:抓包可以抓到同一个帧的多个副本,只限广播帧和组播帧
三、MAC地址表抖动:交换机上可以周期性的看到MAC地址翻滚(flapping)的日志
下面的实验就为大家演示这三个现象,这个实验有两种做法:
一、所有交换机都关闭STP,环路自动发生,就可以做相关验证。
二、配置BPDU过滤,引发交换机STP计算错误造成环路。
我这里用的是第二种方法,顺便一起学习下BPDU过滤的功能。
好啦废话太多了,现在正式开始:
第一、如下搭建拓扑(第一次做该实验建议原样搭建,可以避免出错)
Word 资料
.
设备启动后以后,交换机和PC要做一个简单配置:
lsw1上的配置:
sysname sw1
stp mode stp
stp instance 0 priority 4096
lsw2上的配置:
Word 资料
.
sysname sw2
stp mode stp
stp instance 0 priority 8192
lsw3上的配置:
sysname sw3
stp mode stp
PC1上的配置:配置ip为1.1.1.1 mask 255.255.255.0
PC2上的配置:配置ip为1.1.1.2 mask 255.255.255.0
配置完成后,交换机会计算生成树,如下结果:
Word 资料
.
此时三台交换机可以看到除了LSW3的g0/0/1丢弃状态外,其它交换机全是转发状态:
[sw1]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
Word 资料
.
0 GigabitEthernet0/0/3 DESI FORWARDING NONE
[sw2]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 ROOT FORWARDING NONE
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
0 GigabitEthernet0/0/3 DESI FORWARDING NONE
[sw3]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 ALTE DISCARDING NONE
0 GigabitEthernet0/0/2 ROOT FORWARDING NONE
此时PC1 ping PC1 正常,无丢包
Welcome to use PC Simulator!
PC>ping 1.1.1.2
Word 资料
.
Ping 1.1.1.2: 32 data bytes, Press Ctrl_C to break
From 1.1.1.2: bytes=32 seq=1 ttl=128 time=78 ms
From 1.1.1.2: bytes=32 seq=2 ttl=128 time=47 ms
From 1.1.1.2: bytes=32 seq=3 ttl=128 time=47 ms
From 1.1.1.2: bytes=32 seq=4 ttl=128 time=16 ms
From 1.1.1.2: bytes=32 seq=5 ttl=128 time=31 ms
--- 1.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 16/43/78 ms
PC>
现在,我们来模拟交换环路的生成。方法是LSW2的g0/0/2的接口上开启BPDU过滤功能,讨论1:为何原因生成环路?
Word 资料
.
[sw2]inter g0/0/2
[sw2-GigabitEthernet0/0/2]stp bpdu-filter enable
此时等35秒后,交换环路发生,可以在交换机上看到所有接口为转发状态。讨论2:为何是35秒?
[sw1]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
0 GigabitEthernet0/0/3 DESI FORWARDING NONE
[sw2]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 ROOT FORWARDING NONE
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
0 GigabitEthernet0/0/3 DESI FORWARDING NONE
Word 资料
.
[sw3]dis stp bri
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 ROOT FORWARDING NONE
此时PC1上再通信 PC2会严重丢包,如下所示:
PC>ping 1.1.1.2
Ping 1.1.1.2: 32 data bytes, Press Ctrl_C to break
From 1.1.1.2: bytes=32 seq=1 ttl=128 time=16 ms
Request timeout!
Request timeout!
Request timeout!
Request timeout!
--- 1.1.1.2 ping statistics ---
Word 资料
.
5 packet(s) transmitted
1 packet(s) received
80.00% packet loss
round-trip min/avg/max = 16/16/16 ms
下面我们分别观察环路的三个现象:
一、广播风暴:抓包
在三个交换机的任何一个接口上抓包都可以看到,我这里在交换机lsw2的g0/0/1上抓包,如下可以看到ARP广播很多
Word 资料
.
二、多帧复制:抓包
同时可以看到很多重复的数据帧
Word 资料
.
三、MAC地址表抖动:交换机上日志
在交换机上查看日志信息,发现环路的三个交换机都有这个输出
[sw2-GigabitEthernet0/0/2]
Dec 27 2012 10:22:20-08:00 sw2 L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25
.160.3.7 MAC move detected, VlanId = 1, MacAddress = 000b-09cf-de68,
Word 资料
.
Original-Po
rt = GE0/0/3, Flapping port = GE0/0/1 and GE0/0/2. Please check the network acce
ssed to flapping port.
Dec 27 2012 10:28:33-08:00 sw2 L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25
.160.3.7 MAC move detected, VlanId = 1, MacAddress = 000b-09cf-de68, Original-Po
rt = GE0/0/3, Flapping port = GE0/0/1 and GE0/0/2. Please check the network acce
ssed to flapping port. User interface con0 is available
不同时刻dis mac-add看到的变化如下:
[sw2]dis mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
Word 资料
.
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
000b-09cf-7c64 1 - - GE0/0/1 dynamic 0/-
000b-09cf-de68 1 - - GE0/0/1 dynamic 0/-
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2
[sw2]dis mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
Word 资料
.
000b-09cf-7c64 1 - - GE0/0/2 dynamic 0/-
000b-09cf-de68 1 - - GE0/0/1 dynamic 0/-
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2
会发现PC2的MAC 000b-09cf-7c64地址在交换机的两个接口上来回漂移变换,
00-0B-09-CF-DE-68 是PC1的MAC地址,本来应该在交换机lsw2的g0/0/3接口上才正确, 现在位于g0/0/1,所以交换机也不可以访问其它 网络。
现在的问题是……我们看到环路了……
讨论3:如何减少或阻止此类因配置错误导致的环路,有什么技术方案?
欢迎大家能做下这个实验并能积极讨论,交换里这个实验感觉还是很重要滴……
Word 资料
因篇幅问题不能全部显示,请点此查看更多更全内容