Linux

Quagga 不斷宣布下行路線

  • July 21, 2010

我已經使用 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,那麼您還有其他故障模式,它們都不好。

引用自:https://serverfault.com/questions/162682