计算机网络-VRRP工作原理
一、VRRP工作原理
前面我们大概了解了VRRP的一些基础概念,现在开始学习VRRP的技术原理。VRRP的选举及工作步骤:
-
确定网关地址 -
选举主备 -
主设备发送VRRP报文通知Backup设备 -
主设备响应终端ARP并维持在Master状态 -
终端正常发送报文到网关进行转发
因为我们前面大致说了在VRRP中网关IP可以是虚拟IP和MAC地址,因此我们需要确定网关IP是使用虚拟IP地址或者使用物理的接口地址,选择不同也会有些许差异,一般正常情况下使用虚拟IP进行响应。
VRRP只有一种报文Advertisement报文,多个路由设备通过发送Advertisement报文进行主备选举,在报文携带VRRP版本、VRRP组ID、VRRP优先级、VRRP虚拟网关地址进行比较,先比较优先级,优先级大的优先,优先级相等则比较接口IP地址,IP地址大的优先,缺省优先级为100。
一、VRRP状态变化
VRRP协议状态机有三种状态:Initialize(初始状态)、Master(活动状态)、Backup(备份状态)。
初始化状态就是在设备上配置完成时的状态,Master状态为主设备的状态,Nackup状态为备份设备的状态,备份设备会监听主设备发送的Advertisement报文,当定时器超时都没有收到主设备的报文时则备份设备切换为Master状态。
Master状态:
-
定期(ADVER_INTERVAL)发送VRRP报文。 -
以虚拟MAC地址响应对虚拟IP地址的ARP请求。 -
转发目的MAC地址为虚拟MAC地址的IP报文。 -
默认允许ping通虚拟IP地址。 -
当多台设备同时为Master时,若设备收到与自己优先级相同的报文时,会进一步比较IP地址的大小。如果收到报文的源IP地址比自己大,则切换到Backup状态,否则保持Master状态。
Backup状态:
-
接收Master设备发送的VRRP报文,判断Master设备的状态是否正常。 -
对虚拟IP地址的ARP请求,不做响应。 -
丢弃目的MAC地址为虚拟MAC地址的IP报文。 -
丢弃目的IP地址为虚拟IP地址的IP报文。 -
如果收到优先级和自己相同或者比自己优先级大的报文时,重置MASTER_DOWN定时器,不进一步比较IP地址的大小。
二、VRRP主备选举
2.1 当VRRP优先级不相等时主备选举过程
VRRP选举工作步骤,当优先级不一样时根据VRRP定时器的计算规则优先级大的切换为Master的时间较短。
-
确定网关IP地址为192.168.1.254,地址不是物理实际IP地址因此需要进行主备选举。 -
R1的接口VRRP优先级为200,R2的接口VRRP优先级为100,两台设备完成初始化后首先切换至Backup状态。 -
R1与R2根据各自MASTER_DOWN定时器超时时间由Backup切换到Master状态,所以R1比R2更快切换至Master状态。 -
R1和R2通过相互发送VRRP报文进行Master选举,优先级高的被选举为Master设备,因此R1被选为Master路由器 。 -
R1被选举为Master路由器后,状态切换为Master状态,立即发送免费ARP报文,后续终端发往192.168.1.254的报文会有R1进行响应回复给终端实现网络通信。
2.2 VRRP优先级相等时主备选举过程
优先级相同的同时为master,然后交互VRRP报文,根据IP地址大的为master。
-
R1与R2的GE0/0/0接口VRRP优先级都是200,两台设备完成初始化后首先切换至Backup状态。 -
由于优先级相同,R1与R2的MASTER_DOWN定时器超时后,同时由Backup状态切换至Master状态。 -
R1与R2交换VRRP报文,优先级一样,通过比较接口IP地址选举Master路由器,由于R2的接口IP地址大于R1的接口IP地址,因此R2被选举为Master路由器。 -
R2被选举为Master路由器后,立即发送免费ARP报文将虚拟MAC地址通告给与它连接的设备和主机。
2.3 配置为IP地址拥有者时主备选举过程:
在VRRP选举中有一种情况可以不进行主备选举,直接切换到Master状态:
-
R1与R2的GE0/0/0接口VRRP优先级都采用默认配置(默认为100),但是R1的GE0/0/0接口IP地址与Virtual IP地址相同。 -
R1的GE0/0/0接口直接切换至Master状态,R1成为Master路由器。 -
无法手动将VRRP接口优先级配置为255,当接口IP地址为IP地址拥有者时,优先级自动成为255。
总结:VRRP只有一种报文Advertisement报文。VRRP状态有3种:Initialize(初始状态)、Master(活动状态)、Backup(备份状态)。当接口地址为虚拟网关地址时,直接切换为Master状态,否则需要等待定时器超时进行主备选举;当优先级不同时优先级大的优先成为主设备;当优先级相同时接口IP地址大的优先成为主设备。
本文由 mdnice 多平台发布
相关文章:
计算机网络-VRRP工作原理
一、VRRP工作原理 前面我们大概了解了VRRP的一些基础概念,现在开始学习VRRP的技术原理。VRRP的选举及工作步骤: 确定网关地址 选举主备 主设备发送VRRP报文通知Backup设备 主设备响应终端ARP并维持在Master状态 终端正常发送报文到网关进行转发 因为我们…...
6.5椒盐噪声
在OpenCV中联合C给一张图片加上椒盐噪声(Salt and Pepper Noise)可以通过随机选择像素点并将其置为黑色(0)或白色(255)来实现。椒盐噪声是一种随机噪声,通常表现为图像中的孤立黑点(…...
CSS样式的引用方式以及选择器使用
1. CSS 引用方式 CSS 可以通过三种方式引用到 HTML 文件中: 行内样式(Inline Styles):直接在 HTML 元素中定义样式。内部样式表(Internal CSS):在 HTML 文档的 <head> 部分使用 <sty…...
Python Flask_APScheduler定时任务的正确(最佳)使用
描述 APScheduler基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能。最近使用Flask框架使用Flask_APScheduler来做定时任务,在使用过程当中也遇到很多问题,例如在定时任务调用的方法中需要用到flask的app.app_context()时&#…...
Linux命名管道
通信的前提是让不同的进程看到同一份资源,因为路径是具有唯一性的,所以我们可以使用路径文件名来唯一的让不同进程看到同一份资源,实现没有血缘关系的两个进程进行管道通信 1.指令级 mkfifio(FILENAME,0666) …...
Xinstall助力App全渠道统计,参数传递下载提升用户体验!
在移动互联网时代,App已成为我们日常生活中不可或缺的一部分。然而,对于App开发者来说,如何有效地推广和运营自己的应用,却是一个不小的挑战。尤其是在面对众多渠道、复杂的数据统计和用户需求多样化的情况下,如何精准…...
【时时三省】(C语言基础)指针进阶 例题4
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 strlen是求字符串长度 这个需要算上\0 第一个arr 是打印6 因为它加上\0是有六个元素 第二个arr0 数组名相当于首元素的地址 a的地址加0还是a的地址 所以这个地方还是…...
k8s的配置管理
一、配置管理分为两种: 1. 加密配置:用来保存密码和token密钥对以及其它敏感的k8s资源。 2.应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中的容器。 二、加密配置 1.secret三种类型…...
JAVA- 多线程
一,多线程的概念 1.并行与并发 并行:多个任务在同一时刻在cpu 上同时执行并发:多个任务在同一时刻在cpu 上交替执行 2.进程与线程 进程:就是操作系统中正在运行的一个应用程序。所以进程也就是“正在进行的程序”。࿰…...
【Qt】解决设置QPlainTextEdit控件的Tab为4个空格
前言 PyQt5 是一个用于创建跨平台桌面应用程序的 Python 绑定集合,它提供了对 Qt 应用程序框架的访问。用于开发具有图形用户界面(GUI)的应用程序,以及非GUI程序。PyQt5 使得 Python 开发者可以使用 Qt 的丰富功能来构建应用程序。…...
elementUI根据列表id进行列合并@莫成尘
本文章提供了elementUI根据列表id进行列合并的demo,效果如图(可直接复制代码粘贴) <template><div id"app"><el-table border :data"tableList" style"width: 100%" :span-method"objectS…...
基于人工智能的智能安防监控系统
目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据采集与预处理模型训练与预测实时监控与检测应用场景结论 1. 引言 随着科技的发展,智能安防监控系统逐渐成为家庭、企业和公共场所保障安全的核心工具。通过人工智能和计…...
分享从零开始学习网络设备配置--任务6.3 使用基本ACL限制网络访问
任务描述 某公司构建了互联互通的办公网,为保护公司内网用户数据的安全,该公司实施内网安全防范措施。公司分为经理部、财务部和销售部,分属3个不同的网段,3个部门之间用路由器进行信息传递。为了安全起见,公司领导要求…...
数据结构——线性表(静态链表、循环链表以及双向链表)
1、静态链表 用数组描述的链表叫做静态链表,这种描述方法叫做游标实现法。 静态链表需要对数组的第一个和最后一个元素作为特殊元素处理,不存数据。 最后一个指向第一个有数据的下标地址,第一个游标指向第一个没有数据的下标地址。 我们对…...
vue3_对接腾讯_实时音视频
项目需要对接腾讯的实时音视频产品,我这里选择的是多人会议,选择其他实时音视频产品对接流程也一样,如何对接腾讯实时音视频的多人会议产品,从开通服务到对接完成,一 一讲解。 一、开通腾讯实时音视频 1.腾讯实时音视…...
一台电脑对应一个IP地址吗?探讨两台电脑共用IP的可能性
在当今数字化时代,IP地址作为网络世界中的“门牌号”,扮演着至关重要的角色。它负责在网络上唯一标识每一台设备,使得数据能够在庞大的互联网中准确无误地传输。然而,对于IP地址与电脑之间的对应关系,许…...
XInput手柄输入封装
功能全面地封装了XInput的输入, 1. 普通按钮按下, 按住, 弹起状态检查, 2. 摇杆4个方向的按下, 按住, 弹起检查 3. 按键状态变化检测并且记录按下触发时间, 按住保持时间, 方便用来完全自定义的输入功能 4. 多手柄输入合并 CXinputHelper.h #pragma once #include <win…...
NodeMCU-ESP8266+flash_download_tool_3.9.7 烧录
USB-TTL 接 NodeMCU的RXD0, TXD0, GND 例程hello_world: Eclipse编译信息: python /d/ESP/ESP8266_RTOS_SDK/ESP8266_RTOS_SDK/components/esptool_py/esptool/esptool.py --chip esp8266 --port COM6 --baud 115200 --before default_reset --after …...
首例开源的自动驾驶混合运动规划框架,手握“规划可解释”和“决策准确”两张王牌!
导读: 本文开发了一种新的混合运动规划方法,将环境和预测信息集成在Frenet坐标系中,提升了运动规划能力。本文将传统运动规划算法的可预测性和稳定性与RL的动态适应性相结合,从而形成了一个能够有效管理复杂情况并适应不断变化的环…...
数据结构之红黑树的 “奥秘“
目录: 一.红黑树概念 二. 红黑树的性质 三.红黑树的实现 四.红黑树验证 五.AVL树和红黑树的比较 一.红黑树概念 1.红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何 一条从根…...
手写前馈神经网络:从矩阵乘法到梯度下降的硬核实践
1. 这不是“AI科普”,而是一次亲手拆解前馈神经网络的硬核实践你有没有在某个深夜刷到“三分钟看懂神经网络”的短视频,点进去后发现全是齿轮转动、水流奔涌、大脑发光的动画,配上一句“信息像快递一样层层传递”?我试过——看完更…...
别再手搓流程图了!用WPF从零封装一个可拖拽、可连接的业务节点控件(附完整源码)
WPF业务流程图控件开发实战:从零构建可拖拽节点系统 在当今企业级应用开发中,可视化业务流程配置已成为提升用户体验的关键要素。无论是审批流程引擎、ETL数据处理管道,还是自动化任务编排系统,都需要直观的节点连接界面。本文将深…...
ESP-IDF+vscode开发ESP32第十三讲——NVS
目录 一、NVS梳理 1.1 分区 (Partition):NVS 的专属“仓库” 1.2 页面 (Page):仓库里的“货架” 1.3 条目 (Entry):货架上的“最小存储格” 1.4 键值对 (Key-Value Pair):实际存放的“货物” 1.5 命名空间 (Namespace)&…...
GeoSeg:突破性混合Transformer架构实现高效遥感图像语义分割
GeoSeg:突破性混合Transformer架构实现高效遥感图像语义分割 【免费下载链接】GeoSeg UNetFormer: A UNet-like transformer for efficient semantic segmentation of remote sensing urban scene imagery, ISPRS. Also, including other vision transformers and C…...
递归函数详解
递归函数详解——用递归改写谭浩强《C 程序设计》经典例题 📚 基于谭浩强《C 程序设计》经典例题 💡 一套代码看懂递归的本质与应用 🎯 适合 C 语言进阶学习者 📋 目录 1. 递归函数入门基础 2. 递归的三要素 3. 经典例题递归改写 4. 递归进阶应用 [5. 递归 vs 迭代对比…...
【2026年华为暑期实习-非AI方向(通软嵌软测试算法数据科学)- 5月22日-第三题- 数据传输网络调优】(题目+思路+JavaC++Python解析+在线测试)
题目内容 有一个由 NNN 个数据交换节点(编号为 000 到 N−1N-1...
Topit 技术深度:macOS窗口层级管理的现代SwiftUI实现与架构解析
Topit 技术深度:macOS窗口层级管理的现代SwiftUI实现与架构解析 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 深夜两点,当大多数开发者…...
源码级剖析:Java 集合框架大版图与并发容器避坑指南
前言 集合框架(Collection Framework)是 Java 开发者每天都在打交道的老朋友,但能把源码底层逻辑说透的人却寥寥无几。为什么 HashMap 容量必须是 2 的次幂?并发扩容为何会导致死链?for-each 遍历删除为何频繁抛出异常…...
Unity建筑生成器:参数化建模与性能优化实践
1. 这不是“随机堆盒子”,而是建筑生成的工业化流水线在Unity里拖几个Cube拼个楼,再加点贴图——这种做法我干过三年。直到某次做开放城市场景,美术同事把一版“手搭”的街区发给我,我导入引擎后帧率直接掉到28fps,Pro…...
Triton模型服务化:构建高可用AI推理生产系统
1. 项目概述:当模型走出Jupyter,真正开始呼吸真实世界空气“From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题本身就像一句暗号,专为那些在Jupyter里调通了模型、画出了漂亮ROC曲线、却在部署时被生产环境…...
