H3C NQA双链路智能切换

1.      我们在ICG网关上Ping电信出口地址6.16.5.6

2.      Ping的过程分为两部分,首先是ICG网关发送回声探测请求给6.16.5.5(电信出口地址);

3.      电信出口收到回声探测请求后,会进行回声探测响应,返回给ICG网关6.16.5.6

如果ICG网关收到回声探测响应,我们就认为这次Ping成功了。

如果是因为任意一条线路故障,有如下2种可能:

1.      电信网关收不到回声探测请求,也就是说ICG网关发出去的任何数据都到达不了电信出口;

2.      电信网关收到了回声探测请求,但是回声探测响应在前往ICG网关的途中丢失,意味着电信网关发出的任何数据无法到达ICG网关;

3.      无论哪种情况,Ping的结果就是失败,更直接地说,就是上不了网。

因此,我们通常都是在怀疑线路存在故障的时候Ping一下,根据Ping的结果来判断线路正常与否。

现在的问题是,网吧老板必须在知道有人上不去网了,才去PingPing完再去拨打10000,然后再进行线路切换,这估计会损失20分钟,20分钟对于网游玩家、视频聊天的情侣来说,是不可接受的,会给网吧带来很严重的损失,我们在想是不是有个自动的机制替网吧老板做这种事情。

下面有情NQA出场,NQA的全名叫网络质量分析(Network Quality Analysis),是用于测量端到端网络质量的,它的原理很简单:

1.      根据用户设置,定期执行一些操作,最简单的操作就是Ping(回声探测机制);

2.      自动记录每次探测的结果,如Ping成功就是OK,失败就是FAILED

3.      根据用户设置,自动根据结果采取动作,如连续3FAILED,那么就触发机关;

4.      触发机关可以和一些特性关联,比如静态路由,机关一旦被触发,静态路由自动失效;

5.      有失效就有生效,也就是线路备份机制也被启发了,所有数据切换到备用线路。

从这里我们可以得知NQA相当于一个自动代理,执行探测、联动功能。这么带感的东东,你是不是很感兴趣呢,我们来看一下举例的配置吧:

#

// 创建NQA探测实体telecom,序号1

nqa entry telecom 1

 // 探测类型是ICMP-EchoEcho翻译成中文叫回声

 type icmp-echo

  // 探测的目的IP地址是电信出口地址6.16.5.5

  destination ip 6.16.5.5

  // 设置next-hop也为6.16.5.5,防止从联通线路探测电信出口

  next-hop 6.16.5.5

  // 探测间隔为500ms

  frequency 500

  // 每个周期连续探测10

  probe count 10

  // 探测超时时间2s,即探测发送后2s仍未收到响应,即认为探测失败

  probe timeout 2000

  // reaction意思是对探测结果的反应,下行配置翻译成中文就是如果连续3次探测失败将触发机关trigger

  reaction 1 checked-element probe-fail threshold-type consecutive 3 action-type trigger-only

  // 探测源接口是连接电信线路的Ethernet 0/0

  source interface Ethernet 0/0

  // 设置ttl1,防止从联通线路探测电信出口

  ttl 1

#

 // 设置机关联动组track,联动组关联NQA探测实体telecom 1的反应1

 track 1 nqa entry telecom 1 reaction 1

#

 // 调度NQA探测实体telecom 1,从现在开始,永远探测

 nqa schedule telecom 1 start-time now lifetime forever

#

 // 将通往电信的默认路由和机关联动组track绑定

 ip route-static 0.0.0.0 0.0.0.0 6.16.5.5 track 1 description telecom

#

以上配置在实际过程中是这么操作的:

1.      线路正常情况下,NQA探测结果一直OK,所以不会触发机关;

2.      一旦线路故障了,NQA可以在3.5s内连续检测到3FAILED,立即触发机关;

3.      机关被触发,立即联动电信静态路由失效;

4.      电信静态路由失效,联通线路立刻全权接管,整个过程在5s以内完成;

5.      如果NQA探测成功,机关触发取消,电信出口默认路由自动恢复。