1、故障现象

BGP路由学习存在震荡,路由不断添加删除,LSA不断刷新,CPU占用高。

注:BGP的路由震荡也可以分为本地始发路由震荡和邻居通告路由震荡,如果开启了BGP路由震荡抑制功能,EBGP邻居通告的路由出现震荡将被抑制,不再下发给核心路由表。

 

2、故障可能原因

本地始发路由震荡通常是本地的IGP协议路由或直连路由出现震荡造成的,可以根据对应模块的手册进行排查,否则可能是软件故障。

1) 邻居通告路由的震荡,原因比较复杂。邻居通告的路由需要经过本地的处理才能被BGP路由表学习到,因此本地IGP路由震荡、邻居路由震荡或者软件故障都可能引起此类故障。

 

3、故障处理步骤

注意:DEBUG操作有风险(最坏情况可能需要重启设备才能恢复),需要客户知晓风险并同意后才能收集,建议在低峰期操作(若是核心设备,必须更加慎重评估)!若故障排查还需要抓包,DEBUG和抓包最好同时收集!

步骤1、检查邻居通告报文数量是否异常

多次show ip bgp summary查看,对比邻居通告的报文数量是否异常增加

在默认配置情况下,BGP Keepalive超时时间为60秒,也即正常会每一分钟收到一个报文。如果发现邻居接收到的报文递增速度明显超过这个频率,可以认为是邻居通告路由震荡。

 

也可以通过show ip bgp neighbor查看邻居详细报文统计,如下:

如果显示接收到UPDATE报文数量持续增加,表示邻居设备一直在通告路由更新,导致本地震荡。

 

步骤2、判断本地路由计算是否震荡

如果通过上一步确认不是邻居通告造成路由震荡,则可以认为是本地路由计算发生震荡

通过show ip bgp A.B.C.D 查看发生震荡的BGP路由,多次show 查看震荡前后路由的状态变化情况。大致有两种:

1)        BGP路由下一跳在有效和无效状态不断切换,这种一般是由于下一跳对应的IGP路由发生震荡导致。

可通过show ip route A.B.C.D查看BGP下一跳对应的IGP路由状态,多次show查看是否在震荡。

2)        BGP路由有多个下一跳,路由优选在这多个下一跳之间来回切换。

a) 这种也有可能是BGP路由的下一跳有效状态发生变化导致,同样通过show ip route A.B.C.D查看下一跳对应的IGP路由进行确认。

b) 或者是BGP路由一直在更新变化,更新后影响原来的计算结果。

 

可以通过对比多次show ip bgp A.B.C.D的结果,确认路由是否发生变化。如果有变化,在排除邻居设备通告路由更新的前提下,一般只能是两种:

i) 本地有配置重分发,重分发路由一直在添加删除,可以打开debug ip bgp nsm通过调试信息进行确认。

ii) 软件BUG,导致BGP在路由扫描时,不断修改路由的属性。此时需要show ip bgp A.B.C.D收集是什么属性不断发生变化,联系相关支持人员。

 

步骤3、判断邻居通告造成路由震荡

如果是邻居通告造成路由震荡,需要到邻居设备上进行排查,为何不断通告路由更新。也可能分两种:

1) 邻居设备也是从更上一级接收到路由更新,需要逐级向上排查。

2) 邻居设备本地路由计算发生变化,需要重复上述步骤2进行排查。

 

4、故障信息搜集

收集log信息(注意时间开关和时间的准确性)提供后台分析。

[设备debug信息、配置、软硬件版本、设备log、操作log]

基础信息收集

show version

show version slots

show run

show log

show ip interface brief

show interface status

show interface counter sum  

show interface counter  rate

show interfaces counters errors

show interfaces counters

show arp counter

show arp

show arp detail

show mac-address-table

show mac-address-table counter

show ip route

show ip route count

show memory

dir

show vlan

show cpu

show cpu-protect mb

show cpu-protect

show cpu-protect slot X(对于S76、S86、S12000交换机要求获取每个线卡的CPP统计信息2次)

show spanning-tree

show spanning-tree summary

 

BGP相关信息收集

show ip bgp neighbor A.B.C.D

show bgp ipv4 unicast neighbor

show bgp ipv6 unicast neighbor

show bgp vpnv4 unicast all neighbor

show ip bgp summary

show ip/ipv6 route

show bgp ipv4 unicast A.B.C.D

show bgp ipv6 unicast X:X::X::X/XX

show bgp vpnv4 unicast all A.B.C.D