|
一、Route-map概述
1.技术背景

那么就可以使用route-map这个工具,也就是说,我们可以在执行重发布的时候,关联一个route-map,来实现我刚才所说的这个功能。
2.Route-map的使用场景
- 重分发期间进行路由过滤或执行策略
- PBR(策略路由)
- NAT(网络地址转换)
- BGP中的策略部署
- 其他用途
3.Route-map初相识

那么在每一个序列中,我们就可以来定义供策略部署的两个元素:匹配条件(match语句)、执行动作(set语句)。你可以定义多个条件,当条件被匹配时,就会去执行set指定的相关动作(set语句并非必须,例如如果route-map仅仅用于匹配感兴趣流量,那么就不需要set语句了)。在route-map被调用后,匹配动作将会从最小的序列号开始执行,如果该序列号中的条件都被匹配了则执行set命令,如果条件不匹配,则切换到下一个序列号继续进行匹配动作。
4.Route-map的特点
- 使用match命令匹配特定的分组或路由,set修改该分组或路由相关属性。
- Route-map中的每个序列号语句相当于于访问控制列表中的各行。
- Route-map默认为permit,默认序列号为10,序列号不会自动递增,需要指定序列号
- 末尾隐含deny any
- 单条match语句包括多个条件时,使用逻辑or运算;多条match语句时,使用逻辑and运算。
二、配置命令
1.创建route-map
- route-map
route-map test permit/deny 10
route-map test permit/deny 20
2.定义匹配条件
match ip address 匹配访问列表或前缀列表
match length 根据分组的第三层长度进行匹配
match interface 匹配下一跳出接口为指定接口之一的路由
match ip next-hop 匹配下一跳地址为特定访问列表中被允许的那些路由
match metric 匹配具有指定度量值的路由
match route-type 匹配指定类型的路由
match community 匹配BGP共同体
match tag 根据路由的标记进行匹配
3.定义set动作
set metric 设置路由协议的度量值
set metric-type 设置目标路由协议的度量值类型
set default interface 指定如何发送这样的分组
set interface 指定如何发送这样的分组
set ip default next-hop指定转发的下一跳
set ip next-hop 指定转发的下一跳
set next-hop 指定下一跳的地址,指定BGP的下一跳
set as-path
set community
set local-preference
set weight
set origin
set tag
default 关键字优先级低于明细路由
三、配置示例
1.路由重发布时关联route-map

例如这个例子,我们希望注入进来后,192.168.1.0和192.168.2.0这两条路由的metric变为2跳,3.0变为3跳。
access-list 1 permit 192.168.1.0
access-list 1 permit 192.168.2.0
access-list 2 permit 192.168.3.0
route-map test permit 10
route-map test permit 20
!
router rip
2.路由重发布时关联route-map (典型案例)

Ip route 10.1.1.0 255.255.255.0 10.1.254.1
Ip route 10.1.2.0 255.255.255.0 10.1.254.1
R1的配置如下:
access-list 1 permit 10.1.1.0
access-list 2 permit 10.1.2.0
route-map cisco permit 10
route-map cisco permit 20
router ospf 100
R2的配置如下:
access-list 1 permit 10.1.1.0
access-list 2 permit 10.1.2.0
route-map cisco permit 10
route-map cisco permit 20
router ospf 100
这样就实现了需求。
四、其他细节
1.验证match interface 的作用1
一个route-map语句中,如果没有match语句,则匹配所有
Match interface :To distribute any routes that have their next hop out one of the interfaces specified, use the match interface command in route-map configuration mode中文上的理解是,
match interface 匹配的是下一跳出接口是这个接口的路由条目

2.验证match interface 的作用2

3.验证set ip default next-hop

先保证R1、R3到10.1.1.0是有路由的,在R2上做测试:
- 如果R2上没有任何的动、静态路由,且配置如下:
access-list 1 permit 10.1.1.0 0.0.0.255
route-map test permit 10
则PC ping 10.1.13.0,数据走R1;
- 如果在上述基础上,R2增加到R3的默认路由,则PC到10.1.13.0网络的数据仍被丢给R1,也就是说ip defaut-next-hop的优先级高于默认路由。
- No掉上面配置的默认路由,再配一条去往13.0网络的路由,下一跳为R3,则PC到13.0网络的数据切换到R3 证明ip default next-hop的优先级低于明细路由,高于默认路由 。
- 再次验证,不用明细路由,而是用一条ip route 10.0.0.0 255.0.0.0的汇总路由,下一跳为R3,效果同上,也走R3。因此只要不是默认路由,只要路由表中存在这么一条匹配的路由,则优先走路由,没有路由的情况下走route-map。
关于route-map在NAT中,以及BGP策略中的使用,这里暂时不讨论,有兴趣的话,请查阅本人博客上的相关文档。
(原创博文,红茶三杯
http://weibo.com/vinsoney
版权所有,转载请注明出处)