pbr策略路由的应用很广泛,同时也会出现很多问题,可能我们对策略路由的使用方法还不是特别的熟悉,那么这里主要讲解了使用pbr策略路由的具体细则和需要特别注意的地方。三层设备在转发数据包时一般都基于数据包的目的地址(目的网络进行转发),那么pbr策略路由有什么特点呢?
1、可以不仅仅依据目的地址转发数据包,它可以基于源地址、数据应用、数据包长度等。这样转发数据包更灵活。
2、为QoS服务。使用route-map及pbr策略路由可以根据数据包的特征修改其相关QoS项,进行为QoS服务。
3、负载平衡。使用pbr策略路由设置数据包的行为,比如下一跳、下一接口等,这样在存在多条链路的情况下,可以根据数据包的应用不同而使用不同的链路,进而提供高效的负载平衡能力。
pbr策略路由影响的只是本地的行为,所以可能会引起“不对称路由”形式的流量。比如一个单位有两条上行链路A与B,该单位想把所有HTTP流量分担到A链路,FTP流量分担到B链路,这是没有问题的,但在其上行设备上,无法保证下行的HTTP流量分担到A链路,FTP流量分担到B链路。pbr策略路由一般针对的是接口入(in)方向的数据包,但也可在启用相关配置的情况下对本地所发出的数据包也进行pbr策略路由。
开始配置route-map。使用route-map map-tag [permitdeny] [sequence-number]进入route-map的配置模式。使用match语句定义感兴趣的流量,如果不定义则指全部流量。match length min max and/or match ip address {access-list-number name}[...access-list-number name]使用set命令设置数据包行为。
set ip precedence [numbername]
set ip next-hop ip-address [... ip-address]
set interface interface-type interface-number [... type number]
set ip default next-hop ip-address [... ip-address]
set default interface interface-type interface-number [... type ...number]
这里要注意set ip next-hop与set ip default next-hop、set interface与set default interface这两对语句的区别,不含default的语句,是不查询路由表就转发数据包到下一跳IP或接口,而含有default的语句是先查询路由表,在找不到精确匹配的pbr策略路由条目时,才转发数据包到default语句指定的下一跳IP或接口。在Cisco IOS Release 12.0之前,pbr策略路由只能通过“进程转发”来转发数据包,这样数据包的转发效率是非常低的,在不同的平台上,基本在每秒1000到10,000个数据包。随着缓存转发技术的出现,Cisco实现了Fast-Switched PBR,大大提升了数据包的转发速度。启用方法即在接口中使用ip route-cache policy命令。
如果在route-cache中不存在set中指定的接口相关的项,那么仅在point-to-point时set interface命令才能够Fast-switched PBR。而且,在进行“进程转发”时,系统还会先查询路由条目查看该interface是不是一个合理的路径。而在fast switching时,系统不会对此进行检查。