文档章节

keepalived实现のVRRP协议

MrYx3en
 MrYx3en
发布于 2014/08/15 23:27
字数 1477
阅读 100
收藏 0

VRRP协议(以下所说的“路由器”均为 服务器

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

        VRRP协议将两台或多台路由器虚拟成为一个设备,对外提供(一个或多个)虚拟的路由IP(VIP),在路由器组内部,如果实际拥有这个 VIP 的路由器工作正常,那它就是 MASTER ,MASTER 实现针对 VIP 的各种网络功能,如ARP请求,ICMP,以及各种数据的转发;没有 VIP 的路由器,状态为BACKUP,除了接收 MASTER 的VRRP状态信息通告(主给备的 心跳检测包)外,不执行对外的网络功能。  主机(MASTER)失效的时候 备机(BACKUP)会接管主机实现对外的网络功能。    主机会主动给备机发送心跳检测包 以及 对外的网络功能,而备机只负责接收主机的心跳检测包,随时准备接管主机。

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

        VRRP使用多播数据来传输VRRP数据,VRRP数据使用虚拟的MAC地址发送数据而不是使用自身的MAC地址,VRRP使用时只有MASTER定时发送通告信息,表示MASTER工作正常,BACKUP只接收VRRP数据,不发送数据,如果一定时间没有收到MASTER发来的通告信息,各个BACKUP就会宣告自己成为MASTER,发送通告信息,重新选举产生MASTER。

MASTER的选举:

如果对外的VIP就是路由器服务器)本身的IP地址,那么该服务器就始终是MASTER,这时的优先级是255;

否则如果不具备VIP的话,就进行MASTER的选举,各个BACKUP都宣告自己是MASTER,发送VRRP信息;

如果其他机器发送过来的通告信息的优先级比自己高,就会转回BACKUP状态;

如果优先级相等,将会比较 服务器实际的IP地址,IP地址大的优先权高.

协议状态机:

VRRP协议就三种状态:初始化、主机、、备机

        初始化:

        路由器(服务器)启动时如果优先级是255,此时要发送VRRP信息,并且发送广播ARP通告。

        路由器IP地址对应的MAC为路由虚拟MAC,设置通告信息定时器准备定时发送通告信息,转为MASTER;

        否则转为BACKUP,设置定时器检查是否定时收到MASTER的通告信息。

    主机 状态下的路由器要完成以下功能:

    设置定时通告定时器;

    用VRRP虚拟MAC响应路由器IP的ARP请求;

    转发目的MAC是VRRP虚拟MAC的数据包;

    如果是VIP的拥有者,将接受目的地址是VIP的数据包;

    当遇到 shutdown 事件时删除定时通告器,发送优先权级为0的通告包,并转为初始化状态;

    如果定时通告器超时,发送VRRP通告信息;

    收到VRRP通告信息时,如果优先权为0,发送VRRP通告信息;否则判断数据的优先权是否高于本机,复位主机超时定时器,转为BACKUP状态;否则丢弃该通告包。

    备机  状态下的路由器要完成的功能:

    设置主机超时定时器;

    不响应针对VIP的ARP请求;

    丢弃所有目的MAC是虚拟路由器MAC的数据包;

    不接受目的是VIP的数据包;

    当收到shutdown事件时,删除 主机超时定时器 ,转为初始化状态;

    主机超时定时器超市的时候,发送VRRP通告信息,广播ARP地址信息,转为MASTER状态;

    收到VRRP通告信息时,如果优先权为0,表示进入MASTER选举;否则判断优先级是否高于本机,高的话承认MASTER有效,复位主机超时定时器;否则丢弃该包。


ARP查询处理:

当内部主机通过ARP查询VIP对应的MAC地址时,MASTER回复的是 虚拟的VRRP的MAC地址,而不是MASTER实际的MAC地址,这样在路由器切换时内部机器察觉不到。


协议定义:

以太头:

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

IP头参数:

VRRP包的原地址是本机地址,目的地址必须为 224.0.0.18,是一个多播地址。


总结:

VRRP协议实现了对路由器IP地址的冗余功能,防止单点故障造成的网络失效,VRRP本身是热备形式的,但可以通过互相热备实现路由器的均衡处理。


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

MrYx3en
粉丝 10
博文 131
码字总数 30542
作品 0
宝鸡
系统管理员
私信 提问
简单写一写keepalived

一、keepalived简介: 1、什么是keepalived? keepalived起初是为lvs设计的而保证集群高可用的一个服务软件,用来检测服务器的状态以及loadbbalance主机和backup主机之间的failover(故障切换...

攻城狮赵峰
2017/06/09
0
0
keepalived 主备服务负载均衡、基于LAMP平台

一、keepalived的基本原理介绍 keepalived最初设计的目的是为了实现lvs前端director的高可用,非常轻量级。主要的实现的vrrp协议。 VRRP是一种容错协议,它保证当主机的下一跳路由器出现故障...

hu小贱
2014/12/01
0
0
keepalived介绍、高可用配置;linux集群介绍;

Linux集群 分类(按功能) 1. 高可用:通常为两台服务器,一台工作,另一台做冗余;当主机宕机,冗余接替提供服务;实现软件有:heartbeat、keepalived; 2. 负载均衡:一台做分发器,将任务...

若白衣
2018/10/29
0
0
18.2 keepalived介绍

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

运维小白
2018/01/25
1
0
轻量级高可用实现工具--keepalived详解

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

jungege1216
2014/05/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么重复的GET请求变慢了?

最近在研究慢请求监控的问题,写了一个简单的测试代码:在网页端(index.html)通过fetch函数向服务端获取数据,然后打印请求耗时。 function requestData() { let start = new Date(); ...

Fundebug
3分钟前
1
0
5年时间,我从开发做到总裁的秘籍--如何提升技术型管理者的领导力

作者:阿里云MVP 肖凯 对于深耕技术的一线开发者而言,大多数都希望把技术工作进行到底,或者一直从事和技术技术相关性更高的工作。但随着年龄和经验的增长,我对管理和技术的思考越来越多、...

阿里云云栖社区
8分钟前
0
0
LeetCode 142:环形链表 II Linked List Cycle II

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 ...

iCodeBugs
9分钟前
0
0
使用Shell脚本程序监控网站URL是否正常

导读 监控网站URL是否正常最常见的方法莫过于wget和curl命令了,这两个命令都是非常强大的,强大到网友查看帮助都无从选择的地步了,今天呢,老男孩老师正好录制Shell编程实战课程。 wget命令...

问题终结者
10分钟前
0
0
教你用Python制作微信好友背景墙

目录: 0 引言 1 环境 2 代码实现 3 后记 0 引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像。 效果如下图,出于隐私考...

上海小胖
18分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部