VRRP协议介绍

article/2025/10/9 6:19:30

目录

一.VRRP协议

1.1  VRRP协议介绍

1.2   VRRP的功能

二.VRRP术语

2.1   VRRP路由器

2.2  VRRP组

2.3  虚拟路由器

2.4   虚拟IP地址、MAC地址:

2.5   Master、 Backup路由器:

2.6   Backup路由器:

2.7  虚拟MAC地址

三.VRRP状态机

 四.Master/Backup路由器

4.1  Master路由器

4.2  Backup路由器

五.VRRP报文

5.1  VRRP的作用

5.2   VRRP报文

六.总结


一.VRRP协议

1.1  VRRP协议介绍

虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议。

利用VRRP,一组路由器(同一个VLAN中的接口)协同工作,但只要一个处于Master状态,处于该状态的路由器接口承担实际数据流量的转发任务。在一个VRRP组内的多个路由器接口共用一个虚拟IP地址,该地址被作为局域网内所有主机的缺省网关地址。

VRRP决定哪个路由器是master,master路由器负责接收发送至用户网关的数据包并进行转发,以及响应PC对于其网关IP地址的ARP请求。

Backup路由器侦听 Master路由器的状态,并在master路由器发生故障时,接替其工作,从而保证业务流量的平滑切换。

1.2   VRRP的功能

备份网关,防止网关单点故障导致网络中断。

二.VRRP术语

2.1   VRRP路由器

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

2.2  VRRP组

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

2.3  虚拟路由器

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

2.4   虚拟IP地址、MAC地址:

虚拟IP地址就是虚拟路由器的IP地址,该地址实际上就是用户的网关地址。

虚拟MAC地址是虚拟路由器根据VRID生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为: 00-00-5E-00-01-{VRID}。

2.5   Master、 Backup路由器:

Master路由器:在VRRP组中实际转发数据包的路由器,在每一个VRRP组中,仅有Master响应对虚拟IP地址的ARP请求。Master路由器同时以一定的时间间隔发送VRRP消息,以便通知Backup路由器自己的存活情况。

2.6   Backup路由器:

处于监听Master状态的路由器,一旦Master路由器出现故障,Backup路由器就开始接替工作。

选举依据:先比较接VRRP优先级(比大) ,如果相等,则比较接口IP地址(比大)。

2.7  虚拟MAC地址

通过VRRP形成的虚拟路由器使用虚拟IP地址和虚拟 MAC与网络中的PC进行通信。

虚拟MAC的格式,最后1个字节的VRID表示虚拟路由器ID的16进制,例如VRID是1,虚拟MAC地址是00-00-5E-00-01-01.

三.VRRP状态机

VRRP协议的状态由三种,分别是lintialize,master,backup.初始状态都是lintialize,通过比较优先级产生master和backup,在规定的时间内backupr没有收到master发来的心跳报文,将切换为master。

 四.Master/Backup路由器

4.1  Master路由器

●定时( Advertisement Interval )发送VRRP通告报文,以便向Backup路由器告知自己的存活情况。

●以虚拟MAC地址响应其他设备对虚拟IP地址的ARP请求。

●转发目的MAC地址为虚拟MAC地址的IP报文。

●如果它是这个虚拟IP地址的拥有者(接口实际IP地址为虚拟IP地址) ,则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。

●如果收到此自己优先级大的报文,立即成为Backup。

●如果收到与自己优先级相等的VRRP报文且本地接IP地址小于对端接口IP,立即成为Backup。

4.2  Backup路由器

●接收Master设备发送的VRRP通告报文,判断Master设备的状态是否正常。

●对虚拟IP地址的ARP请求,不做响应。

●丢弃目的IP地址为虚拟IP地址的IP报文。

●如果收到优先级和自己相同或者比自己大的报文,则重置

Master_ Down_ Interval定时器 ,不进一步比较IP地址。

●如果收到比自己优先级小的报文且该报文优先级是0时,定时器时间设置为Skew_ time (偏移时间) , 如果该报文优先级不是0 ,丢弃报文,立刻成为Master。

Master_ Down_ Interval定时器 : Backup设备在该定时器超时后仍未收到通告报文,则会转换为Master状态。

计算公式如下:
Master_ Down_ Interval=(3*Advertisement_ Interval) + Skew_ time。 其中,Skew_Time=(256- Priority)/256

五.VRRP报文

5.1  VRRP的作用

提供了局域网上的设备备份机制。VRRP是一种容错协议,它保证当主机的下一跳路由器坏掉时,可以及时由另一台路由器来代替,从而保证通信的连续性和可靠性。VRRP工作时会在网络中加入一个含有虚拟IP和虚拟MAC地址的虚拟路由器,该路由器从当网络的用户网关,使得网络E的主机与虚拟路由器通信无需了解这个网络上物理路由器的任何信息。

Master报文的发送:当master正常工作时,它会每个一段时间(缺省值为1秒)向组内backup设备发送VRRP通告报文,通告自己正常工作。(注:只有master发送VRRP报文)

VRRP通告报文被封装在IP报文里,通过组播地址244.0.0.18发送,TTL为255,协议号为112

5.2   VRRP报文

VRRP报文时一种多播报文,由master路由器发出来通告它的存在,使用VRRP报文可以检测虚拟路由器的各种参数,用于主路由器的选择。VRRP报文是封装在IP报文中,通过组播的方式传送。也就是说VRRP协议和ICMP协议一样,工作在第三层(路由层),它是不具有端口的说法的。

1.Version:VRRP协议版本号,RFC3768定义的版本号

2.Type:指明VRRP报文的类型,RFC3768只定义了一种VRRP报文,既是VRRP通告报文,该字段为1(若收到的VRRP通告报文的该字段类型为非1,则会被丢弃)

3.Virtual Rtr ID:即上面讲的VRID,一个VRID唯一标识一个虚拟路由器,取值范围【1,255】。所以一台路由器的接口最多可以运行255个VRRP组。

4.Priority:优先级。虚不受影响。若此段为0表示这是master路由器出现故障发送的VRRP报文,当backup路由器收到此报文后,会等待(skew time ).Backup路由器用该字段来决定master和backup路由器,值越大表明优先级越高,取值为(1,255),缺省值为100.假设虚拟路由器的IP地址跟VRRP组中某台路由器IP地址相同,那么该路由器的发出的VRRP报文的该字段总为255,即使人为指定为其他值也由路由器的优先级(/256秒时间),将自己切换为master路由器。

5.CountIP Addrs:VRRP通告报文中包含的IP数目,即被一个VRRP虚拟路由器所分配的IP地址的数量。

6.Auth  Type:认证类型字段,一个虚拟路由器只能有一个认证类型,若backup路由器收到的通告报文段中认证类型是未知或者和本地配置不匹配,则将该数据包丢弃。

认证类型字段的定义:

0表示无认证

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

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

7.Adver Int:master路由器向外发送VRRP通告报文的时间间隔,以秒为单位,取值范围[1,255],缺省值为1.

8.Checksum:整个VRRP报文的校验和

9.IP Address :VRRP虚拟路由器的虚拟IP地址(可配置多个)

10.Authentication Data:验证字。为了向RFC2338兼容,在实际封装时,全值为0,接收方会忽略此段。

六.总结

1.VRRP的工作原理

2.Master路由器和Backup路由器

3.VRRP报文格式

4.虚拟路由器中的虚拟IP地址和虚拟MAC 地址


http://chatgpt.dhexx.cn/article/Z9DmUwwF.shtml

相关文章

小程序分享(转发)功能

小程序官方文档: 页面内发起转发 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html#%E9%A1%B5%E9%9D%A2%E5%86%85%E5%8F%91%E8%B5%B7%E8%BD%AC%E5%8F%91 1,页面内发起转发 通过给 button 组件设置属性 open-type…

WeChat小程序如何实现转发功能?

官网文档:链接: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html. 一、点击小程序转发 1. 不加参数 //转发onShareAppMessage: function() {let users wx.getStorageSync(user);if (res.from button) {}return {title: …

微信小程序开发中怎么设置转发(分享)的信息

如果什么都不设置,转发时默认名称是小程序的名称,转发的图片显示的是当前页面的截图,如图一 如何在自定义转发信息呢? 在进行转发的页面中: Page({onShareAppMessage: function () {return {title: 做任务赢积分,image…

实现微信小程序的分享转发功能(可以从分享页返回小程序首页)

先附上官方文档&#xff1a;微信小程序转发文档 最简单是做法就是在转发按钮上添加上这句open-type“share” <button open-type"share">转发按钮</button>这样点击这个按钮的时候就已经有转发功能了&#xff0c;但是这种转发是只能查看转发页&#xff…

微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面

微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面 首先&#xff0c;小程序官网地址&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/short-link/generateShortLink.html#%E8%B0%83%E7%94%A8%E6%96%B9%E5%BC%8F 官…

uniapp小程序分享转发功能

1、当前页面使用转发按钮 官网的介绍 <button type"default" open-type"share" ShareAppMessage"onShareAppMessage()" class"share-btn">转发</button>data(){ return{//设置默认的分享参数share:{title:活动分享,path:…

小程序携带参数转发

小程序携带参数转发 在项目中有做一个需求&#xff0c;老师转发一张图片&#xff0c;学生登录的时候要获取老师转发图片中的信息&#xff0c;这个信息就要在转发的路径path中定义。 需要转发的图片&#xff1a; 上图绿色部分的文字需要发送一个request才能获取到&#xff0c;前…

微信小程序 转发分享功能

转发 获取更多转发信息 通常开发者希望转发出去的小程序被二次打开的时候能够获取到一些信息&#xff0c;例如群的标识。现在通过调用 wx.showShareMenu 并且设置 withShareTicket 为 true &#xff0c;当用户将小程序转发到任一群聊之后&#xff0c;此转发卡片在群聊中被其他…

小程序之 实现转发/分享功能

1.点击右上角转发菜单实现转发/分享 点击右上角胶囊按钮的转发菜单 2.点击’转发’ 3. 最终效果如图所示: wxml部分代码如下: <text>hello world!</text>js部分代码如下: onShareAppMessage: function (res) {console.log(res.from)return {title: 标题标题标…

微信小程序如何实现转发/分享功能

在微信小程序的开发中&#xff0c;我们经常遇到把当前页面转发给好友的需求。并且大部分时候&#xff0c;转发的页面都是带参数的。这里面坑还是比较多的。 <button open-type"share" type"primary">分享给好友</button>首先我们先写一个butto…

微信小程序 转发功能实例讲解

▽ 背景 最近在开发小程序过程中&#xff0c;需要设计一个 “好友代付” 的功能&#xff0c;目的就是点击按钮&#xff0c;引导微信用户转发此页面到好友或微信群中&#xff0c;让对方帮你付款 ▼ 知识讲解 ①. 首先&#xff0c;开发前的重要一步就是&#xff0c;阅读小程序…

微信小程序 转发功能的实现

微信小程序 转发功能的实现 1.当用户将小程序转发到任一群聊之后&#xff0c;可以获取到此次转发的 shareTicket 2.此转发卡片在群聊中被其他用户打开时&#xff0c;可以在 App.onLaunch() 或 App.onShow 获取到另一个 shareTicket 3.两步获取到的 shareTicket 均可通过 wx…

uniapp开发的微信小程序之实现转发功能以及页面跳转传递、接收对象

效果图&#xff1a; 转发功能&#xff1a; <template><view class"container"><button class"share-btn" open-type"share">转发</button></view> </template><script> export default {data() {re…

微信小程序转发功能

微信小程序转发涉及以下4个方法&#xff1a; 1、Page.onShareAppMessage({}) 设置右上角“转发”配置&#xff0c;及转发后回调函数返回 shareTicket 票据 2、wx.showSahreMenu() 用户点击右上角后&#xff0c;显示“转发”按钮 3、wx.hideShareMenu() 隐藏转发按钮&#xff0…

微信小程序开发实战9_2 小程序页面转发

小程序页面转发是小程序分享的一个重要方式&#xff0c;在设计小程序应用时就需要考虑那些页面需要实现转发功能&#xff0c;以及页面的转发参数。本节介绍如何进行小程序页面的分享&#xff0c;并介绍如何获取小程序卡片的分享票据。 9.2.1小程序页面转发 微信小程序提供了页…

Ubuntu16.04安装Cronolog

一、下载安装包 wget https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz 二、 解压缩 tar -xzvf cronolog-1.6.2.tar.gz 三、进入安装目录 cd cronolog-1.6.2/ 四、运行安装 ./configure && make && make install 五、查看是否安装成功 wh…

Linux中Tomcat中的Cronolog日志分割工具配置

说明 在Tomcat 部署中我们默认访问的日志是logs 随着访问量的增加 一个catalina.out 访问量可能是10几G 如果不对logs 的日志进行分割的话&#xff0c;随着访问量的增加Tomcat 的日志就会占用大量资源浪费 &#xff0c;特此 需要使用 cronlong 日志分割工具进行分割日志 如图所…

CentoS 7.8.2003 安装篇三:Cronolog 日期切割工具

一、下载 wget http://cronolog.org/download/cronolog-1.6.2.tar.gz二. 解压缩 tar zxvf cronolog-1.6.2.tar.gz 三. 进入安装目录 cd cronolog-1.6.2 四. 运行安装 ./configure make make install 五. 查看是否安装成功 which cronolog…

使用cronolog进行日志切割

1、下载&#xff08;最新版本&#xff09; # wget http://cronolog.org/download/cronolog-1.6.2.tar.gz 2、解压缩 tar -xvf cronolog-1.6.2.tar 3、进入cronolog安装文件所在目录 cd cronolog-1.6.2 4、运行安装 # ./configure # make # make install 5、查看cronol…

cronolog切割tomcat的catalina.out日志

Linux下运行的Web服务器Apache&#xff0c;默认日志文件是不分割的&#xff0c;一个整文件既不易于管理&#xff0c;也不易于分析统计。安装cronolog后&#xff0c;可以将日志文件按时间分割&#xff0c;易于管理和分析。补充&#xff1a;apache自带的日志分割工具rotatelogs&a…