基础通信学习之VRRP技术

  1. VRRP技术

    虚拟路由冗余协议 VirualRouter Redundancy Protocol, VRRP )是一种容错协议,是由Internet工程任务组( Internet Engineering Task ForceIETF)提出的解决局域网中静态网关单点失效问题的一种冗余协议。1998年推出正式的RFC2338协议标准,2004 年更新为RFC3768

    VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,它保证当主机的下一跳路由器坏掉时,可以及时地由另一台路由器来代替,从而保持通信的连续性和可靠性。

    VRRP的工作包括以下几点:

    1. VRRP的实现原理
    2. VRRP基本概念
    3. VRRP协议报文
    4. VRRP状态机

     

  2. VRRP的实现原理

    通常情况下,在局域网中,为了实现与外部网络的通信,会在每个主机上设置一个网关IP,或者在终端上配置一条默认路由,下一跳指向网关路由器。

    如图所示,RTA作为网关路由器负责和外网进行通信,内网端口IP地址配置为10.1.1.254/240终端PC上配置网关IP地址,指向网关路由器的内网接口,从而实现内网终端和外部网络的通信。

     

    1. 使用VRRP的原因

    上图所示的组网中,负责外网通信的路由器只有RTA,没有冗余,一旦RTA出现故障,或者RTA的内网接口出现故障.那么局域网内所有以RTA为默认路由下一跳的主机将断掉与外部的通信。

    为了防止局域网和外部网络的通信中断,可以选择对网关路由器进行冗余备份。如下图所示,RTARTB同时承担局域网网关的功能,在RTA出现故障的情况下, 可以将局域网内终端的路由下一跳指向RTB,从而实现业务的切换。

    但是在下图所示的组网中,网关路由器仅仅实现了硬件的冗余备份,承担网关功能的两台路由器RTARTB不能使用相同的IP地址,否则会引起IP地址的冲突,因此,RTARTB 的网关IP地址分别配置为10.1.1.251/24 10.1.1.252 /24

    同时,局域网中的主机并不具备自动切换网关功能,即使在网络中部署了RTARTB两个网关,一旦RTA出现故障,以RTA作为同关的终端业务仍然会中断,直至维护人员手工将网关IP切换到RTB

     

    VRRP通过将一组路由设备联合组成一台虚拟路由设备的方式,将网络内主机的默认网关设置为该虚拟路由设备的IP地址。实现 了互相隔离的物理设备在逻辑上的统一,能够使得终端设备在发送给逻辑网关IP地址的时候自动在多个物理网关接口之间选路,很好地解决了上述问题。

    RTARTB两台物理设备联合组成了一台虚拟的逻辑路由器,并且配置了虚拟IP地址10.1.1.254/24。局域网内的主机只需要将默认网关设置为该虚拟路由器的IP地址,就可以利用该虚拟网关与外部网络进行通信,并不需知道具体某台设备的IP地址。当RTA出现故障的时候,RTB会直接接替RTA的工作,而虚拟路由器并不会出现故障,业务的倒换由路由器直接完成,终端主机并不感知,从而保证了通信的连续性和可靠性。

    1. VRRP的主备选举

    VRRP的实际运行中,虚拟路由器是一个逻辑上的概念,并不具备处理数据的能力。终端用户的数据仍然要借助物理路由器进行处理。那么到底哪台路由器负责处理到达虚拟路由器的数据?

    VRRP协议中定义了一个主备网关路由器选举的概念。运行VRRP协议的物理路由器之间会进行选举,最终选举出一个Master,其余路由器全部都处于Backup的状态。所有发往虚拟路由器的数据报文都由Master负责转发。如果Master出现故障,VRRP会从其他运行VRRP的路由器中重新选举出一个新的Master

    VRRP中主备选举的依据主要是优先级,具体的选举原则有以下3点。

    1.比较优先级的大小,优先级高者当选为Master设备。

    2.当两台优先级相同的设备,如果已经存在Master,则Backup设备不进行抢占。如果同时竞争Master,则比较接口IP地址大小,IP地址较大的接口所在设备当选为Master设备。

    3. 其他设备作为备份设备,随时监听Master设备的状态。

     

    在下图RTARTB属于同一个VRRP备份组,组成了一个虚拟路由器。其中,RTBPriority200大于RTAPriority, RTB便成为这个VRRP备份组的Master, RTA成为Backup,作为RTB的备份。所有发往虚拟IP地址10.1.1.254的数据都将由RTB处理。

    主设备在正常工作时, 会每隔一段时间(消息通告间隔, Advertisement_lnterv al)发送一个VRRP组播报文,以通知组内的备份设备,主设备处于正常工作状态。

    当组内的备份设备一段时间(Master故障间隔,Master_Down_lnterval)内没有接收到来自主设备的报文,则将自己转为主设备。一个VRRP组里有多台备份设备时,短时间内可能产生多个Master设备,此时,设备将会将收到的VRRP报文中的优先级与本地优先级做比较,从而选取优先级高的设备做Master。设备的状态变为Master之后, 会立刻发送免费ARP报文来刷新交换机上的Mac表项,从而把用户的流量引到此台设备上来,整个过程对用户完全透明。

    VRRP的选举基于Priority 如果希望某一台性能更优的路由器成为Master 可以通过配置Priority来影响最终的选举结果,但也并不是所有的Priority都可配置,有些特殊的Priority有着特别的用途。

    Priority的取值范围是O255,但可用的范围是1254,默认情况下取值是100。其中0255的取值为特殊优先级值,以下为0255取值的对应含义。

    1. 特殊优先级值255

    Priority255是保留给IP地址拥有者使用的。VRRP路由器的物理端口IP地址和虚拟路由器的虚拟IP地址相同,这种路由器称为虚拟IP地址拥有者。如下图所示,RTA的接口配置的IP地址和虚拟IP一样,因此RTA就是虚拟IP地址拥有者。

    虚拟IP地址拥有者不管配置的priority配置的优先级值为多少,在选举的时候都以优先级255进行选举,只要虚拟IP地址拥有者能够正常工作,IP 地址拥有者始终为Master。如下图,RTA虽然配置的优先级是100,但以优先级255运行, 因此虽然RTB配置的优先级是200,RTA仍然被选举为Master

    2.特殊优先级0

    Priority0VRRP报文用于触发Backup,立即成为Master。当Master停止运行VRRP的时候,Master会立刻发出一个VRRP通告信息,该信息中,Priority字段为0.Backup收到该信息后,立刻从Backup转为Master状态。如下图,当Master RTA停止运行VRRP的时候,RTA会立刻发出一个VRRP通告信息,再该信息中,Priority字段为0,当Backup收到该信息后,立刻从Backup状态转为Master状态。

     

  3. VRRP基本概念

    VRRP在不改变组网的情况下,将多台路由设备组成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现了默认网关的备份。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障了网络的可靠性。

    VRRP的实现中,除了优先级和主备状态以外,VRRP中还定义了一些其他的概念。

    1.虚拟路由器

    VRRP将多台物理设备看成逻辑上的一台虚拟路由器。一台虚拟路由器由两部分信息进行标识;虚拟路由器ID(VRID)和所关联的虚拟IP地址。

    VRID 的配置范围为1 -255, 配置在同一备份组中的VRID必须一致,一个虚拟路由器的虚拟IP地址允许配置多个,但不同的物理路由器上配置的同一虚拟路由器的虚拟IP地址组必须一致。如果VRID一致,但是虚拟IP地址不同,或者虚拟IP地址相同,但是VRID不一致,VRRP都会认为这是不同的虚拟路由器。

    一个虚拟路由器拥有一个虚拟MAC地址。根据规定,虚拟MAC地址的格式为00-00-5E-00-01-{VRID}.当虚拟路由器回应ARP请求时,使用虚拟MAC地址,而不是接口的真实MAC地址。

    在路由器的一个接口上允许配置多个虚拟路由器。

     

    1. 消息通告间隔

    消息通告间隔指的是Master发送两个VRRP通告消息中间的间隔,默认为1 s。 关联到同一虚拟路由器的VRRP路由器上配置的消息通告间隔必须一致,如果不一致,VRRP认为是关联到不同的虚拟路由器。

    3.抢占模式

    在VRRP中,只有Master才能发送VRRP通告消息。Backup路由器在接收到Master发送的VRRP通告消息后,会比较自身的优先级和Master 通告消息中的优先级大小。

    如果抢占模式开启,而且自己的优先级比当前Master路由器的优先级要高,就会将自己的状态修改为Master,并向外通告 VRRP 通告消息。如果抢占模式关闭,Backup路由器即使发现自己的优先级比当前Master 路由器的优先级离, 也不会将自己的状态修改为Master。

    默认情况下是开启的。

     

    4.延迟时间

    在开启了VRRP抢占功能的网络中,如果网络非常繁忙,会出现Master正常工作但是Backup却收不到通告消息的情况。这种情况下可以配置抢占延迟时间,使Backup不会立即成为Master,减少网络报荡。默认情况下,延迟时间的值为0。

    5.Master故障间隔

    路由器处于Backup状态时,如果在Master故障间隔时间内收不到Master发送的VRRP通告报文,则认为Master出现故障,Backup切换状态为Master, 向外发布VRRP通告消息报文。Master故障间隔的时间是3倍的消息通告间隔再加上延迟时间。

    6.报文验证

    VRRP支持3种验证方式:不验证、纯文本密码验证的MD5验证。

    不验证:此验证方式表示VRRP 报文不需要验证。Authentication Data字段为0,接收时不检查该字段。

    纯文本密码验证:此验证方式表示VRRP报文需要进行验证,验证时使用纯文本密码。VRRP报文中的 Authentication Data 字段为端口上配置的密码。

    MD5验证:此验证方式表示VRRP报文使用MD5加密数据进行验证。

     

    如果收到的VRRP报文验证方式和本地接口上配置的不一致,则该VRRP报文被丢弃。

     

  4. VRRP协议报文

    VRRP的主备选举,以及选举完成后的VRRP状态维持中,都需要进行虚拟路由器组的信息传递,目前常规的VRRP主备选举用到的报文只有一种—VRRP通告报文。VRRP报文负责将Master设备的优先级和状态通告给同一虚拟路由器的所有VRRP设备,报文被封装在IP报文中,以多播的方式进行发送。

    在封装VRRP报文的IP报文头中,源地址为发送报文的主接口地址(不是虚拟地址或辅助地址),目的地址使用多播IP地址224.0.0.18TTL255.协议号为112.VRRP报文格式为下图:

    借助于VRRP通告报文,VRRP可以完成主备选举,从而确定负责转发数据的Master。那么VRRP协议的状态又是如何切换的呢?

     

  5. VRRP的状态机

    VRRP的工作原理介绍中提到了VRRP协议的两种状态,MasterBackup。实际上,VRRP中定义的状态是三种:初始化状态(initialize),活动状态(Master),备份状态(Backup),其中,只有处于活动状态(Master)的设备才可以转发那些发送到虚拟IP地址的报文。

    VRRP的三种状态之间的转换关系如图所示:

     

     

    1. initialize状态

    设备启动时进入此状态,当收到接口Startup的消息后,将转入Backup或Master状态(IP地址拥有者的接口优先级为255 直接转为Master),在此状态时,不会对VRRP通告报文做任何处理。

    1. Master状态

    当路由器处于Master状态时,它将会做下列工作。

    定期发送VRRP通告报文。

    以虚拟MAC地址响应对虚拟IP地址的ARP请求。

    转发目的MAC地址为虚拟MAC地址的IP报文。

    如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。

    如果收到比自己优先级大的报文则转为Backup状态。

    当接收到接口的Shutdown事件时,转为Initialize状态。

    3.Backup状态

    当路由器处于Backup状态时,它将会做下列工作。

    接收Master发送的VRRP通告报文,判断Master的状态是否正常。

    对虚拟IP地址的ARP请求不做响应。

    丢弃目的MAC地址为虚拟MAC地址的IP报文。

    丢弃目的IP地址为虚拟IP地址的IP报文。

    如果收到比自己优先级小的报文,默认立刻升主;如果配置了不抢占,则重置定时器;如果配置了抢占延迟,则重置定时器,待抢占延迟到期再升主;如果收到比自己优先级高的报文,则重置定时器如果收到优先级和自己相同的报文,则重置定时器,不进一步比较IP地址。

    当接收到MASTER_DOWN_TIMER定时器超时的事件时, 才会转为Master状态。

    当接收到接口的Shutdown 事件时转为Initialize状态。

  6. VRRP故障案例

    VRRP协议的设计目标是通过主备状态路由器的切换来实现通信的连续性和可靠性。

    案例:同一个备份组内出现多个Master路由器

    如下图所示,在S-switch-AVlanlf10接口下创建备份组1,并配置S-switch-A在该备份组中具有高优先级,确保S-switch-AMaster,采用抢占方式, 以便在Master出现故障时,Backup能迅速抢占成 Master。在S-switch-B Vlanlf10接口下创建备份组1,使用默认优先级。配置完成后,发现组内的多台设备状态都为Master

    故障可能原因分析

    多个Master长时间共存,这很有可能是由于Master之间收不到VRRP报文, 或者收到的报文不合法造成的。在故障检查中需对以下信息进行确认。

    1. 检测备份组内各Master设备之间是否在网络层互通。
    2. 检查配置了VRPP的接口状态是否为UP,IP地址是都在同一网段。
    3. 检查VRRP备份组内各设备上发送VRRP报文的时间间隔,认证方式是否一致。

    经过检查发现设备上配置的认证方式不一致,从而导致多个Master出现。

    解决办法:

    更改VRRP配置中的认证方式,确保同一VRRP组中的认证方式一致。

    案例总结:

    接收到VRRP报文后,接收方必须校验的内容如下。

    1. VRRP报文声明的认证方式是否与本地配置相同。
    2. VRRP报文所携带的VRID在接收方的接口配置上是否有效。
    3. VRRP报文中的adv-interval与接收方本地配置相同

    如果以上校验失败,接收方将丢弃报文。此时就会出现多个Master 的现象。因此,配置VRRP备份组时,应确保备份组内以上参数的一致性。

     

posted @ 2022-01-05 12:29  头发重要  阅读(1421)  评论(0)    收藏  举报