.
有趣的广播风暴——使用eNSP模拟交换环路
我们知道交换网络如果发生环路后果非常严重,轻者可以让终端上网变慢、重者可以全网瘫痪。工作的过程中有些故障产生是由于环路产生的,下面我先为大家讲解几种环路的可能性:
一、接入层设备连接终端,终端连线错误。如把IP电话的两个接口接入同一个接入层交换机上,交换机不支持生成树。
二、接入层交换机生成树被关闭,交换机自己接线接成环路。如交换机自身1接口接到5接口 三、接入层到核心层交换机生成树配置错误。如在级联接口上配置了BPDU过滤 四、交换机之间光纤连接出现单向通信故障。如一根光线中断或光模块有故障。
五、生成树不兼容或生成树协议报文被拥塞丢弃。如思科的PVRST+和H3C的RSTP就有兼容性问题
网络故障发生后,如何才能判断故障是由环路引发的呢?举个例子,如果网络访问速度变慢,ping外网有严重丢包,ping内网有延时很大,故障的原因可能有多种。怎么才能断定这个故障是环路引发的呢,有三个现象可以用来做诊断,分别是:
一、广播风暴:链路上的广播包可以占满带宽,100M约30000~50000/pps。 二、多帧复制:抓包可以抓到同一个帧的多个副本,只限广播帧和组播帧
三、MAC地址表抖动:交换机上可以周期性的看到MAC地址翻滚(flapping)的日志
下面的实验就为大家演示这三个现象,这个实验有两种做法: 一、所有交换机都关闭STP,环路自动发生,就可以做相关验证。 二、配置BPDU过滤,引发交换机STP计算错误造成环路。 我这里用的是第二种方法,顺便一起学习下BPDU过滤的功能。
好啦废话太多了,现在正式开始:
第一、如下搭建拓扑(第一次做该实验建议原样搭建,可以避免出错)
Word 资料
.
设备启动后以后,交换机和PC要做一个简单配置: lsw1上的配置: sysname sw1 stp mode stp
stp instance 0 priority 4096 lsw2上的配置: 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 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 正常,无丢包
Word 资料
.
Welcome to use PC Simulator!
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=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:为何原因生成环路? [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
[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会严重丢包,如下所示:
Word 资料
.
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 --- 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 资料