R5参考配置:
access-list 10 permit 70.70.70.0 0.0.0.255
access-list 20 permit 7.7.7.0 0.0.0.255
access-list 30 permit 70.70.70.0 0.0.0.255
!
route-map as-path-med permit 10
match ip address 20 30
set as-path prepend 65005
route-map as-path-med permit 20
match ip address 10
set metric 100
route-map as-path-med permit 30
R5(config)#router bgp 65005
R5(config-router)# neighbor 35.1.1.3 route-map as-path-med out
R5#show run | s ro
router eigrp 100
network 56.0.0.0
network 57.0.0.0
no auto-summary
router bgp 65005
no synchronization
bgp log-neighbor-changes
neighbor 35.1.1.3 remote-as 65003
neighbor 35.1.1.3 route-map as-path-med out
neighbor 56.1.1.6 remote-as 65005
neighbor 56.1.1.6 update-source Ethernet0/1
neighbor 56.1.1.6 next-hop-self
neighbor 57.1.1.7 remote-as 65005
neighbor 57.1.1.7 update-source Ethernet0/2
neighbor 57.1.1.7 next-hop-self
//修改成这样的语法:
route-map as-path-med permit 10
match ip address 10
set metric 100
route-map as-path-med permit 20
match ip address 20 30
set as-path prepend 65005
route-map as-path-med permit 30
//可以发现策略对7.7.7.0/24生效,而且对于70.70.70.0/24的metric值也生效,但是对于as-path却没有改变;
这样也不对了。
//
当一个 match 语句有多个条件的时候只要匹配其中的一个条件则整句 match 语句就算匹配成功
//再修改策略
R5(config)#no route-map as-path-med
R5(config)#
route-map as-path-med permit 10
R5(config-route-map)#
match ip address 10
R5(config-route-map)#
set metric 100
R5(config-route-map)#
set as-path prepend 65005
R5(config-route-map)#
route-map as-path-med permit 20
R5(config-route-map)#
match ip address 20
R5(config-route-map)#
set as-path prepend 65005
R5(config-route-map)#
route-map as-path-med permit 30
R5(config-route-map)#exit
R5(config)#
no access-list 30 permit 70.70.70.0 0.0.0.255
显然,R3通过R5学到的关于70.70.70.0/24的路由的metric和as-path都发生改变,但是R1到达
70.70.70.0/24的metric值依然没变,而且在as-path都一致的情况下,继续向下比较选路原则,最终选择了R2(走右边)。那又是什么原因呢?又该怎么做呢?
需要强调的是,MED值的作用范围是两个AS之间有效,所以R3通告给R1是metric值仍然是0,不会改变,这一点不同于AS-path的全局性,所以在R3上抓取
70.70.70.0/24,修改metric,并告知R1,才能实现。
R3(config)#access-list 10 permit 70.70.70.0 0.0.0.255
R3(config)#route-map med permit 10
R3(config-route-map)#match ip address 10
R3(config-route-map)#set metric 200
R3(config-route-map)#route-map med permit 20
R3(config)#router bgp 65003
R3(config-router)#no neighbor 35.1.1.5 route-map med out
R3(config-router)#neighbor 13.1.1.1 route-map med out