常用的BGP選路原則,最快速的方法實現精準記憶

一、BGP 13條選路原則

1、W ,即屬性 Weight( 思科的私有屬性,本地有意義,越大越優先,默認情況下從鄰居學到的weight值爲0,只能用在in方向)

A、針對鄰居修改來自該鄰居的所有路由的Weight

B、明細的用Route-map修改某些路由

2、L ,即Local Preference (本地優先級)

通常情況用於離開本AS的選路,默認爲100,可以在IBGP鄰居之間傳遞,不會更新真正的EBGP鄰居

全局修改;Route-map

3、O ,即屬性Sourced(本地起源)

4、A,即屬性AS-PATH

5、O ,即“Origin”(起源代碼)

6、M,即屬性MED(多出口分離器)

7、E,屬性EBGP(優於IBGP)

8、M,即屬性代表到達更新源的Metric值小的進行下一跳

9、L,即屬性負載均衡

10、O,即屬性建立時間更久的EBGP鄰居

11、R,屬性更小的RID

12、C,屬性更短的Cluster-list

13、優選來自用最低地址建立BGP連接的鄰居的路由條目

【Next-hop 可達是選路的前提】

二、BGP選路拓撲

 

我們在R1和R2配置EIGRP,通告lo0和直連關閉彙總,並建立IBGP鄰居關係,同時R1和R2分別與R3建立EBGP鄰居關係. R3 BGP通告兩個lo (lo0 33.1.1.1 lo1 3.3.3.3)

R1:

 

R2:

 

R3:

 

1、使用Weight值來干預BGP選路

BGP優先權重最大的,默認從BGP鄰居學到的路由的Weight值爲0,從本設備宣告重分佈或者彙總路由的權重值爲32768,我們針對鄰居修改來自鄰居的所有路由的權重值,增大來自R2的所有路由權重值,使R1優先選擇R2作爲下一跳:

 

以上R1所有路由都選擇R2作爲下一跳,如果明細來干預選路,我們需要用到Route-map:

R1(config)#ip prefix-list 1 seq 5 permit 3.3.3.3/32

R1(config)#route-map Weight permit 10

R1(config-route-map)#match ip address prefix-list 1

R1(config-route-map)#set weight 2 ---設置權重爲2,即優於來自R2的路由,此時是有問題的

R1(config)#

router bgp 100

R1(config-router)#neighbor 13.1.1.3 route-map Weight in---只能在in方向調用

R1#clear ip bgp * so

 

此時R1上3.3.3.3的路由權重爲2已經優於R3,但是我們發現33.1.1.1的路由只有一個下一跳,這就是剛剛提到的問題,route-map不僅僅可以設置BGP的屬性,當匹配了前綴列表或ACL時一定要考慮其他的路由是否還需要收取,R1還需要收取來自R3的其他路由條目

修改:R1(config)#route-map Weight permit 20---只需要增加一個序列號,行爲是permit,那麼匹配條件爲任意

 

2、使用Weight值來干預BGP選路,控制R2 ,R1上33.1.1.1 路由選擇R2作爲下一跳

 

修改本地優先級後只更新給IBGP鄰居,也就是R2修改本地優先級後更新給R1,不會更新R3:

R2(config)#router bgp 100

R2(config-router)#bgp default local-preference 101 ----全局修改

 

我們使用Route-map調用,來自R3的3.3.3.3的路由R1直接走R3,R2走R2到達R3,只能在in方向生效,R1更改本地優先級後更新給IBGP鄰居R2:

 

查看R1和R2,R1 33.1.1.1通過R2到達R3,R2查看3.3.3.3路由通過R1到達R3:

 

R2查看收到R1更改的BGP本地優先級屬性,3.3.3.3路由本地優先級同樣更改

102:

 

3、O(Organization) Sourced,本地起源

R2一個環回口被本地通告時用Route-map修改爲Weight=0

R1重分佈靜態路由得到的2.2.2.2 更新

 

R2(config)#int lo 1

R2(config-if)#ip address 2.2.2.2 255.255.255.255

R2(config)#route-map Test

R2(config-route-map)#set weight 0

R2(config)#router bgp 100

R2(config-router)#network 2.2.2.2 ma 255.255.255.255 route-map Test

 

本設備生成的路由在Weight無效(0)當然本地優先級默認爲100情況下,是最優的。

(valid, sourced, local, best)

4、A (Asia)AS-Path ---越長越不優先

33.1.1.1選擇R2作爲下一跳,3.3.3.3選擇R3作爲下一跳

R1#sho access-lists

Standard IP access list 33

10 permit 33.1.1.1 (1 match)

R1#sho run | s route-map ASPATH

neighbor 13.1.1.3 route-map ASPATH in

route-map ASPATH permit 10

match ip address 33

set as-path prepend 200 200

route-map ASPATH permit 20

 

有一條隱含的命令bgp bestpath as-path ignore ---as-path ignore隱含的

R1(config-router)#bgp bestpath ?

compare-routerid Compare router-id for identical EBGP paths

cost-community cost community

igp-metric igp metric

med MED attribute

R1(config-router)#bgp bestpath a i ----方便記憶使用該命令進行操作,忽略as-path選路

 

忽略as-path選路後R1上到33.1.1.1路由直接到R3而沒有選擇AS-path短的路徑到R2:

 

5、起源代碼干預選路--O ,即“Origin”(起源代碼)

R1(config)#router bgp 100

R1(config-router)#no neighbor 13.1.1.3 route-map ASPATH in

R1(config-router)#no bgp bestpath as-path ignore

以上是刪掉干擾的因素

i---igp(通告、aggregate)

e--egp (不存在)

?--incomplete(重分佈產生的路由 )

i優於e,e優於?

需求:33.1.1.1選擇R2作爲下一跳

R1(config)#route-map ORIGIN pe

R1(config)#route-map ORIGIN permit 10

R1(config-route-map)#match ip address 33

R1(config-route-map)#set origin incomplete ----設置incomplete

R1(config)#route-map ORIGIN permit 20

R1(config-route-map)#router bgp 100

R1(config-router)#neighbor 13.1.1.3 route-map ORIGIN in ---針對鄰居R3設置incomplete

在以上4個選路都一樣情況下,i由於?所以選擇R2作爲下一跳:

關注分享該WX Gongzhonghao: 【huayinetwork】持續分享乾貨網絡技術,公開答疑!

同時爲方便廣大網絡愛好者一起共同學習交流,開設了華爲&思科網絡技術交流qun,qun裏上傳大量免費學習資料,定期技術答疑,歡迎廣大網絡愛好者進羣學習交流!
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章