2016-12-07 70 views
0

我想編寫一個EBGP對揚聲器的簡化版本。對於進口政策,我想確保我進口任何新的路線沒有任何循環。我建立的路由表看起來像這樣。你如何找到一個BGP路由環路

10.0.0.0/8 3 8 11 
10.8.0.0/8 4 
192.168.0.0/16 3 5 6 
192.168.43.0/24 (local) 

我的問題是,你如何檢查路由環路?

現在我已經嘗試了多種方法,並且我認爲正確的方式來查看是否會出現任何循環,那就是在路由表中使用全部路由來構建DAG。然後檢查新路線是否在圖形中創建一個循環。但我不明白,如果在創建DAG時,我應該只關注某些前綴。

+0

爲了清楚起見,是'3 8 11'和'3 5 6'的CIDR網絡的AS路徑後? –

回答

0

在EBGP對環路檢測是基於ASPATH。您不能接受包含您自己的ASN的ASPATH的路由。

這在RFC4271定義爲:

如果BGP路由的AS_PATH屬性包含AS循環中,BGP路由 應從第2階段決策功能排除在外。 AS迴路 通過掃描完整AS路徑(如 AS_PATH屬性中所述)並檢查本地系統的自治系統編號是否未出現在AS路徑中來完成檢測。配置爲在AS路徑中接受具有自己的自治 系統號的路由的BGP 說明的操作不在本文檔的討論範圍之內。

提示:如果你想實現一個BGP Speaker,我建議你仔細閱讀所有與RFC4271相關的RFC。

至於IBGP對沒有環路檢測需求爲IBGP對音箱將不會轉發的iBGP學到的路由給另一個IBGP揚聲器。你需要有連接在全網所有的IBGP對揚聲器,使用路由反射器或聯盟。關於這些原則

配方(對IBGP):http://www.rogerperkin.co.uk/routing-protocols/bgp/bgp-confederation-vs-route-reflector/