rstp协议和stp协议对比_如何轻松定位STP故障?

本文介绍了如何定位和解决STP(Spanning Tree Protocol)网络故障,包括端口无法快速收敛和流量时断时续的问题。通过检查对端端口STP状态、端口工作模式、链路类型,以及端口是否持续收到TC报文等步骤,帮助读者理解和解决STP相关故障。
摘要由CSDN通过智能技术生成

如何轻松定位STP故障

作为IEEE标准协议,STP具有兼容性好、网络规划要求低、配置简单等优势,被广泛应用于二层网络中。当然,用得多了大家碰到的问题也就多了,STP有哪些故障现象呢,这些故障又是怎么排除的呢?小编这次就结合几个实际的STP故障,和大家分享一下STP故障解决之道。

小贴士

小伙伴们注意啦,本文中所指的STP是指广义的STP哦,包括STP协议、RSTP协议、MSTP协议。当需要对三者进行区分时,分别会叙述为STP模式、RSTP模式、MSTP模式。

故障现象1:使能STP的网络拓扑中出现链路故障或链路故障恢复后,业务流量恢复需要超过30秒,即端口无法快速收敛

定位思路

遇到这种问题时,小编给大家总结了如下的定位思路:

1) 确认对端端口是否使能STP;

2) 检查端口是否工作在STP模式;

3) 检查端口的链路类型是否为点对点。

定位步骤

具体的定位步骤,请小伙伴们往下瞅:

步骤1:确认对端端口是否使能STP

终端、服务器都不支持STP协议,如果这些设备和交换机连接,建议在交换机的端口上执行命令stp edged-port enable 开启边缘端口属性或执行命令stp disable去使能STP。

否则,当用户插拔链路连接介质,或先执行shutdown,再执行undo shutdown,重启端口后,因对端端口不会发送STP的协议报文进行协商,导致交换机上的端口经过2倍的Forward Delay(默认为15秒)时间后才能正常转发报文。

步骤2:检查端口是否工作在STP模式

全局配置为RSTP/MSTP模式的设备,当端口接收到STP模式报文后,端口可以自动迁移到STP模式下工作。

通过命令display stp interface查看端口实际的工作模式(查看Port STP Mode字段哦):

3eff29d83a81e807ef20227add24a203.png

由于STP模式不能提供快速迁移机制,端口状态变化后,需要等待2倍的Forward Delay(默认15秒)才能迁移到转发状态。

可以通过在交换机端口配置stp no-agreement-check命令来避免端口连接的上游设备模式为RSTP或者与MSTP实现存在私有性差异的厂商设备时,上游桥设备不能快速迁移问题。

当端口自动迁移到STP兼容工作模式后,以下情况端口无法自动迁移回原来的RSTP/MSTP模式,导致与其他运行RSTP/MSTP模式的设备无法互通。

· 运行STP模式的设备已关机或移走;

· 运行STP模式的设备修改为运行RSTP/MSTP模式。

因此需要在端口上执行stp mcheck命令,将端口手动迁移到RSTP/MSTP模式。

步骤3:检查端口链路类型是否为点对点

RSTP/MSTP模式提供了端口快速迁移机制:当两端均使能STP而且链路类型为点对点时,才能实现端口状态的快速迁移。

可以通过stp point-to-point { auto | force-false | force-true }命令配置链路类型,端口的链路类型默认为auto,即由RSTP/MSTP来检测与端口相连的链路是否是点对点链路,两端均工作在全双工模式是才可能成为点对点链路。

通过display stp interface查看端口的链路类型:

c8d49d1499c133022df48d39dbe11da4.png

Config=auto表示使用stp point-to-point命令配置的值为auto,Active=true表示当前工作在点对点链路类型。

步骤4:如果以上步骤还不能解决问题,小伙伴们莫急,可以收集相关信息联系华为工程师处理。

小贴士

在这里提醒下小伙伴们,在使能STP之前,别忘了检查参与STP计算的端口是否使能了bpdu enable命令。具体的请参见下面的表格。

c5ae24a721562540377c5e64e4e7fedc.png

另外,小伙伴们需要关注这种场景:因为中间设备或者传输的问题导致STP报文不能透传,这个可以通过display stp interface interface-type interface-number命令判断,查看BPDU Received计数。如果计数一直为零或者没有增加,则有可能是中间设备或者传输导致收不到STP报文。

故障现象2:使能STP的网络中,流量业务时断时续,设备CPU占用率高

定位思路

同样滴,小编给大家总结了如下的定位思路:

1) 端口是否持续收到TC报文;

2) 端口是否收到多种STP报文;

3) 设备是否存在报文攻击。

定位步骤

具体的定位步骤,请小伙伴们继续往下瞅:

步骤1:端口是否持续收到TC报文

执行命令display cpu-usage查看设备整机或接口板上占用CPU较高的任务,如果交换机接口板的PPI任务(适配层任务,维护芯片中各个接口的状态)CPU使用率较高,则排查端口是否持续收到大量TC报文。如果CPU利用率较高的任务中没有PPI任务,则按照步骤3进行处理。

通过如下命令行可查看端口收、发TC报文的情况:

· display stp tc-bpdu statistics:该命令从框式V100R006版本,盒式V100R005版本开始支持。

9ececfe95e7e4bab09090b8b7a3eea93.png

· display stp topology-change: 该命令从框式V100R006版本,盒式V100R005版本开始支持。

da59a6ba89263710455c6539c059f415.png

如果通过以上排查,确认端口持续收到大量TC报文,小伙伴们可以通过使用stp tc-protection命令,使能交换机对TC报文的保护功能,实现对TC报文的限制,以达到对设备进行保护的目的。另外,还可以通过stp tc-protection threshold命令指定Hello Time时间内处理TC类型STP报文的次数。

在收到TC报文转发刷新转发表项时,STP的收敛方式不同,交换机对ARP表项的处理方式不同,建议配置为normal

· 如果STP的收敛方式配置为fast,交换机将ARP表中的相关表项直接删除。

· 如果STP的收敛方式配置为normal,交换机将ARP表中相关表项的剩余存活时间置为0,对这些表项进行老化处理。

如果使能TC保护、修改STP收敛方式后,PPI任务的CPU利用率仍然较高,小伙伴们莫着急,请继续按照步骤2进行处理。

步骤2:端口是否收到多种STP报文

可以通过display stp history命令查看端口角色计算的历史记录,如果端口的角色不断更新,表明端口收到来自不同设备的报文,说明组网存在问题:

033dd50c4ca07f60da3b7bf39d4eeec5.png

同时,打开以下STP debug开关,采集故障期间交互的STP报文和事件信息,排除非法的STP报文。

5668ae5c0ce606586f34bd550c8c1d4c.png
a72be90a10ee74743c28a7baa389726f.png

步骤3设备是否存在报文攻击

网络中出现链路故障或报文攻击,可能导致端口长时间接收不到对端发送的STP协议报文,发生STP切换状态,例如会产生如下日志:

Jul 26 2012 02:26:40 Switch %%01MSTP/6/SET_PORT_DISCARDING(l):In MSTP process 0 instance 0, MSTP set port GigabitEthernet4/0/10 state as discarding.

Jul 26 2012 02:26:43 Switch %%01MSTP/6/SET_PORT_FORWARDING(l):In MSTP process 0 instance 0, MSTP set port GigabitEthernet4/0/10 state as forwarding.

IFNET/4/LINK_STATE:The line protocol [line-protocol] on the interface [interface-name] has entered the [state] state.

如果链路正常,通过display stp interface interface-type interface-number查看BPDU Received计数。

66a68aa39b6d25b999fde500934d78b5.png

如果计数没有周期增长,且端口下BPDU配置正确,则在端口入方向绑定流策略对STP报文进行流量统计,以确认对端设备是否周期发送了STP协议报文。配置和查看方法如下:

· 配置流策略:

692d4c2a62edd3d4c4b59db0b67fe776.png

· 查看流量统计:

3087e93a74c80a4344eeb3e66e86829c.png

· 如果通过流量统计查看到STP报文计数在周期增加,但使用命令display stp interface interface-type interface-number查看BPDU Received计数没有增加,那么需要再使用命令display cpu-defend statistics all查看是否有其他大量报文在上送CPU处理。

f03cb9407c6d500b427397bc9cae4d5b.png

小贴士

小伙伴们注意啦:在不同形态、不同版本的交换机上,使用display cpu-defend statistics all命令查看到的报文类型可能不同哦。

· 交换机通过CPCAR机制对上送控制平面的报文进行业务细化,分别进行限速与队列调度,以保护控制平面的安全。如果某些协议报文已经超过CPCAR的阈值出现丢包,通过命令display cpu-defend configuration all查看这些协议报文所在的队列是否与STP报文在同一队列:

b3cb6c4558aa1e318d0236516c7ac156.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值