
route-map phr详解.doc
8页路由器组网基础知识:策略路由 PBR 详解发布时间:2012-10-12 12:25前言: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-hoprecursive 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 recursive2. 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-hopGW 的配置如下:access-list 1 permit anyroute-map PBR permit 10match ip address 1 set ip next-hop 10.1.1.2 10.2.2.2interface fast 1/0ip policy route-map PBR !! GW 并无其他关于路由的配置实验现象:1.当网络正常时,数据强制走 ISP1,ping 100的远程网络数据到 ISP1 2.当 ISP1宕机时,GW 连接 ISP1的接口 DOWN 掉,则 PC 访问100的流量自动切换至 ISP23.当 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 ip1Set ip next-hop ip2…… 则 IOS 会自动将命令变成 Set ip next-hop ip1 ip2 ……2.2 set ip next-hop verify-availability GW 的配置如下:access-list 1 permit anyroute-map PBR permit 10match ip address 1set ip next-hop 10.1.1.2 10.2.2.2set ip next-hop verify-availabilityinterface fast 1/0ip policy route-map PBR!! GW 并无其他关于路由的配置!! ISP1、ISP2 及 GW 都需开启 CDP实验现象:1.当网络正常时,数据强制走 ISP1,ping 100的远程网络数据到 ISP12.当 ISP1宕机时,且 GW 连接 ISP1的接口 DOWN 掉,则 PC 访问100网络的数据切换至ISP23.当 ISP1宕机时,且 GW 连接 ISP1的接口没 DOWN(如关闭 ISP1的 CDP) ,由于 GW 丢失了 ISP1的 CDP 信息,因此仍未 ISP1挂了,于是 PC 访问100 网络的数据切换至 ISP2,网络不断2.3 set ip next-hop verify-availability 基于 object trackingGW 的配置如下:ip sla monitor responderip sla monitor 1 type echo protocol ipIcmpEcho 10.1.1.2 source-ipaddr 10.1.1.1frequency 10exitip sla monitor schedule 1 life forever start-time nowtrack 1 rtr 1 reachabilityip sla monitor 2type echo protocol ipIcmpEcho 10.2.2.2 source-ipaddr 10.2.2.1frequency 10exitip sla monitor schedule 2 life forever start-time nowtrack 2 rtr 2 reachabilityaccess-list 1 permit anyroute-map PBR permit 10match ip address 1set ip next-hop verify-availability 10.1.1.2 10 track 1set ip next-hop verify-availability 10.2.2.2 20 track 2实验现象:1.当网络正常时,数据强制走 ISP1,ping 100的远程网络数据到 ISP1 2.当 ISP1故障,GW 通过 tracking 感知到,于是数据切换至 ISP23.回复 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 对象为 trueip sla monitor 1type echo protocol ipIcmpEcho 10.1.1.2 source-ipaddr 10.1.1.1frequency 10exitip sla monitor schedule 1 life forever start-time nowtrack 1 rtr 1 reachability2. 然后在 route-map 中调用该 track objectroute-map PBR permit 10match 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-hop2.4 set ip next-hop recursiveGW 的配置如下:access-list 1 permit anyroute-map PBR permit 10 match ip address 1set ip next-hop 10.2.2.2set ip next-hop recursive 10.1.12.2 ip route 10.1.12.0 255.255.255.0 10.1.1.2ip route 0.0.0.0 0.0.0.0 serial s0/2实验现象:1.正常情况下,数据优先走 ip next-hop,也就是走 ISP22.当 GW 连接 ISP2 的出接口 DOWN 掉(也就是 ISP2 挂了) ,则切换至 ip next-hop recursive,也就是 ISP2 。
注意,这个时候是才用路由表递归找到去往 10.1.12.2 的路由的,因此路由表里必须有可达路由 3.当 GW 丢失了去往 10.1.12.2 的路由,并且连接 ISP2 的连接也丢失了,则走默认路由。












