在IBGP中跑IGP時遇到的問題:BGP只更新最優路由條目

最近在做BGP練習,在做下面的拓撲的時候遇到了一些問題,拓撲是這樣的

屏幕快照 2013-08-09 上午10.07.17

我這樣配置了網段:

其中

其中R1R2R3在AS1中,R4在AS4中,R5在AS5中

R5上宣告5.5.5.5和7.7.7.7所在網段,R1上宣告1.1.1.1所在網段。

在R1R2R3上跑OSPF,讓AS1 full-mesh但暫時不宣告24和35這兩個網段,這時候應該能在R1上看到bgp表中對於5.5.5.5和7.7.7.7各有兩個路徑並且都沒有寫入路由表

原因是沒有下一跳,這一點查看R1對應路由表可知

顯然,這是因為剛剛跑IGP(這裡跑的是OSPF)沒有宣告24和35這兩個網段。現在宣告之,果然相應的路由條目已經寫入,看起來運行正確:

再看看bgp表:

怎麼只各剩下一條?

這裡問題就出來了:冗餘哪裡去了。是被AD較高的IGP蓋住了麼?

顯然不用這條命令也能看出不是這麼回事。

如果這時候把IGP關掉,然後在R1上做靜態路由,這裡就正常;如果跑IGP,想要有下一跳路由就要宣告24和35網段,一旦宣告,冗餘的路徑就消失了。

事實上,這個是由於BGP的一個特性造成的:

在BGP中,發送路由更新條目並不是全部都發送,它只發送自己的最優路徑給鄰居。

然後,在AS1中為了形成full-mesh我們跑了BGP但同時R2也學到了35,也就是說在R2這個IBGP中到達R5的線路有兩條!

這樣就可以理解了,R2把自己的最優路徑發給了R1,結果和R3發送的是一樣的都是走拓撲圖中下邊的路徑(最優路徑)

所以,這時候R1和R3都只有各一條的7和5網段的路由。

本文由 落格博客 原創撰寫:落格博客 » 在IBGP中跑IGP時遇到的問題:BGP只更新最優路由條目

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/264.html

關於作者

R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *