锐捷S7805C VRRP组网efmp进程CPU高

关键字:

STP、根保护、TC变化、efmp_frame进程CPU高、直连不通、LACP协商异常、S7800C_RGIS 12.6(2)B0203

一、故障现象描述

使用两台锐捷S7805C替换友商汇聚交换机,在应急演练重启其中一台S7805C后出现lacp协商不起来以及efmp_frame进程CPU持续高的问题,将设备业务线拔除空载状态CPU高的现象持续2个小时以上,转发面业务未受影响,仅上送CPU的控制面报文协商异常,如设备管理卡顿、新加入的LACP端口无法协商、直连交换机无法ping通。

场景拓扑如下

拓扑介绍

两台S7805C使用VRRP组网,作为下联终端的网关,两台设备与下联设备运行生成树协议。业务VLAN关联在实例1和实例2中,其他剩余VLAN关联到默认实例0里。实例1的主网关在S78C1上,优先级设置为0,同时实例0的优先级也设置为0,实例1的备份网关在S78C2上,优先级设置为4096,同时实例0的优先级设置也为4096;实例2的主网关在S78C2上,优先级设置为0,备份网关在S78C1,优先级设置为4096。接入交换机的优先级均设置为61440。

端口介绍

两台锐捷汇聚交换机上联使用三层路由口与思科核心设备互联,两者之间运行OSPF协议,下联与接入交换机使用trunk互联,下联接入的端口开启生成树的跟保护功能。正常情况下要将接入交换机连接锐捷S78C2设备的端口BLK掉。

故障现象

故障现象1:两台锐捷S7805设备替换完友商设备后,业务测试无异常,客户执行应急演练将其中S78C1设备断电重启,断电重启后两台交换机的efmp_frame进程CPU高达93.9,设备管理非常卡顿:
故障现象2:两台设备之间的聚合端口LACP协商异常:
故障现象3:查看S78C2交换机的下联端口全部处于BKN状态
故障现象4:S78C1的30端口配置为三层路由口,笔记本配置同网段后测试直连无法ping通

二、故障排查分析

步骤一、排查efmp_frame CPU高的问题

efmp_frame(快转主进程)CPU高故障过程,收集日志发现有大量的TC BPDU的日志频繁打印,交换机收到大量的TC BPDU会触发清MAC地址,设备上大量持续的TC BPDU触发频繁的清MAC地址,从而导致efmp_frame进程CPU高,触发故障现象1。

步骤二、排查LACP协商异常问题

故障期间收集日志发现S78C1上有报LACP远端协商失败的异常日志,怀疑efmp_frame进程CPU高、LACP上送CPU的控制面报文出现异常导致。其中LACP虽然有单独的进程做管理和控制,但LACP物理端口的link状态协商是需要上送efmp主进程,因端口的link状态未更新继而引发LACP协商超时,直连地址不通也是这个原因导致。
S78C1应急演练重启后收到大量TC报文的触发原因是S78C2设备上下联端口开启了根保护,在S78C1重启的瞬间因为efmp_frame进程高导致LACP协商超时。

步骤三、排查S78C2下联设备置为BKN问题

S78C1和S78C2之间的聚合口AG1口未UP,生成树根桥S78C1发送的携带根桥信息的BPDU只能经由接入设备发送到S78C2,截图如下:
而S78C2在实例0、1上生成树优先级都劣于S78C1,故S78C2在接口上收到携带根桥S78C1的BPDU时,使能根保护功能(RootGuard)时RootGuard会生效将接口BLOCK掉(BNK*状态),同时锐捷交换机实现机制是实例0收到高优先级的BPDU报文会将所有实例的端口均置为BKN状态,触发故障故障现象3。

三、故障根因说明

efmp_frame进程CPU持续高的根因为交换机重启后efmp_frame主进程瞬间高触发LACP协商异常,接着触发S78C2下联口的根端口状态置为BKN,锐捷交换机的根端口BKN转发机制是将收到TC BPDU会向其他所有口扩散发出去,环境中STP TC BPDU报文一直扩散未能终结,导致设备一直触发清MAC地址。而MAC地址处理是在efmp_frame进程中进行,所以efmp_frame进程会持续CPU高,属于软件设计缺陷。
其中,TC BPDU一直扩散不会终结的原因是,环境中交换机S78C2下联口RootGuard生效,锐捷交换机收到TC BPDU会向其他所有口扩散发出去,导致环路破除,原本接入上联的Alternate口会切换成Desg口,致使整网无Alternate口,都是可以进行TC BPDU扩散和发送的Desg(包括RootGuard生效的Desg BNK*)和Root口,这种情况加剧了TC BPDU报文的整网持续扩散。过程举例如下图所示:

四、故障解决方案

临时规避方案:
  1. S7805C之间互联的动态链路聚合改为静态链路聚合,避免启机时设备因短时间CPU高而导致LACP协商不起来、进而引发后续现象的发生。
  2. 在汇聚S7805c上关闭根保护功能。
彻底解决办法:
开发版本解决,因efmp_frame主进程高当前版本暂无优化空间,通过优化TC BPDU扩散模块处理,避免大量TC BPDU扩散及清除MAC引发efmp_frame进程CPU持续高。

五、故障关键日志收集

一、efmp快转进程CPU高

show cpu
show processes cpu
show spanning-tree summary
debug support
execute diagnose-cmd top -H

二、三层路由口直接笔记本,协议UP直连不通

ter moni debug syslog limit time 0 number 0 y debug efmp packet ping sip A.B.C.D dip A.B.C.D counter 10 show efmp diagnosis st

三、LACP协商异常,查看快转和通路

第一步:1机配置基于AG的镜像抓包,笔记本启动抓包。同时 ter moni debug syslog limit time 0 number 0 y debug efmp packet filter dst_mac 0180.c200.0002 counter 20 show efmp diagnosis st show lacp summary 第二步:2开机,观察LACP协商情况,协商正常属于未复现就到这结束,协商异常继续。 第三步:2机配置基于AG的镜像,抓包。 第四步:1机和2机分别收集以下信息: debug efmp packet filter dst_mac 0180.c200.0002 counter 20 show efmp diagnosis st show lacp summary show lacp info port all show lacp counter show int counters summary show lsm interface debug syslog limit time 20 number 1000 //最后关闭。
阅读剩余
THE END