面试的时候必问这个四种工作模式,因为这几乎是企业里面必用的内容,所以一定要将其理解通透。

一、lvs-nat模式

二、LVS-DR模式(默认)

三、LVS-tun模式

四、LVS-fullnat模式

一、lvs-nat模式

lvs-nat本质是多目标IP的DNAT,通过将请求报文中的目标IP地址和目标端口修改为某挑出的RS的RIP和PORT实现转发。

  1. RIP和DIP应该在同一个IP网段,且应使用私网地址;RS的网关要指向DIP。
  2. 请求报文和响应报文都必须经由director转发,director易于成为系统瓶颈
  3. 支持端口映射,可修改请求报文的目标PORT
  4. VS必须是linux,RS可以是任何OS系统

CIP  XXXXX------------------------->VIP 80/tcp

CIP  XXXXX------------------------->RIP 80/tcp      #去的时候把目标地址VIP替换成了RIP,去的时候替换的是目标地址

RIP1  80/tcp--------------------------->CIP  XXXXX     #回来的时要把源地址RIP再替换成VIP,回来的时候替换的是源地址,相像一下,很好理解。

VIP 80/tcp---------------------------->CIP XXXXX

NOTE:

数据来回都要走LVS,压力比较大,很有可能会成为瓶颈

LVS与服务器之间通常是有交换机相连,当然用路由器也是可以的。

二、LVS-DR模式(默认)

LVS-DR,DR(direct routing直连路由),LVS的默认模式,应用最为广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变。

  1. director和各RS都配置有VIP
  2. 确保前端路由器将目标VIP的请求报文发往director

在前端网关做静态绑定VIP和director的MAC地址

在RS上使用arptables工具

所有的RS都要配置VIP,那么不会冲突吗?我们可以在RS的系统上配置一下内核,使其配置完IP地址之后不向外发送arp广播,同时也不回应arp广播,这样就能默默的占用这个IP地址。

DR模式最大的特点就是来回路径不一致,用户的请求一定会通过LVS的转发,而RS的回应报文不用经过LVS(包括三次握手),这么做有啥子好处吗?来回路径不一致会减轻LVS的压力,这样的可以接待更多的用户请求。

物理上是一个网段,逻辑是两个网段,路由器的内网接口需要两个地址,为什么需要两个地址呢?一个地址不行吗?假如说用一个地址的话,arp广播的时候访问谁是VIP的时候就好玩了!因为好几台主机都有VIP,所以路由器的内网接口一定要有两个地址,当路由器把用户请求扔给LVS需要一个单独的网段,当LVS再将请求给RS的时候又需要另一个网段,所以不仅路由器需要两个地址,LVS也需要两个地址,那么RS需要几个地址?RS只需要一个地址就够了。

RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一网络;RIP的网关不能指向DIP,以确保响应报文不会经由LVS。

RS和LVS要在同一个物理网段

请求报文要经由LVS,但响应报文不经由lvs,而由RS直接发往client

不支持端口映射(端口不能修改),为什么不能修改呢?因为DR模式只能更改MAC地址,而不能更改IP和端口。

RS可以使用大多数OS系统。

生产环境当中通常是多级调度:

大家想一下,这样行吗?是可以的,单臂路由,这样是可以的,逻辑通信过程是一样的。

三、LVS-tun模式

转发方式:不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而在源IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;RS直接响应给客户端(源IP是VIP,目标IP是CIP)

(1)DIP、VIP、RIP都应该是公网地址

(2)RS的网关一般不能指向DIP

(3)请求报文要经由LVS,但响应不经过LVS

(4)不支持端口映射

(5)RS的OS需要支持隧道功能。

再封装一个新的头部,类似VPN隧道。

是否应该是公网地址取决于是否是专线。

加源dip,目标是RIP,dip必须再配置vip,不配置就会扔了,不用考虑地址冲突,因为往往中间会陋路由器,正常给cip回应,不用原路返回。

好处就是跨机房远程调度,大企业,在全国各地都有服务器。

四、LVS-fullnat模式

此类型内核默认不支持,应用场景比较少。

lvs-fullnat:通过同时修改请求报文的源IP地址和目标IP地址进行转发

CIP-----DIP

VIP-----RIP

  1. VIP是公网地址,RIP和DIP的私网地址,且通常不在同一个网络;因此,RIP的网关一般不会指向DIP。
  2. RS收到的请求报文源地址是DIP,因此,只需要响应给DIP;但director还要将其发往client。
  3. 请求和响应报文都经由derctor
  4. 支持端口映射

NOTE:DNAT只替换目标地址,源不动;full-nat的模式下全部替换,如下所示:

DNAT和FULL-NAT都只可以隔路由器。

小项目用LVS,有钱的企业用F5。

DR模型有一个局限性,DR模型只能在一个机房里面。

LVS(二):四种工作模型的更多相关文章

  1. 集群,lvs负载均衡的四种工作模式

    集群 集群的三种分类以及用途 负载均衡: 分配流量(调度器),提升速度 高可用: 关键性业务 高性能: 开发算法,天气预报,国家安全 负载均衡的集群 lvs(适用于大规模) haproxy(适用于中型 ...

  2. 四种IO模型

    四种 IO 模型:       首先需要明确,IO发生在 用户进程 与 操作系统 之间.可以是客户端IO也可以是服务器端IO. 阻塞IO(blocking IO):     在linux中,默认情况下 ...

  3. HTTPD三种工作模型

    HTTPD三种工作模型 MPM是apache的多道处理模块,用于定义apache对客户端请求的处理方式.在linux中apache常用的三种MPM模型分别是prefork.worker和event. ...

  4. 转载-LVS的三种工作模式

    来源地址:http://www.uml.org.cn/zjjs/201211124.asp 1.lvs简介         lvs是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立 ...

  5. AndroidManifest.xml文件详解(activity)(三)四种工作模式

    android:launchMode 这个属性定义了应该如何启动Activity的一个指令.有四种工作模式会跟Intent对象中的Activity标记(FLAG_ACTIVITY_*常量)结合在一起用 ...

  6. 2.LVS的三种工作模式_NAT模式

    1.LVS的三种工作模式 1)VS/NAT模式(Network address translation) 2)VS/TUN模式(tunneling) 3)DR模式(Direct routing) 1. ...

  7. vim的四种工作模式(转载别人的)

    Vim操作的四种模式 Vim的四种模式一.启动Vim1.双击桌面的图标,就可以启动Vim(是图形界面的)2.在开始菜单---点--运行 接着输入 vim 或者gvim,就可以启动Vim或Gvim了.二 ...

  8. 图解四种 IO 模型

    最近越来越认为,在讲解技术相关问题时,大白话固然很重要,通俗易懂,让人有想读下去的欲望.但几乎所有的事,都有两面性,在看到其带来好处时,不妨想想是否也引入了不好的地方. 例如在博客中,过于大白话的语言 ...

  9. 31、activity 四种工作模式

    一个应用通常(不一定)对应一个任务栈,相当于有个集合,保存了这个app里所有的页面栈的规则是先进后出,"进"就相当于打开了一个页面,"出"就相当于返回时关闭一个 ...

随机推荐

  1. pytorch 创建tensor的几种方法

    tensor默认是不求梯度的,对应的requires_grad是False. 1.指定数值初始化 import torch #创建一个tensor,其中shape为[2] tensor=torch.T ...

  2. linux 下安装 python ngix 项目发布流程

    1.安装python #1.安装python3.7所需要的依赖包yum -y groupinstall "Development tools"yum -y install zlib ...

  3. 玩转算法系列--图论精讲 面试升职必备(Java版)

    第1章 和bobo老师一起,玩转图论算法欢迎大家来到我的新课程:<玩转图论算法>.在这个课程中,我们将一起完整学习图论领域的经典算法,培养大家的图论建模能力.通过这个课程的学习,你将能够真 ...

  4. 为什么用时序电路实现CPU

    时序电路 我们带着如下疑问来看时序电路: 1.为什么CPU要用时序电路,时序电路与普通逻辑电路有什么区别. 2.触发器.锁存器以及时钟脉冲对时序电路的作用是什么,它们是如何工作的. 带着这两个问题,我 ...

  5. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) F. Tree Factory 构造题

    F. Tree Factory Bytelandian Tree Factory produces trees for all kinds of industrial applications. Yo ...

  6. Composer 的安装

    最近在家休息了两个月,本来打算看看书,结果和朋友做了个小项目.项目也差不多接近尾声了,就准备找工作了,朋友推荐我去他们公司做事,不过是使用 PHP 进行开发了.我这一年来使用 Java 进行开发,今后 ...

  7. pytest 常见用法

    前言 之前一篇文章简单介绍了 pytest 以及 fixture :https://www.cnblogs.com/shenh/p/11572657.html .实际在写自动化测试脚本中,还会有一些很 ...

  8. 第二十一节:Asp.Net Core MVC和WebApi路由规则的总结和对比

    一. Core Mvc 1.传统路由 Core MVC中,默认会在 Startup类→Configure方法→UseMvc方法中,会有默认路由:routes.MapRoute("defaul ...

  9. Flask restful源码分析

    Flask restful的代码量不大,功能比较简单 参见 http://note.youdao.com/noteshare?id=4ef343068763a56a10a2ada59a019484

  10. MySQL for OPS 01:简介 / 安装初始化 / 用户授权管理

    写在前面的话 取这个标题的目的很简单,MySQL 在中小型企业中一般都是由运维来维护的,除非数据很重要的公司可能会聘请 DBA. 但是运维一般存在由于所需要了解的东西很多很杂,导致学习过程中很多东西只 ...