简单对比一下VRRP和策略路由之间主备切换的差异

简介: 简单对比一下VRRP和策略路由之间主备切换的差异

前面我们介绍的VRRP(),两台设备之间处于主备关系,也就是说,当主设备故障之后,流量才会切换到备设备上。这种使用方式一定程度上讲,不太符合经济适用的原则,我们前面介绍过链路聚合()、负载均衡()和策略路由()等等,都是为了在提高可靠性的同时尽可能的提高转发性能。以上个案例为例,如果我们不使用VRRP,我们仍然可以使用策略路由实现两台设备的主备,但是主备切换做到VRRP这种效果还是有点难度的。


今天,我们来简单对比一下VRRP单备份组和策略路由之间主备切换的差异。


组网需求


1、核心交换机CORESW通过虚拟网关10.1.1.1与VRRP备份组互通;


2、手工配置VRRP1为主设备,VRRP2为备设备。当VRRP1正常工作时,PCA发送到ISP的报文经VRRP1转发;当VRRP1出现故障时,PCA发送给Host B的报文通过VRRP2转发。


3、配置VRRP1工作在VRRP抢占模式,以保证VRRP1故障恢复后,能再次抢占成为Master,即只要VRRP1正常工作,就由VRRP1负责转发流量。为了避免频繁地进行状态切换,配置抢占延迟时间为3000厘秒(30秒);


4、实现PCA可以持续访问ISP的业务地址8.8.8.8。


组网图


VRRP配置组网图:

1677217220673.jpg

实验环境


Windows 10专业版(1909-18363.1556,16 GB内存)

HCL 3.0.1

MSR 36-20(Version 7.1.064, Release 0821P11)

S5820V2-54QS-GE(Version 7.1.075, Alpha 7571)


配置步骤


上次的实验配置我们保持不变,在CORESW设备上增加策略路由配置如下:

#
acl advanced 3300
 rule 0 permit ip
#
policy-based-route vrrp permit node 10
 if-match acl 3300
 apply loadshare next-hop
 apply next-hop 10.1.1.11
 apply next-hop 10.1.1.22
#
interface Vlan-interface2
 ip address 10.2.1.254 255.255.255.0
ip policy-based-route vrrp

可以看到,我们在PCA的网关下面,应用了策略路由vrrp,策略路由配置为匹配所有转发流量,策略路由的动作配置为负载分担模式,应用的下一跳分别为VRRP1和VRRP2的接口真实IP地址,以此来实现与VRRP现有配置的不冲突。


然后我们在PCA上开始长ping,中间DOWN掉VRRP1的下联口看一下效果。

1677217265779.jpg

好家伙,直接断掉了,这是为什么呢?原因也简单,现在CORESW和VRRP1、VRRP2之间是通过二层地址通信的,因为本地的互联接口Vlan-interface1没有DOWN,所以策略路由不会切换。简单来说,就是CORESW不知道VRRP1的互联地址已经不通了。那要怎么解决呢?也简单,一般就是使用NQA和Track进行联动。


NQA全称是Network Quality Analyzer,直译为网络质量分析,NQA通过发送探测报文,对链路状态、网络性能、网络提供的服务及服务质量进行分析,并为用户提供标识当前网络性能和服务质量的参数,本案例中,我们就是要NQA来探测互联地址的可达性。


我们创建一个管理员名为vrrpnqa、操作标签为vrrp1的NQA测试组,配置测试类型为ICMP-echo,配置测试的目的地址和下一跳地址均为10.1.1.11,以便通过NQA检测到VRRP1的连通性。


/

#
nqa entry vrrpnqa vrrp1
 type icmp-echo
  destination ip 10.1.1.11
  next-hop ip 10.1.1.11

配置测试频率为100 ms,并配置联动项1,设置连续失败5次触发联动。


#
nqa entry vrrpnqa vrrp1
 type icmp-echo
  frequency 100
  reaction 1 checked-element probe-fail threshold-type consecutive 5 action-type trigger-only
然后启动NQA探测,配置为立即启动,长期有效。
#
 nqa schedule vrrpnqa vrrp1 start-time now lifetime forever
接下来配置Track项1和NQA测试组的关联。
#
track 1 nqa entry vrrpnqa vrrp1 reaction 1
同理,我们再配置一个到VRRP2连通性的NQA检测。
#
nqa entry vrrpnqa vrrp2
 type icmp-echo
  destination ip 10.1.1.22
  next-hop ip 10.1.1.22
  frequency 100
  reaction 1 checked-element probe-fail threshold-type consecutive 5 action-type trigger-only
#
 nqa schedule vrrpnqa vrrp2 start-time now lifetime forever
#
track 2 nqa entry vrrpnqa vrrp2 reaction 1
查看一下NQA测试的当前结果。

1677217311123.jpg

探测成功,未出现失败告警。

还可以查看NQA测试的统计信息。

1677217324391.jpg

通过这些统计数据,我们可以分析当前NQA检测的链路质量信息。

查看一下Track项的状态信息。

1677217336680.jpg

状态为Positive,表示状态正常。

接下来,我们配置策略路由和NQA检测的Track联动。


#
policy-based-route vrrp permit node 10
 if-match acl 3300
 apply next-hop 10.1.1.11 track 1
 apply next-hop 10.1.1.22 track 2

我们从PCA上traceroute看一下转发路径。

1677217916709.jpg

 

可以看到有两条转发路径了。

然后,我们再次在PCA上开始长ping,中间分别测试DOWN掉VRRP1和VRRP2的下联口看一下效果。

1677217921779.jpg

在DOWN掉VRRP1的下联口时,丢包7个,业务中断14秒左右,然后切换到VRRP2上。

1677217939806.jpg

 

在DOWN掉VRRP2的下联口时,丢包11个,业务中断22秒左右,然后切换到VRRP1上。

经过观察,发现是NQA的检测结果耗时比较长。

1677217945274.jpg

现在连续两次探测开始时间的时间间隔我们配置的是100毫秒,已经很快了,但是缺省情况下,探测的超时时间为3000毫秒,比较长,我们将其调整为200毫秒;同时,将连续失败5次触发联动调整为3次。

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

调整后的配置如下:

#
nqa entry vrrpnqa vrrp1
 type icmp-echo
  destination ip 10.1.1.11
  frequency 100
  next-hop ip 10.1.1.11
  probe timeout 200
  reaction 1 checked-element probe-fail threshold-type consecutive 3 action-type trigger-only
#
nqa entry vrrpnqa vrrp2
 type icmp-echo
  destination ip 10.1.1.22
  frequency 100
  next-hop ip 10.1.1.22
  probe timeout 200
  reaction 1 checked-element probe-fail threshold-type consecutive 3 action-type trigger-only

然后,我们再次在PCA上开始长ping,中间分别测试DOWN掉VRRP1和VRRP2的下联口看一下效果。

1677217977546.jpg

我们发现,现在NQA检测的状态变化已经很快了,而且Track状态的变化几乎与NQA检测是同时的,但是转发切换还是要慢一些,初步判断这就是策略路由的问题了。


官方的解释是“策略路由通过查询FIB表中是否存在下一跳或缺省下一跳地址对应的条目,判断设置的报文转发下一跳或缺省下一跳地址是否可用。策略路由周期性检查FIB表,设备到下一跳的路径发生变化时,策略路由无法及时感知,可能会导致通信发生短暂中断。”


好吧,实时证明,策略路由的状态切换确实比VRRP要差很多;使用策略路由时,同时兼顾负载均衡和主备切换的性能要差一些。


相关文章
|
人工智能 自然语言处理 文字识别
DeepMind首发游戏AI智能体SIMA:开启虚拟世界的智能探索之旅
【4月更文挑战第3天】DeepMind推出了SIMA,一种能在多个3D环境中执行语言指令的智能体,标志着AI在理解和互动虚拟世界上的进步。SIMA通过多样化的训练数据学习导航、操作、决策等技能,并结合预训练模型处理高维度输入输出。尽管在复杂任务上仍有提升空间,SIMA展现了正向迁移能力和潜力,为AI研究和未来机器人技术铺平道路。然而,仍需解决鲁棒性、可控性、评估方法及道德安全问题。
448 4
DeepMind首发游戏AI智能体SIMA:开启虚拟世界的智能探索之旅
|
存储 人工智能 算法
云计算的第三次浪潮:人工智能与云计算的融合
在2023年的云栖大会主论坛上,中国工程院院士、阿里云创始人王坚发表了题为《云计算的第三次浪潮》的主题演讲,他强调了人工智能与云计算的结合带来的重大影响,并认为这将引发云计算的第三次浪潮。云计算的第三次浪潮正在悄然兴起,其与人工智能的结合引发了前所未有的技术革命。那么本文将聊聊2023年人工智能和云计算的集中体现和爆发,以及云计算与GPT模型的关系。
2099 47
云计算的第三次浪潮:人工智能与云计算的融合
|
安全 网络协议 Unix
网络安全产品之认识安全隔离网闸
随着互联网的发展,网络攻击和病毒传播的方式越来越复杂,对网络安全的要求也越来越高。传统的防火墙设备在面对一些高级的网络攻击时,往往难以做到全面的防护,因此需要一种更加有效的网络安全设备来提高网络的安全性。此外,随着信息技术的不断发展,各个行业对信息系统的依赖程度也越来越高,一旦信息系统遭受攻击或入侵,可能会导致数据泄露、系统瘫痪等严重后果。因此,对于一些高安全级别的网络环境,如政府、军队、公安、银行等,需要一种更加可靠的安全设备来保证网络的安全性。在这样的背景下,安全隔离网闸作为一种新型的网络安全设备应运而生。本文让我们一起来认识安全隔离网闸。
991 0
Java 通过IP获取对应的国家省份城市经纬度(离线文件方案)
一. 除了调用接口查询城市, 还可以通过离线文件查询城市, 使用GeoLite2 City库 二. 离线库下载地址: https://dev.maxmind.com/geoip/geoip2/geolite2/ 点击如下位置下载压缩文件 文件解压后有一个文件名为GeoLite2-City.
|
分布式计算 Spark 大数据
深入探究Apache Spark在大数据处理中的实践应用
【6月更文挑战第2天】Apache Spark是流行的开源大数据处理框架,以其内存计算速度和低延迟脱颖而出。本文涵盖Spark概述、核心组件(包括Spark Core、SQL、Streaming和MLlib)及其在数据预处理、批处理分析、交互式查询、实时处理和机器学习中的应用。通过理解Spark内部机制和实践应用,可提升大数据处理效率,发挥其在各行业的潜力。
|
Linux Windows
Centos7安装wps办公软件
Centos7安装wps办公软件
334 0
|
应用服务中间件 Linux nginx
CentOS 7 上配置 Nginx 作为反向代理
在CentOS 7上设置Nginx反向代理的步骤:安装Nginx;启动Nginx服务编辑`/etc/nginx/nginx.conf`;添加`proxy_pass http://app_server_address;将请求转发至应用服务器;重启Nginx`sudo systemctl restart nginx`;验证配置是否成功
762 1
|
JSON 前端开发 JavaScript
JSON.parse()详解
JSON.parse()详解
828 1
|
SQL 关系型数据库 MySQL
flink cdc 同步问题之如何提高用户速度
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
SQL 数据采集 存储
工作经验分享:Spark调优【优化后性能提升1200%】
工作经验分享:Spark调优【优化后性能提升1200%】
1310 1
工作经验分享:Spark调优【优化后性能提升1200%】