1. 程式人生 > >BGP的選舉原則:十三軍規

BGP的選舉原則:十三軍規

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備註: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鄰居並與遠端對等體建立連接時采用的地址。
14:BGP自定義路徑選擇過程:BGP Cost Community(BGP成本團體)的擴展團體屬性提供了自定義最佳路徑選擇過程的方式。這個自動路徑選擇過程插入在BGP13條選路原則的第8條之後(優先到下一跳IGP-cost最低的路徑),首選成本值最低的路徑。但是可以使用bgp bestpath cost-community ignore來忽略這一步操作,配置時要在AS內或聯邦內統一配置,這樣可以避免出現路由選擇環路。
成本團體設置子句使用cost communityID(成本團體ID編號0到255)和cost number(成本編號值0到4,294,967,295)進行了配置。先比cost number後比較cost communityID,都是越低越優先.對於未用成本編號值專門配置的路徑,將指定默認成本編號值為2,147,483,647。 此值是0和4,294,967,295之間的中央點。這個屬性傳遞給鄰居時要有send-community命令.
這個團體屬性為非傳遞的擴展團體屬性。會傳遞給IBGP和聯邦IBGP和EBGP對等體,不會傳遞給EBGP對等體。?

BGP的選舉原則:十三軍規