文档章节

VRRP协议

将将将
 将将将
发布于 2015/12/29 16:47
字数 2369
阅读 67
收藏 6
点赞 0
评论 0

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协议状态比较简单,就三种状态,初始化,主机,备份机。

  1.                       +---------------+

  2.            +--------->|               |<-------------+

  3.            |          |  Initialize   |              |

  4.            |   +------|               |----------+   |

  5.            |   |      +---------------+          |   |

  6.            |   |                                 |   |

  7.            |   V                                 V   |

  8.    +---------------+                       +---------------+

  9.    |               |---------------------->|               |

  10.    |    Master     |                       |    Backup     |

  11.    |               |<----------------------|               |

  12.    +---------------+                       +---------------+


初始化:
路由器启动时,如果路由器的优先级是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应用举例

  1.             +-----------+      +-----------+

  2.             |   Rtr1    |      |   Rtr2    |

  3.             |(MR VRID=1)|      |(BR VRID=1)|

  4.             |(BR VRID=2)|      |(MR VRID=2)|

  5.     VRID=1  +-----------+      +-----------+  VRID=2

  6.     IP A ---------->*            *<---------- IP B

  7.                     |            |

  8.                     |            |

  9.   ------------------+------------+-----+--------+--------+--------+--

  10.                                        ^        ^        ^        ^

  11.                                        |        |        |        |

  12.                                      (IP A)   (IP A)   (IP B)   (IP B)

  13.                                        |        |        |        |

  14.                                     +--+--+  +--+--+  +--+--+  +--+--+

  15.                                     |  H1 |  |  H2 |  |  H3 |  |  H4 |

  16.                                     +-----+  +-----+  +--+--+  +--+--+

  17.      Legend:

  18.               ---+---+---+--  =  Ethernet, Token Ring, or FDDI

  19.                            H  =  Host computer

  20.                           MR  =  Master Router

  21.                           BR  =  Backup Router

  22.                            *  =  IP Address

  23.                         (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。

这里可以看出VRID非常重要


3.2 IP头参数

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

3.3 VRRP协议数据格式

  1.     0                   1                   2                   3

  2.     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

  3.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  4.    |Version| Type  | Virtual Rtr ID|   Priority    | Count IP Addrs|

  5.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  6.    |   Auth Type   |   Adver Int   |          Checksum             |

  7.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  8.    |                         IP Address (1)                        |

  9.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  10.    |                            .                                  |

  11.    |                            .                                  |

  12.    |                            .                                  |

  13.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  14.    |                         IP Address (n)                        |

  15.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  16.    |                     Authentication Data (1)                   |

  17.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  18.    |                     Authentication Data (2)                   |

  19.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




其中:
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同时使用的异常情况。

本文转载自:http://bbs.nanjimao.com/thread-790-1-1.html

共有 人打赏支持
将将将
粉丝 21
博文 17
码字总数 12880
作品 0
深圳
程序员
[Keepalived] VRRP协议介绍

VRRP协议介绍 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 参考资料: RFC 3768 1. 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在...

LionelShen ⋅ 2016/01/25 ⋅ 0

18.2 keepalived介绍

keepalived介绍 在这里使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果 heartbeat 切换的时候,会不是很及时——>比如:主 已经宕机了,但 从 却一直启动...

运维小白 ⋅ 01/25 ⋅ 0

LVrrp的设计过程-基于链路的vrrp

引: 近期工作上安排我做一个双链路热备系统,沿着这个轨迹,从vrrp开始,我设计了一个LVrrp的协议,它完全适用于非交叉非全互联的多链路热备和负载均衡的情况,所谓的非交叉和非全互联指的是...

晨曦之光 ⋅ 2012/04/10 ⋅ 0

[keepalived]keepalived配置文件详解

一、是什么 keepalived是集群管理中保证集群高可用的一个服务软件,解决了静态路由的单点故障问题。 二、工作原理 keepalived是以VRRP协议为实现基础的,VRRP全程Virtual Router Redundancy...

qq_26545305 ⋅ 04/18 ⋅ 0

keepalived原理和实践

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

zjycff ⋅ 2017/12/25 ⋅ 0

Keepalived 主从备份

Keepalived 是一个基于VRRP协议来实现服务高可用方案,可以利用其来避免单点故障。有一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定...

AaronSheng ⋅ 2016/11/04 ⋅ 0

轻量级高可用实现工具--keepalived详解

一 、keepalived简介 keepalived:它的诞生最初是为ipvs(一些服务,内核中的一些规则)提供高可用性的,最初最主要目的是能够自主调用ipvsadm来生成规则,并且能够自动实现将用户访问的地址...

jungege1216 ⋅ 2014/05/05 ⋅ 0

keepalived和heartbeat区别

Keepalived使用的vrrp协议方式,虚拟路由冗余协议Virtual Router Redundancy Protocol Heartbeat是基于主机或网络的服务的高可用方式 keepalived目的是模拟路由器的双机 heartbeat目的是用户...

IT笨小子 ⋅ 2014/12/19 ⋅ 0

vrrp-虚拟路由冗余协议

VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。 实现路由器高可用的协议, 原理:即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,...

疯狂的单纯酱 ⋅ 2015/08/10 ⋅ 0

keepalived介绍,入门,安装

Keepalived介绍 Keepalived是一款用于保障服务高可用性的软件,它能自动侦测服务器状态、移出 故障服务器、切换到正常运行的服务器、添加恢复后的服务器到集群中。 n 实现的基本思路 Keepal...

daydayup08 ⋅ 2016/04/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JPA入门,配置文件的设置

<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http......

码农屌丝 ⋅ 10分钟前 ⋅ 0

Java基础——面向对象和构造器

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 静态成员介绍 为什么要有静态成员?静态成员用来...

凯哥学堂 ⋅ 12分钟前 ⋅ 0

vmware中Centos 7 linux的LVM磁盘扩容

系统是RHEL7(centos7差不多一样) 关闭系统,在vmware、设置、硬盘、扩展、输入数字大于当前系统内存、点击扩展。 开机再查看磁盘信息 fdisk -l 注意:可以看出sda磁盘增加了,但是根目录还...

gugudu ⋅ 22分钟前 ⋅ 0

JAVA线程sleep和wait方法区别

昨天面试,突然被问到sleep 和 wait的区别,一下子有点蒙,在这里记一下,以示警戒。 首先说sleep,sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过去后,cpu...

徐玉强 ⋅ 24分钟前 ⋅ 0

vuex学习--模块

随着项目复杂性增加,共享状态也越来越多。需要对转态操作进行分组,分组后在进行分组编写。学习一下module:状态管理器的模块组操作。 首先是声明: const moduleA={ state,mutations,g...

大美琴 ⋅ 26分钟前 ⋅ 0

Selenium 简单入门

安装 pip install selenium 驱动下载 https://chromedriver.storage.googleapis.com/index.html 下载最新的驱动,放入path中,可以放入Python的scripts目录下,也可以放入Chrome安装目录,并...

阿豪boy ⋅ 28分钟前 ⋅ 0

292. Nim Game - LeetCode

Question 292. Nim Game Solution 思路:试着列举一下,就能发现一个n只要不是4的倍数,就能赢。 n 是否能赢1 true2 true3 true4 false 不论删除几,对方都能一把赢5 t...

yysue ⋅ 58分钟前 ⋅ 0

6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩

zip压缩工具 zip命令可以压缩目录和文件,-r 压缩目录。 zip使用方法 zip 1.txt.zip 1.txt //压缩文件 zip -r 123.zip 123/ //压缩目录 unzip 1.txt.zip //解压 unzip 123.zip -d /root/456...

Linux_老吴 ⋅ 今天 ⋅ 0

react-loadable使用跳坑

官方给react-loadable的定义是: A higher order component for loading components with dynamic imports. 动态路由示例 withLoadable.js import React from 'react'import Loadable fro......

pengqinmm ⋅ 今天 ⋅ 0

记录工作中遇到的坑

1、ios safari浏览器向下滚动会触发window resize事件

端木遗风 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部