策略路由PBR命令详解 by 朱sir
前言:set ip next-hop后面跟多个IP啥意思?recursive next-hop是什么?next-hop如果挂了咋办?有没有办法检测可达性?PBR在实际工程环境中如何应用?请浏览本文:(如果想收藏本文,请至帖子最后,有文档下载连接)
一、命令汇总
1.set ip next-hop{ip-address[...ip-address]|recursiveip-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-addresssequencetrack 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
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
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
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
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
回复查看下载连接:
**** Hidden Message *****
顶了个顶!!
好贴,好挺立不倒! 先占沙发 学习一下谢谢 -woniu2-干看着~~~~顶一个~~~-- 朱sir贴,必顶
学习了,谢谢分享,楼主辛苦 马上收藏!-- 可以有,积累ing,谢谢分享~~
不错 不错 确实好极了