有趣的广播风暴——使用eNSP模拟交换环路

digest [复制链接]
发表于 : 2012-12-27 10:41:18 最新回复:2018-09-19 12:01:27
32806 33
周常青
周常青  专家

我们知道交换网络如果发生环路后果非常严重,轻者可以让终端上网变慢、重者可以全网瘫痪。工作的过程中有些故障产生是由于环路产生的,下面我先为大家讲解几种环路的可能性:

一、接入层设备连接终端,终端连线错误。如把IP电话的两个接口接入同一个接入层交换机上,交换机不支持生成树。

二、接入层交换机生成树被关闭,交换机自己接线接成环路。如交换机自身1接口接到5接口

三、接入层到核心层交换机生成树配置错误。如在级联接口上配置了BPDU过滤

四、交换机之间光纤连接出现单向通信故障。如一根光线中断或光模块有故障。

五、生成树不兼容或生成树协议报文被拥塞丢弃。如思科的PVRST+和H3C的RSTP就有兼容性问题


网络故障发生后,如何才能判断故障是由环路引发的呢?举个例子,如果网络访问速度变慢,ping外网有严重丢包,ping内网有延时很大,故障的原因可能有多种。怎么才能断定这个故障是环路引发的呢,有三个现象可以用来做诊断,分别是:

一、广播风暴:链路上的广播包可以占满带宽,100M约30000~50000/pps。

二、多帧复制:抓包可以抓到同一个帧的多个副本,只限广播帧和组播帧

三、MAC地址表抖动:交换机上可以周期性的看到MAC地址翻滚(flapping)的日志


下面的实验就为大家演示这三个现象,这个实验有两种做法:

一、所有交换机都关闭STP,环路自动发生,就可以做相关验证。

二、配置BPDU过滤,引发交换机STP计算错误造成环路。

我这里用的是第二种方法,顺便一起学习下BPDU过滤的功能。


好啦废话太多了,现在正式开始:

第一、如下搭建拓扑(第一次做该实验建议原样搭建,可以避免出错)

有趣的广播风暴——使用eNSP模拟交换环路-1280737-1


设备启动后以后,交换机和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 

配置完成后,交换机会计算生成树,如下结果:


有趣的广播风暴——使用eNSP模拟交换环路-1280737-2

此时三台交换机可以看到除了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 正常,无丢包

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会严重丢包,如下所示:

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广播很多

有趣的广播风暴——使用eNSP模拟交换环路-1280737-3


二、多帧复制:抓包

同时可以看到很多重复的数据帧

有趣的广播风暴——使用eNSP模拟交换环路-1280737-4

三、MAC地址表抖动:交换机上日志

在交换机上查看日志信息,发现环路的三个交换机都有这个输出

 [sw2-GigabitEthernet0/0/2]
 Dec 27 2012 10:22:20-08:00 sw2 L2IFPPI/4/MFLPVL***ARM: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.
 Dec 27 2012 10:28:33-08:00 sw2 L2IFPPI/4/MFLPVL***ARM: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:
 -------------------------------------------------------------------------------
 
 
 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  
 -------------------------------------------------------------------------------
 
 
 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:如何减少或阻止此类因配置错误导致的环路,有什么技术方案?


欢迎大家能做下这个实验并能积极讨论,交换里这个实验感觉还是很重要滴……





  • x
  • 常规:

点评 回复

奔跑的胖子
奔跑的胖子 发表于 2017-4-28 16:10
666 
跳转到指定楼层
沐雨听风
沐雨听风   发表于 2013-5-16 20:34:00 已赞(0) 赞(0)

楼主的帖子个个都是精华,必须给顶上去,我先来顶
  • x
  • 常规:

点评 回复

周常青
周常青  专家 发表于 2012-12-27 10:45:25 已赞(3) 赞(3)

能不能申请加精这个帖子,鼓励我一下,我下期为大家写《超好玩的路由环路内容有:

  1. 点到点直连环路
  2. 静态路由环路
  3. RIP自动汇总环路
  4. RIP收敛环路
  5. OSPF ISIS重分发环路
  6. 环路消除


  • x
  • 常规:

点评 回复

华为认证
华为认证  专家 发表于 2012-12-27 12:31:44 已赞(0) 赞(0)

好贴,必须加精啊
  • x
  • 常规:

点评 回复

Yoga
Yoga  专家 发表于 2013-9-6 09:17:41 已赞(0) 赞(0)

好贴,回头自己搭一下试试
  • x
  • 常规:

点评 回复

海之南
海之南   发表于 2013-9-7 21:51:27 已赞(0) 赞(0)

崇拜楼主,楼主说的两个讨论的问题有答案吗?
  • x
  • 常规:

点评 回复

qingqing6
qingqing6  精英 发表于 2012-12-31 17:32:23 已赞(0) 赞(0)

谢谢楼主发布的好帖,跟着楼主给出的配置做了一遍交换机的环路试验,确实不错,增长了我的知识,希望能够看见路由环路的文章,再此先谢谢楼主的付出了。版主给楼主精华呀!
  • x
  • 常规:

点评 回复

gWX152500
gWX152500   发表于 2013-1-8 11:08:15 已赞(0) 赞(0)

期待楼主后续环路实验、、、

  • x
  • 常规:

点评 回复

visitma
visitma   发表于 2013-11-1 13:25:43 已赞(0) 赞(0)

请问楼主:

在这个实验中,LSW2的g0/0/2的接口上开启BPDU过滤功能,为什么会生成环路?能否详细解释一下?谢谢!

  • x
  • 常规:

点评 回复

周常青
周常青  专家 发表于 2013-11-1 13:43:47 已赞(0) 赞(0)

回复 14 楼

开了以后,此接口上不发BPDU,对方就认为这边接的是电脑,就把原先阻塞的接口转成转发状态了。

  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录