VRRP多备份组+策略路由实现主备负载

news2025/2/6 9:02:24

上篇文章,我们介绍了VRRP单备份组和策略路由之间主备切换的差异(),整体上看,单备份组VRRP的主备切换速度非常快,用过调整配置,可以轻轻松松将切换时间压缩到1秒钟以内;但是主备之间无法形成有效的流量负载。

如果使用策略路由,则可以轻松配置主备设备之间的流量负载;但是策略路由是通过周期性地查询FIB表中是否存在下一跳地址对应的条目,来判断设置的报文转发下一跳地址是否可用的,当设备到下一跳的路径发生变化时,策略路由无法及时感知,可能会导致通信发生短暂中断。我们通过不断地配置、调整NQA检测,最终的切换时间还是不能很好地控制在10秒以内,对业务影响可能会比较大。

那有没有稍微好一点的实现方法呢?

有的!单备份组VRRP解决不好的问题,我们交给多备份组VRRP来试一下!

组网需求

1、核心交换机CORESW与VRRP备份组之间通过10.1.1.0/24网段进行互通;

2、在VRRP备份组10中,手工配置VRRP1为主设备,VRRP2为备设备。当VRRP1正常工作时,PCA发送到ISP的报文经VRRP1转发;当VRRP1出现故障时,PCA发送给业务地址8.8.8.8的报文通过VRRP2转发;

3、在VRRP备份组20中,手工配置VRRP2为主设备,VRRP1为备设备。当VRRP2正常工作时,PCA发送到ISP的报文经VRRP2转发;当VRRP2出现故障时,PCA发送给业务地址8.8.8.8的报文通过VRRP1转发;

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

组网图

VRRP多备份组配置组网图:

 

实验环境

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)

配置步骤

在配置VRRP单备份组时(),VRRP的虚拟IP地址、VRRP主备路由器的接口真实IP地址都是配置在相同网段的,通过调整成员在备份组中的优先级来实现主备设备的选举。

而VRRP多备份组的实现机制也是一样的,只需要配置一个和既有VRRP备份组不冲突的备份组号和虚拟IP地址,再配置好成员在备份组中的优先级就可以了。例如在备份组10中,VRRP1和VRRP2的VRRP备份组相关配置如下:

VRRP1

#

interface GigabitEthernet0/0

ip address 10.1.1.11 255.255.255.0

 vrrp vrid 10 virtual-ip 10.1.1.1

 vrrp vrid 10 priority 200

VRRP2

#

interface GigabitEthernet0/0

ip address 10.1.1.22 255.255.255.0

 vrrp vrid 10 virtual-ip 10.1.1.1

而在备份组20中,VRRP1和VRRP2的VRRP备份组相关配置如下:

VRRP1

#

interface GigabitEthernet0/0

ip address 10.1.1.11 255.255.255.0

 vrrp vrid 20 virtual-ip 10.1.1.2

VRRP2

#

interface GigabitEthernet0/0

ip address 10.1.1.22 255.255.255.0

 vrrp vrid 20 virtual-ip 10.1.1.2

vrrp vrid 20 priority 200

同时我们把策略路由的配置也结合起来,在CORESW设备的PCA网关下面,配置策略路由vrrp,策略路由配置为匹配所有转发流量,策略路由的动作配置为负载分担模式,应用的下一跳分别为VRRP备份组10和备份组20的虚拟IP地址。

#

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.1

 apply next-hop 10.1.1.2

#

interface Vlan-interface2

 ip address 10.2.1.254 255.255.255.0

ip policy-based-route vrrp

此时,流量的负载分担由策略路由实现,设备的主备由VRRP实现,我们也无需再配置NQA探测了。设备的完整配置如下:

VRRP1

#

interface GigabitEthernet0/0

ip address 10.1.1.11 255.255.255.0

 vrrp vrid 10 virtual-ip 10.1.1.1

 vrrp vrid 10 priority 200

 vrrp vrid 10 preempt-mode delay 3000

 vrrp vrid 20 virtual-ip 10.1.1.2

 vrrp vrid 20 preempt-mode delay 3000

#

interface GigabitEthernet0/1

ip address 20.1.1.1 255.255.255.0

 nat outbound

#

 ip route-static 0.0.0.0 0 20.1.1.2

 ip route-static 10.2.1.0 24 10.1.1.254

VRRP2

#

interface GigabitEthernet0/0

 port link-mode route

 combo enable copper

 ip address 10.1.1.22 255.255.255.0

 vrrp vrid 10 virtual-ip 10.1.1.1

 vrrp vrid 10 preempt-mode delay 3000

 vrrp vrid 20 virtual-ip 10.1.1.2

 vrrp vrid 20 priority 200

 vrrp vrid 20 preempt-mode delay 3000

#

interface GigabitEthernet0/1

ip address 30.1.1.1 255.255.255.0

 nat outbound

#

 ip route-static 0.0.0.0 0 30.1.1.2

 ip route-static 10.2.1.0 24 10.1.1.254

CORESW

#

vlan 1

#

vlan 2

#

policy-based-route vrrp permit node 10

 if-match acl 3300

 apply loadshare next-hop

 apply next-hop 10.1.1.1

 apply next-hop 10.1.1.2

#

interface Vlan-interface1

 ip address 10.1.1.254 255.255.255.0

#

interface Vlan-interface2

 ip address 10.2.1.1 255.255.255.0

ip policy-based-route vrrp

#

interface GigabitEthernet1/0/1

port access vlan 2

#

 ip route-static 0.0.0.0 0 10.1.1.1

#

acl advanced 3300

 rule 0 permit ip

ISP

#

interface LoopBack1

 ip address 8.8.8.8 255.255.255.0

#

interface GigabitEthernet0/0

ip address 20.1.1.2 255.255.255.0

#

interface GigabitEthernet0/1

ip address 30.1.1.2 255.255.255.0

验证配置

测试从PCA到ISP的业务联通性。

 

业务访问正常,看一下流量的转发路径。

 

可以看到,流量成功负载到了两个VRRP的备份组上,但是显示的IP地址是接口的真实IP地址。我们看一下VRRP1设备上备份组的详细状态信息。

 

可以看到,VRRP的工作模式为Standard标准协议模式,存在的备份组数目为2,都在接口GigabitEthernet0/0下面,VRRP1在备份组10中的角色是Master,备份组的虚拟IP地址为10.1.1.1,可以看到备份组虚拟IP地址对应的虚拟MAC地址、对应接口的主IP地址等信息;VRRP1在备份组20中的角色是Backup,备份组的虚拟IP地址为10.1.1.2,没有显示备份组虚拟IP地址对应的虚拟MAC地址,对应接口的主IP地址是VRRP2设备的接口IP地址。

接下来,我们在PCA上开启长ping,分别DOWN掉VRRP1和VRRP2的下联口,查看一下业务中断情况。

可以看到,DOWN掉VRRP1的下联口时,出现了一个丢包,这个勉强还是可以接受的。接着我们DOWN掉VRRP2的下联口。

 

此时的丢包就比较严重了,又是11个包,这个就有点不能接受了。经过分析,发现出现了短暂的VRRP报文交互“异常”,DOWN掉VRRP1的下联口之后,再次使能接口时,VRRP1在两个备份组内都是Master角色。

 

原因是VRRP1在备份组20中的master_down_timer计时器超时,快速切换到将Master角色,同时将adver_timer设置为advertisement_interval,在这个时间段内,即使设备端口恢复,在adver_timer的时间周期内,也不会向外发布VRRP通告报文。这部分的详细实现请参考RFC文档()的第6章节状态机切换。

同时,VRRP2在两个备份组内都是Master角色。

 

原因是VRRP2在备份组10中收到了优先级为零的VRRP通告报文,快速切换到将Master角色,同时将master_down_timer计时器设置为skew_time。抓包看就是这样:

 

但是等待时间不应该这么长,我就看了一下交换机的接口状态。

 

可以看到,我们在模拟接口闪断之后,交换机的互联口切换到了DISCARDING状态,然后经过大约31秒,接口才经LEARNING状态切换为正常的FORWARDING状态。那我们把接口配置成边缘端口试一下。

 

然后就能看到接口UP之后,VRRP1很快抢占回Master了。

所以,配置VRRP多备份组来实现设备的主备,同时配置策略路由来实现流量在不同备份组之间的负载分担是基本可行的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/102956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大数据技术Spark】DStream编程操作讲解实战(图文解释 附源码)

DStream编程 批处理引擎Spark Core把输入的数据按照一定的时间片(如1s)分成一段一段的数据,每一段数据都会转换成RDD输入到Spark Core中,然后将DStream操作转换为RDD算子的相关操作,即转换操作、窗口操作以及输出操作…

和冬天有关的歌

我写过关于四季《新朝花夕拾》,我也写过关于夏天的歌:《和夏天有关的歌》,所以我也想写写冬天。(1)北风当你想到冬天的时候,你会想起什么?我会想到:北风、北方。正好有这么一首歌&am…

神经网络架构搜索

神经网络架构搜索 定义内涵 神经网络架构搜索是为给定数据集自动找到一个或多个架构的任务,这些架构将为给定 的数据集生成具有良好结果的模型,其本质是在高维空间的最优参数搜索问题。 技术背景 深度学习模型的使用越来越大众化,在很多行…

免费内网穿透工具测评对比,谁更好用 3

文章目录1. 前言2. 对比内容2.1 TCP协议功能及操作对比2.1.1 网云穿的TCP设置2.1.2 cpolar的TCP设置1.2 使用感受对比3. 结语1. 前言 发布本地网页通常是内网穿透的主要作用之一,但并不是唯一作用,内网穿透还能将本地硬件发布到公共互联网上&#xff0c…

ASP.NET企业HR人力资源管理系统源码(带使用手册和操作说明)

中小型企业HR人力资源管理系统源码带使用手册和操作说明 【程序语言】:.NET 【数据库】:SQL SERVER 2008 【运行环境】:WINDOWSIIS 【其他】:前端bootstrap框架 了解更多HR源码事宜可私信我! 系统运行环境&#x…

微信小程序云开发博客系统源代码,让写博客像发朋友圈一样简单,含使用部署教程

博客就两种:一是随笔,记录自己的成长历程,二是有目的的发文,例如搬运各种网赚文,我想大部分朋友做博客的初衷都是有一块自己的心灵净土,于是催生了wxapp-blog这款小程序。 完整代码下载地址:微…

零基础如何系统地自学Python?Python应该怎么学?

这次疫情让很多人,都发现自己真的适合群居,也让部分人觉得独居是个不错的选择,但是大部分人都会更明白工作的重要性。 如果没有收入,没有朋友,没有同事,没有那些鸡毛蒜皮的小事,会发现&#xf…

C++ Primer 第六章 函数

C Primer 第六章 函数6.1. Function BasicsParameters and Arguments6.2. Argument Passing6.2.3. const Parameters and Arguments6.2.4. Array Parameters6.2.6. Functions with Varying Parametersinitializer_list ParametersEllipsis Parameters6.3. Return Types and the…

Java多线程-线程的创建(Thread类的基本使用)

文章目录一. 线程和Thread类1. 线程和Thread类1.1 Thread类的构造方法1.2 启用线程的相关方法2. 创建第一个Java多线程程序3. 使用Runnable对象创建线程4. 使用内部类创建线程5. 使用Lambada表达式创建线程6. 多线程并发执行简单演示7. 多线程并发执行的优势二. Thread类的属性…

【专业数据】六.2020~2022年北京交通大学【新一代电子信息技术】专业复试线/分数线差/计划招生数/复试数/录取数/复试比例/录取率

文章目录 1.专业介绍2.2020-2022年国家线/复试线/分数线差2.1.数据总览2.2.数据指标2.2.1.复试分数线2.2.2.分数线差3.2020-2022年计划招生数/复试数/录取数/复试比例/录取率3.1.数据总览3.2.数据指标3.2.1.复试比例3.2.2.录取率4.参考资料欢迎订阅本专栏:《北交计算机复试经验…

【数据结构】树和二叉树

半山腰很挤,你得去山顶看看 目录 1.树 1.1 树的概念 1.2 树的特征 1.3 树每个结点的关系 1.4 树的表示形式 2.二叉树 2.1 二叉树的概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储 2.5 二叉树的基本操作 2.5.1 判断二叉树是否为空 2.…

JAVA类的继承和多态基础笔记(二)

1.继承的基本概念 父类中某一个属性是私有的,通过子类对象就不能访问父类的私有变量。 继承完之后拥有父类全部的东西,但是可以根据实际情况进行重写。 一般所有的类都是继承Object的,实现所有他的方法 像这样是重写了Object类的tostring方法…

[附源码]计算机毕业设计Python共享汽车系统(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

【Numpy基础知识】数组的创建

介绍 来源:Numpy官网:https://numpy.org/doc/stable/user/basics.html 文章目录介绍导包【1】将Python序列转换为Numpy数组【2】通过已有的Numpy数组创建函数创建数组【3】复制、连接或者改变现有数组【4】从磁盘读取数组【5】使用字符串或缓冲区从原始字…

[附源码]Nodejs计算机毕业设计久宠宠物店管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

载天冬酰胺酶磺丁基-β-/酶羟丙基-β-/天门冬酰胺酶环/EGF/维生素E乙酸酯糊精脂质体制备

下面为大家整理的科研内容是载天冬酰胺酶磺丁基-β-/酶羟丙基-β-/天门冬酰胺酶环/EGF/维生素E乙酸酯糊精脂质体制备,和小编一起来看! 载天冬酰胺酶磺丁基-β-环糊精制备:采用逆向蒸发法制备ASDL,通过酸碱稳定性,热稳定性,抗胰蛋白酶稳定性,血…

【专业数据】七.2020~2022年北京交通大学【计算机技术】专业复试线/分数线差/计划招生数/复试数/录取数/复试比例/录取率

文章目录 1.专业介绍2.2020-2022年国家线/复试线/分数线差2.1.数据总览2.2.数据指标2.2.1.复试分数线2.2.2.分数线差3.2020-2022年计划招生数/复试数/录取数/复试比例/录取率3.1.数据总览3.2.数据指标3.2.1.复试比例3.2.2.录取率4.参考资料欢迎订阅本专栏:《北交计算机复试经验…

写前端?Python有手就行...

前端除了用jscsshtml,还有没有其它办法?其实python也可以 爬它!(https://jq.qq.com/?_wv1027&keSp12WR5) 1. 安装与基本流程 安装 PyWebIO 和其他的第三方库一样使用pip install PyWebIO就行,没有…

云原生 | Kubernetes - 资源指标管道

目录 Metrics API 度量资源用量 CPU 内存 Metrics 服务器 对于 Kubernetes,Metrics API 提供了一组基本的指标,以支持自动伸缩和类似的用例。 该 API 提供有关节点和 Pod 的资源使用情况的信息, 包括 CPU 和内存的指标。如果将 Metrics …

【设计模式】适配器模式 (七)

文章目录5.2 适配器模式5.2.1 概述5.2.2 结构5.2.3 类适配器模式5.2.4 对象适配器模式5.2.5 应用场景5.2.6 JDK源码解析5.2 适配器模式 5.2.1 概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此…