BGP路徑屬性之as-path 實驗分析
BGP路徑屬性之AS-path
作用:用來標識路由經過的AS路徑
BGP路由每經過一個AS,就會將這個AS號加入自已的AS-Path中。
當一個路由器收到兩條相同目的地的路由,它將選擇AS路徑最短的路由。
例如:檢視R1身上的bgp database 可以看到從R5身上通告出來的172.16.0.1/32路由條目
R1#show ip bgp
Network Next Hop Metric LocPrf Weight Path * 172.16.0.1/32 3.3.3.3 0 234 5
i *> 2.2.2.2 0 234 5 i * 172.16.1.1/32 3.3.3.3 0 234 5 i *> 2.2.2.2 0 234 5 i * 172.16.2.1/32 3.3.3.3 0 234 5 i *> 2.2.2.2 0 234 5 i * 172.16.3.1/32 3.3.3.3 0 234 5 i *> 2.2.2.2 0 234 5 i *> 192.168.0.1/32 0.0.0.0 0 32768 i可以看到172.16.0.1/32此路由經過 234和 1 兩個自治系統,其中一條來自R3,一條來自R2
可以看到Next Hop為2.2.2.2左邊有個">",表示最優路徑,傳給172.16.0.1的流量向R2傳送
只能在EBGP鄰居之間傳路由時進行改動,對IBGP鄰居傳來的路由改不了
通過AS-path屬性可以進行防環:當一臺路由器收到一條BGP路由,會檢視路由的AS-path屬性,如果發現有自己的AS號碼,就會丟棄這條路由。
GNS3實驗分析路徑屬性as-path
實驗部署
要求:172.16.0.1的路由預設走的是R2,通過AS-path屬性改為走R3
控制:
EBGP鄰居起作用,所以不能在R2與R4之間配置,只能在R1與R2之間配置本實驗以在R2上配置為例:
第一步,通過Prefix-list抓取路由
R2(config)#ip prefix-list AS_PATH permit 172.16.0.1/32
第二步,通過route-map呼叫prefix-list並設定策略
R2(config)#route-map AS_PATH permit 10
R2(config-route-map)#match ip address prefix-list AS_PATH
R2(config-route-map)#set as-path prepend 8 8 8 //通過路由策略增加as-path 8 8 8 三個AS號
R2(config)#route-map AS_PATH permit 20
第三步,針對鄰居1.1.1.1呼叫應用策略
R2(config)#router bgp 234
R2(config-router)#nei 1.1.1.1 route-map AS_PATH out //此路由策略是是從R2發出發給R1,所以方向應為out
再次檢視R1的bgp database
R1#show ip bgp
Network Next Hop Metric LocPrf Weight Path *> 172.16.0.1/32 3.3.3.3 0 234 5 i * 2.2.2.2 0 234 8 8 8 5 i * 172.16.1.1/32 3.3.3.3 0 234 5 i *> 2.2.2.2 0 234 5 i * 172.16.2.1/32 3.3.3.3 0 234 5 i *> 2.2.2.2 0 234 5 i * 172.16.3.1/32 3.3.3.3 0 234 5 i *> 2.2.2.2 0 234 5 i *> 192.168.0.1/32 0.0.0.0 0 32768 i
可以看到172.16.0.1的最優路徑修改為R3即Next Hop為3.3.3.3
Next Hop為2.2.2.2的Path被修改成 234 8 8 8 5,
對比這兩條路徑,R1自然選擇as-path較短的R3路徑為最優路徑。