1. 程式人生 > 其它 >BGP選路原則

BGP選路原則

BGP選路原則

BGP的選路原則:前提(路由的下一跳可達、關閉同步、路由沒有被懲罰、字首沒有被入境路由策略拒絕) 1:weight先比較管理權重(越大越優先),這個引數本地有效。雖然Weight屬性是Cisco私有的,但是很多廠商也是內建該屬性(但無法顯示及修改),這樣就保證了本地始發的路由是最優先的,因為本地始發路由的Weight為32768,從其他BGPPeer學習過來的路由的Weight為0. 2:local-pref本地首選項(越大越優先),這個引數在本AS內傳遞。LocalPreference屬性只能在IBGPPeer之間傳遞,如果在EBGPPeer之間收到的路由的路徑屬性中攜帶了LocalPreference,則會觸發Notifacation報文,造成會話中斷。 3:路由器本地始發的路徑優先。本地始發的路徑特點是next-hop為0.0.0.0,weight為32768。可以使用不同的方式比如network或redistribute等,那麼這些方式之間是存在優先順序的原則:network>redistribute>aggregate,但該原則是不會作為BGP路由選路策略的。 4:具有最短AS-path路徑(就是AS-PATH中AS最少的優先)的路由優先。但是可以配置bgpbestpathas-pathignore來忽略這一步。注意:在做聚合路由時,使用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相同才比較)。命令bgpalways-compare-med對於所有路徑都比較MED,不考慮他們是否來自同一個AS。如果使用了這個選項要在AS內都這麼配置(避免路由選擇環路)。(任何開頭為as-confed-sequence的都被忽略比較MED值,如果配置了bgpalways-compare-med那麼會進行比較)。 如果接收的路由沒有MED(沒有MED屬性而並非收到的MED為0),那麼就把它的度量指定為0,如果打上bgpbestpathmedmissing-as-worst那麼就把它度量指定為4294967294(最大值),主要是用來考慮對舊標準的相容。 MED備註:Cisco建議在所有新網路部署中均啟用bgpdeterministic-med命令。對於現有的網路,必須同時在所有路由器上部署此命令,或者逐步部署此命令,但要注意避免可能出現的內部BGP(iBGP)路由環路。當BGP收到多個通往特定目標的路由時,它會按收到路由的相反順序列出它們(從最新到最舊).然後,BGP按以下順序成對比較路由:從最新的條目開始,並向最舊的條目移動(從列表頂部開始,向下移動)。例如,將entry1與entry2進行比較。隨後,將這兩個中的較好者與entry3進行比較,依此類推。當啟用bgpdeterministic-med命令時,會打亂這個順序將來自同一個自治系統的路由分組到一起,然後比較每一組的最佳條目。Showipbgp可以看出效果。 如果激活了bgpbestpathmedconfed命令只有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對等體收到的路由他們兩個之間不可以負載均衡。 負載均衡showipbgpx.x.x.x明細才可以看到,有multipath標記的都會裝入路由表(showiproute)。 10:當多條都是從EBGP收到的路由時(外部路徑時,聯邦EBGP對等體不算,因為是內部路徑),BGP優先使用最先收到的路由條目(最老的路徑)。這能最小化路由抖動。如果BGP程序下使用bgpbestpathcompare-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鄰居並與遠端對等體建立連線時採用的地址。