什么是VRRP?
一:什么是VRRP?
虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)是一种用于提高网络可靠性的容错协议。通过VRRP,可以在主机的下一跳设备出现故障时,及时将业务切换到备份设备,从而保障网络通信的连续性和可靠性。

二:为什么需要VRRP
随着网络的快速普及和相关应用的日益深入,各种增值业务(如IPTV、视频会议等)已经开始广泛部署,基础网络的可靠性日益成为用户关注的焦点,能够保证网络传输不中断对于终端用户非常重要。
现网中的主机使用缺省网关与外部网络联系时,如果Gateway出现故障,与其相连的主机将与外界失去联系,导致业务中断。

- 局域网缺省网关示意图
VRRP的出现很好地解决了这个问题。VRRP将多台设备组成一个虚拟设备,通过配置虚拟设备的IP地址为缺省网关,实现缺省网关的备份。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。如下图所示,当Master设备故障时,发往缺省网关的流量将由Backup设备进行转发。

- VRRP备份组示意图
三:VRRP的工作原理
1.VRRP的三种状态
- VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文。
- 下表详细描述了三种状态。
- VRRP协议状态:

2.VRRP选举机制
由几台路由器组成的虚拟路由器又称为VRRP备份组。一个VRRP备份组在逻辑上为一台路由器。VRRP备份组建立后,各设备会根据所配置的优先级来选举Master设备,选举方式如下图所示。

- Master设备选举过程
3.VRRP工作原理
如下图所示,路由器A、B、C通过配置VRRP组成一个虚拟路由器。虚拟路由器的IP地址可以与设备上某台设备的实际IP地址一致(实际上直接指定此设备为Master),也可以与它们的地址在同一个网段但不一致。在本例中,我们以前一种方式来举例说明,虚拟路由器的IP地址为路由器A的IP地址(注意:虚拟路由器的IP地址可以与设备上某台设备的实际IP地址一致,也可以与它们呢的地址在同一个网段但不一致。在本例中,我们以前一种方式来举例说明)。由于虚拟路由器的IP地址与路由器A的IP地址相同,因此路由器A为Master设备,路由器B、C为Backup设备。Client1~3的默认网关为10.10.0.1。作为Master设备,路由器A处理着Client1~3发往默认网关10.10.0.1的报文。

- VRRP工作原理
当Master设备出现故障时,路由器B和路由器C会选举出新的Master设备。新的Master设备开始响应对虚拟IP地址的ARP响应,并定期发送VRRP通告报文。
四:VRRP的详细工作过程如下:
VRRP备份组中的设备根据优先级选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
Master设备周期性向备份组内所有Backup设备发送VRRP通告报文,通告其配置信息(优先级等)和工作状况。
如果Master设备出现故障,VRRP备份组中的Backup设备将根据优先级重新选举新的Master。
VRRP备份组状态切换时,Master设备由一台设备切换为另外一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的设备或者主机的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明。
原Master设备故障恢复时,若该设备为IP地址拥有者(优先级为255),将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
Backup设备的优先级高于Master设备时,由Backup设备的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。
五:VRRP应用场景
在网络中,VRRP不仅仅在设备故障时触发Master设备的切换,它也能感知某个接口、某条路由的状态。
1.与接口状态联动
如下图所示,VRRP可以与上行接口的状态绑定在一起,当承担转发任务的Master设备的上行接口出现异常时,Master设备会降低一定的优先级,当优先级低于Backup设备的优先级时,Backup设备就会切换为Master设备,从而防止因为上行接口的异常导致业务受损。

- VRRP与接口联动
2.与路由状态联动
如下图所示,VRRP可以与上行路由的状态绑定在一起,当上行路由出现异常时,Master设备可以降低一定的优先级,当优先级低于Backup设备的优先级时,Backup设备就会切换为Master设备,从而防止因为上行路由的异常导致业务受损。

- VRRP与路由联动
什么是VRRP?的更多相关文章
- 理解 OpenStack 高可用(HA)(2):Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP)
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- VRRP虚拟路由器冗余协议
VRRP(VirtualRouterRedundancyProtocol,虚拟路由冗余协议)是一种容错协议.通常,一个网络内的所有主机都设置一条缺省路由,这样,主机发出的目的地址不在本网段的报文将被通 ...
- Vrrp协议
一.简介 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简 ...
- vrrp两用
早上想了想vrrp的使用,1,网关冗余 2,服务器热备 思想稍微有点不一样.主要在于监控口 服务器的话有心跳线,用户同步一些配置和迁移一些服务.达到热备的目的.:牵涉到四个优先级:建议这样排序: 主机 ...
- VRRP配置与维护手册-1
http://www.gpxz.com/diannao/hulianwang/80526.html 一 VRRP简介< xmlnamespace prefix ="o" n ...
- VRRP协议具体解释
转帖:http://blog.chinaunix.net/space.php?uid=11654074&do=blog&id=2857384 Contents ...
- KeepAlived(三):vrrp实例故障转移(keepalived+haproxy)
keepalived使用脚本进行健康检查时的相关配置项.例如keepalived+haproxy实现haproxy的高可用. keepalived分为vrrp实例的心跳检查和后端服务的健康检查.如果要 ...
- VRRP技术总结和配置实践
1.VRRP作为网关可靠性的常用方法,基本思路是,两台路由器组成一个虚拟路由器,通过VRRP协议对内网呈现一个虚拟的网关ip, 以便让局域网内部的终端通过这个虚拟网关对外进行通信. 2.VRRP的最简 ...
- 【原理】VRRP详解
写在前面 keepalived是一个基于VRRP协议来实现的服务高可用方案,从而可以避免IP单点故障.一般与其他负载均衡技术,如LVS,Nginx等一起来工作来达到集群高可用的目的 关于Keepali ...
- Keepalived原理与实战精讲--VRRP协议
. 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简 ...
随机推荐
- 【九度OJ】题目1126:打印极值点下标 解题报告
[九度OJ]题目1126:打印极值点下标 解题报告 标签(空格分隔): 九度OJ [LeetCode] http://ac.jobdu.com/problem.php?pid=1126 题目描述: 在 ...
- 【LeetCode】45. Jump Game II 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 贪心 日期 题目地址:https://leetcod ...
- WPF之AvalonEdit实现MVVM双向绑定
AvalonEdit简介 AvalonEdit是基于WPF开发的代码显示控件,默认支持多种不同语言的关键词高亮,并且可以自定义高亮配置.所以通过AvalonEdit可以快速开发出自己想要的代码编辑器. ...
- JavaScript交互式网页设计笔记 • 【目录】
章节 内容 实践练习 JavaScript交互式网页设计作业目录(作业笔记) 第1章 JavaScript交互式网页设计笔记 • [第1章 JavaScript基本语法] 第2章 JavaScript ...
- Cube 技术解读 | Cube 小程序技术详解
本文为<Cube 技术解读>系列第三篇文章,之前上线的<支付宝新一代动态化技术架构与选型综述>与<Cube卡片技术栈解读>欢迎大家回顾. 魔方卡片(Cube)已在「 ...
- Shelll1-基础入门之变量
1.静态语言:编译型语言 强类型(变量) 事先转换成可执行格式 也就是先编译在执行 比如 C++.C. java C# 动态语言:解释性语言 弱类型 边解释边执行 比如PHP shell python ...
- 解构插槽 Prop
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <link rel ...
- AWS修改RDS时区
查看 RDS 当前时区 默认情况下,AWS 的 RDS 采用的是 UTC 时间.而我们地区一般位于东八区,因此我们本地的时间是 UTC+8. 连接到 RDS 上,查询当前实例的时区. show var ...
- 自动化怎么判断anndroid.listview是否包含某个指定的元素或内容
做自动化的时候,定位元素时,会发现整屏的内容都是放在一个列表,在多层嵌套其他控件组成 如柠檬班的题库,里面会有很多分类 那么在做自动化的时候,怎么判断页面有没有包含指定的分类呢? 整体思路: 1.找到 ...
- mybatis-plus实现多表联查
一.方法一 1.在pojo模块下新建一个VO 包路径用于提供页面展示所需的数据 2.在vo包下新建EmployInfo类,此类继承了Employees类,再把Dept类的数据复制过来 3.在Dao层中 ...