AR2200配置静态路由与NQA联动后未达到预期效果

发布时间:  2016-05-05 浏览次数:  554 下载次数:  0
问题描述

AR2200配置静态路由与NQA联动(ICMP方式)后,当将通往监测的公网地址的链路断开时,网络中断,查看默认静态路由并没有切换,疑似静态路由与NQA联动功能未生效

网络拓扑示意图(双拨号出口):

处理过程

1. 查看静态路由与NQA联动的相关配置如下:

#

ip route-static 0.0.0.0 0.0.0.0 Dialer1 track nqa admin icmp

ip route-static 0.0.0.0 0.0.0.0 Dialer2 preference 70

#

nqa test-instance admin icmp

 test-type icmp

 destination-address ipv4 202.98.192.67

frequency 15

 start now

#

监测的IP地址202.98.192.67为公网中一台DNS服务器的地址。由于出接口为Dialer1的默认路由优先级为60,比较出接口为Dialer2的优先级高,因此设备此时生效的默认路由出接口为Dialer1

然后断开拓扑图中的链路后,查看默认路由此时有变化,其出接口变为Dialer2,代表静态路由与NQA联动生效了,但过一会儿再查看又发现默认路由的出接口又变回Dialer1,继续观察默认路由的变化情况,进一步发现此现象不断地再重复。至此,发现了 “疑似配置静态路由与NQA联动后不生效”问题的现象。

 

2. 分析静态路由与NQA联动的原理后发现,设备是通过从本地不断的ping所监测的地址来判断链路连通性的,当多次ping不通时,路由器将这条静态路由设置为“非激活”状态(此条路由不可用,从IP路由表中删除)。但是由于所监测的地址是一个公网的IP地址,当第一条链路断开后切换到第二条链路时,此设备还会继续从本地ping所监测的这个公网地址,而该地址并不会因为第一条链路的断开而失效,因此当切换到第二条链路后,NQA的检测结果是连通的,又会将原来的静态路由恢复,因此才会出现上面所发生的现象,先失效又生效再失效,不断的重复此过程。
根因

NQA所监测的地址并不会因为断开的链路而失效。当切换到新的链路时,NQA检测此地址已恢复连通性,会恢复原来的静态路由,且不断重复。

解决方案

1种方案,通过使用source-interface命令配置NQA测试例的源端接口解决,操作步骤如下:

nqa test-instance admin icmp

 undo start                                                                        //需要先终止当前正在执行的测试例

 source-interface Dialer1                                              //配置NQA测试例的源端接口为Dialer1

 start now                                                                         //立即启动执行当前测试例

 

2种方案:通过配置本地策略路由解决,增加如下配置即可:

#

acl number 3999                                                            //配置所监测地址的ACL匹配规则

rule 5 permit ip destination 202.98.192.67 0

#

policy-based-route nqa-track permit node 5          //创建本地策略路由,名字为nqa-track

if-match acl 3999

apply output-interface Dialer 1                             //强制指定出接口为Dialer1

 #

ip local policy-based-route nqa-track                       //应用本地策略路由

#

END