商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
信箱 E杂志
您的位置:首页 > 网络专区 > 正文       

华为交换机STP与环路检测冲突

作者:网管世界  2007-07-16   

    中国银行福建省分行选择华为3Com公司具有线速交换能力的系列局域网交换机Quidway S8016S3050组建大楼局域网。为了保证网络的可靠性,使用两台QuidWayS8016作为核心交换设备来进行整个大楼局域网络的三层交换处理,之间运行VRRP协议进行负载均担和备份保护。楼层交换机采用QuidWayS3050设备,每台交换机与两台核心交换机组成光纤环路,启用RSTP协议进行链路备份。图1是网络拓扑图。

故障情况简单描述
  不久福建省中行的网络出现故障,赶到5楼机房,发现8016B上有很多RSTP不断重新计算以及下连3050C的光口不断Forwarding/Discarding迁移的信息。此时8016B上也有VRRP主备倒换的告警信息,因为上次已经减少VRRP组数并错开各个VRRP组的Hello报文时间间隔,故此时VRRP切换并不集中。由于同时有大量生成树协议的BPDU报文上送CPU重新计算以及因生成树计算错误导致的部分VRRP组主备切换,两台8016上的CPU利用率很高,网络基本不可用。首先断电8016B,恢复业务,再仔细分析日志信息,并询问网络改动,发现故障情况与新增一台3050C有关系。断开新增的3050C,恢复双机环境,网络运行正常。初步判断此次网络动荡与新增的3050C有关。

故障原因分析
  1.新加的3050C没有升级,存在STP方面的缺陷。
  3楼新增加的3050C是原来的备用机,使用的是0019版本,没有升级到中行目前在用的0022版本,该版本存在缺陷,可能会丢弃部分STP协议报文不上送CPU处理,导致RSTP计算错误和网络形成广播风暴。从0020版本以后已经解决,目前中行在用的0022版本也不存在该问题。因此我们建议把3楼的3050C升级之后再接入到网络中。
  2.3楼新增3050C没有关闭上行端口的环路检测功能(loopback-detection)华为3Com交换机上有环路检测功能,可以配合生成树协议(STP/RSTP/MSTP)有效地检测网络中的环路,生成树协议主要用于检测拓扑环路,环路检测功能可以有效检测端口下的环路。环路检测功能是基于端口和VLAN的,当检测到端口存在环回后,首先会上报LOG,提示某个端口在某个VLAN中存在环回情况,并设置该端口不再学习MAC地址,端口的流量和其他端口隔离,从而进入一个该端口下面存在环路而不影响其他端口的状态。但与此同时,一些正常的协议报文,比如生成树协议的BPDU报文,也无法通过了,这样会导致生成树协议计算错误。
  同时,如果STP计算错误,没有把相应的链路Discarding掉,就会引起环路检测功能检测到网络中存在的环路,并会把收到环路检测报文的端口UP/Down一次,这将引起全网RSTP协议的重新计算,影响到所有的交换机,耗费大量的CPU资源。在没有关闭上行口环路检测功能的3楼新增3050C上的告警信息也证实了上述判断。
  如果形成如图2所示的环路,可能会导致环路检测报文从一个上连口出去,从同一台设备的另一个上连口返回,出现告警信息。

  如果形成如图3所示的环路,可能会导致环路检测报文从一个上连口出去,从同一台设备的另一个上连口返回,即出现如告警信息。

  3.STP重新计算和VRRP主备倒换,导致设备CPU利用率高和网络动荡,由于STP协议报文和VRRP报文都要上送到CPU处理,占用大量的CPU资源。当新增3050C的环路检测功能和STP缺陷导致整网的STP计算错误,网络设备不断重新计算STP,并发生端口不断迁移,导致网络发生较大动荡,这时候CPU利用率在60%~65%,甚至更高,这样就可能影响正常数据转发。
   
故障排除步骤
  1.查看设备故障现象,发现RSTP协议计算导致端口不断迁移,以及VRRP切换,CPU利用率60%~65%,判断应为环路所致,在Down掉一些端口无效后,为确保业务不受影响,断电8016B,恢复网络和正常业务。
  2.拔下8016B的光纤和电缆,再裸机加电,查看8016B的日志,分析故障原因,发现出现故障时候有大量的RSTP端口迁移,而且故障时间与下午增加3楼3050C的时间吻合。
  3.登录到3楼新增加的3050C,发现其没有升级也没有关闭上行口的环路检测功能,其日志中有环路告警,可能因该交换机的STP报文处理缺陷和环路检测功能导致RSTP计算错误,最终引起设备CPU利用率高以及网络动荡。
  4.断开3楼新增的3050C,再逐步恢复8016B的光纤和电缆连接,网络正常。观察至今一直稳定。
  5.升级新增加的3050C,关闭上行链路的环回链路检测功能、配置调度算法保证BPDU报文的发送,再接入到网络中。

后期设备维护建议
  1.建议升级3楼新增的3050C到0022版本或者更新的版本。目前3楼新增加的3050C使用的版本过老,对于STP协议报文处理有所不足,而且不支持IP+Port+MAC的绑定功能,建议升级到统一的0022版本,或者更新的0025版本。
  2.建议关闭3楼新增3050C上连光口的环路检测功能(Loopback-Detection)。华为交换机包含了环路检测功能,用于检测端口环路(比如交换机某个端口通过Hub或者直接网线产生的环路,STP协议是无法检测和避免的)。一般来说,环路检测和STP之间是不冲突的,但是如果在STP的干路上出现了单环路(从某个端口发送出去的报文,又从本端口收上来),则可能导致STP异常(因为出现单环路的端口会被隔离掉,STP报文不能正常转发,而且此时STP协议不知道)。STP干路上出现单环路的原因,可能是某个VLAN内存在单环路。
  建议在上行口的接口模式下,配置如下命令:
  undo loopback-detechtion enable   
  关闭端口的环路检测功能。
  3.建议在3楼交换机上配置WRR(Weighted Round Robin)加权轮循调度算法。交换机的端口支持4个或8个输出队列,WRR队列调度算法在队列之间进行轮流调度,保证每个队列都得到一定的服务时间,可以避免低优先级队列中的报文(比如STP中的BPDU报文)可能长时间得不到服务。
  这样可以有效避免因为楼层交换机负载大而引起BPDU报文丢失的问题。
  建议在全局模式下,配置如下命令:
  queue wrr 25 25 25 25
  4.建议两台8016升级到5339版本。
  福建中行两台8016当前使用的版本为VRP Software, Version 3.10(NSSA), Release 5330,运行时间超过了一年(Quidway S8016 Uptime is 54  Week,0 Day,5 Hour,23 Minute),当前的版本是5339,该版本已经在全国大量使用,对很多方面进行了优化,对VRRP也支持得更好,建议近期将两台8016升级到5339版本。

   相关链接:环路检测功能
  基于端口,VLAN来进行环回检测,默认每隔30s检测一次。可以调整检测间隔从5秒到300秒。只有启动了环回检测功能的端口才会自动进行环回检测。缺省情况下,端口的环回检测功能是Enable状态。
  命令loopback-detection control enable,此命令可以启动Trunk和Multi端口在检测到环回后的受控功能,如果系统发现Trunk或者Multi端口上某个VLAN存在环回,会使端口受控。该命令对Access端口没有影响,即Access端口存在环回时,都会进入受控状态。
  在Trunk和Hybrid端口上配置了命令loopback-detection per-vlan enable后,系统会对端口上所有的VLAN进行环回检测。配置了undo loopback-detection per-vlan enable,系统只对端口的缺省VLAN进行环回检测。
  缺省情况下,系统对Trunk和Hybrid端口上所有的VLAN进行环回检测。当检测到端口存在环回后,首先会上报Long,提示某个端口在某个VLAN中存在环回情况。如果配置了端口要进入受控状态,则会设置该端口不再学习MAC地址,端口的流量和其他端口隔离。从而进入一个该端口下面存在环路而不影响其他端口的状态。

推荐配置
  设备的上行端口一般是配置成Trunk,建议直接关闭上行端口的环路检测功能(请在上行端口下配置 [undo] loopback-detection per-vlan enable),或者打开环回检测,但是配置该端口不受控(端口下配置[undo] loopback-detechion control enable),这样,当该端口检测到某个VLAN存在环路后,仅仅上报环回的Trap,但不会使端口进入受控状态。这样,一些VLAN的环路则不会影响别的VLAN中的业务。建议直接关闭上行口的环路检测功能。对于下行端口和用户端口,打开环路检测,且配置端口受控。

1
有问必答
【内容导航】
第1页:华为交换机STP与环路检测冲突
©版权所有。未经许可,不得转载。
[责任编辑:华海波] [我要挑错]
相关产品
本文相关产品
   没有相关产品