我们之前学习过ACL(访问控制列表),用来做流量过滤,其实这其中的ACL技术和我们今天提到的路由策略倒是有一点联系的,但是对于网络工程师来说,路由策略的部署更为复杂,所应用的方面也存在于各种协议的路由中。
可以说无论在运营商IP网络还是在企业网中,路由策略的应用都是非常普遍的。而且在网络规划中,路由策略的规划也是一个核心的内容。下面我们来讲一下何为路由策略?请各位一起讨论、共同学习。
1.1 什么是路由策略?
很多人会把路由策略等同于route-policy,也有人说会说filter-policy也是路由策略呀!其实这些理解都有点不太准确,实际上,路由策略不是一个特定的技术,也不是一个特定的特性。
其实路由策略就是通过一系列工具或方法对路由进行各种控制,这种策略能够影响到路由的产生、发布、选择等,进而影响报文的转发路径。这些工具包括ACL、ip-prefix、filter-policy,route-policy等,这些方法包括对路由匹配的工具、路由控制/过滤的工具。
1.2 路由策略实际上就是各种工具的调用
当讨论到路由策略的时候,我们经常会碰到很多种工具,比如ACL、route-policy、ip-prefix、filter-policy等等,很多人都会被他们之间的调用关系搞昏了头,总感觉他们之间有说清道不明的关系。这里我们通过一张图来给大家介绍他们之间的关系。
我们把所有的工具划分成三类:
在距离矢量路由协议中,设备之间传递的是路由信息,如果需要对这种路由信息进行某种过滤,可以使用Filter-Policy实现,出方向和入方向的生效位置如图所示。
一个Route-Policy由一个或多个节点(Node)构成,每个节点都可以是一系列条件语句(匹配条件)以及执行语句(执行动作)的集合,这些集合按照编号从小到大的顺序排列。
用于将路由策略应用到某个具体的路由协议里面,使其生效。
***调用工具中的filter-policy和peer又自带策略工具的功能,因此这两个东西又可以直接调用条件工具。其他的调用工具都必须通过route-policy来间接地调用条件工具。
需要注意peer不能调用ACL,可以调用其他的所有条件工具。
1.3 路由策略有什么用?
在IP网络中,路由策略的用途主要包括两个方面:1)对路由信息进行过滤。2)修改路由的属性。详细情况见表1:
作用 | 执行过程 | 结果 |
对路由信息进行过滤 | 如果某条路由符合XX条件,那么就接收这条路由;如果某条路由符合XX条件,那么就发布这条路由;如果某条路由符合XX条件,那么就引入这条路由 | 要不要这条路由? |
修改路由的属性 | 如果某条路由符合XX条件,那么将这条路由的某个属性值修改为XXX | 这条路由的某个属性值为XXX |
[R2] ip ip-prefix in index 10 permit 192.168.2.0 24
[R2] ip ip-prefix in index 10 permit 192.168.3.0 24
[R2] ip ip-prefix in index 10 permit 192.168.4.0 24
[R2] ospf
[R2-ospf-1] filter-policy ip-prefix in import
图2 通过路由策略修改路由的属性
R1的配置如下:
[R1] ip ip-prefix external index 10 permit 192.168.1.0 24
[R1] route-policy RP permit node 10
[R1-route-policy] if-match ip-prefix external
[R1-route-policy] apply cost-type type-1
[R1-route-policy] quit
[R1] ospf
[R1-ospf-1] import-route direct route-policy RP
2.1 路由策略和策略路由的区别
路由策略
路由策略的操作对象是路由信息。路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。
策略路由
策略路由的操作对象是数据包,在路由表已经产生的情况下,不按照路由表进行转发,而是根据需要,依照某种策略改变数据包转发路径。
所以这样可以看出,策略路由是在路由表之前起作用,如果报文匹配了策略路由,那么这个报文就不会再去查路由表了,而是直接按照策略路由的“指引”进行转发。所以策略路由是一个不太按照套路出牌的“家伙”,也正因为这样,策略路由的应用会更加灵活一点。
2.2 路由策略和策略路由对比分析
为了更加具体的对比路由策略和策略路由,我们通过表2对两者进行一个全方位的对比。