【VRRP】来给你的网关加一个备份吧
文章目录
- 前言
- 一、VRRP技术产生背景
- 二、VRRP基本概念
- 三、VRRP定时器
- 1、ADVER_INTERVAL定时器
- 2、MASTER_DOWN定时器
- 四、VRRP状态机
- 五、VRRP主备选举
- 六、主备切换及主备回切
- 七、监视上行端口
- 八、VRRP与MSTP的结合应用
前言
之前我们一直学习的是二层冗余备份,例如害怕链路损坏
增加多条链路所以有了LACP
,害怕二层转发设备损坏
增加二层转发设备同时又为了防环
所以产生了STP、RSTP、MSTP生成树协议
,二层的冗余备份已经完善,我们接下来考虑三层冗余备份,那就是网关冗余备份VRRP技术
。
一、VRRP技术产生背景
我们都清楚的知道,局域网内的用户想要上网必须通过网关
来进行转发。但是思考过没有网关也只是配置在接口上的一个IP地址,假如接口或者设备二者其一损坏,那么都代表着该局域网内的所有用户都无法访问外部网络。为了解决单点故障
我们可以配置多个网关来进行解决,但是存在多个网关又会产生冲突问题。为了能够存在多个网关并且能够解决冲突问题
,提高网络可靠性所以就产生了VRRP(Virtual Router Redundancy Protocol -虚拟路由冗余协议)
。
二、VRRP基本概念
- VRRP路由器:就是运行VRRP协议的路由器,确切的说是接口,因为
VRRP是配置在路由器接口上进行工作
的。 - VRID(Virtual Router Identifier -虚拟路由器标识符):同一个VRRP组内协同工作的路由器
都有一个相同的VRID
(可以理解为老大)进行标识,并且每一个VRRP组内只能有一台Master路由器
(一个团体内只能有一个老大)。 - 虚拟路由器(Virtual Router):VRRP的每一个组就是一台虚拟路由器,也就是把VRRP组逻辑化为一台虚拟路由器,并且
每个组只能产生一台虚拟路由器。
- 虚拟IP地址及虚拟MAC地址:每一个由若干路由器接口组成的VRRP组虚拟成的一台虚拟路由器当然需要配置虚拟IP地址及虚拟MAC地址啦,一台虚拟路由器
可以有一个或者多个IP地址
,该地址尽量不要与真实接口配置地址相重复
,虚拟mac地址格式为“0000-5e00-01xx”
xx就是你的VRID. - Master路由器:就是VRRP组内唯一的“老大”,在VRRP组内
承担报文转发任务
,一个VRRP组内只有Master才可以对虚拟IP的请求进行响应
,Master还会定期发送VRRP报文
来表明自己还存活。 - Backup路由器:也可以理解为备份路由器。Backup路由器时时监听Master的VRRP报文,
随时准备替代”老大“老进行工作.
- Priority:优先级
取值范围0-255,值越大越优先,值相等的则比较接口IP地址大小,接口越大越优先。
- VRRP报文格式:VRRP只有一种报文格式,就是Advertisement报文,
基于组播方式进行发送
,报文目的组播地址为224.0.0.18.
三、VRRP定时器
在VRRP协议工作过程中一共有需要用到两个定时器:
1、ADVER_INTERVAL定时器
这个也是比较容易理解,用来定时Master给Backup发送自己还存活报文的时间周期
,缺省为1秒。
2、MASTER_DOWN定时器
就是 Backup设备在该定时器超时后就会自动变为Master状态,就是在山头老大不发消息后等待定时器规定的这莫长时间后,就开始揭竿而起,自立为王。
- MASTER_DOWN = (3 * ADVER_INTERVAL) + Skew_time
- Skew_time=(256-Priority)/256
所以说优先级越大,Skew_time(偏移时间)越小,MASTER_DOWN也就越短,这也是优先级大的设备能够成为Master的原因。
四、VRRP状态机
- 初始状态为initialize,当收到startup且优先级小于255就变为Backup,当收到startup且优先级等于255就变为Master
(优先级最大为255)
。- 当为Backup状态时,因为只有Master才可以发送VRRP报文,所以当收到优先级为0(代表Master放弃了老大位置)或者比自己优先级小的报文(实力没有自己强劲了)再或者就是等待超时后(老大不给传消息,估计挂了),就会变为Master状态。
- 当为Master状态时,收到比自己优先级大的报文(后生实力比自己强劲,自己甘愿退位)就会变为Backup状态。
- 无论是Master还是Backup状态,
只要是收到shutdown消息就变为初始化状态initialize。
五、VRRP主备选举
主要分为优先级不同主备选举、优先级相同主备选举、真实接口地址和虚拟IP地址相同
三种情况,都挺简单的。
- 优先级不同主备选举:
上来成员都为Backup状态,
然后等待Master_DOWN时间,因为优先级越大的等待时间越短,所以优先级大的设备就会成为Master
,然后昭告天下,其他设备收到比自己优先级大的报文就甘愿沦为Backup状态。- 优先级相同主备选举:上来成员都为Backup状态,然后等待Master_DOWN时间,因为优先级相同所以等待时间也相同,所以两台设备都会成为Master,然后向外发送报文,通过进一步
比对接口的IP地址来进行选举Master路由器,越大越优先。
- 真实接口地址和虚拟IP地址相同:这种就不用选举了,地址相同自然为Master,但是
慎用!!!
因为用了之后就不能够达成网关冗余备份的效果了,损坏后无法切换Backup设备。
总而言之,优先级不同越大越优先,优先级相同接口越大越优先,接口和虚拟ip相同定为Master.
六、主备切换及主备回切
主备切换分两种情况
第一是Master不想干了,自动退出,他就会发出VRRP优先级为0的报文,其他设备收到比自己优先级小的报文从而改为Master,无需等待MASTER_DOWN时间(因为老大自己都说不干了)。
第二是Master还想干,但是年老身心疲惫,无法向外发送消息说自己还想干,备份设备等待MASTER_DOWN时间超时后,认为老大已经挂了,于是备份改为主设备。
主备回切就是(接着上图),老大突然又想干了,从前的老大收到优先级比自己低的报文在宣告自己的地位,所以在抢占模式的帮助下立即切换为Master。
- 抢占模式:从前的老大收到优先级比自己低的报文在宣告自己的地位,所以在抢占模式的帮助下立即切换为Master,
还可以设置抢占时间,
等待网络稳定后在进行抢占 — 缺省开启。- 非抢占模式:从前的老大收到优先级比自己低的报文在宣告自己的地位,也不会去搭理,有种
“摆烂”
的感觉,这种模式并不是没有用,网络不稳定的时候或者设备不佳时,会导致VRRP主备来回切换,将会加大设备的负担。--- 直到Master失效才会成为Master.
七、监视上行端口
这个功能其实是很必要的,因为VRRP是在路由器接口上运行的,所以当Master的上游设备链路或者接口设备出现故障时,下游链路是不会感知到的,局域网信息还是源源不断通向Master,但是Master收到报文后因为上游链路损坏所以无法进行转发,主备也不会进行切换(因为Master接口没坏),这也就产生了出名的流量黑洞。
八、VRRP与MSTP的结合应用
一定要注意根桥要和Master为同一台设备,或者同一条链路上的设备,不然报文走着走着就会发现 “路断了” 哈哈。
【VRRP】来给你的网关加一个备份吧相关推荐
- 给你的开源项目加一个绶带吧
D2 Ribbons 是一套为开发者准备的开源社区绶带资源,你你可以下载图片到你的项目中使用或者直接使用仓库资源链接. 素材地址 github.com/d2-projects- Features 扁平 ...
- pthread_cond_wait()加一个while为什么的解释
等号上面这段是大多数网上给pthread_cond_wait()加一个while为什么的解释:但是有些地方不太明白或者说没有解释清晰: 准备:1:pthread_cond_singal是唤醒至少一个线 ...
- 接到一个需求,想在页面上加一个链接有多难?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 程序师 来源 | www.techug.com ...
- cassandra——可以预料的查询,如果你的查询条件有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现...
cassandra的索引查询和排序 转自:http://zhaoyanblog.com/archives/499.html cassandra的索引查询和排序 cassandra的查询虽然很弱,但是它 ...
- 数值格式化,每隔三位加一个逗号
数值整数和小数 每隔三位加一个逗号方便阅读 function addCommas(nStr){ nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x[1 ...
- 给博客园加一个会动的小人-spig.js
给博客园加一个会动的小人-spig.js 效果大概是这样,感觉十分可爱qvq 那么怎么添加呢? 首先需要开通js/html权限. 然后在页脚html代码中加入以下代码 <script src=& ...
- 命令前面加一个!的意思如!python
正常的python的命令的前面加一个! 就说明这个是放在cmd里面来执行的
- zend framework1.12 没找到php.exe,请加一个zend framework的有关问题
请加一个zend framework的问题 我在用phpunit测试zend项目里的model, 这个model是这样的: PHP codeclass Application_Model_AdminG ...
- Applese 的回文串(加一个字符的回文)
链接:https://ac.nowcoder.com/acm/contest/330/I 来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如--判断一个字符串是不是回文串. ...
最新文章
- 浅谈企业IT应用的访问方式之:乱想
- LeetCode 59 _ Sprial Matrix II 旋转矩阵2
- 商城html源码_延边小程序商城
- php配置mysql集群_mysql的集群配置
- Android QEMU 高速管道
- GTK+ 2.4 or later isn't available
- GCC中SIMD指令的应用方法
- ise的时钟ip核_Vivado CIC IP核滤波器详解(一)
- Centos(Linux)升级git最新版本
- Mysql Alter table 操作
- 【2016Esri全球用户大会主题亮点】GIS Apps的交响乐
- android 横向长图,Android实现截超长图
- RSA加密算法流程图
- vue 子页面调用父页面的参数_Vue子父组件间的数据传递
- xpath获取同级元素 子元素,子元素取父元素等
- 计算机Word2010在线做题,Word2010试题练习题库(答案).doc
- 内部收益率(二分法)
- Autumn中文文档2:控制器
- 用python 编写一个简单的游戏
- 面向95后的营销和增长,你需要知道这些( ゜- ゜)つロ 乾杯
热门文章
- 技术、产业、人才三管齐下,数字人民币渐行渐近 | 产业区块链发展周报
- 特斯拉AI Day:车企能造好机器人吗?
- Factoryio的应用
- RPA对银行业的重塑:3个大型国际银行RPA应用案例
- Word去除目录主页页码
- 源码天空java新闻_Java UpdateRequest类代码示例
- VR垃圾分类游戏的“入门”场景|广州华锐互动
- com.alibaba.dubbo.rpc.RpcException: No provider available from registry 127.0.0.1:2181 for..
- 摘抄“学习笔记”时想到的
- Python摄氏度与华氏度的相互转换