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 表沒有得到我認為應該從斑馬那裡得到的更新。
如果我正確理解了這個問題,那麼您有一條到網路的 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.
這是因為如果您在 BGP 中導出 IGP 資訊,您可以輕鬆獲得更多的抖動。我們在網際網路上已經有足夠的路由攪動,將路由資訊從 IGP 重新分配到 BGP 被認為是不好的做法。BGP 不是 IGP,不要濫用它;)
此外,我真的看不出有什麼好的案例可以從 Internet 中提取路由(它會導致抖動,並且您有可能會被抑制數小時或數天),除非如果這條特定路由消失了,您最終會陷入分裂的 AS 情況並希望保護自己免受這可能導致的奇怪路由問題。(在這種情況下,您應該考慮是否希望路由器保持線上狀態。Split-AS 情況很糟糕!)
正確的解決方案 (TM) 是讓路由保持暢通並儘可能穩定,無論您的 IGP 正在做什麼。如果您失去與網路的連接,只需在本地丟棄流量。如果通往網路的 IGP 路由出現故障,請確保不要將其循環回您的傳輸提供商。
基本規則是“永遠不要更改您的 BGP 公告,除非它是整個 Internet 都必須知道的事情”。您的 IGP 抖動並不是 Internet 其餘部分關心的問題。
編輯:
據我了解,您的網路如下所示:
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,那麼您還有其他故障模式,它們都不好。