VRRP

news2025/1/13 17:32:13

文章目录

  • VRRP基本原理
    • 技术背景
    • VRRP作用
    • VRRP概述
    • VRRP报文
    • VRRP名词解释
      • VRRP路由器
      • VRRP组
      • 虚拟路由器
      • 虚拟IP地址、MAC地址
      • Master、Backup路由器
    • VRRP状态机
    • Master/ Backup 路由器
      • Master路由器:
      • Backup路由器:
    • VRRP的工作过程
  • VRRP基础配置

VRRP基本原理

技术背景

为了解决单个路由器会有单点故障导致无法使用

VRRP作用

提供了局域网上的设备备份机制
VRRP是一种容错协议,它保证当主机的下一跳路由器坏掉时,可以及时由另一台路由器来代替,从而保证通讯的连续性和可靠性。

VRRP概述

  • Virtual Router Redundancy Protocol,也即虚拟路由器冗余协议。
  • 利用VRRP,一组路由器(同一个LAN中的接口)协同工作 但只有一个处于Master状态,处于该状态的路由器(的接口)承担实际的数据流量转发任务。在一个VRRP组内的多个路由器接口共用一个虚拟IP地址,该地址被作为局域网内所有主机的缺省网关地址。(VRRP工作时会在网络中加入一个含有虚拟IP和虚拟MAC地址的虚拟路由器,该路由器充当网络用户的网关,使得网络的主机与虚拟路由器通信无需了解这个网络上物理路由器的任何信息。)
  • VRRP决定哪个路由器是Master,Master路由器负责接收发送至用户网关的数据包并进行转发,以及响应PC对于其网关IP地址的ARP请求。
  • Backup路由器侦听Master路由器的状态,并在Master路由器发生故障时,接替其工作,从而保证业务流量的平滑切换。
  • 当Master正常 工作时每隔一段时间( 缺省为1秒)向组内Backup设备发送vrrp通告报文,通告自己工作正常。(注: 只有Master发送VRRP报文)
  • VRRP通告报文被封装在IP报文里,通过组播地址224.0.0.18发送, TTL为255, 协议号为112

VRRP报文

VRRP报文是一种多播报文,由Master路由器发出来通告它的存在,使用VRRP报文可以检测虚拟路由器的各种参数,用于主路由器的选择。VRRP报文号是封装在IP报文中,通过组播的方式传送。也就是说VRRP协议跟ICMP协议一样,工作在第三层(路由层),它是不具有端口的说法的。
(1) Version: VRRP协议版本号, RFC3768定义了版本号2
(2) Type:
指明VRRP报文类型,RFC3768只定义了一种VRRP报文,即VRRP通告报文,所以该字段总为1 (若收到的VPPR通告报文的该字段的类型为非1则会被丢弃)
(3) Virtual Rtr ID:
即上面讲的大VRID.一个VRID唯一标识了 一个虚拟路由器,取值范围为[1,255]。 (所以一台路由器的接口最多可以运行255个VRP组)
(4) Priority:
优先级。虚不受影响。若此字段为0表示这
是Master路由器出现故障发送的VRRP通告报文,当Backup路 由器收到此通告报文后,会等待(Skew time (256- Backup路拟路由器中用该字段来决定Master路由器和Backup路由器,值越大表明优先级越高,取值为[1,255],缺省值为100。假设虚拟路由器的IP
地址跟VRRP组中某台路由器IP地址相同,那么该路由器的发出的VRRP报文的该字段总为255,即使人为指定为其他值也由器的优先级) /256)秒时间
,然后将自己切换为Master路由器。
(5)CountIPAddrs:VRRP通告报文中包含的IP数目,即被一个VRRP虚拟路由器所分配的IP地址的数量。
(6) Auth Type:
认证类型字段,一个虚拟路由器只能使用一种认证类型,若Backup路由器收到的通告报文段中认证类型字段是未知或者和本地配置不匹配,则将该数据包丢弃。
认证类型字段的定义:
0表示无认证
1表示保留,向前一个版本的RFC2338提供兼容性

2表示保留,向前一个版本的RFC2338提供兼容性

(7) Adver Int: Mater路由器向外发送VRRP通告报文的时间间隔,以秒为单位,取值范围是[1,255], 缺省为1
(8) Checksum: 整个VRRP报文的校验和
(9) IP Address: VRRP虚拟路由器的虚拟IP地址(可配置多个)
(10) Authentication Data: 验证字。为了向RFC2338兼容, 在实际的封装时,全置为0,接收方会忽略此字段

在这里插入图片描述

VRRP名词解释

VRRP路由器

一台VRRP路由器(的接口)可以同时参与到多个VRRP组中,在不同的组中,一台VRRP路由器可以充当不同的角色。

VRRP组

一个VRRP组由多个VRRP路由器组成,使用相同的VRID(Virtual Router ID,虚拟路由器ID)进行标识,属于同一VRRP组的VRRP路由器互相交换信息,每一个VRRP组中只能有一个Master。

虚拟路由器

对于每一个VRRP组,抽象出来的一个逻辑路由器,该路由器充当网络用户的网关,该路由器并非真实存在,事实上对于用户而言,只需知道虚拟路由器的IP,至于具体的虚拟路由器的角色由谁来承担、数据转发任务由谁来承担、Master故障后谁来接替,这是VRRP的工作。

虚拟IP地址、MAC地址

虚拟IP地址就是虚拟路由器的IP地址,该地址实际上就是用户的网关地址。
虚拟MAC地址是虚拟路由器根据VRID生成的MAC地址。一个虚拟路由器拥有
一个虚拟MAC地址,格式为:00-00-5E-00-01-{VRID}。
image.png

Master、Backup路由器

Master路由器:在VRRP组中实际转发数据包的路由器,在每一个VRRP组中,仅有Master响应对虚拟IP地址的ARP请求。Master路由器同时以一定的时间间
隔发送VRRP消息,以便通知Backup路由器自己的存活情况。
Backup路由器:处于监听状态的路由器,一旦Master路由器出现故障,Backup路由器就开始接替工作。
选举依据:先比较接口VRRP优先级(比大),如果相等,则比较接口IP地址(比大)。

VRRP状态机

  • VRRP协议的状态共有三种
  • 分别是Initialize,Master,Backup
  • 初始状态都是Initialize
  • 通过比较优先级产生Master和Backup
  • 在规定时间内,Backup若没有收到Master发来的心跳报文,将切换为Master

image.png

Master/ Backup 路由器

Master路由器:

  • 定时(Advertisement Interval)发送VRRP通告报文,以便向Backup路由器告知自己的存活情况。
  • 以虚拟MAC地址响应其他设备对虚拟IP地址的ARP请求。
  • 转发目的MAC地址为虚拟MAC地址的IP报文。
  • 如果它是这个虚拟IP地址的拥有者(接口实际IP地址为虚拟IP地址),则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。
  • 如果收到比自己优先级大的报文,立即成为Backup。
  • 如果收到与自己优先级相等的VRRP报文且本地接口IP地址小于对端接口IP,立即成为Backup。

Backup路由器:

  • 接收Master设备发送的VRRP通告版文,判断Master设备的状态是否正常。
  • 对虚拟IP地址的ARP请求,不做响应。
  • 丢弃目的IP地址为虚拟IP地址的IP报文。
  • 如果收到优先级和自己相同或者比自己大的报文,则重置Master_Down_Interval定时器,不进一步比较IP地址。
  • 如果收到比自己优先级小的报文且该报文优先级是0时,定时器时间设置为Skew_time(偏移时间),如果该报文优先级不是0,丢弃报文,立刻成为Master

VRRP的工作过程

  1. VRRP组中的设备选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
  2. Master设备周期性向备份组内所有Backup设备发送VRRP通告报文。
  3. 如果Master设备出现故障,VRRP备份组中的Backup设备重新选举新的Master。
  4. VRRP组状态切换时,Master设备由一台设备切换为另外一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的主机或设备中的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明。原Master设备故障恢复时,若该设备为IP地址拥有者(则其优先级为255),将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
  5. Backup设备的优先级高于Master设备时,由Backup设备的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。
    抢占(Preempt)
    image.png
  • R2加入到网络后,接口的VRRP状态首先过渡到Backup,在收到R1发送的VRRP报文后,由于本地接口的VRRP优先级大于报文中的优先级,因此如果设备激活Preempt(缺省启用)则可立即抢占Master的角色,过渡到Master状态,R2开始发送VRRP消息。
  • 可修改抢占延迟时间,缺省该时间为0s。

VRRP基础配置

image.png
测试
image.png
image.png
image.png
关闭R1的g0/0/1口
image.png
image.png
测试
image.png
image.png

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

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

相关文章

力扣hot100:138. 随机链表的复制(技巧,数据结构)

LeetCode:138. 随机链表的复制 这是一个经典的数据结构题,当做数据结构来学习。 1、哈希映射 需要注意的是,指针也能够当做unordered_map的键值,指针实际上是一个地址值,在unordered_map中,使用指针的实…

快速C++中的入门智能指针

✨前言✨ 📘 博客主页:to Keep博客主页 🙆欢迎关注,👍点赞,📝留言评论 ⏳首发时间:2024年6月4日 📨 博主码云地址:博主码云地址 📕参考书籍&#…

【数据集划分】假如你有超百万条oracle数据库数据(成真版)

【数据集划分】假如你有接近百万条oracle数据库数据(成真版) 写在最前面小结 数据集划分原因注意事项 1. 留出法(Hold-out Method)原理算法复杂度代码示例Scikit-learn的train_test_split分布式计算框架(如Apache Spar…

JVM学习-Jprofiler

JProfiler 基本概述 特点 使用方便,界面操作友好对被分析的应用影响小(提供模板)CPU,Tread,Memory分析功能尤其强大支持对jdbc,noSql,jsp,servlet,socket进行分析支持多种模式(离线、在线)的分析支持监控本地、远程JVM跨平台,拥…

MongoDB~索引使用与优化

Study by: https://docs.mongoing.com/indexeshttps://www.cnblogs.com/Neeo/articles/14325130.html#%E5%85%B6%E4%BB%96%E7%B4%A2%E5%BC%95 作用 如果你把数据库类比为一本书,那书的具体内容是数据,书的目录就是索引,所以索引…

C++第三方库【httplib】断点续传

什么是断点续传 上图是我们平时在浏览器下载文件的场景,下载的本质是数据的传输。当出现网络异常,浏览器异常,或者文件源的服务器异常,下载都可能会终止。而当异常解除后,重新下载文件,我们希望从上一次下载…

用例篇03

正交表 因素:存在的条件 水平:因素的取值 最简单的正交表:L4(2) 应用 allpairs 来实现正交表。 步骤: 1.根据需求找出因素和水平 2.将因素和水平写入到excel表格中(表格不需要保存)(推荐用…

文本批量高效编辑器:一键在每行结尾添加分隔符,助力文本处理飞速提升!

在信息爆炸的时代,文本处理成为了一项不可或缺的技能。然而,面对大量的文本数据,如何高效地进行处理却成为了一项挑战。这时,一款高效、易用的文本批量编辑器就显得尤为重要。这个软件就是首助编辑高手 首先,打开首助…

fairseq框架使用记录

sh命令 cmd"fairseq-train data-bin/$data_dir--save-dir $save_dir--distributed-world-size $gpu_num -s $src_lang -t $tgt_lang--arch $arch--dropout $dropout--criterion $criterion --label-smoothing 0.1--task mmt_vqa--optimizer adam --adam-betas (0.9, 0.98…

高并发系统限流原理

短时间内巨大的访问流量,我们如何让系统在处理高并发的同时还能保证自身系统的稳定性?估计有人会说,增加机器就可以了,因为我的系统架构设计就是按照分布式思想进行架构设计的,所以可以只需要增加机器就可以解决问题了…

代码随想录算法训练营day41

题目:01背包理论基础、416. 分割等和子集 参考链接:代码随想录 动态规划:01背包理论基础 思路:01背包是所有背包问题的基础,第一次看到比较懵,完全不知道dp数据怎么设置。具体分析还是dp五部曲&#xff…

Vue3实战笔记(58)—从零开始掌握Vue3插槽机制,基础入门

文章目录 前言插槽基础入门总结 前言 不论是组件封装还是分析源码,实际开发中经常接触插槽,插槽是干什么用的呢?组件之间能够接收任意类型的 JavaScript 值作为 props,但组件要如何接收模板内容呢?在某些场景中&#…

openssl 常用命令demo

RSA Private Key的结构(ASN.1) RSAPrivateKey :: SEQUENCE { version Version, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- …

k8s学习--ConfigMap详细解释与应用

文章目录 一 什么是configmapConfigMap 的好处ConfigMap 的限制 二.创建ConfigMap的4种方式1.在命令行指定参数创建2.在命令行通过多个文件创建3.在命令行通过文件提供多个键值对创建4.YAML资源清单文件创建 三 configmap的两种使用方法1.通过环境变量的方式传递给pod2.通过vol…

vue3+typescript 使用Codemirror

安装 // npm npm install codemirror-editor-vue3 codemirror^5.65.12// ts版 还需安装: npm install types/codemirror全局注册 修改main.ts: import { createApp } from vueimport App from ./App.vueimport { InstallCodemirro } from "code…

文件编码概念

文件的读取 open()函数: 打开一个已存在的文件,或者创建一个新文件 open(name,mode,encoding) name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径) mode:设置打开文件的模式(访问模式)&am…

LabVIEW步进电机的串口控制方法与实现

本文介绍了在LabVIEW环境中通过串口控制步进电机的方法,涵盖了基本的串口通信原理、硬件连接步骤、LabVIEW编程实现以及注意事项。通过这些方法,用户可以实现对步进电机的精确控制,适用于各种自动化和运动控制应用场景。 步进电机与串口通信…

【Linux】信号(一)

信号我们将从信号产生,信号的保存,信号处理分别进行讲解~ 至少大思路是这样。开始之前还要进行一些基础知识的铺垫。 目录 从生活中提炼一些结论:信号概念的一些储备:信号产生:一、kill指令:二、键盘组合键…

[数据集][目标检测]轮胎检测数据集VOC+YOLO格式439张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):439 标注数量(xml文件个数):439 标注数量(txt文件个数):439 标注类别…

面试官:核心线程数为零时,线程池会处理任务吗?

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…