route-map的使用介绍

一、关于route-map

route map可用于路由的再发布和策略路由,还经常使用在BGP中。策略路由实际上是复杂的静态路由,静态路由是基于数据包的目标地址并转发到指定的下一跳路由器,策略路由还利用和扩展IP ACL链接,以便提供更多功能的过滤和分类。

 如下图,在R2上将OSPF路由重发布进RIP,重发布时,可以使用metric关键字来设置路由被重发布进RIP后的metric,这里设置为1,直接结果是,所有被注入到RIP的OSPF路由,metric都是1。灵活的调整一下,例如在路由被注入RIP后,192.168.1.0路由的metric为1,2.0的metric为2,而传统的重发布是无法做到的。

route-map的使用介绍_第1张图片
在每一个序列中,可定义供策略部署的两个元素:匹配条件(match语句)和执行动作(set语句)。你也可以定义多个条件,当条件被匹配时,就会去执行set指定的相关动作(set语句并非必须,例如:若route-map仅用于匹配感兴趣流量,则不需要set语句)。route-map被调用后,匹配动作将会从最小的序列号开始执行,如果该序列号中的条件都被匹配了,则执行set命令,若条件不匹配,则切换到下一个序列号继续进行匹配动作。
四、Route-map的特点

使用match命令匹配特定的分组或路由,set修改该分组或路由相关属性。

Route-map中的每个序列号语句相当于访问控制列表中的各行。

Route-map默认为permit,默认序列号为10,序列号不会自动递增,需要指定序列号。

末尾隐含deny any。

单条match语句包括多个条件时,使用逻辑or运算;多条match语句时,使用逻辑and运算。

五、route-map配置命令

1.创建route-map

这个全局配置命令创建一个route-map,并使用自定义的字符串来表示,一个route-map下可以定义多个序列号。匹配动作时,序列号具有优先顺序。Permit/deny关键字在不同的部署场合中作用也有所不同:

route-map test permit/deny 10

match x1

match x2,x3

set Y

route-map test permit/deny 20

match x4

set Y

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 ipdefault 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
  route-map的使用介绍_第2张图片在上图中,我们将OSPF路由注入到RIP,而传统的做法只能对所有注入进来的路由统一设置metric,但有了route-map,在配置重发布命令时,可关联一个已经定义好的route-map,在route-map中,通过创建多个序列号语句来对不同的路由设置不同的属性或动作。

如果希望OSPF路由注入到RIP后,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

上面创建了两个ACL,分别匹配需要差分对待的路由

route-map test permit 10

match ip address 1,当路由匹配ACL 1时

set metric 2,将metric修改为2

route-map test permit 20

match ip address 2

set metric 3

!

router rip

Redistribute ospf 1 route-map test
2.路由重发布时关联route-map的经典案例
route-map的使用介绍_第3张图片
在这个典型案例中,假设该网络环境中有两台路由器,分别为R1、R2,连接到了服务器群,服务器群使用两台三层交换机下挂着网络的服务器,服务器中有两个子网,分别是生产服务器的10.1.1.0/24,以及办公服务器的10.1.2.0/24。R3是接入路由器,R1、R2、R3跑OSPF。

R1、R2与三层交换机之间,假设是静态路由环境。如果要想R3下的用户在访问生产服务器时,流量往红色虚线箭头所指示的方向流动,访问办公服务器的时候往蓝色箭头方向流动。

则首先R1及R2上,让它们能够到达服务器10.1.1.0及2.0网段,需要配置两条静态路由:

Ip route 10.1.1.0255.255.255.010.1.254.1

Ip route 10.1.2.0255.255.255.010.1.254.1

下一步,要使R3能动态学习到生产服务器和办公服务器的路由,现将这两条静态路由重发布进OSPF,重发布时也有一些技巧。

R1的配置如下:

access-list 1 permit 10.1.1.0

access-list 2 permit 10.1.2.0

route-map Cisco permit 10

match ip address 1

set metric 10

route-map cisco permit 20

match ip address 2

set metric 20

router ospf 100

redisstatic route-map cisco

R2的配置如下:

access-list 1 permit 10.1.1.0

access-list 2 permit 10.1.2.0

route-map cisco permit 10

match ip address 1

set metric 20

route-map cisco permit 20

match ip address 2

set metric 10

router ospf 100

redisstatic route-map cisco

这样就实现了需求。

七、其他细节

1.验证match interface的作用1
  route-map的使用介绍_第4张图片
  一个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
  route-map的使用介绍_第5张图片
  先保证R1、R3往10.1.1.0的路由,在R2上做测试:

若R2上没有任何的动、静态路由,且配置如下:

access-list 1 permit 10.1.1.00.0.0.255

route-map test permit 10

match ip address 1

set ip default next-hop 10.1.12.1

则PC ping 10.1.13.0,数据走R1;

在上述基础上,如果R2增加到R3的默认路由,则PC到10.1.13.0网络的数据仍被丢给R1,即ip defaut-next-hop的优先级高于默认路由。

否定掉上面配置的默认路由,再配置一条去往10.1.13.0网络的路由,下一跳为R3,则PC到10.1.13.0网络的数据切换到R3,证明ip default next-hop的优先级低于明细路由,高于默认路由。

再次验证,只用一条ip route 10.0.0.0255.0.0.0的汇总路由,下一跳为R3,不用明细路由,同样也走R3。因此只要不是默认路由,只要路由表中存在这么一条匹配的路由,则优先走路由,没有路由的情况下再走route-map。

你可能感兴趣的:(cisco)