VRRP (Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种用于提高网络可靠性的协议,主要应用于局域网环境中,通过动态分配虚拟路由器的责任,确保在网络中的单点故障发生时,能够快速切换到备份设备,从而保证网络通信的连续性和可靠性。
VRRP的作用
- 提供冗余备份:VRRP通过在局域网中的多个路由器之间建立VRRP组,集合成一个虚拟的默认网关。这样,网络中的设备始终有可用的路由器进行通信,即使某个路由器发生故障,也不会影响网络的正常通信。
- 实现故障切换:当VRRP组中的主路由器出现故障时,备用路由器会自动接管主路由器的工作,无需人工干预。这种自动切换机制确保了网络流量的顺利传输,减少了因路由器故障导致的网络中断时间。
- 提高网络的可用性和可靠性:通过提供冗余备份和故障切换功能,VRRP大大增强了网络的可用性和可靠性。它确保了网络在面临路由器故障时仍能保持正常运行,从而提高了整体的网络服务质量。
- 负载均衡:VRRP还可以配置为在多个路由器之间分担流量,从而优化网络性能和提高可扩展性。这有助于平衡网络负载,避免某些路由器过载而导致性能下降。
- 与其他冗余协议配合:VRRP可以与其他冗余协议(如HSRP)结合使用,以提供更全面的网络冗余解决方案。这种灵活性使得VRRP能够适应各种复杂的网络环境,进一步增强网络的可靠性和稳定性
图示VRRP
VRRP的主要概念
VRRP组和VRID,VRRP路由器,虚拟 IP 地址,IP地址拥有者,Master 路由器,Backup 路由器,抢占和非抢占模式。
1.VRRP组和VRID
一个VRRP 组由1台 Master 设备和至少一台Backup 设备组成,内部网络终端的默认网关指向VRRP组(及虚拟路由器)
VRID 是虚拟路由器的唯一标识,体现在VRRP 报文中,取值范围是 1~255.VRRP路由器可以属于一个VRRP组,也可以属于多个VRRP组。不同的VRRP组需要不同的VRID进行区分。
2.VRRP路由器
VRRP路由器是指运行VRRP 的设备。在同一个VRRP 组中,各路由器的下行VRRP接口的IP地址必须是同一网段。(实际上,VRRP 是配置在路由器的接口上,而且也是基于接口进行工作的)
3.虚拟IP地址和虚拟MAC地址
VRRP组(虚拟路由器)是由VRRP虚拟出来的逻辑设备,它拥有自己的虚拟IP地址和虚拟MAC地址,在终端看来,它和真实的网关没有区别,一台虚拟路由器可以有一个或多个虚拟IP地址,该IP地址必须与下行VRRP物理接口的IP地址同属一个网段,一台虚拟路由器只能有一个虚拟MAC地址,格式有2种,分别为 “ 0000-5e00-01{VRID}(IPv4)和 “0000-5c00-02{VRID} ”(IPv6)。 虚拟MAC是可以计算的,当地址版本是IPv4时,前十位是固定的 0000-5e00-01 后两位取决于VRID,当VRID是1那么后两位就是01,是2时就是02
4.IP地址拥有者
正常情况下虚拟IP地址不会这下行接口IP地址一样,但有些特殊情况VRRP路由器虚拟IP地址会和接口IP地一样,那么该路由器的优先级会默认提升到255,以确保该路由器是Master 路由器,总结一句话就是当路由器下行接口IP地址和虚拟路由器IP一样那么该路由器一定是Master 路由器。
5.Master 路由器和 Backup 路由器
Master路由器被称为主路由器,负责在一个VRRP组承担报文转发任务,在一个VRRP组中,只有Master路由器才会响应针对虚拟IP地址的ARP请求,Mater路由器会周期性地发送VRRP报文,以便向同一个VRRP组中地Backup路由器通知自己地存活情况。
Backup路由器被称为备份路由器,不承担报文转发任务,但负责实时监听Master路由器发送出来的VRRP报文,一旦负责Master路由器故障,则立即通过选举成为新的Master路由器。
6.VRRP优先级
在一个VRRP中,通过VRRP优先级来 “ 选举 ”出Master路由器,一个VRRP组中,各路由器可以设置不同的优先级,优先级值越大路由器越有可能成为Master路由器,如果优先级相同,则选择物理接口IP地址更大的路由器成为Master路由器。
7.抢占模式和非抢占模式
在抢占模式下,如果Backup路由器发现Master路由器的优先级比自己更低,则它立即成为新的Master路由器。
在非抢占模式下,只要Master路由器工作正常,那么Backup路由器即使发现Master路由器的路由器比自己更低,也只能保持Backup状态。
VRRP 的报文
VRRP 正常工作依赖于 VRRP 报文的正确收发和报文内容。VRRP报文是Master路由器通过下行VRRP 接口发送的,通告给同- VRRP 组中的所有 Backup路由器,内容包括 VRID.Master 路由器优先级、虚拟 I 地址等信息。这些信息被封装在 IP 报文中,IP 头部的协议号字段值为 112,报文的目的 IP 地址是组播地址 224.0.0.18。
VRRP 报文中各字段的含义如下
版本(Version):VRRP版本号。对于VRRPv2来说,取值为2
类型(Type):VRRP 只有通告报文这一种类型。因此该字段的值恒为1。虚拟路由器 ID(Virtual Rtr ID):虚拟路由器的标识,即 VRID,取值范围是1~255。优先级(Priority):取值范围是 0~255,在华为路由器上,默认值为100。优先级取值0表示该设备不会等待计时器超时,而是立即发送 VRRP 通告报文,用于使设备尽快成为 Master;优先级取值 255 保留给IP地址拥有者。IP地址拥有者的优先级不用手动配置,系统会自动赋值 255。
IP地址个数(CountIPAddress):VRRP 组中配置的虚拟 IP 地址的个数。
认证类型(Auth Type):VRRP报文的认证类型,有以下3种类型。
字段取值为0,表示无认证(Non Authentication)。
字段取值为1,表示明文认证方式(Simple TextPassword)。
字段取值为2,表示MD5 认证方式(IPAuthentication Header)。
通告间隔(Adver Int):VRRP 报文的发送时间间隔(单位为秒),默认值为 1s。 校验和(Checksum):校验和,用于检测 VRRP 报文的数据完整性
IP地址(IPAddress):VRRP 虚拟IP地址。
认证数据(Authentication Data):VRRP 认证数据,当使用明文认证或 MD5 认证时,该字段才填充相应的数据,如果使用其他认证类型,则此字段值为0。
VRRP 版本有两个版本分别为VRRPV2 和VRRPV3
VRRPv2:仅适用于IPv4网络。它提供了在IPv4环境下,通过多台路由设备组成虚拟路由器,实现网关冗余和故障切换的功能。 VRRPv3:则适用于IPv4和IPv6两种网络。这意味着VRRPv3不仅可以在IPv4网络中工作,还能在IPv6网络中提供相同的网关冗余和故障切换功能。
VRRPV2有认证功能,而VRRPV3无认证功能(因为IPV6协议自带认证功能)
VRRP 报文通告间隔不同。 VRRPv2 为秒级,而 VRRPv3 为厘秒级
VRRP 的状态
VRRP(Virtual Router Redundancy Protocol)协议中定义了三种状态,分别是:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)
1. Initialize (初始状态)
Initialize状态是初始状态,VRRP的功能不可用,在接口配置VRRP后,如果该接口的状态为Down(如接口被关闭或没有连接线缆),该接口的VRRP状态将会停滞在Initialize。
当接口启动之后,如果其VRRP优先级为255(当该设备为虚拟IP地址拥有者时),那么该接口的VRRP状态将由Initialize直接切换到Mater,如果接口VRRP优先级小于255,则会先进入Backup状态。
2. Backup(备份状态)
Backup状态表示当前设备是VRRP组中的备份路由器:
1. 对于VRRP虚拟IP地址的ARP请求不予回应。
2. 丢弃目的MAC地址为VRRP虚拟MAC地址的IP报文。
3.丢弃目的IP地址为VRRP虚拟IP地址的IP报文。
4. 实时监听Master路由器发送的VRRP报文,判断工作状态是否正常。
在发生以下情况时进行状态切换:
(1)如果收到比本地优先级更小的VRRP报文,且优先级不为0,则立即转换为Master状态(仅抢占模式)
(2)如果收到比本地优先级更小的VRRP报文,且优先级为0(表示Master设备主动退出VRRP组),立即转换为Master状态。
(3)如果Master_Down_Interval 定时器超时,立即转换为Master状态。
(4)如果接口的状态为Down,立即转换为Initialize状态。
3. Master(主状态)
处于Master状态的路由器是当前VRRP组的主路由器,它承担数据转发任务:
(1)当收到关于虚拟IP地址的ARP请求时,以虚拟MAC地址进行回应。
(2)接收并转发目的MAC地址为虚拟MAC地址的报文。
(3)周期性地发送VRRP报文。
在发生以下情况时进行状态切换:
(1)如果收到比本地优先级更大地VRRP报文,或者收到与本地优先级相等且源IP地址大于本端IP地址地VRRP报文,立即转换为Backup(仅抢占模式)
(2)如果接口地状态Down ,立即转换为Initialize状态。
VRRP主备备份模式:
主备备份模式是VRRP地基本工作模式,在该模式的特点是只有1个VRRP组,决定了同一时间只能由Master路由器负责业务数据的处理,所有Backup路由器均处于监听待命状态,不进行数据的处理和转发,仅在Master路由器发生故障时,才从Backup路由器中选举新的Master路由器。
如图所示,网络中只有一个VRRP组,VRID为1,R1为Master路由器,R2 和 R3为Backup路由器,正常情况下,只有R1负责业务流量的转发,并定时发送VRRP报文通知R2和R3自己工作正常,R2和R3则处于监听备份状态,当R1发生故障时,R2和R3会选举出新的Master路由器(如R3),继续为内部网络终端提供业务流量的转发服务,实现网关备份的功能。
当R1恢复正常时,在抢占模式下,因为它的优先级比R2和R3设备的优先级高,所以R1将重新转换为Master路由器,在非抢占方式下,R1将继续保持Backup状态,直到现任Master路由器出现故障时再重新参与选举Master路由器。
可以看到,虽然这种工作模式实现了主备备份,但因为至少有一台VRRP组的路由器及其相关链路长期处于待命状态,造成了资源浪费,所以主备备份模式比较适用于网络规模较小,业务流量不大的小型网络。
VRRP 负载分担模式
在中大型网络中,终端数量多,业务流量大,所以通常采用VRRP负载分担模式,该模式的特点是有多个VRRP组,每个组的Master路由器不同,内部网络终端也设置不同的默认网关,分别对应不同VRRP组的虚拟IP地址,负载分担模式使多台Master路由器同时转发不同用户组的业务数据,充分发挥VRRP路由器的业务处理能力。
负载分担模式需要建立多个VRRP组,同一个VRRP路由器可以加入多个VRRP组,其在一个组中是Master,在另一个组中就是Backup,在不同的VRRP组中优先级也不同。负载分担模式也可以看成是多个主备备份模式的组合,其基本原理和报文协商过程是相同的,对于每一个VRRP负载分担组,也都包含一台Master路由器和若干台Backup路由器。