虚拟路由冗余协议(Virtual Router Redundancy Protocol),这是一个容错协议
的优点
简化网络管理:VRRP能在当前网关设备出现故障时仍然提供可靠的缺省链路,无需修改动态路由协议、路由发现协议等配置信息;
适应性强:VRRP报文封装在IP报文里,支持各种上层协议;
网络开销小:只用一种VRRP通告报文,有效减轻了网络设备的额外负担;
缺点
只能针对单个备份组工作,多个备份组同时工作的时候,会出现VRRP备份组的状态的不一致性。
报文结构
基于IP协议,协议号112
源MAC:0000-5E00-01{VRID}
目的MAC:0100-5E00-0012
源IP:接口实际IP地址
目的IP:224.0.0.18
注:当Master路由器收到请求虚拟路由器IP地址的ARP Request时,它的ARP Reply中回应的MAC地址是虚拟MAC地址,而不是其物理接口的MAC地址。
相关术语
虚拟路由器:由一个Master路由器和多个Backup路由器组成。主机将虚拟路由器当作默认网关。
VRID:虚拟路由器的标识。有相同VRID的一组路由器构成一个虚拟路由器。
Master路由器:虚拟路由器中承担报文转发任务的路由器。
Backup路由器:Master路由器出现故障时,能够代替Master路由器工作的路由器。
虚拟IP地址:虚拟路由器的IP地址。一个虚拟路由器可以拥有一个或多个IP地址。
IP地址拥有者:接口IP地址与虚拟IP地址相同的路由器被称为IP地址拥有者。
虚拟MAC地址:一个虚拟路由器拥有一个虚拟MAC地址。虚拟MAC地址的格式为00-00-5E-00-01-{VRID}。通常情况下,虚拟路由器回应ARP请求使用的是虚拟MAC地址,只有虚拟路由器做特殊配置的时候,才回应接口的真实MAC地址。
优先级:VRRP根据优先级来确定虚拟路由器中每台路由器的地位。
非抢占方式:如果Backup路由器工作在非抢占方式下,则只要Master路由器没有出现故障,Backup路由器即使随后被配置了更高的优先级也不会成为Master路由器。
抢占方式:如果Backup路由器工作在抢占方式下,当它收到VRRP报文后,会将自己的优先级与通告报文中的优先级进行比较。如果自己的优先级比当前的Master路由器的优先级高,就会主动抢占成为Master路由器;否则,将保持Backup状态。
状态机详解
(1)Initialize(初始简称INIT,初始状态)
路由器启动时,如果路由器的优先级是255(最高优先级,当且仅当配置的VRRP虚拟IP地址和接口IP相同,即所谓IP地址拥有者),要发送VRRP通告信息,并发送广播ARP信息通告路由器IP地址对应的MAC地址为路由虚拟MAC,设置通告信息定时器准备定时发送VRRP通告信息,转为MASTER状态:否则进入BACKUP状态,设置定时器检查定时检查是否收到MASTER的通告信息。
(2)Master
主机状态下的路由器要完成如下功能:
●设置定时通告定时器;
●用VRRP虚拟MAC地址响应路由器IP地址的ARP请求;
●转发目的MAC是VRRP虚拟MAC的数据包;
●如果是虚拟路由器IP的拥有者,将接受目的地址是虚拟路由器IP的数据包,否则丢弃;
●当收到shutdown的事件时删除定时通告定时器,发送优先值级为0的通告包,转初始化状态;
●如果定时通告定时器超时时,发送VRRP通告信息;
●收到VRRP通告信息时,如果优先值为0,发送VRRP通告信息:否则,判断数据的优先级是否高于本机,或相等而且实际IP地址大于本地实际IP,设置定时通告定时器,复位主机超时定时器,转BACKUP状态;否则的话,丢弃该通告包。
(3)Backup
备机状态下的路由器要实现以下功能:
●设置主机超时定时器;
●不能响应针对虚拟路由器IP的ARP请求信息;
●丢弃所有目的MAC地址是虚拟路由器MAC地址的数据包;
●不接受目的是虚拟路由器IP的所有数据包;
●当收到shutdown的事件时删除主机超时定时器,转初始化状态;
●主机超时定时器超时的时候,发送VRRP通告信息,广播ARP地址信息,转MASTER状态;
●收到VRRP通告信息时。如果优先值为0,表示进入与MASTER选举,否则判断数据的优先级是否高于本机,如果高的话承认MASTER有效,复位主机超时定时器;否则的话,丢弃该通告包。
状态机解释
正常VRRP工作流程
1、启动VRRP,状态由INIT到BACKUP
2、设备根据优先级设置超时定时器( 原则优先级越大定时器时间约短),优先级大的MASTER,小的BACKUP
3、MASTER设备发送VRRP心跳报文
4、MASTER设备会发送免费ARP刷新交换机的MAC地址表
5、PC发送ARP request,MASTER回应ARP reply
故障切换
如果Master设备发现故障,Backup连续3次未收到心跳报文,状态切换成为Master,发送免费ARP刷新交换机的MAC地址表, 并且回应ARP Request
故障恢复
故障恢复, 查看是否开启抢占(默认开启), 是否配置抢占延迟,如果配置抢占延迟,等待抢占时间超时后成为Master
选举规则
VRRP优先级的取值范围为0到255(数值越大表明优先级越高),可配置的范围是1到254,优先级0为系统保留给路由器放弃Master位置时候使用,255则是系统保留给IP地址拥有者使用。当路由器为IP地址拥有者时,其优先级始终为255。因此,当虚拟路由器内存在IP地址拥有者时,只要其工作正常,则为Master路由器。
如果优先级相同则比较接口实际IP地址,越大越优。
Master路由器状态的通告
Master路由器周期性地发送VRRP报文,在虚拟路由器中公布其配置信息(优先级等)和工作状况。Backup路由器通过接收到VRRP报文的情况来判断Master路由器是否工作正常。
Master路由器主动放弃Master地位(如Master路由器退出虚拟路由器)时,会发送优先级为0的VRRP报文,致使Backup路由器快速切换变成Master路由器。这个切换的时间称为Skew time,计算方式为:(256-Backup路由器的优先级)*VRRP报文时间间隔/256,单位为秒。
当Master路由器发生网络故障而不能发送VRRP报文的时候,Backup路由器并不能立即知道其工作状况。Backup路由器等待一段时间之后,如果还没有接收到VRRP报文,那么会认为Master路由器无法正常工作,而把自己升级为Master路由器,周期性发送VRRP报文。如果此时多个Backup路由器竞争Master路由器的位置,将通过优先级来选举Master路由器。Backup路由器默认等待的时间称为Master_Down_Interval,取值为:(3×VRRP报文的发送时间间隔)+Skew time,单位为秒。
在性能不够稳定的网络中,Backup路由器可能因为网络堵塞而在Master_Down_Interval期间没有收到Master路由器的报文,而主动抢占为Master位置,如果此时原Master路由器的报文又到达了,就会出现虚拟路由器的成员频繁的进行Master抢占现象。为了缓解这种现象的发生,特制定了延迟等待定时器。它可以使得Backup路由器在等待了Master_Down_Interval后,再等待延迟等待时间。如在此期间仍然没有收到VRRP报文,则此Backup路由器才会切换为Master路由器,对外发送VRRP报文。
主动抢占
默认开启,抢占延迟0s,可修改。
认证
无认证(默认)、简单字符认证、MD5认证
高可靠性
BFD、NQA
Master/Backup使用BFD/NQA监视上行链路
Backup可以使用BFD监视Master状态
状态机验证
SW1先开启VRRP
interface Vlanif1
ip address 10.1.1.1 255.255.255.0
vrrp vrid 1 virtual-ip 10.1.1.10
INITIALIZE→BACKUP
BACKUP→超时定时器超时→发送VRRP消息和免费ARP并成为MASTER
shutdown事件
SW2也开启VRRP
interface Vlanif1
ip address 10.1.1.2 255.255.255.0
vrrp vrid 1 virtual-ip 10.1.1.10
MASTER收到shutdown的事件→发送优先值级为0的通告包,转INIT状态
BACKUP→收到VRRP消息→如果优先值为0→超时定时器超时→发送VRRP消息和免费ARP并成为MASTER
BACKUP修改优先级
BACKUP修改本机优先级→大于MASTER的优先级→超时定时器超时→发送VRRP消息和免费ARP并成为MASTER
MASTER→收到VRRP消息→比较优先级是否大于本机→如果大,成为BACKUP
MASTER修改优先级
MASTER修改本机优先级→通告定时器超时→发送VRRP消息
BACKUP→收到VRRP消息否则比较优先级是否大于本机→小则丢弃→超时定时器超时→发送VRRP消息和免费ARP并成为MASTER
MASTER→收到VRRP消息→否则比较优先级是否大于本机→是则成为BACKUP