LVS 工作图
一、工作模式
1、NAT模式
-----主要是修改目标IP地址为RS的IP地址。即请求进入负载均衡器时做DNAT,响应出负载均衡器时做SNAT。

工作方式:
1)客户端请求网站,经过路由器到达负载均衡器,请求源地址是CIP(客户端IP),目标地址为VIP(负载均衡器地址)。(源地址:CIP,目标地址:VIP)
2)负载均衡器(VIP),将客户端请求的目标地址改为后端服务器的RIP地址。(源地址:CIP,目标地址:RIP)
3)RealServer收到请求后,将响应发送到LVS。(源地址:RIP,目标地址:CIP)
4)lvs将源地址改为VIP,并发送给客户端。(源地址:VIP,目标地址:CIP)
注意:在NAT模式中,RealServer的网关必须指向LVS,否则报文无法送达客户端。

1)当用户请求到达Director Server,此时请求的数据报文会先到达内核的PREROUTING链,此时报文的源IP是CIP,目标IP是VIP。
2)PREROUTING链检查发现数据包的目标IP是本机,将数据包送至INPUT链。
3)IPVS内核模块比对数据包请求的服务是否为集群服务,如果是,则修改数据包的目标IP为后端服务器的IP,然后将数据包发至POSTROUTING链,做DNAT转换。此时报文的源IP是CIP,目标IP是RIP
4)POSTROUTING链通过选路,将数据包发送到Real Server。
5)Real Server比对发现目标IP是自己的IP,开始建立响应报文发回给Director Server,此时报文的源IP是RIP,目标IP是CIP.
6)Director Server在响应客户端之前,此时会将源IP地址修改为自己的IP地址,然后响应给客户端,做SNAT转换。此时报文的源IP是VIP。目标IP是CIP。
---------------------------------------------------------------------------------------------------------------------------
2、DR模式
--- 将请求报文的目标MAC地址设定为RS的MAC地址。即做MAC地址转换。
1)客户端将请求发往负载均衡器。(源地址:CIP C-MAC,目标地址:VIP V-MAC)。
2)负载均衡器收到请求后,请求在规则里面存在的地址,将客户端源MAC改为DIP的MAC,目标MAC改为RIP的MAC,并将发送给RS。(源地址:CIP D-MAC,目标地址:VIP R-MAC )。
3)RS发现请求目的MAC是自己,先接受报文,并处理请求报文,将响应报文通过lo接口发送eth0网卡,eth0直接发送给客户端。(源地址:VIP V-MAC,目标地址:CIP C-MAC )。
注意:需要设置lo接口的VIP,不能响应本地网络内的arp请求(也叫ARP抑制)。

1.当用户请求到达Director Server,此时请求的数据报文huixiandao内核空间的PREROUTING链,此时报文的IP是CIP,目标IP是VIP。
2.PREROUTING链检查发现数据包的目标IP是本机,将数据包送至INPUT链,
3.IPVS内核模块比对数据包请求的服务是否为集群服务,如果是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改为RIP的MAC地址,然后将数据包发至POETROUTING链中,此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址。
4.由于DS和RS实在同一网络中,所以两者之间的通信时通过二层协议来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至Real Server。
5.RS发现请求报文的MAC地址是自己的MAC地址,就接受此报文,处理完成以后,将响应报文通过LO接口传送给eth0网卡,然后向外发出,不经过负载均衡器。此时源IP地址为VIP,目标IP是CIP。
| src mac | dst mac | src ip | dst ip |
|---|---|---|---|
| 00:0c:29:f3:1f:de | 00:0c:29:50:d5:63 | 192.168.188.111 | 192.168.188.120 |
| src mac | dst mac | src ip | dst ip |
|---|---|---|---|
| 00:0c:29:50:d5:63 | 00:0c:29:e4:4d:1f | 192.168.188.111 | 192.168.188.120 |
| src mac | dst mac | src ip | dst ip |
|---|---|---|---|
| 00:0c:29:e4:4d:1f | 00:0c:29:f3:1f:de | 192.168.188.120 | 192.168.188.111 |
---------------------------------------------------------------------------------------------------------------------------------------
3、.lvs-tun模式
在原有的IP报文外再次封装多一层IP首部,内部IP首部(源地址为CIP,目标地址为VIP)外部IP地址首部(源地址为DIP,目标地址为RIP)

当用户请求报文到达DS,此时请求的数据报文会先到内核的PREROUTING链。此时源IP是CIP,目标IP是VIP。
PREROUTING链检查发现数据包的目标IP是本机,将数据包送至INPUT链。
IPVS比对数据包请求的服务是否为集群服务,如果是,在请求报文的首部再次封装一层IP报文,封装源IP为DIP,目标IP是RIP,然后发至POSTROUTING链。此时源IP是为DIP,目标IP是RIP。
POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为外层封装多了一层IP首部,所以可以理解为此时通过隧道传输)。此时源IP是DIP,目标IP是RIP。
RS收到报文后发现是自己的IP地址,就会将报文接受下来,拆除最外层的IP后,会发现里面还有一层IP首部,而且目标地址是自己的lo接口VIP,那么此时RS开始处理此请求,处理完成滞后,通过lo接口送给eth0网卡,然后向外传递。此时的源IP地址为VIP,目标IP为CIP。
LVS 工作图的更多相关文章
- 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...
- [原]一个针对LVS的压力测试报告
LVS 测试报告 测试计划 基本功能测试 流量压力测试 响应时间测试 配置正确性测试 灾难恢复测试 测试点 基本功能测试 客户端IP地址正确性 RealServer 访问Internet测试(包括Ip ...
- 负载均衡之LVS集群
h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...
- Keepalived+LVS+nginx双机热备
Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...
- 基于keepalived双主模型的高可用LVS
背景知识: keepalived:Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除, ...
- LVS原理详解
一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...
- 配置LVS + Keepalived高可用负载均衡集群之图文教程
负载均衡系统可以选用LVS方案,而为避免Director Server单点故障引起系统崩溃,我们可以选用LVS+Keepalived组合保证高可用性. 重点:每个节点时间都同步哈! C++代码 [r ...
- lvs+keepalived
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- CentOS7 编译安装LVS 互为主备 (实测 笔记 Centos 7.0 + ipvsadm 1.27 + keepalived 1.2.15 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) LVS服务器(两台): 系统:Centos7.0 64位(LVS+keepalived) LvsMaster:1 ...
随机推荐
- json系列(一)cjson,rapidjson,yyjson解析示例
前言 项目上通过消息中间件传输json格式的数据,其他接收模块需要对json格式的数据进行解析,反序列化.对json解析工具有几个关注点,一是具备解析和构造的基础功能,二是具备解析和构造的高性能,三是 ...
- 【C# 异常处理】StackTrace 堆栈跟踪
作用 在使用.NET编写的代码在debug时很容易进行排查和定位问题,一旦项目上线并出现问题的话那么只能依靠系统日志来进行问题排查和定位,但当项目复杂时,即各种方法间相互调用将导致要获取具体的出错方法 ...
- 【windows 操作系统】什么是窗口?|按钮也是窗口
起因 在看操作系统消息机制的时候,看到一句化:全局消息队列把消息发送到窗口所在的线程消息队列.突然就怀疑起了窗口的意思.于是就有这边基类. 文章来源:https://docs.microsoft.co ...
- Spark学习笔记(详细)
Spark Core 第1章 Spark 概述 Spark是一种基于内存的快速.通用.可扩展的大数据分析计算引擎 Spark和Hadoop 的根本差异是多个作业之间的数据通信问题: Spark多个作业 ...
- spring 中<ref parent="">标签是什么意思;ref标签与ref属性有什么不同;子容器如何引用父容器的bean
spring的配置文件可能会有多个<property name="a" ref="b" />就是找当前配置文件里的bean 也就是id为b的 < ...
- k8s-ingress部署测试以及深入理解
1.ingress 部署有两种方式.本次采用DaemonSet部署. apiVersion: v1 kind: Namespace metadata: name: ingress-nginx --- ...
- SqlServer 取表某一列相同ID最大时的数据
SELECT * FROM(SELECT *,ROW_NUMBER() OVER(PARTITION BY UserName ORDER BY Id DESC) Num FROM dbo.[User] ...
- mataplotlib篇(开篇)
今日内容概要 matplotlib画各种图形 数据操作补充 数据清洗 网络爬虫 今日内容详细 matplotlib画各种图形 # 首先导入模块 import numpy as np import pa ...
- 常用QQ快捷键
QQ是腾讯QQ的简称,是一款基于Internet即时通信(IM)软件.目前QQ已经覆盖Microsoft Windows.macOS.Android.iOS.Windows Phone.Linux等多 ...
- 分布式搜索引擎Elasticsearch的架构分析
一.写在前面 ES(Elasticsearch下文统一称为ES)越来越多的企业在业务场景是使用ES存储自己的非结构化数据,例如电商业务实现商品站内搜索,数据指标分析,日志分析等,ES作为传统关系型数据 ...