由于未配置策略延迟生效导致修改路由策略过程中出现邻居中断

发布时间:  2014-06-30 浏览次数:  127 下载次数:  0
问题描述
某局点调整BGP邻居的出口策略,为route-policy rp1新增节点node 50时,发生邻居中断。
处理过程

【分析思路】

1、路由策略只会影响路由过滤结果,本身不会触发重建邻居。因此首先要根据notification错误码确认邻居中断的具体原因。
若是
4/0,表示发notificationhold超时,需确认是否存在大报文不通等问题导致路由发布阻塞;若是5/0,需确认对端的断连原因;若是6/1,表示发notification侧路由超限,C厂商是3/1,则确认策略变化是否会造成过多的路由被发布。

本案例只讨论路由超限的情况。

2、路由超限是由于发布的路由过多,因此需确认修改后的策略是否会导致过多的路由通过策略。

3、如果策略本身没有问题,需查看操作记录,确认每条命令在输入完成后是否会出现非预期的过滤条件。

 

【故障分析】

1、查看日志,断连原因是对端路由超过上限,其上限为2000

 

2、查看路由策略,原先有node 10和node 20,满足条件的都只有几条路由。准备新增的node 50通过ip-prefix prefix_export做过滤,能满足条件的路由也只有几条,不至于导致路由超限。

route-policy rp1 permit node 50
 if-match ip-prefix prefix_export
 apply community 100:100

 

3、查看日志分析操作过程,在输入"route-policy rp1 permit node 50"BGP邻居立刻中断,并没有输入后面的"if-match ip-prefix prefix_export"

May 30 2014 01:11:48 CX600-03 %%01SHELL/5/CMDRECORD(l)[1928925]:Record command information.(Task=VT0 , Ip=192.168.200.81, User=**, Command="route-policy rp1 permit node 50")

May 30 2014 01:11:48 CX600-03 %%01BGP/3/STATE_CHG_UPDOWN(l)[1928927]:The status of the peer 10.144.2.66 changed from ESTABLISHED to IDLE. (BgpAddressFamily=Public)

 

据了解当时客户是手动输入。于是,问题原因基本清晰:客户手动输入"route-policy rp1 permit node 50"后,继续输入下一条命令。但是,普通用户敲一条命令需要几秒甚至几十秒,在if-match命令输入完毕之前这数秒期间,相当于新增的node 50只是一个不做任何限制的permit所有路由的空节点,因此所有路由都被发往对端,而发布2000条路由只需不到1秒,对端立刻路由超限导致邻居中断。

根因
客户在未配置策略延迟生效的情况下,手动添加新节点,在输入if-match命令之前,相当于路由策略不做任何限制,所有路由都发往对端,因此对端路由超限触发邻居中断。
解决方案
建议修改route-policy之前先配置 route-policy-change notify-delay xxx命令。即策略修改后延迟xxx秒生效,给后面输入if-match等命令留出足够时间。
建议与总结
路由策略是由几条命令作为一个整体共同构成一个节点,但手动输入每条命令后都会间隔数秒才能输完下一命令,导致已输完的命令先生效,未输完的命令不生效,产生非预期的后果。
因此,建议修改route-policy之前先配置
route-policy-change notify-delay

END