特性攻略1轻松处理STP故障的那几招作为IEEE标准协议,STP具有兼容性好、网络规划要求低、配置简单等优势,被广泛应用于二层网络中。当然,用得多了大家碰到的问题也就多了,STP有哪些故障现象呢,这些故障又是怎么排除的呢?小编这次就结合几个实际的STP故障,和大家分享一下STP故障解决之道。小伙伴们注意啦,本文中所指的STP是指广义的STP哦,包括STP协议、RSTP协议、MSTP协议。当需要对三者进行区分时,分别会叙述为STP模式、RSTP模式、MSTP模式。1.1故障现象1:使能STP的网络拓扑中出现链路故障或链路故障恢复后,业务流量恢复需要超过30秒,即端口无法快速收敛1.1.1定位思路遇到这种问题时,小编给大家总结了如下的定位思路:1)确认对端端口是否使能STP;2)检查端口是否工作在STP模式;3)检查端口的链路类型是否为点对点。1.1.2定位步骤具体的定位步骤,请小伙伴们往下瞅:特性攻略2步骤1:确认对端端口是否使能STP终端、服务器都不支持STP协议,如果这些设备和交换机连接,建议在交换机的端口上执行命令stpedged-portenable开启边缘端口属性或执行命令stpdisable去使能STP。否则,当用户插拔链路连接介质,或先执行shutdown,再执行undoshutdown,重启端口后,因对端端口不会发送STP的协议报文进行协商,导致交换机上的端口经过2倍的ForwardDelay(默认为15秒)时间后才能正常转发报文。步骤2:检查端口是否工作在STP模式全局配置为RSTP/MSTP模式的设备,当端口接收到STP模式报文后,端口可以自动迁移到STP模式下工作。通过命令displaystpinterface查看端口实际的工作模式(查看PortSTPMode字段哦):特性攻略3由于STP模式不能提供快速迁移机制,端口状态变化后,需要等待2倍的ForwardDelay(默认15秒)才能迁移到转发状态。可以通过在交换机端口配置stpno-agreement-check命令来避免端口连接的上游设备模式为RSTP或者与MSTP实现存在私有性差异的厂商设备时,上游桥设备不能快速迁移问题。当端口自动迁移到STP兼容工作模式后,以下情况端口无法自动迁移回原来的RSTP/MSTP模式,导致与其他运行RSTP/MSTP模式的设备无法互通。运行STP模式的设备已关机或移走;运行STP模式的设备修改为运行RSTP/MSTP模式。因此需要在端口上执行stpmcheck命令,将端口手动迁移到RSTP/MSTP模式。步骤3:检查端口链路类型是否为点对点RSTP/MSTP模式提供了端口快速迁移机制:当两端均使能STP而且链路类型为点对点时,才能实现端口状态的快速迁移。可以通过stppoint-to-point{auto|force-false|force-true}命令配置链路类型,端口的链路类型默认为auto,即由RSTP/MSTP来检测与端口相连的链路是否是点对点链路,两端均工作在全双工模式是才可能成为点对点链路。通过displaystpinterface查看端口的链路类型:特性攻略4Config=auto表示使用stppoint-to-point命令配置的值为auto,Active=true表示当前工作在点对点链路类型。步骤4:如果以上步骤还不能解决问题,小伙伴们莫急,可以收集相关信息联系华为工程师处理。在这里提醒下小伙伴们,在使能STP之前,别忘了检查参与STP计算的端口是否使能了bpduenable命令。具体的请参见下面的表格。另外,小伙伴们需要关注这种场景:因为中间设备或者传输的问题导致STP报文特性攻略5不能透传,这个可以通过displaystpinterfaceinterface-typeinterface-number命令判断,查看BPDUReceived计数。如果计数一直为零或者没有增加,则有可能是中间设备或者传输导致收不到STP报文。1.2故障现象2:使能STP的网络中,流量业务时断时续,设备CPU占用率高1.2.1定位思路同样滴,小编给大家总结了如下的定位思路:1)端口是否持续收到TC报文;2)端口是否收到多种STP报文;3)设备是否存在报文攻击。1.2.2定位步骤具体的定位步骤,请小伙伴们继续往下瞅:步骤1:端口是否持续收到TC报文执行命令displaycpu-usage查看设备整机或接口板上占用CPU较高的任务,如果交换机接口板的PPI任务(适配层任务,维护芯片中各个接口的状态)CPU使用率较高,则排查端口是否持续收到大量TC报文。如果CPU利用率较高的任务中没有PPI任务,则按照步骤3进行处理。通过如下命令行可查看端口收、发TC报文的情况:displaystptc-bpdustatistics:该命令从框式V100R006版本,盒式V100R005版本特性攻略6开始支持。displaystptopology-change:该命令从框式V100R006版本,盒式V100R005版本开始支持。如果通过以上排查,确认端口持续收到大量TC报文,小伙伴们可以通过使用stptc-protection命令,使能交换机对TC报文的保护功能,实现对TC报文的限制,以达到对设备进行保护的目的。另外,还可以通过stptc-protectionthreshold命令指定HelloTime时间内处理TC类型STP报文的次数。在收到TC报文转发刷新转发表项时,STP的收敛方式不同,交换机对ARP表项的处理方式不同,建议配置为normal:如果STP的收敛方式配置为fast,交换机将ARP表中的相关表项直接删除。如果STP的收敛方式配置为normal,交换机将ARP表中相关表项的剩余存活时间置为0,对这些表项进行老化处理。如果使能TC保护、修改STP收敛方式后,PPI任务的CPU利用率仍然较高,小伙特性攻略7伴们莫着急,请继续按照步骤2进行处理。步骤2:端口是否收到多种STP报文可以通过displaystphistory命令查看端口角色计算的历史记录,如果端口的角色不断更新,表明端口收到来自不同设备的报文,说明组网存在问题:同时,打开以下STPdebug开关,采集故障期间交互的STP报文和事件信息,排除非法的STP报文。步骤3设备是否存在报文攻击网络中出现链路故障或报文攻击,可能导致端口长时间接收不到对端发送的STP协议报文,发生STP切换状态,例如会产生如下日志:Jul26201202:26:40Switch%%01MSTP/6/SET_PORT_DISCARDING(l):InMSTPprocess0instance0,MSTPsetportGigabitEthernet4/0/10stateasdiscarding.特性攻略8Jul26201202:26:43Switch%%01MSTP/6/SET_PORT_FORWARDING(l):InMSTPprocess0instance0,MSTPsetportGigabitEthernet4/0/10stateasforwarding.IFNET/4/LINK_STATE:Thelineprotocol[line-protocol]ontheinterface[interface-name]hasenteredthe[state]state.如果链路正常,通过displaystpinterfaceinterface-typeinterface-number查看BPDUReceived计数。如果计数没有周期增长,且端口下BPDU配置正确,则在端口入方向绑定流策略对STP报文进行流量统计,以确认对端设备是否周期发送了STP协议报文。配置和查看方法如下:配置流策略:特性攻略9查看流量统计:如果通过流量统计查看到STP报文计数在周期增加,但使用命令displaystpinterfaceinterface-typeinterface-number查看BPDUReceived计数没有增加,那么需要再使用命令displaycpu-defendstatisticsall查看是否有其他大量报文在上送CPU处理。特性攻略10小伙伴们注意啦:在不同形态、不同版本的交换机上,使用displaycpu-defendstatisticsall命令查看到的报文类型可能不同哦。交换机通过CPCAR机制对上送控制平面的报文进行业务细化,分别进行限速与队列调度,以保护控制平面的安全。如果某些协议报文已经超过CPCAR的阈值出现丢包,通过命令displaycpu-defendconfigurationall查看这些协议报文所在的队列是否与STP报文在同一队列:特性攻略11步骤4:如果以上步骤还不能解决问题,小伙伴们可以收集相关信息联系华为工程师处理哦。本期的故障定位招数已经给大家分享完了,相信小伙伴们再遇到STP故障时,可以轻松应对了。以后再有类似的故障,小编再给大家分享哦,拜拜。~~~