我叫路由策略,我管路由;我叫策略路由,我管数据

说到策略路由,就不得不提及它的兄弟路由策略 。常常有人将它们混淆,因为路由策略和策略路由都是对数据控制转发起一定作用,不同就在于路由策略作用对象是“路由”信息,主要通过改特定路由的相关属性,进而对路由的学习,发布等进行控制 。
而策略路由的作用对象是“数据包”,主要是对转发报文的报文本身特征来进行转发控制 。

我叫路由策略,我管路由;我叫策略路由,我管数据

文章插图
 
一、策略路由
策略路由,即 PBR(Policy-Based Routing),与传统的基于 IP报文目的地址查找路由表进行转发不同,它可以依据用户自定义的策略进行报文转发 。
这个自定义的策略,可以根据报文的来源、应用、协议以及报文长度等特征来进行定义 。报文可以优先根据设置的 PBR进行转发,因此策略路由给组网提供了极大的灵活性 。
1、策略路由分类
策略路由一般分为前策略路由和后策略路由,其中前策略路由又根据策略路由配置的下一跳不生效时对报文的不同处理方式分为强策略路由和弱策略路由 。
我叫路由策略,我管路由;我叫策略路由,我管数据

文章插图
 
 
1)前策略路由:报文首先按照策略路由的下一跳进行转发 。
• 强策略路由:当策略路由下一跳不可达时,报文直接被丢弃 。
 
我叫路由策略,我管路由;我叫策略路由,我管数据

文章插图
 
• 弱策略路由:当策略路由下一跳不可达时,报文不会直接被丢弃,而是重新查询路由表,根据路由表转发报文,没有路由表匹配,按缺省下一跳转发(Apply ip-address default next-hop) 。
 
我叫路由策略,我管路由;我叫策略路由,我管数据

文章插图
 
2)后策略路由:路由表中明细路由>后策略路由>路由表中的默认路由,所以后策略路由优先级是介于明细路由和默认路由之间 。
二、路由策略
1、基本原理
路由策略使用不同的匹配条件和匹配模式选择路由和改变路由属性 。在特定的场景中,路由策略的6 种过滤器也能单独使用,实现路由过滤 。若设备支持BGP to IGP 功能,还能在 IGP 引入 BGP 路由时,使用BGP 私有属性作为匹配条件 。
我叫路由策略,我管路由;我叫策略路由,我管数据

文章插图
 
如图,一个路由策略中包含 N(N>=1)个节点(Node) 。路由进入路由策略后,按节点序号从小到大依次检查各个节点是否匹配 。
匹配条件由 If-match 子句定义,涉及路由信息的属性和路由策略的 6 种过滤器 。当路由与该节点的所有If-match 子句都匹配成功后,进入匹配模式选择,不再匹配其他节点 。
匹配模式分 permit 和 deny 两种:
·permit:路由将被允许通过,并且执行该节点的Apply 子句对路由信息的一些属性进行设置 。
·deny:路由将被拒绝通过 。
当路由与该节点的任意一个 If-match 子句匹配失败后,进入下一节点 。如果和所有节点都匹配失败,路由信息将被拒绝通过 。
2、过滤器
路由策略中 If-match 子句中匹配的 6 种过滤器包括访问控制列表ACL(Access Control List)、地址前缀列表、 AS 路径过滤器、团体属性过滤器、扩展团体属性过滤器和RD 属性过滤器 。
这 6 种过滤器具有各自的匹配条件和permit 和 deny 匹配模式,因此这6 种过滤器在以下的特定情况中可以单独使用,实现路由过滤 。
1)ACL
ACL 是将报文中的入接口、源或目的地址、协议类型、源或目的端口号作为匹配条件的过滤器,在各路由协议发布、接收路由时单独使用 。在Route-Policy 的 If-match 子句中只支持基本 ACL 。
2)地址前缀列表(IP Prefix List)
地址前缀列表将源地址、目的地址和下一跳的地址前缀作为匹配条件的过滤器,可在各路由协议发布和接收路由时单独使用 。
每个地址前缀列表可以包含多个索引(index),每个索引对应一个节点 。路由按索引号从小到大依次检查各个节点是否匹配,任意一个节点匹配成功,将不再检查其他节点 。若所有节点都匹配失败,路由信息将被过滤 。
根据匹配的前缀不同,前缀过滤列表可以进行精确匹配,也可以进行在一定掩码长度范围内匹配 。
说明:
当 IP地址为0.0.0.0时表示通配地址,表示掩码长度范围内的所有路由都被Permit或Deny 。
3)AS路径过滤器(AS_PathFilter)


推荐阅读