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路径为最优路径。
点击查看更多BGP路径属性!