定义
路由策略主要实现了路由过滤和路由属性设置,通过改变路由属性设置来改变网络流量经过的路径。
路由策略并非单一的路由协议,而是一个技术专题或者方法论。
目的
路由协议在发布、接收和引入路由信息时,根据实际组网需求实施一些策略,以便对路由信息进行过滤和改变路由信息的属性,如:
- 控制路由的接收和发布,只发布和接收必要、合法的路由信息,以控制路由表的容量,提高网络的安全性。
- 控制路由的引入(路由的重分发),在一种路由协议引入其它路由协议发现的路由信息丰富自己的路由信息时,只引入一部分满足条件的路由信息。
- 设置特定路由的属性修改通过路由策略过滤的路由的属性,满足自身需要。
实例
route-policy hcie permit node 10
if-match 1
if-match 2
apply 3
route-policy hcie permit node 15
if-match x1
if-match x2
apply y1
route-policy hcie permit node 20
if-match x3
apply y2
路由策略的名字根据需要自己定义。这些if-match 语句之间是与的关系,也就是所有的if-match语句必须同时满足,也就例外的情况:
匹配模式
- Permit: 指定该节点的匹配模式为允许。如果路由匹配的结果是满足该节点的所有
if match 语句,则该路由被视为允许通过,该节点的 apply 语句将被执行,且不再进
入下一个节点:如果该节点中有 if-match 语句不满足,则进入下一个节点继续匹配。 - Deny: 指定节点的匹配模式为拒绝。如果节点的匹配模式为 deny ,则该节点的
apply 语句将不被执行。如果路由匹配的结果是满足该节点的所有 if-match 语句,那么
Route-Policy 的匹配过程立即结束,不会再进入下一个节点,而且满足该节点条件的路
由被视为拒绝通过。如果该节点下有 if-match 语句不满足,则进入下 个节点继续匹配。 - 值得注意的是, Route-Policy 用于路由匹配时,被匹配对象(也就是路由条 目)必须满足 个节点中的所有 if-match 语句,才被认为匹配该节点。如果某条路由没有被Route-Policy 的任何节点匹配,则该路由被视为拒绝通过该 Route-Policy ,也就是说,Route-Policy 的末尾隐含着一个类似拒绝所有的节点。当然,为了避免所有的路由都被拒绝通过,一个 Route-Policy 中必须至少有一个节点的匹配模式为 permit.
路由策略配置任务概览
1、先配置过滤器:路由策略过滤器包括访问控制列表、地址前缀列表、AS路径过滤器、团体属性过滤器、扩展团体属性过滤器和RD属性过滤器。路由策略的过滤器不仅可以在路由策略的if-match子句中使用,还可以在特定情况下单独使用。
2、配置路由策略
3、配置策略生效时间(一般立即生效)
以下是一些常用的 if-match 命令、Apply 子句。
匹配 ACL:
if-match acl { acl-number | acl-name }
匹配 IP 前缀列表:
if-match ip-prefix ip-prefix -name
匹配路由的度量值
if-match metric metric
匹配路由的出接口
if-match interface G0/0/1
匹配路由的标记
if-match tag tag
在route-policy视图下,使用 apply 命令指定需执行的动作,这些动作主要是对所匹配的路由的某些属性进行修改,例如修改路由的度量值、优先级值、标记等。
以下是一些常用的 apply 命令。
设置路由的度量值:
apply cost [ + | -] cost
设置路由的度量值类型:
设置 IS-IS 的度量值类型: apply cost-type { external | internal }
设置 OSPF 的度量值类型: apply cost-type { type-l | type-2 }
设置路由的下一跳地址:
apply ip-address next-hop { ipv4-address | peer-address }
设置路由的优先级
apply preference preference
设置路由的标记:
apply tag tag
一个节点中可以不包含任何 apply 语句,此时该节点只被用于执行路由过滤,而不用于设置路由的属性。
举例 在引入直连路由时调用路由策略

需求:
Rl 及R2 在各自的 GEO/O/O 接口上激活 OSPF AreaO内建立邻接关系。 Rl 还有另外 3个直连接口,这 个接口并没有使用 network 命令激活OSPF 。为了让 OSPF 域内的路由器能够学习到 Rl GE0 /0/1 GE0/0/2 接口的路由(且路由的度量值为 20) ,就需要在 Rl 上将直连路由引入 OSPF ,但是这样一来, Rl 所有的直连路由都会被引入,这显然并非我们期望看到的结果.
R1配置
acl 2000
rule permit source 10.0.1.0 0.0.0.0
rule permit source 10.0.2.0 0.0.0.0
quit
创建一个路由策略,名字为hcie 同时配置一个节点,节点编号为10
route-policy hcie permit node 10
在节点10定义一个apply 语句,设置路由度量值为20
if-match acl 20
apply cost 20
quit
配置OSPF
ospf 1
area 0
network 10.1.12.0 0.0.0.255
quit
import-route direct route-policy hcie
ospf 路由过滤为什么只能在in 方向(不绝对)
“哈哈,这个问题问得好,这和OSPF的LSA有关系。OSPF在发送区域内路由的时候,是把路由放在LSA-1中放出去的,LSA-1里放的可不只是路由啊,所以发送时无法过滤路由。而收取路由的时候,收到LSA-1以后是先计算SPF,再查看路由表,正好就有机会查看分发列表去决定收取那些路由。”
所以,OSPF区域内路由过滤时,只能用于in方向。