CCNP:簡單解析bgp路由在igp路由表中抖動
![]() |
基本配置:
r1:
-router bgp 9806 |
router bgp 4808 |
nei 20.20.20.20 ebgp-multihop |
此時r1還需可達20.20.20.20,因此在r1配置
ip route 0.0.0.0 0.0.0.0 1.1.1.2 //因為as9806是個末節點,所以只配置了默認路由,這也是導致下面問題出現的原因
配置以上命令后bgp鄰居關系成功建立,r2把20.20.20.21/32(next-hop:20.20.20.20) 的update發送給r1,r1收到更新把20.20.20.21/32后放入bgp和igp路由表,此后r1會在查詢igp路由表20.20.20.21的下一跳20.20.20.20是否可達,發現20.20.20.20可通過默認路由到達,最終20.20.20.21/32(next-hop:20.20.20.20)會保留在igp路由表中。
問題出現!!!
這時,管理員為了讓r2為了便于管理,就把r2的loopback0通過bgp發布出去
network 20.20.20.20 mask 255.255.255.255 |
r2向r1發布新的update,20.20.20.20/32(next-hop:20.20.20.20),r1收到update后把路由裝入bgp和igp路由表。此時r1在igp路由表中查詢20.20.20.20/32的下一跳仍為20.20.20.20(最長匹配,因此也就不會再繼續查詢默認路由了),這明顯不合乎邏輯(自己不能信任自己),因此將所有下一跳為20.20.20.20的路由從igp路由表中刪除,也就是20.20.20.20/32和20.20.20.21/32。過一會r2仍會發送新的update,r1又會重復剛才的動作,最終導致了通過bgp學到路由在igp路由表中一直振蕩。
解決辦法:
在r1上配置
ip route 20.20.20.20 255.255.255.255 1.1.1.2 |
當r1在收到20.20.20.20/32的update后,裝入bgp和igp路由表,查詢20.20.20.20的下一跳通過上面配置的靜態路由可達,r1保持此路由在igp路由表中,因此就不會出現上面bgp路由在igp路由表中振蕩的結果了。
最后注意:
1.當對方用來和自己建立bgp鄰居關系用的接口和自己不是直連時,一定要配置一條靜態路由指向對方的bgp neighbor地址
2.對方使用loopback建立bgp鄰居關系時,自己一定要配置一條ebgp-multihop。
【編輯推薦】