双链路智能切换 - IP技术专栏 - 技术甜甜圈 - 新华三集团-H3C

标签: | 发表时间:2020-11-23 11:51 | 作者:
出处:http://www.h3c.com

有两种方案:

方案一(不推荐):

将原有线路和新增线路进行链路聚合,可实现流量负载和备份,由于是广域网线路,不推荐进行链路聚合,可能存在极端情况线路故障不能切换问题。

方案二(推荐):

将新增线路设置成三层路由模式,可通过新增加一条等价路由的方式实现流量负载,路由协议可以选用静态路由或者动态路由(ospf等)当其中一条链路故障时,流量会自动切换至另一条线路,同时建议在两条广域网线路上增加NQA检测配置,并绑定至路由上,用于实现流量自动切换。

一、    网吧老板的抱怨

这位淡定的网吧老板是这样反馈问题的:

1.     为了构建“妥妥的网吧”,俺花巨资租用了电信、联通两条线路;

2.     在专栏的指点下,俺做了“负载分担双链路”解决方案,俺也专门拔掉电信或者联通线路测试,发现的确可以切换,俺觉得很带感;

3.     俺的双链路妥妥地运行了2个月,直到今天,使用电信线路的客户们说网络断了,而联通线路的PC还妥妥地;

4.     俺也不是菜鸟,Ping了一下电信的出口网关,Ping不通,很纳闷,Ping不通为什么不切换,阿丘在忽悠俺,俺要讨个公道。

二、    阿丘对这个问题的解答

首先,对这位网吧老板充满理性光辉的叙述方式表示赞扬,叙述简单明了,故障现象非常到位。要解决这个问题,首先就要扭转一个先入为主的观点——出口和ICG网关是点到点连接的。我们之前见到的网络拓扑图,感觉ICG网关和互联网出口都是直接(点到点)相连的,只要接口Up,线路就没有问题,互联网出口就可以通,对于接口依然Up,出口却无法访问这种事情简直闻所未闻。那么我们是不是应该怀疑一下我们的ICG网关和互联网出口是直接相连这个命题的正确性。

两家运营商——电信和联通对ICG这种用户网关的部署是海量的,而互联网出口则是以高性能著称,高性能的设备往往端口是有限的,在互联网出口的位置直接连接ICG网关的代价是不可接受的,运营商需要一种节约的方式——汇聚,将若干的ICG网关连接到汇聚交换机,如果汇聚交换机数量也是海量的,还可以对汇聚交换机再进行汇聚,其目的就是尽可能地将大量ICG网关的流量汇合起来,再统一通过高速的线路传输给互联网出口。从图上也可以看出,ICG网关的互联网出口,也就是默认路由的下一跳依然是在互联网出口上,非常给力地证明了我们怀疑的正确性。其实做维护工作就是要“大胆假设,小心求证”,如果要让我再添上一句话,那就是“大胆假设没关系,没有求证一场空”。

三、    既然假设了,我们就要求证

假设是电信汇聚交换机与电信出口的汇聚线路发生中断:

1.     ICG网关的线路依然正常,也就是说端口E0/0的状态依然是Up的;

2.     对于出接口是以太网接口(E0/0就是Ethernet0/0接口的简写)静态路由而言,以太网接口Up,这条静态路由就是Up的;

3.     ICG网关配置到互联网出口的是两条静态默认路由,所以在这种情况中,到电信出口的静态路由依然生效;

4.     由于电信静态路由生效,故有50%的PC选择这条线路,而我们知道由于汇聚线路故障,这50%的PC注定是杯具的。

那么,是不是说,我们的任务是修复汇聚链路呢?那我不得不说,这有点“越俎代庖”了,何解:

1.     ICG以上线路都是运营商维护;

2.     网吧老板是运营商的客户,理论上是享有使用互联网服务、投诉互联网服务的权利;

3.     维修互联网是电信的义务,而不是网吧老板的权利。

所以,网吧老板要做的是:

1.     拿起电话,拨打10000,告诉电信mm线路不通了;

2.     小mm肯定会询问你一些简单的技术问题,以判断网吧老板是真的线路故障还是故意来捣乱聊天的;

3.     那么,网吧老板就可以把刚开始向我反馈问题的方式,如实向小mm反馈一遍;

4.     据我的经验,小mm会喜欢这个理性、淡定的网吧老板的,会很快安排技术人员去检查、维修线路。

事情并没有完,电信只是答应去维修了,什么时候维修好,这就不好说了,网吧老板还营业呢,这段维修真空可不能让网吧业务有大的闪失。

四、    阿丘的解决方案

我们对Ping这个命令肯定很熟悉,我们通常利用Ping来判断线路正常还是不正常,比如在图中:

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的结果来判断线路正常与否。

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

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

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

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

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

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

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

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

#

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

nqa entry telecom 1

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

 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

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

  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内连续检测到3次FAILED,立即触发机关;

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

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

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

这下网吧老板应该开心了,自己亲力亲为30分钟未必能解决问题,使用NQA机器人,5s就完成了动作,网吧老板有丰富的时间去和电信反馈故障,同时网吧并未遭受到太多投诉。线路恢复,路由也自动恢复,相当省心给力。

 


相关 [智能 切换 ip] 推荐:

双链路智能切换 - IP技术专栏 - 技术甜甜圈 - 新华三集团-H3C

- -
将原有线路和新增线路进行链路聚合,可实现流量负载和备份,由于是广域网线路,不推荐进行链路聚合,可能存在极端情况线路故障不能切换问题. 将新增线路设置成三层路由模式,可通过新增加一条等价路由的方式实现流量负载,路由协议可以选用静态路由或者动态路由(ospf等)当其中一条链路故障时,流量会自动切换至另一条线路,同时建议在两条广域网线路上增加NQA检测配置,并绑定至路由上,用于实现流量自动切换.

tcp/ip调优

- Lucseeker - 在路上
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;. 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;.

获取 WAN IP

- 狗尾草 - LinuxTOY
如果你在 router 或者 firewall 后面,你直接查询 interface ,拿到可能不是 WAN 的 IP. 很久很久以前的一个版本,把它们贴到 .bashrc (Bash 专用) 或者 .profile (非 Bash 专用)里面去. .profile 即可生效,输入 myip 就能拿到 WAN IP.

TCP/IP分享——链路层

- Goingmm - 弯曲评论
在张国荣自尽8周年纪念日,也就是愚人节的前几十分钟,终于把第二章弄完了. 首席似乎不是特别有空,我就斗胆在这里自己发了,从前面2期的反响来看,相当热烈,我也是摆出一副要杀要剐,悉听尊便的架势,这可能是受最近流行霸气外露的影响,批评几句又伤不了皮毛,也影响不了我的工作和正常生活,只要给大家带来快乐,我就很开心,似乎历史上很多想法都是在争吵中诞生的.

一些IP查询网站

- 19GHz - iGFW
一些境内服务器的IP查询网站:. 一些境外服务器的IP查询网站:. https://whoer.net/ (支持https). 各网站查询到的IP归属地可能有差异,以apnic.net为准. 本文原始地址:http://igfw.tk/archives/5611.

TCP/IP重传超时--RTO

- dennis - 一个故事@MySQL DBA
Shared by 子非鱼 安知余(褚霸). 概述:本文讨论主机在发送一个TCP数据包后,如果迟迟没有收到ACK,主机多久后会重传这个数据包. 主机从发出数据包到第一次TCP重传开始,RFC中这段时间间隔称为retransmission timeout,缩写做RTO. 本文会先看看RFC中如何定义RTO,然后看看Linux中如何实现.

IP地址库介绍

- Wolf - 淘宝核心系统团队博客
在CDN系统中,IP地址库在流量调度、网络服务质量监测等方面起到重要的作用,本文主要介绍了IP地址库的功能、内容以及IP地址库的生成和评价方法. 所谓IP地址库,指的是提供了IP地址(段)同地理、ISP、结构等信息映射关系的一组数据. IP地址库应用的场合较为广泛,下面举几个常见的例子:. (1)根据客户的IP地址确定客户来源,为后期的客户行为分析提供基础,例如需要统计学生群体的访问特点,这时我们就是通过分析来自教育网的IP地址的那些请求得到的.

[转]【linphone】android--ip电话

- - 小鸥的博客
android2.3部分的sip实现.           manager = SipManager.newInstance(this); //初始化call manager.         initializeLocalProfile(); //初始化profile,也即是参数.         //得到username,pwd, domain.

IP分片浅析 - Glacier

- - 博客园_首页
在TCP/IP分层中,数据链路层用MTU(Maximum Transmission Unit,最大传输单元)来限制所能传输的数据包大小,MTU是指一次传送的数据最大长度,不包括数据链路层数据帧的帧头,如以太网的MTU为1500字节,实际上数据帧的最大长度为1512字节,其中以太网数据帧的帧头为12字节.

各个IP API接口

- - 谁主沉浮
腾讯的IP地址API接口地址: http://fw.qq.com/ipaddress. 返回的是数据格式为:var IPData = new Array(“114.218.183.139″,””,”江苏省”,”苏州市”);. .