正如任何人之前遇到过这样……它似乎从根本上打破了路由协议的主要功能……
更新:
所以在路由器中我有以下的BGP表.
so-rt1# show ip bgp BGP table version is 0,local router ID is 172.16.14.1 Status codes: s suppressed,d damped,h history,* valid,> best,i - internal,r RIB-failure,S Stale,R Removed Origin codes: i - IGP,e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 0.0.0.0 12.12.12.12 200 0 5555 i * 15.15.15.0/24 172.16.14.2 0 100 0 i *> 0.0.0.0 0 32768 i Total number of prefixes 2
对于我宣布的15.15.15.0/24网络,直接连接路由(最后一个条目)是首选的路由.如果我关闭了保存15.15.15.0/24的接口,不仅直接连接的路由没有从BGP表中删除,它仍然是首选路由.因此,在关闭该接口后,BGP表保持完全相同.
Zebra知道直接连接的15.15.15.0/24路由不再存在.当界面启动时我用show ip route看到它,当我关闭它时输入就消失了.所以我认为问题是BGP表在某种程度上没有得到我认为应该来自zebra的更新.
解决方法
如果是这样你就错了(TM),而且Quagga不会让你轻易做到这一点.从network命令的手册:
BGP: network A.B.C.D/M This command adds the announcement network. router bgp 1 network 10.0.0.0/8 This configuration example says that network 10.0.0.0/8 will be announced to all neighbors. Some vendors' routers don't advertise routes if they aren't present in their IGP routing tables; bgp doesn't care about IGP routes when announcing its routes.
这是因为如果在BGP中导出IGP信息,可以轻松获得增加的振荡.我们已经在互联网上有足够的路由流失,并且将路由信息从IGP重新分配到BGP中被认为是不好的做法. BGP不是IGP,不要滥用它;)
此外,我无法真正看到从互联网上拉出路线的任何好的情况(它会导致拍打,你可能会受到几个小时或几天的挫折),除非你最终陷入分裂AS的情况,如果这条特定的路线消失了并希望保护自己免受可能导致的奇怪路由问题. (在这种情况下,您应该考虑是否希望路由器保持在线状态.分离AS的情况很糟糕!)
正确的解决方案(TM)是让路线保持尽可能稳定,无论您的IGP在做什么.如果丢失了与网络的连接,只需在本地丢弃流量即可.如果到网络的IGP路由已关闭,请确保不将其循环回到传输提供商.
基本规则是“永远不要改变你的BGP公告,除非它是整个互联网必须知道的东西”.您的IGP正在徘徊不是互联网其他人关心的问题.
编辑:
根据我的理解,您的网络看起来像这样:
Provider (AS 5555) --------------------- Provider (AS 5555) (12.12.12.12) | | eBGP |eBGP | | Router1---------15.15.15.0/24---------------Router2 172.16.14.1 172.16.14.2 | iBGP | --------------------------------------------
而你的问题是,如果你把Router1上的接口转向15.15.15.0/24,你希望它停止宣布网络,所以你将数据移到172.16.14.2.这种类型的自动更改你的对等策略不是你通常做的事情,据我所知,不是Quagga支持的东西.相反,您需要通过IGP重新路由数据并使您的对等方保持静态.如果您要对对等进行更改,则可以更改MED(MULTI_EXIT_DISC)以将流量引导到正确的路由器.
请注意,如果取下15.15.15.0/24拆分您的AS,则会有其他故障模式,这些模式都不是很好.