PBR with IP SLA
1)通过以下命令行,将一个“ip sla monitor”调用出来,并且定义了它的作用类型以及检测频率
(config)#ip sla monitor responder
//选配,此命令是一条增强型命令;可在监测过程中的时间差精确
(config)#ip sla monitor 1
//创建“IP SLA Monitor”编号为‘1’
(config-sla-monitor)#type echo protocol ipIcmpEcho 192.168.13.1 source-ipaddr 192.168.13.3
//在“ip sla monitor”中可选择作业类型(选择具体的作业协议,比如dhcp/dns/http/echo等)。在这个实验中,我们需要检测对端的可达性,因此选择“icmp”。而“echo”是要求对端响应ICMP。
另外,检测的动作也需要依赖传统路由表来进行的,所以保证路由表项可达。
(config-sla-monitor-echo)#frequency 10
//设置检测频率,‘10’单位为秒;同时在这个进程下也可以设置超时时间(timeout,单位毫秒),在这个时间段内如果对方还没有给我icmp的回包,可视为宕机。
2)接下来,要对“ip sla monitor”设置这个作业的‘生存时间’以及‘启动时间’
(config)#ip sla monitor schedul 1 life forever start-time now
//对新建的“ip sla monitor”生存时间和启动时间进行定义。‘schedule 1’与‘monitor 1’关联
3)对“ip sla monitor 1”捆绑在“track对象”上,以便在“route-map”上调用;最终应用在路由器接口的PBR
(config)#track 1 rtr 1 reachability
4)在“route-map”中调用“track”,track调用的同时“启动 ip sla monitor”
(config)#access-list 1 permit 192.168.1.0 0.0.0.255
//这条命令中‘192.168.1.0’后面跟反掩码是因为“匹配数据”的关系
(config)#route-map test permit 10
(config-route-map)#match ip address 1
(config-route-map)#set ip next-hop verify-availability 192.168.13.1 10 track 1
//命令行中的‘10’与‘route-map test permit 10’对应
5)在路由器接口启用PBR(其实就是在路由器接口将“route-map”进行匹配;PBR也是route-map的另一个功能)
(config)#inter fast 1/0
(config-if)#ip policy route-map test
// 'policy'字段的意义就是“Enable policy routing”
总结:
1)“track 1(ip sla monitor 1)”对象反馈回来的结果是“对端IP是存活的(也就是track跟踪回来的结果是'ture')”,那么“set ip next-hop verify-availability 192.168.13.1 10 track 1”这条命令是生效的;GW会将匹配ACL的数据包(目的地址是'100.100.100.100' / 源地址是'192.168.1.0/24')的数据包将它发送到‘next-hop’192.168.13.1。
2)如果track反馈回来的结果是检测失败(也就是track跟踪回来的结果是'false'),那么会跳转到下一个track去检测:
set ip next-hop verify-availability 192.168.23.2 20 track 2
3)“ip sla monitor”与“track”的配合使用,对端设备不要求是思科设备(与CDP不同)。但必须强调:ip sla也是思科的私有属性,所以要求GW这台设备必须是思科的。
拓扑如下:
|