BGP選路原則


BGP 的選路原則: 前提( 路由的下一跳可達、關閉同步、路由沒有被懲罰、前綴沒有被入境路由策略拒絕
1: weight 先比較管理權重( 越大越優先 ),這個參數 本地有效 。雖然 Weight 屬性是 Cisco 私有的 , 但是很多廠商也是內置該屬性 ( 但無法顯示及修改 ), 這樣就保證了本地始發的路由是最優先的 , 因為本地始發路由的 Weight 32768, 從其他 BGP Peer 學習過來的路由的 Weight 0.
2: local-pref 本地首選項( 越大越優先 ),這個參數在 AS 內傳遞 Local Preference 屬性只能在 IBGP Peer 之間傳遞 , 如果在 EBGP Peer 之間收到的路由的路徑屬性中攜帶了 Local Preference, 則會觸發 Notifacation 報文 , 造成會話中斷。
3 路由器本地始發的路徑優先 。本地始發的路徑特點是 next-hop 0.0.0.0 weight 32768 。可以使用不同 的方式比如 network redistribute 等,那么這些方式之間是存在優先順序的原則: network>redistribute>aggregate ,但該原則是不會作為 BGP 路由選路策略的。
4: 具有 最短 AS-path 路徑 (就是 AS-PATH AS 最少的優先)的路由優先。但是可以配置 bgp bestpath as-path ignore 來忽略這一步。注意: 在做聚合路由時,使用 as-set 后產生的 AS-Path 列表中的 {} 里的 AS 號長度只算一個 AS 號的長度 而在聯盟內的 AS-Path 列表中的 () AS 號長度不做計算依據! 不同方向的 route-map 對於插入的 AS 號的位置是不同的。
5 比較 origin 屬性,具有 最低 origin 源碼 。三種不同的 Origin 屬性的優先順序 : IGP>EGP>incomplete , Origin 屬性會一直在 BGP 路由中攜帶 。很少使用設置 Origin 屬性作為 BGP 路由選路策略。
6 評估 MED MED 值最小的路徑勝出 )。默認情況下, 只比較來自同一 AS BGP 路由的 MED ( 就是 AS-sequence 中第一個 AS 相同才比較 ) 。命令 bgp always-compare-med 對於所有路徑都比較 MED ,不考慮他們是否來自同一個 AS 。如果使用了這個選項要在 AS 內都這么配置(避免路由選擇環路)。(任何開頭為 as-confed-sequence 的都被忽略比較 MED 值,如果配置了 bgp always-compare-med 那么會進行比較)。
如果 接收的路由沒有 MED (沒有 MED 屬性而並非收到的 MED 0 ),那么 就把它的度量指定為 0 ,如果打上 bgp bestpath med missing-as-worst 那么就把它度量指定為 4294967294 (最大值) ,主要是用來考慮對舊標准的兼容。
MED 備注: Cisco 建議在所有新網絡部署中均啟用 bgp deterministic-med 命令。對於現有的網絡,必須同時在所有路由器上部署此命令,或者逐步部署此命令,但要注意避免可能出現的內部   BGP (iBGP)  路由環路。當 BGP 收到多個通往特定目標的路由時 , 它會按收到路由的相反順序列出它們(從最新到最舊 ). 然后, BGP  按以下順序成對比較路由:從最新的條目開始,並向最舊的條目移動(從列表頂部開始,向下移動)。   例如,將   entry1    entry2  進行比較。   隨后,將這兩個中的較好者與   entry3  進行比較,依此類推。當啟用 bgp deterministic-med 命令時,會打亂這個順序將來自同一個自治系統的路由分組到一起,然后比較每一組的最佳條目。 Show ip bgp  可以看出效果。
如果激活了 bgp bestpath med confed 命令只有 AS-Confed-sequence 的路徑才比較 MED 值。如果一條路徑包含了任何外部自制系統,那么就不進行比較。
7: EBGP 優於 IBGP EBGP 優於聯邦 EBGP (聯邦 eBGP 和聯邦 iBGP 不具有可比性,不比較。因為聯邦 ebgp 和聯邦 ibgp 都被看做內部路徑沒有差別)。如果都是 EBGP 對等體收到的條目或者都是從 IBGP 對等體收到的條目或者分別從聯邦 EBGP 和聯邦 IBGP 對等體收到的條目則繼續向下一步進行。
8: BGP 優先選擇 到下一跳 IGP 度量值最低 的路徑。(不管都是 EBGPpeer 還是都是 IBGPpeer 還是分別是聯邦 EBGP 和聯邦 IBGP 都比較這一步)
9: 當前面的 8 條選路原則都無法優選出最優路由時 , 並且在 BGP 進程下面配置了 maximum-paths [ibgp] <1-16> , 那么將執行 等價負載均衡 , 如果沒有 ibgp 關鍵字 , 那么只會對 EBGP 對等體收到的路由執行等價負載均衡 ,如果不配置 maximum-paths 那么將進行到下一條選路原則。
不管是 IBGP 還是 EBGP 受到的路由要實現負載均衡 必須 as-path 完全相同 ,包含 as-set 的和聯邦子 AS 的也必須完全相同, 也就是 () {} 里面也要完全相同 ,如果有聯邦 EBGP 對等體和聯邦 IBGP 對等體收到的路由他們兩個之間不可以負載均衡。
負載均衡 show ip bgp x.x.x.x 明細才可以看到,有 multipath 標記的都會裝入路由表 (show ip route)
10: 當多條都是從 EBGP 收到的路由時(外部路徑時,聯邦 EBGP 對等體不算,因為是內部路徑), BGP 優先使用最先收到的路由條目 (最老的路徑)。這能最小化路由抖動。如果 BGP 進程下使用 bgp bestpath compare-routerid 命令 , 則忽略本原則,跳到第 11 條選路原則;當多條路由具有相同的 router-id 時也忽略本原則,當沒有當前最佳路由時,也忽略本原則,例如提供最佳路徑的鄰居 down 掉。(僅 ebgp 路由)
11: BGP 優選具有最低的 router-id 的路由 。如果路徑包含 RR 屬性,那么在路徑選擇過程中就用 originator-id 來代替 router-id 進行比較(就是 originator-id 之間進行比較)。
12: 如果 orginator-id 相同,那么 BGP 優選 cluster-list 長度最短的路徑 。這種情況只出現在 RR 的環境中。
13: 首選來自於 最低鄰居地址( neighbor 后指定的鄰居地址) 的路徑, 越小越優先 。這個地址是在 BGP 對等體上配置並使用的地址,這個地址是本地對等體路由器在其上配置 TCP 鄰居並與遠端對等體建立連接時采用的地址。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM