S12508F-AF和上行路由器互联
故障时现场在S12508F-AF上ping上行路由器直连地址不通
1、远程上去查看,发现S125F与上行路由器的互联接口H5/0/34口底层被stp异常block了。
====debug port mapping chassis 1 slot 5====
[Interface] [Unit] [Port] [Name] [Combo?] [Active?] [IfIndex] [MID] [Link]
=========================================================================
HGE5/0/34 3 17 ce17 no no 0x55b 55 up
====bcm slot 3 chip 3 ps====
ena/ speed/ link auto STP lrn inter max loop
port link duplex scan neg? state pause discrd ops face frame back
ce1( 1) up 100G FD SW No Forward None F CAC2C 12284
ce5( 5) up 100G FD SW No Forward None FA CAC2C 12284
ce9( 9) !ena 100G FD SW No Block None FA CAC2C 12284
ce13( 13) !ena 100G FD SW No Block None FA CAC2C 12284
ce17( 17) up 100G FD SW No Block None FA CAC2C 12284
2、后续经过研发内部复现分析,确定该问题是一个软件问题,简单来说就是聚合线程和stp线程下发block的时序存在问题,具体原因如下:
(1)聚合使能stp,聚合成员有选中变化,导致聚合成员有block或者unblock的操作,stp和lag线程均会操作端口的block状态;
(2)一般来讲,stp unblock和trunk unblock的操作是trunk在前,stp在后,trunk线程在调用完函数DRV_STP_TrunkSetPortUnBlock设置端口的unblock状态后,中间又执行了函数后DRV_TRUNK_Port_Block_Set_Ext才对端口的block状态进行了记录,而stp线程刚好在调用DRV_STG_SetPortState设置端口unblock时,由于trunk对端口的block状态刚好还未记录上,导致stp线程认为端口是block的,因此并未执行unblock的操作;
(3)stp和trunk的执行顺序是trunk block,trunk unblock,stp block,stp unblock,其实就是stp unblock在执行时,trunk unblock的状态还未记上,从而导致stp unblock漏设了unblock的状态
本次故障主要是当前软件版本对聚合线程和stp线程下发block的时序存在问题,目前已经出R2820H01补丁解决了,建议升级到R2820H01补丁解决。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作