一、LVS-NAT

  简述:多目标的DNAT,通过Director修改请求报文中的目标地址和端口为LVS挑选出来的某RS的RIP和PORT实现转发

  特点:

    (1)RIP和DIP必须在同一网络,且应该使用私网地址,RIP的网关必须指向DIP

    (2)支持端口映射

    (3)请求报文和响应报文都经过Director转发,较高负载下,Director易成为系统性能瓶颈

二、LVS-DR

  简介:Director为请求报文重新封装一个MAC首部进行转发,源MAC地址是DIP所在接口的MAC,目标MAC是挑选出来的的某RS的RIP接口所在的MAC,IP首部不会发生变化(CIP/VIP)

  核心要点:

    (1)每个RS主机上都应有VIP,并且RIP配置在物理接口上,VIP配置在内置接口lo的别名上(lo:0),来自Director的请求报文进来时,经由RIP再到lo:0再到用户空间的进程,回去时控制响应报文先经过lo:0(此时源IP已封装成VIP)再由RIP离开,保证客户端接收到的报文源IP是VIP,目标IP是CIP

    (2)让RS主机禁止响应ARP广播级别和通告级别

      响应级别设定目的:当客户端请求过来时,让Director上的VIP响应,而不是让RS上的VIP响应,保证请求报文一定走Director

      通告级别设定目的:当Director向RS转发时,经由的是RIP的接口,由于RS和Director都有VIP,会造成地址冲突,通过设定ARP通告级别可让其总是避免向非本网络通告(经由的是RIP接口,不会向非RIP接口的网络通告),因此解决了地址冲突问题

  过程:

    (1)客户请求在前端路由器发送ARP广播来获取Director的VIP所在网卡的MAC地址,获知后,在请求报文上封装MAC首部(源MAC是路由器接口的MAC,目标MAC是Director上VIP接口的MAC),保证将报文发送至Director

    (2)Director接收到报文后,看到目标地址和目标MAC是自己,于是拆封MAC首部,请求报文进入INPUT链,之后发现是集群服务,于是准备向后端主机转发

    (3)Director将请求报文(源地址CIP/目标地址VIP)再次封装一个MAC首部(源MAC是DIP的MAC/目标MAC是RIP的MAC)发往后端挑选出来的RS,RS发现目标MAC是自己,拆了MAC首部,发现目标地址是VIP,于是继续向lo:0转发,最终到达用户空间的进程给予响应,开始构建响应报文

    (4)控制响应报文先经过lo:0(此时源IP已封装成VIP)再由RIP离开,保证客户端接收到的报文源IP是VIP,目标IP是CIP;此时可能需要另外一个路由器,如图所示,RIP的网关指向此路由,向外转发

  特点:

    (1)RS的RIP可以使用私网地址,也可以使用公网地址

    (2)不支持端口映射

    (3)RS跟Director必须在同一物理网络(一旦隔开,MAC会变);RS的网关必须不能指向DIP

    (4)请求报文必须由Director调度,但响应报文必须不能经由Director

三、LVS-TUNNLE

  简介:不修改请求报文的IP首部(源地址是CIP,目标地址是VIP),而是在原IP首部之外再封装一个IP首部(原地址是DIP,目标地址是挑选出来的RS的RIP)进行转发

  特点:

    (1)RIP,DIP,VIP全是公网地址

    (2)RS的网关不能也不可能指向DIP   

    (3)请求报文经Director转发,但响应报文直接发往CIP

    (4)不支持端口映射

    (5)RS的OS必须支持隧道功能

四、LVS-FULLNAT(不是标准类型)

  简介:NAT模型的一种延伸,通过同时修改请求报文的源IP地址(CIP->DIP)和目标IP(VIP->RIP)进行转发

  特点:

    (1)VIP是公网地址,RIP和DIP是私网地址,且通常不在同一网络中,但需要经由路由器互通

    (2)RS收到的请求报文源IP为DIP,因此响应报文将直接响应给DIP

    (3)支持端口映射

    (4)请求报文和响应报文都经由Director

  

LVS集群类型的更多相关文章

  1. Keepalived之高可用LVS集群

    前文我们聊了下keepalived的邮件通知相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13645163.html:今天我们来说说keepalive ...

  2. Linux Cluster 基础之LVS调度算法与集群类型

    Linux Cluster 基础之LVS调度算法与集群类型 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LB Cluster 1>.什么是LB LB 集群是 load ...

  3. LVS工作原理及集群类型

    Cluster概念 Cluster:集群,为解决某个特定问题将多台计算机组合起来形成的单个系统 Linux Cluster类型: LB:Load Balancing,负载均衡 HA:High ...

  4. 负载均衡之LVS集群

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  5. Linux系统(四)负载均衡LVS集群之NAT模式

    序言 提到LVS,就从章文嵩博士开始吧,反正也不知道如何下笔来写这一篇.章大博士,读博时候创建这个lvs软件项目,但是他提倡开源精神,在用户的建议和反馈中,这个花了他两周时间开发的开源软件不断得到改建 ...

  6. LVS集群之工作原理和调度算法(2)

      LVS的工作机制 LVS里Director本身不响应请求,只是接受转发请求到后方,Realservers才是后台真正响应请求. LVS 工作原理基本类似DNAT,又不完全相像,它是一种四层交换,默 ...

  7. LVS集群之NAT模式实例(3)

    LVS集群NAT模式实例 1. 实验拓扑图 DS 必须有两块网卡,需要在上面做NAT. 2. 实验环境 3台CentOS6.4 64bit的服务器. 类型 IP DR eth0:10.20.73.20 ...

  8. LVS集群DR模式实例(4)

    LVS集群DR模式实例 1. 实验拓扑图 2. 实验环境 3台CentOS6.4 64bit的服务器. 类型 IP DR eth0:10.20.73.20  VIP eth0:0 10.20.73.3 ...

  9. LVS集群TUN模式实例(5)

    LVS集群TUN模式实例 1. 实验拓扑图 2. 实验环境 4台CentOS6.2的服务器. 类型 IP DR eth0:10.20.73.20  VIP eth0:0 10.20.73.30 RS ...

随机推荐

  1. poj3180 强连通

    题意:给定一张 n 点 m 边的有向图,问有多少个强连通分量点数大于等于2 . 题意看懂基本就没有问题了. #include<stdio.h> #include<string.h&g ...

  2. MFC各种控件的常见操作(逐步添加中......)

    由于经常切换系统或界面框架进行编程,难免有时会忘记之前的编程函数等等.所有在此自己做一个备份,以防止重新充电带来的痛苦! 1.CButton 1.1 在VC中编程实现按钮的启用(enable)和禁用( ...

  3. kuangbin_SegTree B (HDU 1754)

    跟A题类似 只是把update从增减直接改为赋值 query从求和改为求最大值 其他几乎一样 #include <cstdio> #include <cstring> #inc ...

  4. 论文笔记之: Hierarchical Convolutional Features for Visual Tracking

    Hierarchical Convolutional Features for Visual Tracking  ICCV 2015 摘要:跟卢湖川的那个文章一样,本文也是利用深度学习各个 layer ...

  5. 开发技巧-Java通过HttpProxy实现穿越

    需求描述     在正常的项目开发需求中,连接远程服务器的场景一般有二:     1  自家实现的http服务器,api接口都已经约定好:     2  开发平台服务,通常如新浪.百度云等平台提供的r ...

  6. maven docker 操作

    1. 使用dokerfile 进行构建 创建dockerfile 2. maven 插件 <plugin> <groupId>com.spotify</groupId&g ...

  7. [转]win7下apache2.4响应很慢解决方法

    win7下apache2.4响应很慢解决方法 PS.按照以下方法测试了以下,似乎确实快了一点[skysowe] 转载自: http://blog.sina.com.cn/s/blog_75ad1010 ...

  8. C++模板编程里的主版本模板类、全特化、偏特化(C++ Type Traits)

    1.  主版本模板类 首先我们来看一段初学者都能看懂,应用了模板的程序: 1 #include <iostream> 2 using namespace std; 3 4 template ...

  9. knockout+bootstrap+MVC 登录页实现

    一.环境概述 1.MVC4.0项目 2.bootstrap引入: 生产环境版本引入:在web\Content 文件夹中引入bootstrap-3.2.0-dist, 源码版本CSS引入:将bootst ...

  10. JavaScript中的继承(原型链)

    一.原型链 ECMAScript中将原型链作为实现继承的主要方法,基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法. 实例1: function SupType() { this.pro ...