一个网关没有冗余性,出现故障全网断网,使用两个网关设备,当一个设备down掉,还得去手动改PC的网关地址,非常麻烦,于是有了VRRP,虚拟出一台设备当作网关,使用主设备承载业务,当主设备出现故障,备份设备接替业务。
VRRP(虚拟冗余路由器)通过把几台路由设备联合组成一台虚拟的“路由设备”,使用一定的机制保证当主机的下一跳路由设备出现故障时,及时将业务切换到备份路由设备,从而保持通讯的连续性和可靠性。
VRRP基本概念
VRRP路由器:运行VRRP协议的路由器,VRRP是配置在接口上的,基于接口来工作的。
VRID:共同运行VRRP协议的路由器组成一个组,使用相同的VRID进行标识。一个组内只有一个Master设备。范围0~255,0不可用。
虚拟路由器:虚拟出的路由器叫做虚拟路由器。
虚拟IP地址及虚拟MAC地址:虚拟路由器的IP地址和虚拟路由器的MAC地址。虚拟IP地址手动配置,虚拟MAC地址是0000-5e00-01xx
xx为VRID,比如VRID为1,虚拟MAC地址就是0000-5e00-0101,01为16进制数。
Master路由器:承担转发任务。响应对虚拟IP地址的ARP请求,每秒通告VRRP报文,通知Backup路由器关于自己的存活情况。
Backup路由器:接替Master路由器工作的设备。
优先级:取值范围0~255,手工配 置只能配置1~254。
抢占模式:Backup激活了抢占模式,发现Master路由器优先级比自己低时,立即切换Master状态;未激活抢占模式,即使Master路由器更低,也不会切换Master状态。
VRRP的工作机制
VRRP报文格式
目的MAC地址:01-00-5E-00-00-12(组播MAC地址)
源MAC地址: 00-00-5E-00-01-XX(源MAC地址,虚拟MAC)
目的IP地址:224.0.0.18(组播IP地址)
源IP地址:Master端口IP地址
VRRP协议号为112
VRRP状态机
Initialize(初始状态)、Master(主状态)、Backup(备份状态)。
初始状态:当接口配置了vrrp,但为down时,状态为初始状态。
接口up之后,如果优先级小于255,会进入Backup状态,如果优先级等于255,直接进入Master状态。
Mster状态:承载数据转发任务
- 以虚拟MAC地址响应虚拟IP地址的ARP请求
- 转发目的MAC地址为虚拟MAC地址的报文。
- 周期性发送VRRP报文,默认 为1秒。
- 当收到一个VRRP报文优先级为0的,则继续发送自己的报文;
- 当收到一个VRRP报文优先级比自己大的,或优先级相等,但报文中源IP地址比自己大的报文,会切换到Backup状态;
- 当收到一个VRRP报文优先级不为0,且比自己小的,则忽略该报文。
Backup状态:不参与数据转发,实时监控Master的状态,准备接替Master的状态
- 不回应虚拟IP地址的ARP请求;
- 丢弃目的MAC地址为VRRP虚拟MAC地址的数据帧;
- 不接收目的IP地址为VRRP虚拟IP地址的数据包;
- 实时侦听VRRP报文;
- 收到优先级和自己一样的,不会比较IP地址大小
- 收到VRRP报文优先级为0的,则等待一个偏移时间,切换到Master状态;
- 收到VRRP报文优先级比自己小的,立即切换到Backup状态;
- 超时3-4秒没收到VRRP报文,会将状态切换到Master状态,并开始发送VRRP报文,从接口发送免费ARP。
VRRP定时器
Backup路由器在3-4秒钟没有收到VRRP报文,认为Master路由器失效,会切换为Master状态。
在VRRP协议工作过程中,VRRP定义了两个定时器:
ADVER_INTERVAL定时器:Master发送VRRP通告报文时间周期,缺省值为1秒。
MASTER_DOWN定时器:Backup设备监听该定时器超时后,会变为Master状态。
MASTER_DOWN定时器计算公式如下:
▪MASTER_DOWN =(3* ADVER_INTERVAL)+ Skew_time(偏移时间)
▪其中,Skew_Time=(256–Priority)/256
Master路由器的选举
优先级范围0-255
0:Master路由器主动放弃Master角色,手工删除配置,会立即发送优先级为0的VRRP报文。
255:虚拟IP地址与Master设备接口IP地址相同,就成为IP地址拥有者,优先级为255,直接进入Master状态。
基本配置
vrrp vrid 1 virtual-ip 192.168.1.254 //创建VRID为1的VRRP组,虚拟IP地址为192.168.1.254 vrrp vrid 1 priority 120 //配置VRRP优先级 vrrp vrid1 prempt-mode disable //关闭抢占功能 vrrp vrid 1 track interface g0/0/1 reduced 20 //使用track模块监视G0/0/1接口,当该接口down掉,减少VRID 1组的优先级20
VRRP监视上行端口
track直连故障
如图,R1和R2的1号口共同运行VRRP,组成VRRP组,1为Master,那么当R1的1号口down后,R2是能够知道R1运行VRRP协议出现故障,会切换到Master状态,此时PC仍可访问R3。但是当R1的2号口故障时,R1依然会给R2发送VRRP报文,此时R2并不会切换状态,但PC的数据包就不能到达R3了,所以此时可以使用track来监视R1的2号口,当R1的2号口down后,会降低R1运行VRRP的接口优先级,使R2可以切换Master状态,让PC可以正常到达R3。
VRRP与BFD
如果R1如果在1号口上部署track,那么R1运行VRRP的0号口则会知道R1的1号口down掉了,则会通过降低优先级,来使R2变为Master状态,让网络正常运行。但是如果R3和R5的链路出现故障,track就检测不到了,此时可以使用BFD来检测远端链路故障,在R1的1号口和R5的3号口上部署BFD,相互之间发送BFD报文来检测中间链路是否down掉,并让track检测BFD,当R3与R5之间链路故障,R5中断发送BFD报文,此时track也检测到了,便可以让R1运行VRRP的接口降低优先级,让R2切换到Master状态,使网络正常运行。
VRRP+MSTP VRRP负载分担
建议:
VRRP的主设备在哪,MSTP的根就在哪
VRRP的备份设备在哪,MSTP的备根就在哪