1 VRRP简介
1.1 VRRP背景
同一网段内的所有主机都会设置一条相同的以网关为下一跳的默认路由,主机通过该网关实现与外部网络通信。当网关单点出现问题,该网段内的所有主机将无法与外部网络通信,为了避免以上问题得出现,提出了VRRP的概念,VRRP(虚拟机路由器冗余协议)可以避免由于局域网网关单点故障而导致的通信中断。
1.2 VRRP 的应用
VRRP允许将多个路由器加入到一个备份组中,形成一台虚拟路由器。
在VRRP主备方式中,仅由Master路由器承担网关功能,当Master出现故障之后,备份组中的路由器通过VRRP选举出优先级高的路由器担任Master工作,虚拟路由器仍能正常运行,这样可以避免网关单点故障而导致的网络中断。
为了通过VRRP实现负载负担,因此需要两个或两个以上的VRRP备份组,每个备份组都存在主备路由器,各备份组中的Master路由器不同。同时一个路由器可以加入到多个VRRP备份组中,在不同的备份组中优先级不同。
2 VRRP 工作原理
2.1 VRRP 标准协议
VRRPv2将可以承担网关功能的一组路由器添加到备份组中,形成一个虚拟路由器,由VRRP的选举机制决定哪台路由器承担转发任务,局域网中的主机只需要将虚拟路由器配置为网关即可。
VRRP是一种容错协议,在提高网络可靠性的同时,也简化了主机的配置。VRRP报文通常使用组播地址224.0.0.18进行发送。
VRRP名词术语解释
1. VRRP 备份组:将局域网内运行 VRRP 的路由器划分到一起,称为一个备份组,功能相当于一个虚拟路由器。备份组分为单备份组合多备份组。
2. 虚拟路由器号( VRID ):范围为 1-255 ,由用户配置,用来标识一个备份组。
3. Master 和 Backup 路由器: Master 路由器是备份组中优先级最高的路由器,承担网关功能,其他路由器处于 Backup 状态。当 Master 路由器出现故障, VRRP 会在备份组中选出优先级最高的处于 Backup 的路由器担任 Master 路由器。
4. IP 地址拥有者:接口 IP 地址跟虚拟 IP 地址相同的路由器被称为 IP 地址拥有者。
5. 虚拟 MAC 地址:一个虚拟路由器拥有一个虚拟 MAC 地址,其格式为 00-00-5E-00-01-{VRID} 。当虚拟路由器回应 ARP 请求时,采用的是虚拟 MAC 地址,而不是接口的物理 MAC 地址。
6. 优先级:用来确定备份组中的路由器的 Master 或 Backup ,当优先相同时,将会比较接口的主 IP 地址, IP 地址大的优先。优先级的取值范围为 0-255 ,默认为 100 。手动配置的服务为 1-254 , 0 被相同保留作为特殊用途使用, 255 则保留给 IP 拥有者使用。
7. 抢占方式:备份组中的路由器处于该方式下,它一旦发现自己的优先级比当前的 Master 高,它就会对外发送 VRRP 通告报文,导致备份组中重新选举 Master ,并最终取代原有的 Master 。
8. 非抢占方式:备份组中的路由器处于该方式下,只用 Master 路由器不出现故障,即使优先级被 Master 路由器高,也不会重新选举 Master 路由器。
9. 认证类型: VRRP 定义了 3 中认证方式,即无认证、简单字符认证和 MD5 认证。
在备份组中,Master路由器定期发送VRRP通告报文,通知备份组中的其他路由器自己工作正常。Backup路由器启动定时器等待通告报文的到来。
当Backup路由器在定时器超时后还未收到Master路由器发送来的VRRP通告报文,则认为Master路由器已经无法正常工作,此时它会认为自己是Master路由器并向外发送VRRP通告报文。备份组中的路由器根据VRRP通告报文中的优先级来确定新的Master路由器,承担报文的转发功能。
2.2 VRRP 监控接口功能
VRRP备份组无法感知上行链路的故障,当路由器连接上相链路的接口出现故障时,如果该路由器处于Master状态,将会导致局域网中的主机无法访问外部网络,或通过非最优路径访问外部网络。
如果路由器配置了监控接口的功能,在连接上行接口处于DOWN 或Removed状态时,它会自动降低自身的优先级(降30,链路通了之后会恢复),使得备份组中的其他路由器的优先级会高于这个路由器,以便优先级高的路由器成为Master路由器,承担转发任务。
3 VRRP 报文和状态机
3.1 VRRP 报文
1. Version :协议版本号, VRRPv2 对应的版本号为 2
2. Type : Vrrp 报文的类型, VRRPv2 报文只有一种类型,即 VRRP 通告报文,该字段取值为 1 。
3. Vitual Rtr ID ( VRID ):虚拟路由器号(备份组号),取值范围为 1-255
4. Priority :路由器在备份组中的优先级,取值范围为 0-255 ( 0 和 255 被系统保留),数值越大表明优先级越高。
5. Count IP Addrs :备份组虚拟 IP 地址的个数,一个备份组可对应多个虚拟 IP 地址。
6. Auth Type :认证类型。该值为 0 表示无认证,该值为 1 表示简单认证,该值为 2 表示 MD5 认证。
7. Adver Int :发送通告报文的时间间隔,单位为 S ,默认为 1s.
8. Checksum : 16 为校验和,用于检测 VRRP 报文中的数据破坏情况。
9. IP Address :备份组虚拟 IP 地址表项,所包含的地址数定义在 Couut IP Addrs 字段中。
10. Authentication Data :验证字,目前只用于简单字符认证,对于其他认证方式填哦。
3.2 VRRP 状态机
VRRP有三种状态机,initialize、Master和Backup 。
路由器启动后进入Initialize状态。当收到端口的Startup消息时,路由器将转入Backup或Master状态(当优先级为255时,直接进入Master状态)。当路由器处于Initialize状态时,不会对VRRP报文做任何处理。
当路由器处于Master状态时,他会定期发送VRRP广播报文,响应对虚拟IP地址的ARP请求,并行响应的是虚拟MAC地址,而不是接口的物理MAC地址。转发目的MAC地址为虚拟MAC地址的IP报文。如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的报文,否则丢弃这个IP报文。
IP地址拥有者的运行优先级始终为255,无需用户配置。IP地址拥有者始终工作在抢占方式,且不允许对IP地址拥有者进行监控指定接口或Track项的配置。
网络流量过大或不同的路由器上的定时器的差异,会导致Backup路由器的定时器异常超时而发生状态转换。对于这种情况,可以通过将VRRP通过报文的发送时间间隔延长的办法来解决。