VRRP

Posted shenxm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VRRP相关的知识,希望对你有一定的参考价值。

VRRP

产生原因

    一般来说,主机通过设置默认网关来与外部网络联系。
    主机将发送给外部网络的报文发给网关,网关传递给外部网路,从而实现主机与外网通信,但当网关坏掉后,通信会中断。
    解决中断可以再添加个网关,或运用动态路由协议来解决,如运行RIP,OSPF,IRDP等,然而这些配置复杂度和安全性问题不能满足需求,所以就有了VRRP,它可以很好地避免静态指定网关的缺陷。

VRRP

    VRRP是一种容错协议,它保证当主机的下一跳路由器出现故障时,有另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性。
    在VRRP协议中有两组重要的概念:
        1)VRRP路由器和虚拟路由器
            VRRP路由器是指运行VRRP的路由器,是物理实体。
            虚拟机路由器是指VRRP协议创建的,是逻辑概念。
        2)主控路由器和备用路由器

VRRP工作原理

    一个VRRP路由器有唯一的标识:VRID,范围为0-255。
    一组VRRP路由器协同工作,共同构成一台虚拟路由器,该虚拟路由器对外表现为一个具有唯一固定ip地址和MAC地址的逻辑路由器,MAC地址格式为00-00-5E-00-01-{VRID}。
    处于同一个VRRP组中的路由器具有两种互斥的角色,主控路由器和备用路由器。
    一个VRRP组中有且只有一台处于主控角色的路由器,可以有一个或多个处于备用角色的路由器。
    VRRP协议使用策略从路由器组中选出一台作为主控,主控路由器负责对ARP请求用MAC地址做应答和转发ip数据包,组中的其他路由器作为备用待命。
    这样无论如何切换,保证给终端设备是唯一一致的ip和MAC地址,减少了切换对终端设备的影响。
    主控路由器故障时,备用路由器能在几秒中的时延后升级为主控路由器,由于切换非常迅速且不改变ip地址和MAC地址,故对终端使用者系统是透明的。

VRRP优点

    简化网络管理。
        借助VRRP能在某台设备出现故障时仍然提供可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,无需修改动态路由协议,路由发现协议,也无需修改主机的默认网关配置。
    适应性强。
        VRRP报文封装在ip报文中,支持各种上层协议。
    网络开销小。
        VRRP只定义了一种报文,也就是VRRP通告报文,并且只有处理Master状态的路由器可以发现VRRP报文。

VRRP工作过程

    1》虚拟路由器中的路由器根据优先级选举出Master,Master 路由器通过发送免费ARP 报文,将自己的虚拟MAC 地址通知给与它连接的设备或者主机,从而承担报文转发任务。
    2》Master 路由器周期性发送VRRP 报文,以公布其配置信息(优先级等)和工作状况。
    3》如果Master 路由器出现故障,虚拟路由器中的Backup 路由器将根据优先级重新选举新的Master。
    4》虚拟路由器状态切换时,Master 路由器由一台设备切换为另外一台设备,新的Master 路由器只是简单地发送一个携带虚拟路由器的MAC 地址和虚拟IP地址信息的免费ARP 报文,这样就可以更新与它连接的主机或设备中的ARP 相关信息,网络中的主机感知不到Master 路由器已经切换为另外一台设备。
    5》Backup 路由器的优先级高于Master 路由器时,由Backup 路由器的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。
    6》由此可见,为了保证Master路由器和Backup路由器能够协调工作,VRRP需要实现以下功能:
        Master 路由器的选举,
        Master 路由器状态的通告,
        同时,为了提高安全性,VRRP 还提供了认证功能。

VRRP提供了三种认证方式

    无认证:
        不进行任何 VRRP 报文的合法性认证,不提供安全性保障。
    简单字符认证:
        在一个有可能受到安全威胁的网络中,可以将认证方式设置为简单字符认证。
        发送VRRP 报文的路由器将认证字填入到VRRP 报文中,而收到VRRP 报文的路由器会将收到的VRRP 报文中的认证字和本地配置的认证字进行比较。
        如果认证字相同,则认为接收到的报文是合法的VRRP 报文,否则认为接收到的报文是一个非法报文。
    MD5 认证:
        在一个非常不安全的网络中,可以将认证方式设置为MD5 认证。
        发送VRRP 报文的路由器利用认证字和MD5 算法对VRRP 报文进行加密,加密后的报文保存在Authentication Header(认证头)中。
        收到VRRP报文的路由器会利用认证字解密报文,检查该报文的合法性。

VRRP Master选举机制

    1》VRRP根据优先级来来确定路由器角色,优先级越高,则越有可能成为master路由器。
    2》如果VRRP报文中master路由器优先级高于自己的优先级,则路由器保持在Backup状态。
    3》如果VRRP报文中master路由器优先级低于自己的优先级,采用抢占工作方式的路由器抢占为master状态,周期性地发送VRRP报文,采用非抢占工作方式的路由器仍然保持Backup状态。
    4》如果在一定时间内没有收到VRRP报文,则路由器切换为Master状态。
    5》VRRP优先级的取值范围为0到255(数值越大表明优先级越高),可配置的范围是1到254,优先级0为系统保留给路由器放弃Master位置时候使用,255则是系统保留给IP地址拥有者使用。
        当路由器为IP地址拥有者时,其优先级始终为255。
        因此,当虚拟路由器内存在IP地址拥有者时,只要其工作正常,则为Master路由器。
    6》VRRP组中的ip拥有者:
        如果虚拟ip地址与VRRP组中的某台VRRP路由器ip地址相同,则此路由器为ip地址拥有者,这台路由器将被定位主路由器。
    7》比较ip地址:
        在没有ip地址拥有者,且优先级相同的情况下,ip地址大的作为主路由器。

VRRP的报文格式

    VRRP报文被封装在ip包中,使用专门的VRRP IPv4组播地址(协议号112,组播地址224.0.0.18)。
    IANA分配给VRRP的ip协议号为112(10进制),IANA给VRRP分配的ip组播地址为224.0.0.18,这是本地范围的多播地址。
    不论TTL的值是多少,路由器都被禁止转发以此地址为目标的报文。
    VRRP报文的ip头中,TTL必须为255,当VRRP路由器收到TTL不等于255的VRRP协议报文后,必须丢弃。
    (TTL是Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,TTL是IPv4包头的一个8 bit字段)
        
            各字段的含义:
                Version:协议版本号,现在的VRRP为版本2。
                Type:报文类型,只有一种取值,1,表示Advertisement。
                Virtual Rtr ID(VRID):虚拟路由器ID,取值范围是1~255。
                Priority:发送报文的VRRP路由器在虚拟路由器中的优先级。取值范围是0~255,其中可用的范围是1~254。0表示设备停止参与VRRP,用来使备份路由器尽快成为主路由器,而不必等到计时器超时;255则保留给IP地址拥有者。缺省值是100。
                Count IP Addrs:VRRP广播中包含的虚拟IP地址个数
                Authentication Type:验证类型,协议中指定了3种类型:
                将Authentication Type取值变更如下:
                    0 - No Authentication
                    1 - Reserved
                    2 - Reserved
                    变更的原因:实践和分析证明,这些认证方式不能提供真正的安全。而限制TTL=255可以阻止大多数对本地脆弱性的攻击。实现了Simple Text Password认证方式
                Advertisement Interval:发送通告报文的时间间隔,缺省为1秒。
                Checksum:校验和。
                IP Address(es):虚拟路由器IP地址,地址个数是Count IP Addrs的值。
                Authentication Data:验证字,目前只有明文认证才用到该部分,对于其它认证方式,一律填0。

虚拟路由器

    VRRP将局域网内的一组路由器划分在一起,形成一个VRRP备份组,它在功能上相当于一台虚拟路由器,使用虚拟路由器号进行标识。
    以下使用虚拟路由器代替VRRP备份组进行描述
        虚拟路由器有自己的虚拟IP地址和虚拟MAC地址,它的外在表现形式和实际的物理路由器完全一样。
        局域网内的主机将虚拟路由器的IP地址设置为默认网关,通过虚拟路由器与外部网络进行通信。
        虚拟路由器是工作在实际的物理路由器之上的,它由多个实际的路由器组成,包括一个Master路由器和多个Backup路由器。
        Master路由器正常工作时,局域网内的主机通过Master与外界通信。
        当Master路由器出现故障时,Backup路由器中的一台设备将成为新的Master路由器,接替转发报文的工作。

VRRP路由器运行过程中的三种状态(状态机)

    1)initialize状态:
        系统启动后就进入initialize,此状态下路由器不对VRRP报文做任何处理,可以理解为初始化。
        设备启动时进入此状态,当收到接口Startup的消息,将转入Backup或Master状态(IP地址拥有者的接口优先级为255,直接转为Master)。
    2)master状态:
        路由器会发送VRRP通告,发送免费ARP报文。
        当路由器处于Master状态时,它将会做下列工作:
            定期发送VRRP报文。
            以虚拟MAC地址响应对虚拟IP地址的ARP请求。
            转发目的MAC地址为虚拟MAC地址的IP报文。
            如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文,否则丢弃这个IP报文。
            如果收到比自己优先级大的报文则转为Backup状态。
            如果收到优先级和自己相同的报文,并且发送端的主IP地址比自己的主IP地址大,则转为Backup状态。
            当接收到接口的Shutdown事件时,转为Initialize。
    3)backup状态:
        接收VRRP通告。
        当路由器处于Backup状态时,它将会做下列工作:
            接收Master发送的VRRP报文,判断Master的状态是否正常。
            对虚拟IP地址的ARP请求,不做响应。
            丢弃目的MAC地址为虚拟MAC地址的IP报文。
            丢弃目的IP地址为虚拟IP地址的IP报文。
            Backup状态下如果收到比自己优先级小的报文时,丢弃报文,不重置定时器。
            如果收到优先级和自己相同的报文,则重置定时器,不进一步比较IP地址。
            当Backup接收到MASTER_DOWN_TIMER定时器超时的事件时,才会转为Master。
            当接收到接口的Shutdown事件时,转为Initialize。

VRRP状态上报机制

    一般主路由器处理master状态,备份路由器处理backup状态。
    master和backup之间需要实时通信,master路由器周期性地发送VRRP报文,在虚拟路由器中公布其配置信息(优先级等)和工作状况。
    backup路由器通过接受到VRRP报文的情况来判断master路由器的工作是否正常。
    1》VRRP通告报文时间间隔定时器
        1>VRRP备份组中的master路由器会定时发送VRRP通告报文,通知备份组内的路由器自己工作正常。
        2>用户可以通过设置VRRP定时器来调整master路由器发送VRRP通告报文的时间间隔
        3>如果backup路由器在等待了3个间隔小时后,依然没有收到VRRP通告报文,则认为自己是master路由,并对外发送VRRP通告报文,重新进行master路由器选择。
        4>如果master发现自己的链路不同,master路由器主动放弃master地位,会发送优先级为0的VRRP报文,致使backup路由器快速切换为master路由器。
            这个切换时间为skew time,计算方式为256-backup的路由器优先级/256,单位是秒。
        5>当master路由器发生网络故障而不能发送VRRP报文的时候,backup路由器并不能立即知道其工作状况。
            backup路由器等待一段时间,如还没有收到VRRP报文,那么会认为master路由器无法工作,而把自己升级为master路由,并周期性发送VRRP报文。
            如果此时有多个backup路由器,将会通过优先级俩选择master路由器。
            backup路由器默认等待时间为Master_Down_Interval,取值为3*VRRP报文的发送时间间隔+SKewtime,单位是秒。
    2》VRRP抢占延迟时间定时器
        在性能不稳定的网络中,backup路由器可能因为网络堵塞而在master_down_interval期间没有收到master路由器包文,而主动抢占master位置,如果此时原master路由器报文又到达了,就会出现虚拟路由器的成员频繁进行master抢占现象。
        为避免这一现象,特制定了延迟等待定时器,让backup路由器有足够的时间来搜集信息。
        延迟等待定时器可以使得backup路由器等待了master_down_interval后再等待延迟时间,之后还没有收到master报文,就切换为master并发报文。

Backup抢占方式

    备份组中的路由器有两种工作方式:
    1)非抢占方式:
        即只要master路由器没有出现故障,backup路由器即使随后被配置了更改的优先级也不会成为master路由器。
    2)抢占方式(默认)
        即优先级谁高谁做master路由器。

监听

    VRRP可以直接监视连接上行链路的端口状态,当接口down时,将master路由器降低指定的优先级。
    VRRP可以利用NQA技术监视上行链路连接的远端主机或网络状况。
        如当master路由器上启动了NQA的ICMP-echo探测功能,探测远端主机的可达性,当探测失败时,它可以通知本设备探测结果,达到降低VRRP优先级的目的。
    VRRP可以使用BFD技术监视上行连接连接到远端主机或网络状况,BFD精度可以达到10ms。
    backup设备提供了一个监听master工作状态的功能,使得master路由器坏掉后backup能立即快速的切换为master,维持网络通信。
    backup使用BFD技术监视master路由器的状态,可以在毫秒级的快速进行切换。

VRRP负载均衡

    实现原理:
        将以虚拟ip地址与多个虚拟MAC地址对应,VRRP备份组中的每个路由器都对应一个虚拟MAC地址,使得每个路由器都能转发流量。
        在VRRP负载均衡模式中,只需创建一个备份组,就可以实现备份组中多个路由器之间的负载分担,避免了VRRP备份组中Backup设备始终处于空闲状态,网络资源利用不高的问题。

以上是关于VRRP的主要内容,如果未能解决你的问题,请参考以下文章

vrrp原理

vrrp技术专题

VRRP的配置学习笔记

VRRP的配置学习笔记

VRRP协议原理与配置

VRRP