VRRP概述

可靠性是衡量一个网络的健壮程度的重要指标,一个可靠性差的网络,应对网络故障的能力相对较弱,当发生诸如网络设备故障或链路故障时,网络上所承载的业务受到的冲击往往比较大,严重时更会造成业务中断。
VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)就是一个应对网络冗余稳定的解决方案。VRRP使得多台同属一个广播域的网络设备能够协同工作,实现设备冗余,从而提高网络的可靠性。VRRP在实际网络中已被广泛部署,它目前有两个版本:VRRPv2和VRRPv3,其中VRRPv2仅适用于IPV4网络,而VRRPv3适用于IPV4和IPV6两种网络。

VRRP概述_第1张图片

如图所示,在R1及R2的G0/0/0接口上部署VRRP,使得两者能够协同工作,可以实现网关冗余。当VRRP开始工作时, 它将产生一台虚拟路由器(Virtual Router),这台虚拟路由器的ip地址为:192.168.1.254/24(该地址由网络管理员指定),PC将自己的默认网关设置为该虚拟路由器的IP地址如此一来,当PC向外部网络发送数据时,数据将被发送给虚拟路由器。
值得注意的是,虚拟路由器是一台逻辑设备,它只是VRRP虚拟出来的一台路由器,当VRRP开始工作后,R1和R2会进行“选举”,胜出的路由器成为master(主)路由器,其他的路由器则成为Backup(备份)路由器。Master路由器承担虚拟路由器的具体工作,如此一来,当PC需要发送数据包到外部网络时,数据包实际被发送给Master路由器R1,当R1发生故障时,通过VRRP协议的运作,R2能够感知到当前的Master路由器发生了故障,从而将自己的状态自动切换到Master,接下来它将接替原来属于R1的工作,在整个VRRP的切换过程中,用户是完全无感知的,PC的配置也不需要做任何变更。

基本概念

1.VRRP路由器

我们将运行VRRP的路由器称为VRRP路由器。实际上,VRRP是配置在路由器的接口上的,而且也是基于接口工作的。如图所示,R1及R2均在各自的GE0/0/0上配置了VRRP,VRRP一旦被激活,路由器的接口便开始发送和侦听VRRP协议报文。需要协同工作的VRRP路由器(的接口)必须属于同一个广播域,否则VRRP报文无法正常交互。在下图中,路由器的接口连接在同一个二层交换机上,而且交换机连接这两台路由器的接口属于相同的VLAN。因此R1及R2这两个接口属于相同的广播域。
VRRP概述_第2张图片

2.VRRP组及VRID

一个VRRP组(VRRP Group)由多台协同工作的路由器(的接口)组成,使用相同的VRID(Virtual Route Identifier,虚拟路由器标识符)进行标识。属于同一个VRRP组的路由器之间交互VRRP协议报文并产生一台虚拟路由器。一个VRRP组中只能出现一台Master路由器。
如上图,R1的G0/0/0接口及R2的G0/0/0接口协同工作,为pc实现冗余网关,因此这两个接口需加入同一个VRRP组,如果R1使用的VRID为1,那么R2在进行VRRP的相关配置时也必须使用相同的VRID。
一个接口可以加入单个VRRP组,也可以加入多个VRRP组。当然,不同的VRRP组需使用不同的VRID进行区分。

3.虚拟路由器、虚拟IP地址及虚拟MAC地址

VRRP为每一组抽象出一台虚拟路由器(Virtual Router),该路由器并非真实存在的物理设备,而是由VRRP虚拟出来的逻辑设备。它拥有自己的IP地址及MAC地址,其中虚拟路由器的ip地址(虚拟ip地址)由网络管理员在配置VRRP时指定,一台虚拟路由器可以有一个或多个IP地址。而虚拟MAC地址的格式时“0000-5e00-0100”,其中xx为VRID,例如当VRID为1时,则虚拟MAC地址为“0000-5e00-0101”。一个VRRP组只会产生一台虚拟路由器。
当Master路由器收到请求虚拟路由器MAC地址的ARP Request时,它在ARP Reply中回应的MAC地址时虚拟MAC地址,而不是其物理接口的MAC地址。
通常情况下,VRRP路由器的接口IP地址不会与虚拟路由器的IP地址重叠,也就是说我们会为虚拟路由器单独规划一个IP地址,而不会使用某台路由器的接口IP地址。当然也存在一个特殊情况,例如在某些网络中ip地址比较紧缺,那么也有可能会将某台路由器的接口ip地址用于虚拟路由器,此时该路由器将无条件成为Master。

4.Master路由器、Backup路由器

Master路由器是接口处于Master状态的路由器,也被称为主路由器。Master路由器在一个VRRP组中承担报文转发任务。在每一个VRRP组中,只有Master路由器才会响应针对虚拟IP地址的arp Request。Master路由器会以一定的时间间隔周期性的发送VRRP报文,以便通知同一个VRRP组中的Backup路由器关于自己的存活情况。
Backup路由器是接口处于Backup状态的路由器,也被称为备份路由器。Backup路由器将会实时侦听Master路由器发送出来的VRRP报文,它随时准备接替Master路由器的工作。

VRRP首先通过优先级(Priority)来从一个组中“选举”出Master路由器。VRRP优先级的值越大则路由器越有可能成为Master路由器。在优先级相等情况下,接口ip地址越大的路由器越有可能成为Master路由器。

5.抢占模式(Preempt Mode)

如果Backup路由器激活了抢占功能,那么当它发现Master路由器的优先级比自己更低时,它将立即切换至Master状态,成为新的Master路由器,而如果Backup路由器没有激活抢占功能,那摩即使它发现Master路由器优先级比自己更低,也只能依然保持Backup状态,直到Master路由器失效。

状态机

vrrp定义了三种状态,RFC3768(Virtual Router Redundancy Protocol)详细的描述了这些状态。

1.Intialize(初始状态)

Initialize状态是VRRP的初始状态。在接口配置VRRP后,如果该接口是Down的(例如接口被关闭,或者没有连接任何线缆),那么该接口的VRRP状态将会停滞在Initialize。
当接口Up之后,如果其VRRP优先级为255(这种情况发生在该接口的实际ip地址是vrrp虚拟ip地址的情况),那么接口的vrrp状态将由Initialize切换到Master,而如果接口的vrrp优先级不为255,则进入Backup状态。

2.Backup(备份状态)

处于备份状态的路由器是VRRP组中的备份路由器,作为一台备份设备,它并不会参与数据转发工作,但是它会实时监控当前Master路由器的状态,并随时准备接替它的工作。Backup路由器会进行如下工作。

  • 对关于VRRP虚拟ip地址的ARP请求不予回应。
  • 丢弃目的MAC地址为VRRP虚拟MAC地址的数据帧。
  • 不接收目的ip地址为vrrp虚拟ip地址的数据包。
  • 当其收到一个VRRP报文时
  1. 若该报文的优先级为0(这可能意味着当前的Master路由器希望主动放弃Master状态),则将Master_Down_Timer设置为Skew_Time。
  2. 若该VRRP报文的优先级不为0,则当抢占模式(Preempt Mode)未激活时,或者当VRRP报文中的优先级大于或等于本地接口优先级时,将Master_Adver_Interval设置为VRRP报文中的Advertisement Interval,并重置Master_Down_Timer,将Master_Down_Timer的时间设置为Master_Down_Interval。

若该VRRP报文的优先级不为0,则当抢占模式激活并且VRRP报文中的优先级小于本接口优先级时,忽略该vrrp报文,立即切换到Master状态。

Master_Adver_Interval:Master路由器所发送的VRRP报文中,Advertisement Interval字段所填充的值,缺省时该值为1s。该时间间隔即Master路由器周期性发送VRRP报文的间隔。

Master_Down_Timer:Backup路由器将持续接受;来自当前Master路由器的vrrp报文,每当报文到达时,Backup路由器上的Master_Dowm_Timer超时,那么Backup路由器将认为Master路由器已经失效。

Master_Down_Interval:一定时间没有收到来自Master路由器的Vrrp报文后,Backup路由器可认为当前Master路由器已经失效。Master_Down_Interval=(3xMaster_Adver_Interval)+Skew_time。

Skew_time:一个偏移时间,Skew_Time=((256-vrrp优先级)xMaster_Adver_Interval)/256。

当Master_Down_Timer超时(这意味着它认为当前的Master路由器已经失效)。

  • 将接口的状态切换到Master。
  • 开始从接口发送自己的VRRP报文。
  • 从接口发送一个免费的ARP Request(Gratuitous ARP Request)广播帧,该arp request携带了vrrp 虚拟ip地址及虚拟MAC地址的绑定信息,用于刷新该接口所直连的广播域内的设备的ARP表,MAC地址表。

3.Master(主状态)

处于Master装态的路由器是当前vrrp组的主路由器,它承载数据转发任务。Master路由器会进行如下工作。

  • 当收到关于虚拟ip地址的arp请求时,以虚拟mac地址回应。
  • 转发目的mac地址为虚拟mac地址的报文。
  • 周期性的发送vrrp报文,时间间隔缺省为1s。
  • 当其收到一个vrrp报文时。
  1. 若该VRRP的优先级为0,则继续发送自己的报文。
  2. 若该VRRP的优先级不为0,并且比本接口的VRRP优先值更大,或者VRRP优先级相等但是VRRP报文的源IP地址比本接口IP地址更大,则将接口的状态切换到Backup。
  3. 若VRRP报文的优先级不为0,并且比本接口的VRRP优先级值更小,则忽略该VRRP报文。 

Master路由器的“选举”

       在一个VRRP组中,正常情况下只能存在一台Master路由器。Vrrp根据优先级和ip地址来据欸的那个哪一台路由器充当Master。优先级的范围时0~255,优先级的值越大,则路由器越有可能成为Master,其中0及255是两个特殊的优先级,不能被直接配置。当路由器的接口ip地址与vrrp虚拟ip地址相同时,它的优先级将自动变成最大值255,此时该路由器被称为ip地址拥有者(IP Address Owner)。0时另一个特殊的优先级,它出现在Master路由器主动放弃Master角色时,例如当接口的VRRP配置被手工删掉时,该Master路由器会立即放松一个优先级值为0的VRRP报文,用来通知网络中的Backup路由器。
       当一个激活了vrrp的接口up之后,如果接口的vrrp优先级为255,那么其vrrp状态将直接从Intialize切换到Master,而如果接口的VRRP优先级不为255,则首先切换到Backup状态,然后再视竞争结果决定是否能够切换到Master状态。
如果同一个广播域的同一个vrrp组内出现了两台Master,那么它们将比较自己与对方的优先级,优先级值大的设备胜出,继续保持Master状态,而竞争失败的路由器则切换到Backup状态。如果这两台路由器的优先级相等,那摩接口ip地址更大的路由器将会保持Master状态,而另一台设备则切换到Backup状态。
       处于Master状态的路由器会周期性的发送VRRP报文,并在报文中描述自己的优先级、ip地址等信息。同一个广播域中、同一个VRRP组的Backup路由器会侦听这些报文。如果此时网络中出现了一台Backup路由器(其优先级高于当前Master路由器),激活了浆站功能,那摩它会忽略收到的VRRP报文,并且切换到Master状态,同时发送自己的VRRP报文并在报文中描述其优先级等信息,而此前的Master路由器在收到了该VRRP报文之后,则切换到Backup状态。

vrrp相关基础实验:VRRP相关实验_一张白纸白又白的博客-CSDN博客

你可能感兴趣的:(网络,负载均衡)