路由策略和策略路由
路由策略的工具主要包括filter-policy和 route-policy,更多在控制平面对路由进行控制。
策略路由PBR(Policy-Based Routing)是一种依据制定的策略而进行路由选择的机制,用来改变数据包的路由查找方式,影响数据平面的转发。
一、filter-policy
过滤策略,该工具主要应用在路由协议的进程中,可以调用ACL、ip-prefix、route-policy 等工具来匹配路由,用于控制对路由的发布或接收,只有通过该策略的路由才可以被发布或者接收,未通过策略的路由则被过滤掉。
filter-policy 分为import(入方向)和 export(出方向)
1、import(入方向)
主要影响路由器接收路由,影响自身路由表的变化,适合于任何路由协议,但是不同类型的路由协议也是有差别的。
2、export(出方向)
在距离矢量协议中用于向邻居发布路由时的控制,影响邻居路由器的路由表变化。在链路状态协议中往往用于自治系统边界路由器上,主要用来控制外部路由的引入。
通常情况下,路由过滤只能过滤路由信息,不能过滤链路状态信息。
- 对于OSPF,可以在出方向和入方向上过滤LSA 3、LSA 5、LSA 7
- 对于链路状态路由协议,如 OSPF 和IS-IS,在入方向过滤路由实际上并不能阻断链路状态信息的传递,过滤的效果仅仅是过滤的路由不能被加到本地路由表中,但是代表该路由的LSA仍然会在OSPF域或者IS-IS域内传递。
- 路由过滤还可以针对从其他协议引入的路由进行过滤,比如把RIP路由引入到OSPF,OSPF可以使用路由过滤把某些从RIP引入的路由过滤掉,只将满足条件的外部路由转换为Type-5 LSA (AS-external-LSA)并发布出去,进而使其他OSPF 路由器只有特定的从RIP引入的路由,这种配置只能用在出方向上。
filter-policy配置:
filter-policy后面可以调用ACL、 ip-prefix、gateway来过滤指定的路由,ACL和ip-prefix都用来匹配出路由条目,而gateway基于网关发布的路由进行控制。
import指定为入方向,interface-type用来指定接口类型和接口号,基于接口来过滤路由。
二、route-policy
常用场景:
- 控制路由的引入
- 控制路由的发布和接收
- 设置路由的属性
工作流程:
route-policy具体工作过程如下:
一个路由策略中包含N(N>=1)个节点(Node),路由进入路由策略后,按节点序号从小到大依次检查各个节点是否匹配,匹配条件由if-match子句定义。当路由与该节点的所有if-match子句都匹配成功后,进入匹配模式选择,匹配模式分permit和 deny两种。
permit:路由将被允许通过,并且执行该节点的Apply子句,对路由信息的一-些属性进行设置。
deny:路由将被拒绝通过。
当路由与该节点的任意一个if-match子句匹配失败后,进入下一节点,如果和所有节点都匹配失败,路由信息将被拒绝通过。
route-policy的配置及应用:
当匹配到ACL 2000时,该路由会被打上300的tag,最后进入路由进程,在引入路由时进行调用。
PS:由于后面已经没有手工定义的节点,如果还有未被匹配的其他路由,则隐含的节点会将其全部过滤掉。通常为了使未被匹配的路由不被过滤掉,则可以增加一个节点,并不需要为新节点配置 if-match和apply,其作用就是将前面节点没有匹配到的路由在本节点中全部匹配到,如果前面已经匹配到的路由则不会被该节点匹配。
三、PBR(策略路由)
策略路由工作特性:
当设备需要转发数据包时,系统首先根据用户制定的策略进行转发,即使路由表中不存在该路由条目,若没有配置策略或者配置的策略路由找不到匹配项时,再查找路由表转发。
功能及工作场景:
应用本地策略路由:
在apply后面设置的动作不仅可以配置下一跳地址,也可以配置出接口applyoutput-interface、配置报文优先级apply ip-precedence等。