lvs的四种工作模式及其优缺点比较

2023-05-16

1、VS/NAT(地址翻译实现虚拟服务器)
调度器接受到客户端的请求之后,根据调度算法,将客户端的的请求发送给服务器,服务器处理完请求,查看默认路由(NAT模式下需要将服务器的默认网关设置为调度器),LB接受到响应包以后,将源IP进行修改,然后将响应数据发送给客户端。
这里写图片描述
原理详情:
<1>客户端请求数据,然后将数据发送给LB;
<2>LB接受到客户端的请求,根据调度算法,将客户端的请求包的源IP和端口,修改为服务器,然后将这条连接信息保存在hash表中;
<3>数据包经过服务器的处理,服务器的默认网关是LB,然后将响应数据发给LB;
<4>收到服务器的响应包以后,根据hash表中的连接信息,将源IP改为LB自己,然后将数据发送给客户端。
2、VS/TUN(用IP隧道技术实现虚拟服务器)
比起NAT技术,由于请求和响应都需要通过LB进行地址的改写,那么当客户端的请求越来越多的时候,LB的处理能力就会成为一个瓶颈。为了解决这个问题,LB通过IP隧道,将客户端的请求通过IP隧道,发送给真实的服务器,服务器处理完请求之后,将响应请求的IP改为LB的IP,然后将响应报文发送给客户端。
这里写图片描述
原理详情:
<1>客户请求数据包,目标地址VIP(LB的IP地址)发送到LB上;
<2>LB接收到客户请求包,进行IP Tunnel封装,在原有的包头加上IP Tunnel的包头,然后发送给服务器;
<3>服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和服务器之间懂)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理;
<4>响应处理完毕之后,服务器使用自己的出公网的线路,将这个响应数据包发送给客户端,源IP地址还是VIP地址。
3、VS/DR(用直接路由技术实现虚拟服务器)
DR模式是通过改写请求报文的目的MAC地址,将请求发送给真实服务器,服务器将响应消息直接发送给客户端。
这里写图片描述
原理详情:
<1>通过在调度器LB上修改数据包的目的MAC地址实现转发,注意源地址仍然是CIP,目的地址仍然是VIP地址;
<2>请求的报文经过调度器,而服务器响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比)
<3>因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面
<4>服务器主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。
<5>服务器节点的默认网关不需要配置成LB,而是直接配置为上级路由的网关,能让服务器直接出网就可以。
<6>由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么服务器就得使用和VIP相同的端口提供服务。
4、VS/FULLNAT
相比于NAT的局域网,FULLNAT是相对于没有那么局限,它是限制在内网中的。对于运维比较方便。
5、VS/NAT的优缺点
<1>优点:
对后端的操作系统没有要求;
只需要一个IP地址配置在调度器上,服务器组可以用私有IP地址;
支持端口映射;
<2>缺点:
请求和响应都需要通过LB,伸缩能力有限(一般后面能连接10台左右服务器)
需要服务器和LB在同一个局域网中;
需要将服务器的默认网关设置为LB;
6、VS/TUN的优缺点
<1>优点:
不需要调度应答报文,负载能力强;
服务器和调度器可以不在同一个VLAN中;
支持广域负载均衡;
<2>缺点:
所有的服务器必须支持“IP Tunneling”协议,需安装内核模块,安装复杂;
建立IP隧道的开销大;
服务器需要联通外网,风险较大;
不支持端口映射;
7、VS/DR的优缺点
<1>优点:
与TUN相比,没有IP隧道的开销,性能较高;
<2>缺点:
要求LB和服务器都有一块网卡连在同一个物理网段中;
不支持端口映射;
8、使用场景
VS/NAT:小并发的实验性应用、mysql集群;
VS/TUN:广域网负载;
VS/DR:大众方式;
VS/FULLNAT:人少钱多;

参考:http://www.it165.net/admin/html/201401/2248.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lvs的四种工作模式及其优缺点比较 的相关文章

  • A算法与A*算法区别

    A算法由 f n 61 g n 43 h n 俩个因素决定 xff0c g n 是这一步的代价函数 h n 是这一步的预估函数 xff1b 对于A 算法来说 xff0c 评判函数也是 f n 61 g n 43 h n 这个 xff0c 只
  • PARWAN处理器架构特点

    PARWAN处理器架构特点 PARWAN处理器结构图 xff08 搬运工系列 xff09 各个部分说明 xff1a Applied toCategtoriesSignal Name FunctionallyAC 累加计数器 Register
  • PX4源码学习一--Pix和APM的区别

    pixhawk是硬件平台 xff0c PX4是pixhawk的原生固件 xff0c 专门为pixhawk开发的 APM xff08 Ardupilot Mega xff09 也是硬件 Ardupilot是APM的固件 xff0c 所以称Ar
  • px4源码学习三--px4源码结构分析

    px4源码结构分析 Px4源码目录 cmake xff1a 是存放的 Cmake 编辑脚本文件夹 xff0c 其中 Cmake Configs 是存放的不同硬件的编译脚本 xff0c nuttx mindpx v2 default 是 PI
  • px4源码学习五--固定翼位置控制模块

    fw pos control模块 class landingslope 为固定翼着陆的角度变化模块 calulateSlopeValues void private 更新H1 H0 d1 根据log xff08 H0 H1 xff09 的比
  • px4源码学习六--uORB模块研究

    UORB模块研读 uORB函数解析 xff1a uORB模块 xff08 Micro Object Request Broker xff0c 微对象请求代理器 xff09 uORB是Pixhawk系统中关键的一个模块 xff0c 肩负了数据
  • Ubuntu开机进入busybox

    Ubuntu开机进入busybox 一般是因为ubuntu的文件系统出了问题 xff0c 所以需要在bushbox中进行扫描修复 看一下错误信息 xff0c 然后在busybox的命令行中运行fsck ext4 y dev sda1 xff
  • 关于JAVA文件都在没问题,没有错误提示波浪线,但编译时候提示找不到对应包的问题

    使用springboot做电商网站时候 修改了一点小功能 然后运行不了 提示XX XXX domain XX类找不到等一大堆类都找不到 但是对应包是存在的 而且在编辑框里没有红色的错误提示波浪线 所以 猜测应该不是代码的问题 又因为我们是g
  • c++泛型编程编译问题

    undefined reference to 模板类 c 43 43 泛型编程时候 xff0c 由于 h文件中放声明 xff0c cpp里放实现 xff0c main里调用 xff0c 编译时候 xff0c 就出现这样的问题 解决方法 xf
  • STM32CUBEMX的freertos一般使用方法笔记

    一 使用STM32CubeMX创建FreeRTOS操作系统 LED闪烁的配置 接下来配置时钟 xff0c 点击生成 此处为用户代码编写处 xff1b 开启这个选项便可以使用更加精确的延时 在代码区添加 便可以 xff01 二 任务挂起和取消
  • Qt5之QStatus状态栏

    1 一些常见用法 xff0c 来自其他优秀博文 xff1a https www cnblogs com toby zhang p 5729629 html 2 我这里添加状态了 xff0c 状态栏上放了一个QLabel控件显示时间 创建和添
  • 主函数一定要有while(1)吗?

    主函数一定要有while 1 吗 xff1f 在我两次移植例程时 xff0c 执行的结果都不对 xff0c 后来检查发现 xff0c 缺省了while 1 xff0c 加上之后结果就正确了 xff0c 这让我百思不得其解 xff0c 于是我
  • 解决error:legacy boot of uefi media

    错误 uefi媒体的传统引导 可能你的是GPT分区 xff0c 要改成UEFI引导 按F2 进入bios更换其他引导 xff0c 不同的品牌有自己进入的bios的方式 xff0c 我的是F2 按F10保存 解决
  • MongoDB安全实战之SSL协议加密

    邓开表同学实战MongoDB系列文章 xff0c 非常不错 xff0c 赞 xff01 大力推荐 xff01 本文主要讲述MongoDB的SSL协议加密的使用和配置的实战经验 xff0c 非常值得一看 前面系列文章 xff1a MongoD
  • 关于开源项目——C语言实现FTP服务器的结构解析

    项目地址 xff1a https github com beckysag ftp 针对此开源项目的说明 xff0c 结构分析 服务端整体框架 xff1a 1 从命令行输入得到服务端绑定端口号 2 设置套接口选项 xff0c 创建监听套接字
  • Nvidia Xavier NX 刷机 内置EMMC 带固态版

    Nvidia Xavier NX 刷机 内置EMMC 带固态版 前言一 烧录系统1 准备linux系统的电脑一台2 下载SDK Manager3 烧录过程 二 将NX系统迁移到NVME固态硬盘上1 格式化分区2 将EMMC SD卡的root
  • 关于vscode安装包下载太慢解决方法(详解)

    方法一 第一步 vscode官网选择下载版本 vscode官网 这里直接按系统选择合适的版本进行下载 xff01 第二步 进入下载界面 xff08 这一步别着急 xff0c 一定要进入下载过程 xff09 这里一定要点击保存 xff01 下
  • java 导出excel

    目录 一 动态下拉框二 合并行单元格三 复杂表头四 批量生成文件上传到文件服务器 xff0c 再从文件服务器批量下载压缩成压缩包后导出 一 动态下拉框 如何得到这样一张表格 xff1f 在单元格中插入可选下拉框 思路分析 xff1a exc
  • win10 H3C 映射外网端口,实现外网端口访问

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 目录 cmd 进入 控制台 登录H3C命令行控制台 xff0c 输入账号密码 查看dns网卡等基本信息 进入系统视图 映射 查看映射情况
  • VMware Workstation v16.2 + CentOS6.5命令行模式

    VMware下载地址和安装教程 CentOS官网下载 文章目录 一 VMware部分1 新建虚拟机2 选择驱动3 配置网络 xff08 NAT配置 xff09 二 CentOs部分1 安装驱动2 联网补充 xff1a 一 VMware部分

随机推荐

  • 并发编程(一)cpu,进程,线程,并发

    文章目录 一 程序和进程1 程序的进化论2 程序和进程的关系3 进程和线程的关系4 CPU和RAM的关联5 CPU 进程 线程之间的关系6 CPU如何执行 二 线程1 线程的使用2 线程的生命周期 三 并发和并行1 并发和并行2 高并发的定
  • 并发编程(二)原子性和Synchronized同步锁

    文章目录 一 原子性1 什么是原子性2 造成原子性的原因3 解决原子性问题之Synchronized同步锁 二 Synchronized1 Synchronized的使用2 Synchronized的原理2 1 JVM的结构 2 2 类的加
  • 【异常】执行yum install lrzsz 报错

    报错信息如图 可以看出yum源出了问题 xff0c 配置yum源 按以下步骤执行 配置yum源 xff1a cd etc yum repos d mkdir bak mv repo bak vi iso repo span class hl
  • 【笔记】etc/profile和~/.bashrc的区别

    在搭建单节点的hadoop集群时 xff0c jdk的环境变量是在 bashrc 文件中配置的 而搭建三节点的hadoop集群时 xff0c 是在root用户下的 etc profile目录下配置的环境变量 两者有什么区别呢 xff1f e
  • sql存储过程语法详解

    一 定义变量 使用关键字declare申明变量 xff1a declare 64 变量名 变量类型 span class hljs comment 简单赋值 span declare span class hljs variable 64
  • Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

    mysql 5 6 43 xff0c windows10 安装好之后 xff0c 在命令行net start mysql 时 xff0c 打印mysql 服务无法启动 1067 进程意外停止 进入事件查看器 缺少mysql plugin表
  • JavaScript学生管理系统

    JavaScript学生管理系统 一 系统功能描述1 系统界面2 查看全部学员信息3 搜索学生信息4 添加学生信息5 修改学生信息6 删除学生信息7 退出系统8 检查学号是否存在 二 完整代码 一 系统功能描述 1 系统界面 系统总共包含功
  • touchGFX 初探

    touchGFX是一套在MCU上运行的GUI方案 本文使用的平台是mt2523 xff0c M4内核 1 xff0c 安装TouchGFX 4 8 0 msi 下载链接 xff1a http touchgfx com en try touc
  • Linux Centos下软件的安装与卸载方法

    linux下软件的安装与卸载 第一章 linux下安装软件 xff0c 如何知道软件安装位置 注 xff1a 一般的软件的默认安装目录在 usr local 或者 opt 里 xff0c 可以到那里去找找 指令名称 xff1a wherei
  • TX2系统环境镜像制作及烧写

    参考 Jetson TX2镜像刷板法 传统TX2采用JetPack刷机的方法来部署板子的环境 对于单个板子而言没有问题 但对于大批量的TX2板子 如果都采用同样的方法 重复的操作来部署系统环境 无疑是一件很费时间的事情 如果有了母板 即配置
  • 2016 CSDN最佳博客(Android)

    无意中在CSDN上看见了今年的十佳博客 xff0c 虽然现在还没有分出伯仲 xff0c 但是结果大概已知 xff0c 其中看了几篇文章 xff0c 感触挺深 xff0c 故把几大博客整理下来 xff0c 一方面方便广大博友 xff0c 另一
  • java中线程池-ThreadPoolExecutor中corePoolSize和maximumPoolSize的理解

    span class token keyword import span java span class token punctuation span io span class token punctuation span IOExcep
  • 顺丰Java面试

    1 jvm中复制算法的原理 xff1b 2 线程有哪几种状态 xff1b 3 观察者模式的原理 xff1b 4 mysql中默认的隔离级别是什么 xff1b 5 redis常用的数据结构 xff1b 6 网络七层模型中的网络层的作用 xff
  • 关于双系统redhat7.6网络不可用

    博主安装的双系统是windows10和redhat7 6 xff1b 本来安装完一个星期内都是正常的 xff0c 两个都可以上网 xff0c 但是不知道是不是有一天windows自动更新了的原因 xff0c redhat突然就连不上网了 此
  • updateFill不生效

    mybatis plus core版本 xff1a 3 4 1 现象 xff1a insertFill正常 xff0c 但是updateFill一直执行不到 原因 xff1a 因为实体的参数名称没有定义为et 注 xff1a Constan
  • java指定时间,增加一年、一天、减十天等

    代码如下 xff1a span class token keyword public span span class token keyword static span span class token keyword void span
  • vue入门

    1 安装node xff08 node和npm是绑定的 xff0c 安装了node xff0c npm自然也就有了 xff09 xff1b 2 设置淘宝镜像 npm config set registry https registry np
  • 系统调用和进程切换时的寄存器信息保存在哪里?

    系统调用是什么 xff1f xff1f xff1f 系统调用是操作系统为用户提供的一系列API xff1b 系统调用将用户的请求发给内核 xff0c 内核执行完以后 xff0c 将结果返回给用户 xff1b 以open为例 xff0c 进行
  • 给一副扑克牌,求最长的顺子

    span class hljs preprocessor include lt iostream gt span span class hljs preprocessor include lt vector gt span span cla
  • lvs的四种工作模式及其优缺点比较

    1 VS NAT xff08 地址翻译实现虚拟服务器 xff09 调度器接受到客户端的请求之后 xff0c 根据调度算法 xff0c 将客户端的的请求发送给服务器 xff0c 服务器处理完请求 xff0c 查看默认路由 xff08 NAT模