`
ayufox
  • 浏览: 276194 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

[转载]VRRP协议介绍

阅读更多

来自:http://blog.chinaunix.net/u/12313/showart_235796.html

 

本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。
msn: yfydz_no1@hotmail.com
来源:http://yfydz.cublog.cn

参考资料: RFC 3768

1. 前言

VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简化了一些功能。

2. 协议说明

2.1 协议

VRRP协议是为消除在静态缺省路由环境下的缺省路由器单点故障引起的网络失效而设计的主备模式的协议,使得在发生故障而进行设备功能 切换时可以不影响内外数据通信,不需要再修改内部网络的网络参数。VRRP协议需要具有IP地址备份,优先路由选择,减少不必要的路由器间通信等功能。

VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),而在路由器组内部,如果实际拥有这个对外 IP的路由器如果工作正常的话就是MASTER,或者是通过算法选举产生,MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP, 以及数据的转发等;其他设备不拥有该IP,状态是BACKUP,除了接收MASTER的VRRP状态通告信息外,不执行对外的网络功能。当主机失效 时,BACKUP将接管原先MASTER的网络功能。

配置VRRP协议时需要配置每个路由器的虚拟路由器ID(VRID)和优先权值,使用VRID将路由器进行分组,具有相同VRID值的 路由器为同一个组,VRID是一个0~255的正整数;同一组中的路由器通过使用优先权值来选举MASTER,优先权大者为MASTER,优先权也是一个 0~255的正整数。

VRRP协议使用多播数据来传输VRRP数据,VRRP数据使用特殊的虚拟源MAC地址发送数据而不是自身网卡的MAC地址,VRRP 运行时只有MASTER路由器定时发送VRRP通告信息,表示MASTER工作正常以及虚拟路由器IP(组),BACKUP只接收VRRP数据,不发送数 据,如果一定时间内没有接收到MASTER的通告信息,各BACKUP将宣告自己成为MASTER,发送通告信息,重新进行MASTER选举状态。

2.2 MASTER选举
如果对外的虚拟路由器IP就是路由器本身配置的IP地址的话,该路由器始终都是MASTER;否则如果不具备虚拟IP的话,将进行MASTER 选举,各路由器都宣告自己是MASTER,发送VRRP通告信息,如果收到其他机器的发来的通告信息的优先级比自己高,将转回BACKUP状态,如果相等 的话,将比较路由器的实际IP,IP值较大的优先权高。不过如果对外的虚拟路由器IP就是路由器本身的IP的话,该路由器始终将是MASTER,这时的优 先级值为255。

2.3 协议状态机

VRRP协议状态比较简单,就三种状态,初始化,主机,备份机。
                      +---------------+
           +--------->|               |<-------------+
           |          |  Initialize   |              |
           |   +------|               |----------+   |
           |   |      +---------------+          |   |
           |   |                                 |   |
           |   V                                 V   |
   +---------------+                       +---------------+
   |               |---------------------->|               |
   |    Master     |                       |    Backup     |
   |               |<----------------------|               |
   +---------------+                       +---------------+

初始化:
    路由器启动时,如果路由器的优先级是255(最高优先级,路由器拥有路由器地址),要发送VRRP通告信息,并发送广播ARP信息通告路由器IP地址对应 的MAC地址为路由虚拟MAC,设置通告信息定时器准备定时发送VRRP通告信息,转为MASTER状态;否则进入BACKUP状态,设置定时器检查定时 检查是否收到MASTER的通告信息。

主机:
    主机状态下的路由器要完成如下功能:
 设置定时通告定时器;
 用VRRP虚拟MAC地址响应路由器IP地址的ARP请求;
 转发目的MAC是VRRP虚拟MAC的数据包;
 如果是虚拟路由器IP的拥有者,将接受目的地址是虚拟路由器IP的数据包,否则丢弃;
 当收到shutdown的事件时删除定时通告定时器,发送优先权级为0的通告包,转初始化状态;
 如果定时通告定时器超时时,发送VRRP通告信息;
 收到VRRP通告信息时,如果优先权为0,发送VRRP通告信息;否则判断数据的优先级是否高于本机,或相等而且实际IP地址大于本地实际IP,设置定时通告定时器,复位主机超时定时器,转BACKUP状态;否则的话,丢弃该通告包;
 
备机:
   备机状态下的路由器要实现以下功能:
 设置主机超时定时器;
 不能响应针对虚拟路由器IP的ARP请求信息;
 丢弃所有目的MAC地址是虚拟路由器MAC地址的数据包;
 不接受目的是虚拟路由器IP的所有数据包;
 当收到shutdown的事件时删除主机超时定时器,转初始化状态;
 主机超时定时器超时的时候,发送VRRP通告信息,广播ARP地址信息,转MASTER状态;
 收到VRRP通告信息时,如果优先权为0,表示进入MASTER选举;否则判断数据的优先级是否高于本机,如果高的话承认MASTER有效,复位主机超时定时器;否则的话,丢弃该通告包;
 
2.4 ARP查询处理

当内部主机通过ARP查询虚拟路由器IP地址对应的MAC地址时,MASTER路由器回复的MAC地址为虚拟的VRRP的MAC地址, 而不是实际网卡的MAC地址,这样在路由器切换时让内网机器觉察不到;而在路由器重新启动时,不能主动发送本机网卡的实际MAC地址。如果虚拟路由器开启 的ARP代理(proxy_arp)功能,代理的ARP回应也回应VRRP虚拟MAC地址;
 
2.5 VRRP应用举例
 
            +-----------+      +-----------+
            |   Rtr1    |      |   Rtr2    |
            |(MR VRID=1)|      |(BR VRID=1)|
            |(BR VRID=2)|      |(MR VRID=2)|
    VRID=1  +-----------+      +-----------+  VRID=2
    IP A ---------->*            *<---------- IP B
                    |            |
                    |            |
  ------------------+------------+-----+--------+--------+--------+--
                                       ^        ^        ^        ^
                                       |        |        |        |
                                     (IP A)   (IP A)   (IP B)   (IP B)
                                       |        |        |        |
                                    +--+--+  +--+--+  +--+--+  +--+--+
                                    |  H1 |  |  H2 |  |  H3 |  |  H4 |
                                    +-----+  +-----+  +--+--+  +--+--+
     Legend:
              ---+---+---+--  =  Ethernet, Token Ring, or FDDI
                           H  =  Host computer
                          MR  =  Master Router
                          BR  =  Backup Router
                           *  =  IP Address
                        (IP)  =  default router for hosts

这是通常VRRP使用拓扑,两台路由器运行VRRP互为备份,路由器1作为VRID组1的MASTER,IP地址A,VRID组2的 BACKUP,路由器2作为VRID组2的MASTER,IP地址B,VRID组1的BACKUP,内部网络中一部分机器的缺省网关地址是IP地址A,一 部分是IP地址B,正常情况下以A为网关的数据将走路由器1,以B为网关的数据将走路由器2,如果一台路由器发生故障,所有数据将走另一台路由器。

3. 协议定义

3.1 以太头

源MAC地址必须为虚拟MAC地址:00-00-5E-00-01-{VRID},VRID为虚拟路由器ID值,16进制格式,所以同一网段中最多有255个VRRP路由器;目的MAC为多播类型的MAC。

3.2 IP头参数

VRRP包的源地址是本机地址,目的地址必须为224.0.0.18,为一多播地址;IP协议号为112;IP包的TTL值必须为255。

3.3 VRRP协议数据格式
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version| Type  | Virtual Rtr ID|   Priority    | Count IP Addrs|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Auth Type   |   Adver Int   |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         IP Address (1)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            .                                  |
   |                            .                                  |
   |                            .                                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         IP Address (n)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Authentication Data (1)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Authentication Data (2)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

其中:
version:版本,4位,在RFC3768中定义为2;
Type:类型,4位,目前只定义一种类类型:通告数据,取值为1;
Virtual Rtr ID:虚拟路由器ID,8位
Priority:优先级,8位,具备冗余IP地址的设备的优先级为255;
Count IP Addrs:VRRP包中的IP地址数量,8位;
Auth Type:认证类型,8位,RFC3768中认证功能已经取消,此字段值定义0(不认证),为1,2只作为对老版本的兼容;
Adver Int:通告包的发送间隔时间,8位,单位是秒,缺省是1秒;
Checksum:校验和,16位,校验数据范围只是VRRP数据,即从VRRP的版本字段开始的数据,不包括IP头;
IP Address(es):和虚拟路由器相关的IP地址,数量由Count IP Addrs决定
Authentication Data:RFC3768中定义该字段只是为了和老版本兼容,必须置0。

3.4 接收数据时的必须检查

收到VRRP数据包时要进行以下验证,不满足的数据包将被丢弃:
   -  TTL必须为255;
   -  VRRP版本号必须为2;
   -  一个包中数据字段必须完整;
   -  校验和必须正确;
   -  必须验证在接收的网卡上配置了VRID值,而且本地路由器不是路由IP地址的拥有者
   -  必须验证VVRP认证类型和配置的一致;
 

4. 结论

VRRP实现了对路由器IP地址的冗余功能,防止了单点故障造成的网络失效,VRRP本身是热备形式的,但可以通过互相热备实现路由器 的均衡处理,新版的VRRP较老版简化了认证处理,实际不再进行数据的认证,这是因为在实际应用中经常出现认证成为造成多个MASTER同时使用的异常情 况。
分享到:
评论

相关推荐

    VRRP协议原理及配置PPT课件.pptx

    VRRP协议原理及配置PPT课件 VRRP(Virtual Router Redundancy Protocol)是一种虚拟路由器冗余协议,用于提供高可用性和负载均衡的路由解决方案。下面是VRRP协议的原理和配置知识点: 一、VRRP基本概念 1. VRRP...

    VRRP协议原理与应用.ppt

    VRRP协议原理本PPT主要介绍了VRRP协议的原理与应用,适用于对VRRP协议有一定了解的工程师和网络维护人员。

    VRRP协议、原理、配置

    介绍VRRP协议内容,使用的场景,以及在设备上的具体配置

    keepalived-1.1.12.tar.gz linux上的vrrp程序源码。 www.zmemb.com 交大志盟读后很好的了解vrrp协议

    1. **功能介绍**:keepalived不仅实现了VRRP协议,还提供了健康检查、负载均衡等功能,确保服务的稳定性和可靠性。它通过检测网络服务状态,及时做出响应,防止单点故障。 2. **架构设计**:keepalived分为两个主要...

    在Linux下(VRRP)虚拟路由冗余协议介绍

    VRRP,全称Virtual Router Redundancy Protocol(虚拟路由器冗余协议),是一种网络协议,旨在确保网络中路由器的高可用性,防止由于单个路由器故障导致的服务中断。该协议允许一组路由器共同维护一个虚拟路由器的...

    VRRP协议原理及在路由器上的应用.pdf

    "VRRP协议原理及在路由器上的应用.pdf" VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种容错协议,用于确保网络通信的连续性和可靠性。在基于TCP/IP协议的网络中,VRRP协议可以 guarantee不...

    HC120115028 VRRP协议原理与配置.pptx

    ### VRRP协议原理与配置 #### 一、VRRP概述 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种用于提高网络稳定性和可用性的协议。在传统的网络架构中,局域网内的用户终端通常通过设置一个...

    VRRP 协议 RFC 3768 中文文档

    VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种网络协议,由RFC 3768标准定义,旨在解决单点故障问题,即单个路由器发生故障时,网络流量依然可以正常转发。VRRP通过在路由器之间实现冗余...

    VRRP协议原理及配置案例

    VRRP协议原理及配置案例 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种路由冗余协议,旨在解决路由器单点故障的问题。该协议通过采用主从模式,确保当主路由器故障时,备用路由器可以自动...

    网络可靠性-VRRP技术介绍.pdf

    "网络可靠性-VRRP技术介绍" VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种容错协议,旨在提高网络的可靠性和高可用性。VRRP协议的主要思想是将多个路由器组合成一个备份组,形成一台虚拟...

    HC110110028 VRRP协议原理与配置

    VRRP协议原理与配置 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种用来解决网关的单点故障问题的协议。它可以让多个网关设备协同工作,提供高可用性的网络访问服务。 VRRP的产生及概述 -...

    linux下vrrp源码

    Linux下的VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种网络协议,设计用于保持网络服务的连续性和可用性,特别是在主路由器出现故障时。VRRP允许多台路由器共享同一个虚拟IP地址,形成一...

    神州数码交换机VRRP实验.pdf

    神州数码交换机 VRRP 实验是 IT 行业中的一种容错协议实验,旨在熟悉 VRRP 协议的使用方式和配置方法,并理解 VRRP 协议的适用场合。VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种容错协议...

    冗余网络配置实验(使用VRRP协议的).doc

    本次实验报告主要介绍了冗余网络配置实验的过程和结果,并讨论了 VRRP 协议和 OSPFP 协议的应用和重要性。通过本次实验,我们可以更好地理解网络工程专业的知识点,并提高学生的实践能力和解决问题的能力。

    华为VRRP协议实验

    VRRP,全称为Virtual Router Redundancy Protocol(虚拟路由冗余协议),是网络设备上的一种心跳机制,用于实现路由器的高可用性。在华为网络设备中,VRRP广泛应用于构建冗余备份的网络环境,确保网络服务的连续性和...

    冗余网络配置实验(使用VRRP协议的).pdf

    "冗余网络配置实验(使用VRRP协议的)" 冗余网络配置实验是网络工程专业的一种常见实验,它的目的是让学生熟悉冗余网络的搭建方法、支持技术和配置技术,并掌握冗余网络的测试方法和故障恢复过程。本实验使用VRRP...

    IP网路技术中的VRRP协议的GNS3文件

    VRRP,全称为Virtual Router Redundancy Protocol(虚拟路由冗余协议),是IP网络技术中一种关键的故障切换协议,用于确保网络中路由器的高可用性和无中断服务。GNS3(Graphical Network Simulator 3)是一款强大的...

    VRRP协议原理及配置解析.doc

    VRRP 协议原理及配置解析 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种解决局域网中配置静态网关出现单点失效现象的路由协议。它广泛应用在边缘网络中,设计目标是支持特定情况下 IP 数据...

Global site tag (gtag.js) - Google Analytics