Quagga 不断宣布下行路线

Quagga 不断宣布下行路线

我已经使用 qugga 在两个路由器上设置了 BGP。当我关闭包含我正在通告的 IP 块的接口时,zerba 会从其表中删除该路由,但 bgpd 会继续通告它。我可以看到它仍然通过相邻的 BGP 表以及show ip bgp nei 172.16.14.1 ad正在执行通告的路由器的命令进行通告。此接口包含正在通告的完整路由,因此不存在聚合。

正如任何人之前遇到过这种情况一样......它似乎从根本上破坏了路由协议的主要功能......

更新:
因此在路由器中我有以下 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 获得我认为应该获得的更新。

答案1

如果我理解正确的话,您有一个到网络的 IGP(或本地)路由,并且您通过 BGP 宣布了该路由。当路由在 IGP(或本地)中消失时,您希望 BGP 提取该路由。

如果是这样的话,那你就做错了(TM),Quagga 不会让你轻易做到这一点。摘自网络命令手册:

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. 

这是因为,如果您将 IGP 信息导出到 BGP,则很容易出现抖动。互联网上已经有足够多的路由流失,将路由信息从 IGP 重新分配到 BGP 被认为是不好的做法。BGP 不是 IGP,不要将其滥用为 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,您将面临其他故障模式,而且这些模式都不是好事。

相关内容