MPLS BGP VPN由于Router-ID配置不当导致的路由振荡

发布时间:  2012-07-27 浏览次数:  72 下载次数:  0
问题描述
在MPLS BGP VPN中,PE(NE80E)与CE(ED500)之间运行多实例OSPF协议,PE上创建了两个VRF多实例OSPF。但因ED500目前版本不支持MCE功能,无法运行多实例OSPF协议,只能运行全局OSPF协议。配置完成后,发现CE从PE学习到的VPN路由表始终不能稳定,路由下一跳出现振荡。
告警信息

处理过程
处理过程在原因分析中已说明,不再重述。
根因
1、检查OSPF邻居状态,没有发现异常,设备上也没有OSPF的相关告警。
2、怀疑OSPF协议与MP-IBGP协议出现路由环路,检查路由协议配置,只有BGP重发布到OSPF,而OSPF并没有重分布到BGP中,所以排除路由环路的可能性。
3、检查PE上OSPF多实例的数据配置,发现两个OSPF进程配置的Router-ID(均为LoopBack0)相同,修改PE上OSPF的Router-ID地址为VRF接口IP,故障依旧。
4、重启CE上的OSPF进程,故障依旧。
5、重启PE上的OSPF进程,问题解决。
问题解决后,分析故障原因:
1、上述的组网方式,相当一个三台路由器彼此首尾相连运行OSPF协议的组网:A---B---C,但存在的问题是A与C的OSPF进程Router-ID相同,即OSPF网络中存在Router-ID冲突,通过display ospf retrans-queue发现各路由器上均存在路由重传列表,在CE路由器上查看OSPF链路状态数库,相关LSA一直处于更新、计算、LSA重传请求状态,由此引发计算出的外部路由也同样处于振荡状态,于是路由表始终无法稳定。
2、当修改了PE上OSPF进程Router-ID后,重启CE上的OSPF进程,并不能使PE上Router-ID生效,必须在修改了Router-ID的路由器即PE上重启OSPF进程,才能使修改后的Router-ID生效。
建议与总结
1、在CE与PE之间运行OSPF多实例时,最好使用互联接口地址作为OSPF进程的Router-ID,因为PE与CE之间一般以单链路的互联,当此链路中断后,OSPF邻居自然断开,使用Loopback地址作为Router-ID,其意思不大。
2、在ED500系列防火墙目前版本无法支持MCE功能的情况下,当它作为MPLS/VPN的CE时,可以优先考虑采用静态路由。
3、修改了OSPF进程的Router ID后,一定要重启本机的OSPF进程,因为OSPF的Router-ID不会因为重启了邻居的OSPF进程而生效。

END