当前位置: 首页 > news >正文

LVS工作模式详解,NAT全方位剖析

在这里插入图片描述

  1. 请求到达

    • 当用户请求到达Director Server(负载均衡服务器)时,数据包会先到达内核空间的PREROUTING链。此时,数据包的源IP为CIP(Client IP),目标IP为VIP(Virtual IP)。
  2. PREROUTING链

    • PREROUTING链检查数据包的目标IP是否是本机。如果是,将数据包送至INPUT链。
  3. INPUT链

    • 在INPUT链中,LVS判断数据包请求的服务是否是集群服务。如果是,LVS将修改数据包的目标IP为后端真实服务器的IP(RIP),然后将数据包发送至POSTROUTING链。此时,数据包的源IP为CIP,目标IP为RIP。
  4. POSTROUTING链

    • POSTROUTING链通过路由,将数据包发送给后端真实服务器(Real Server)。
  5. Real Server处理请求

    • Real Server接收到数据包后,发现目标IP是自己的IP,开始构建响应包并返回给Director Server。此时,响应包的源IP为RIP,目标IP为CIP。
  6. Director Server转发响应

    • Director Server接收到Real Server返回的响应包时,会将源IP地址修改为自己的VIP地址,然后将响应包发送回客户端。此时,响应包的源IP为VIP,目标IP为CIP。

(a) 当用户请求到达Director Server

  • 数据包进入PREROUTING链。
  • 源IP:CIP目标IP:VIP

(b) PREROUTING链检查

  • 检查目标IP是否是本机,是则发送至INPUT链。

© INPUT链的LVS处理

  • LVS判断请求服务是否为集群服务,若是,则修改目标IP为真实服务器的RIP。
  • 数据包进入POSTROUTING链。
  • 源IP:CIP目标IP:RIP

(d) POSTROUTING链转发

  • 数据包通过路由发送给Real Server。

(e) Real Server处理并响应

  • Real Server接收到数据包,处理请求并构建响应包返回给Director Server。
  • 响应包源IP:RIP响应包目标IP:CIP

(f) Director Server转发响应包

  • Director Server修改响应包的源IP为VIP,然后发送给客户端。
  • 响应包源IP:VIP响应包目标IP:CIP

应用场景:

  • 网站流量均衡:LVS可以用于大型网站,将流量分配到不同的Web服务器,提升网站的处理能力和响应速度。
  • 数据库读写分离:LVS可以用于数据库集群,将读请求和写请求分配到不同的数据库服务器,优化数据库性能。

举例:

  • 电商网站:一个电商网站使用LVS来处理大量用户请求。用户的浏览请求(如查看商品页面)通过LVS分配到不同的Web服务器,确保每个服务器负载均衡,用户可以快速加载页面。
  • 在线游戏:在线游戏服务器使用LVS分配玩家的连接请求到不同的游戏服务器,确保每个服务器可以均衡处理玩家的请求,提升游戏体验。

相关文章:

  • PromptMRG: Diagnosis-Driven Prompts for Medical Report Generation
  • 还在用Flex布局?OUT了 快来看看grid布局吧!
  • 计算机二级Access选择题考点—代码篇
  • Java程序设计 第五章 循环
  • 微信小程序毕业设计-智慧消防系统项目开发实战(附源码+论文)
  • 今日成果2024-6-7 TrustZone TEE安全SDK开发指南
  • MySQL 保姆级教程(四):过滤数据
  • c语言回顾-结构体
  • redis 09 事务
  • 【Ardiuno】实验使用ESP32单片机根据光线变化控制LED小灯开关(图文)
  • SpringBoot集成Elasticsearch实例
  • Linux vim 文本编辑 操作文本 三种模式
  • 音视频集式流媒体边缘分布式集群拉流管理
  • 05.VisionMaster 机器视觉 结果 格式化输出
  • NLP - word2vec详解
  • [PHP内核探索]PHP中的哈希表
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Angular Elements 及其运作原理
  • ES6系列(二)变量的解构赋值
  • Java到底能干嘛?
  • js写一个简单的选项卡
  • js学习笔记
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • nginx 配置多 域名 + 多 https
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Octave 入门
  • PAT A1017 优先队列
  • React 快速上手 - 07 前端路由 react-router
  • WePY 在小程序性能调优上做出的探究
  • 编写高质量JavaScript代码之并发
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 给第三方使用接口的 URL 签名实现
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 前嗅ForeSpider采集配置界面介绍
  • 使用Gradle第一次构建Java程序
  • 王永庆:技术创新改变教育未来
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 容器镜像
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​Java基础复习笔记 第16章:网络编程
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # centos7下FFmpeg环境部署记录
  • #DBA杂记1
  • #pragma pack(1)
  • (02)Hive SQL编译成MapReduce任务的过程
  • (13):Silverlight 2 数据与通信之WebRequest
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (十) 初识 Docker file