策略路由PBR详解

前言:set ip next-hop后面跟多个IP啥意思?recursive next-hop是什么?next-hop如果挂了咋办?有没有办法检测可达性?PBR在实际工程环境中如何应用?请浏览本文:

一、命令汇总

1.set ip next-hop  {  ip-address  [...ip-address]  |  recursive  ip-address  }
允许写多个下一跳IP,但这些IP必须是直连路由器的接口IP
如果定义了多个下一跳IP,则当第一个下一跳关联的本地出接口DOWN掉,则自动切换到下一个next-hop
recursive next-hop(递归下一跳)特性突破了传统下一跳必须是直连路由器下一跳接口IP的限制。Recursive next-hop可以不是直连网络,只要路由表中有相关的路由可达即可。一般recursive next-hop不可达,数据将交由路由处理(一般就被默认路由匹配走了)
如果在一个route-map列表的同一个序列中同时使用ip next-hop及ip next-hop recursive,则ip next-hop 有效。如果ip next-hop 挂了,则启用ip next-hop recursive,如果ip next-hop recursive和ip next-hop 都挂了,则丢给路由表处理。注意:一个route-map序列,只允许配置一个ip next-hop recursive

2. set ip next-hop verify-availability  [ next-hop-address  sequence  track object ]
检测下一跳的可达性,默认是关闭的
Sequence of next hops. The acceptable range is from 1 to 65535.
此条命令可以下列方式使用:
  • 在PBR环境下使用CDP检测下一跳IP可达性(不加后面的可选参数)
使用该特性可能会一定程度上降低设备性能,另外必须保证自己以及邻居路由器接口CDP都是开启的,最后过程交换及CEF都支持该特性,但dCEF不支持。
该特性借助设备的CDP表来判断下一跳的可达性,
如果本端开启了该特性,next-hop设备不支持CDP,则切换至下一个next-hop,如果没,则跳过PBR
如果本端没开启该特性,那么数据包要么被成功策略路由,要么永远无法正常路由出去(被丢弃)
如果仅仅想检测部分next-hop设备的可达性,则可以配置不同的route-map条目,来选择性的使用该特性(同一个route-map)。
  • 结合object tracking来检测一个远端设备(或IP)的可达性
使用object tracking,PBR可以做的更加灵活,可依据ICMP、HTTP、路由表中某条路由的存在与否、接口的up/DOWN等来进行决策。

注意: 如若基于CDP的检测及基于object tracking的检测都应用了,则后者优先

3. set ip next-hop 与set ip default next-hop的区别比较简单,这里就不解析了

二 实验验证

2.1 set ip next-hop

策略路由PBR详解_第1张图片


GW的配置如下:
access-list 1 permit any
route-map PBR permit 10
 match ip address 1
 set ip next-hop 10.1.1.2 10.2.2.2
interface fast 1/0
  ip policy route-map PBR
!! GW并无其他关于路由的配置

实验现象:
1.当网络正常时,数据强制走ISP1,ping 100的远程网络数据到ISP1
2.当ISP1宕机时,GW连接ISP1的接口DOWN掉,则PC访问100的流量自动切换至ISP2
3.当ISP1宕机时,且GW检测不到时(也就是GW连接ISP1的接口没DOWN),PC访问100的流量仍然被扔给ISP1,这就断网了

补充:
Set ip next-hop ip1 ip2 ip3,这个知识点已经没问题了吧?match住相关条件后,数据包首先被送到第一个next-hop ip address,如果这个ip地址所关联的直连接口DOWN了,则切换至下一个next-hop ip address,如此反复,可以配置多个next-hop。但是,如果直连的next-hop(对端路由器或其接口)自己挂了,而本地直连接口没感知到(如中间串了台switch),则无法自动切换,路由器仍然会一股脑的把数据丢给这个next-hop。
另外,如果配置的时候命令这么写的话:
Set ip next-hop ip1
Set ip next-hop ip2
……
则IOS会自动将命令变成Set ip next-hop ip1 ip2 ……

2.2 set ip next-hop verify-availability

策略路由PBR详解_第2张图片


GW的配置如下:
access-list 1 permit any
route-map PBR permit 10
 match ip address 1
 set ip next-hop 10.1.1.2 10.2.2.2
 set ip next-hop verify-availability
interface fast 1/0
  ip policy route-map PBR
!! GW并无其他关于路由的配置
!! ISP1、ISP2及GW都需开启CDP

实验现象:
1.当网络正常时,数据强制走ISP1,ping 100的远程网络数据到ISP1
2.当ISP1宕机时,且GW连接ISP1的接口DOWN掉,则PC访问100网络的数据切换至ISP2
3.当ISP1宕机时,且GW连接ISP1的接口没DOWN(如关闭ISP1的CDP),由于GW丢失了ISP1的CDP信息,因此仍未ISP1挂了,于是PC访问100网络的数据切换至ISP2,网络不断

2.3 set ip next-hop verify-availability基于object tracking

策略路由PBR详解_第3张图片

GW的配置如下:
ip sla monitor responder
ip sla monitor 1
 type echo protocol ipIcmpEcho 10.1.1.2 source-ipaddr 10.1.1.1
 frequency 10
exit
ip sla monitor schedule 1 life forever start-time now
track 1 rtr 1 reachability

ip sla monitor 2
 type echo protocol ipIcmpEcho 10.2.2.2 source-ipaddr 10.2.2.1
 frequency 10
exit
ip sla monitor schedule 2 life forever start-time now
track 2 rtr 2 reachability

access-list 1 permit any
route-map PBR permit 10
 match ip address 1
 set ip next-hop verify-availability 10.1.1.2 10 track 1
 set ip next-hop verify-availability 10.2.2.2 20 track 2


实验现象:
1.当网络正常时,数据强制走ISP1,ping 100的远程网络数据到ISP1
2.当ISP1故障,GW通过tracking感知到,于是数据切换至ISP2
3.回复ISP1,GW通过tracking感知到,数据又切换回ISP1

技术解析:
1. 首先定义track object,关联到一个ip sla monitor
使用ICMP协议去探测10.1.1.2的可达性(使用源地址10.1.1.1去ping10.1.1.2)
Track object 的ID为1,关联到ip sla monitor 1
当10.1.1.2可达,则track 对象为true
ip sla monitor 1
 type echo protocol ipIcmpEcho 10.1.1.2 source-ipaddr 10.1.1.1
 frequency 10
exit
ip sla monitor schedule 1 life forever start-time now
track 1 rtr 1 reachability

2. 然后在route-map中调用该track object
route-map PBR permit 10
 match ip address 1
 set ip next-hop verify-availability 10.1.1.2 10 track 1
当track1为true,也就是10.1.1.2可达,则PC访问100网络的数据被丢给10.1.1.2,如果track 1挂了,则切换至下一个next-hop


2.4 set ip next-hop recursive


策略路由PBR详解_第4张图片

GW的配置如下:
access-list 1 permit any
route-map PBR permit 10
 match ip address 1
 set ip next-hop 10.2.2.2
 set ip next-hop recursive 10.1.12.2

ip route 10.1.12.0 255.255.255.0 10.1.1.2
ip route 0.0.0.0 0.0.0.0 serial s0/2

实验现象:
1.正常情况下,数据优先走ip next-hop,也就是走ISP2
2.当GW连接ISP2的出接口DOWN掉(也就是ISP2挂了),则切换至ip next-hop recursive,也就是ISP2
注意,这个时候是才用路由表递归找到去往10.1.12.2的路由的,因此路由表里必须有可达路由 
3.当GW丢失了去往10.1.12.2的路由,并且连接ISP2的连接也丢失了,则走默认路由


三、PBR综合案例

请关注红茶三杯 朱sir录制的CCNP视频,在视频中讲解


本文问原创博文,版权归属:红茶三杯(http://blog.sina.com.cn/vinsoney)转载请注明出处。
关注红茶三杯微博,了解最新CCIE教学文档及视频更新动态 http://weibo.com/vinsoney


你可能感兴趣的:(cisco,Command)