策略路由是网络中使用比较普遍的技术。策略路由,顾名思义,即是根据一定的策略进行报文转发,因此策略路由是一种比目的路由更灵活的路由机制。在路由器转发一个数据报文时,首先根据配置的规则对报文进行过滤,匹配成功则按照一定的转发策略进行报文转发。这种规则可以是基于标准和扩展访问控制列表,也可以基于报文的长度;而转发策略则是控制报文按照指定的策略路由表进行转发,也可以修改报文的IP优先字段。因此,策略路由是对传统IP路由机制的有效增强。
策略路由一般基于route-map表、多策略路由表以及多转发表实现的。
Route-map是由一组match子句和set子句构成,当需做策略路由的报文匹配route-map中的match子句定义的规则时,将按照set子句的配置决定该报文的路由方式,包括控制报文的发送下一跳、发送接口以及设置报文的IP优先权字段。
路由器通常实现的策略路由对报文的发送下一跳、发送接口的控制是基于多策略路由表和多转发表实现的,每一个策略路由表对应一个转发表。路由器可实现多转发表机制,系统缺省时存在两个转发表:main和local,或称为系统转发表和本地转发表。main转发表存放系统路由表产生的路由,用以指导报文的转发。local转发表则存放所有本地路由。路由器操作系统提供给用户创建策略路由表的接口,在策略路由表中配置静态路由,并采用同路由管理一样的机制将策略路由表中的选中路由刷新到对应的转发表中。
在route-map表中定义规则和报文所使用的转发表表号,当报文匹配规则(包括访问控制列表和报文长度)时,就按照指定的转发表进行路由查找。如果查找成功,则正常转发;如果查找失败,则继续在系统转发表中查找,成功则继续转发,失败则丢弃报文。
因此,路由器的策略路由通过route-map表、多策略路由表以及多转发表实现了对报文路由方式的控制。