`
shixiaomu
  • 浏览: 382778 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

vrrp-lvs-keepalive-原理

 
阅读更多
Keepalived介绍

Keepalived是一个基于VRRP协议来实现的WEB 服务高可用方案,可以利用其来避免单点故障。一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服 务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
1       +-------------VIP(192.168.0.7)------------------+
2       |                                   |                           | 
3       |                                   |                           | 
4 server(MASTER) <----keepalived----> server(BACKUP)
5 (192.168.0.1)                                      (192.168.0.2)


keepalived是VRRP的完美实现,因此在介绍keepalived之前,先介绍一下VRRP的原理。


VRRP协议简介

在现实的网络环境中,两台需要通信的主机大多数情况下并没有直接的物理连接。对于这样的情况,它们之间路由怎样选择?主机如何选定到达目的主机的下一跳路由,这个问题通常的解决方法有二种:

·        在主机上使用动态路由协议(RIP、OSPF等)

·        在主机上配置静态路由

很明显,在主机上配置路态路由是非常不切实际的,因为管理、维护成本以及是否支持等诸多问题。配置静态路由就变得十分流行,但路由器(或者说默认网关default gateway)却经常成为单点。

VRRP的目的就是为了解决静态路由单点故障问题。

VRRP通过一竞选(election)协议来动态的将路由任务交给LAN中虚拟路由器中的某台VRRP路由器。

工作机制

在一个VRRP虚拟路由器中,有多台物理的VRRP路由器,但是这多台的物理的机器并不能同时工作,而是由一台称为MASTER的负责路由工作,其它的都是BACKUP,MASTER并非一成不变,VRRP让每个VRRP路由器参与竞选,最终获胜的就是MASTER。MASTER拥有一些特权,比如 拥有虚拟路由器的IP地址,我们的主机就是用这个IP地址作为静态路由的。拥有特权的MASTER要负责转发发送给网关地址的包和响应ARP请求。

VRRP通过竞选协议来实现虚拟路由器的功能,所有的协议报文都是通过IP多播(multicast)包(多播地址 224.0.0.18)形式发送的。虚拟路由器由VRID(范围0-255)和一组IP地址组成,对外表现为一个周知的MAC地址。所以,在一个虚拟路由 器中,不管谁是MASTER,对外都是相同的MAC和IP(称之为VIP)。客户端主机并不需要因为MASTER的改变而修改自己的路由配置,对他们来 说,这种主从的切换是透明的。

在一个虚拟路由器中,只有作为MASTER的VRRP路由器会一直发送VRRP广告包(VRRPAdvertisement message),BACKUP不会抢占MASTER,除非它的优先级(priority)更高。当MASTER不可用时(BACKUP收不到广告包), 多台BACKUP中优先级最高的这台会被抢占为MASTER。这种抢占是非常快速的(<1s),以保证服务的连续性。

由于安全性考虑,VRRP包使用了加密协议进行加密。


////////////////////////////////////
http://bbs.ywlm.net/thread-790-1-1.html
初始化:
路由器启动时,如果路由器的优先级是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地址;
分享到:
评论

相关推荐

    centos7-lvs+keepalive部署

    ### CentOS 7 上 LVS+Keepalived 部署详解 #### 一、环境准备与软件安装 根据提供的部分内容可以看出,本教程旨在演示如何在 CentOS 7 系统上安装配置 LVS(Linux Virtual Server)及 Keepalived 服务,以实现...

    LVS-DR+keepalive+ldirectord构建高可用负载均衡群集试验手册

    - **工作原理**:在DR模式下,所有服务器(包括负载均衡器和真实服务器)都必须位于同一物理网络中,并且拥有相同网络掩码的IP地址。客户端的请求被路由到负载均衡器的真实IP地址,负载均衡器根据调度算法选择一个...

    Lvs dr+keepalive

    #### 二、VS/DR 工作原理详解 **VS/DR** 模式的主要特点是通过修改请求报文的 MAC 地址来实现负载均衡,而不是传统的 NAT 方式。这种方式避免了调度器在处理响应报文时的性能瓶颈问题,同时也不需要在真实服务器上...

    lvs+keepalive

    【描述】中提到的博客链接可能提供了更深入的技术细节,但在这里,我们将重点讨论LVS和Keepalived的基本概念及其工作原理。 **LVS(Linux Virtual Server)**: 1. **LVS架构**:LVS通常采用三种工作模式:DR...

    LVS+Keepalive for centos7-可实施文档.docx

    ### LVS+Keepalived 在 CentOS 7 中的部署与应用 #### 一、概述 在高可用性和高性能计算环境中,LVS (Linux Virtual Server) 和 Keepalived 的结合使用是一种常见的架构设计方法。该组合旨在通过负载均衡和故障...

    LVS+keepalived群集教程(原创)

    LVS+Keepalived群集提供了高可用性和负载均衡的解决方案,通过VRRP协议实现主备切换,通过负载调度算法确保服务的均衡分布。在配置过程中,要关注各个参数的设置,以满足系统的性能需求和稳定性。同时,健康检查机制...

    lvs+keepalived+vsftp配置FTP服务器负载均衡

    在构建大型、高可用性的FTP(File Transfer Protocol)服务时,使用LVS(Linux Virtual Server)、Keepalived和VSFTPd的组合是一个常见的解决方案。LVS提供负载均衡,Keepalived确保服务高可用,而VSFTPd是常用的FTP...

    keepalive rpm.rar

    标题 "keepalive rpm.rar" 暗示了这个压缩包包含的是 CentOS 系统下用于安装 keepalived 服务的 RPM 包。keepalived 是一个开源项目,它主要用于实现 Linux 系统上的高可用性(High Availability, HA)解决方案,...

    nginx+keepalive主从 双机热备 + 自动切换解决方案

    router_id LVS_DEVEL } vrrp_script chk_nginx { script "/home/check_nginx.sh" interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP # MASTER interface eth2 virtual_router_id 51 mcast_src_ip ...

    keepalived-1.3.9.tar.gz

    2. LVS(Linux Virtual Server)负载均衡:Keepalived与LVS紧密配合,通过VRRP实现对后端真实服务器的健康检查和流量分发,增强了LVS集群的稳定性。 3. 配置检查:Keepalived支持对配置文件的实时监控,当配置发生...

    Keep-alive

    **Keepalived的工作原理:** 1. **健康检查**:Keepalived通过发送探测包(如ICMP ping或TCP SYN)到服务器,定期检查其健康状态。如果服务器未响应,Keepalived会将流量转移到其他可用服务器,实现故障切换。 2. **...

    keepalived-1.2.18+nginx-1.6.2

    1. **Keepalived**:Keepalived是一个开源项目,主要用于实现LVS(Linux Virtual Server)的高可用性。它提供了健康检查、故障转移和通知机制,确保服务始终在线。1.2.18版本包含了丰富的健康检查选项,如ICMP、TCP...

    keepalivedconfig

    根据提供的部分内容,我们可以看到 keepalived 的配置文件主要包括以下几个部分:全局定义、VRRP 同步组定义、VRRP 实例定义以及虚拟服务器定义。 ##### 1. 全局定义 (global_defs) 全局定义主要包含了一些 ...

    利用keepalive实现AWSC2高可用_20181218.pdf

    Keepalived 是基于 VRRP 组播的应用,但是在 2013 年 8 月 5 日发布的版本 1.2.8 中添加了对 VRRP 单播的支持,所以 keepalived 可以被应用到 AWS 中,作为对 EC2, HAProxy, LVS 等的高可用解决方案

    ipvsadm+keepalived 实现高可用负载均衡

    解压 keepalived-1.1.17.tar.gz 文件,进入目录并执行 `./configure --prefix=/usr/local/keepalive; make && make install`。 - **配置 keepalived**: 创建配置文件 `/etc/keepalived/keepalived.conf`。 ```bash ...

    使用keepalived来完成nginx的高可用

    - `vrrp_instance`:定义VRRP实例的具体配置,包括状态(MASTER或BACKUP)、接口、虚拟路由器ID、优先级等。 #### 四、总结 使用Keepalived实现Nginx的高可用性是提高Web服务稳定性的有效手段之一。通过上述方案中...

    keepalived的使用与安装

    Keepalived是一款开源的网络工具,主要功能是为LVS(Linux Virtual Server)提供健康检查和故障转移,确保服务的高可用性。它通过VRRP(Virtual Router Redundancy Protocol)协议实现主备切换,常用于构建高可用的...

Global site tag (gtag.js) - Google Analytics