当前位置:网站首页>LVS四层负载均衡集群(6)LVS工作模式
LVS四层负载均衡集群(6)LVS工作模式
2022-06-13 03:34:00 【51CTO】
NAT转发模式
Network Address Translation,网络地址转换

- CIP:客户端IP地址/发起方/源IP地址
- VIP:虚拟IP/lvs集群IP
- RIP:真实服务器IP/WEB集群IP/web服务器
工作原理
①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP(客户端IP),后面统称为CIP),目标地址为VIP(负载均衡器前端地址,后面统称为VIP)。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的目标IP地址改为了后端服务器的RIP地址并将报文根据算法发送出去。
③.报文送到Real Server后,由于报文的目标地址是自己,所以会响应该请求,并将响应报文返还给LVS。
④.然后lvs将此报文的源地址修改为本机并发送给客户端。
注意在NAT模式中,Real Server的网关必须指向LVS,否则报文无法送达客户端
优点
网络隔离更安全
节约IP地址
缺点
director很可能成为系统性能瓶颈,所有的请求director都需要处理应答
DR直接路由模式

工作原理
①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的源MAC地址改为自己DIP的MAC地址,目标MAC改为了RIP的MAC地址,并将此包发送给RS。
③.RS发现请求报文中的目的MAC是自己,就会将次报文接收下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡直接发送给客户端。
特点
- 集群节点和director必须在一个物理网络内
- RIP可以使用公网地址或私有地址
- director仅处理入站请求,director服务器的压力比较小
- 集群节点网关不指向director,故出站不经过director
- 不支持端口映射
- 大多数操作系统可以作为realserver,要支持隔离arp广播
ARP问题
通常,DR模式需要在Real-server上配置VIP,配置的方式为:
/sbin/ifconfig lo:0 inet VIP netmask 255.255.255.255
i) 原因在于,当LVS把client的包转发给Real-server时,因为包的目的IP地址是VIP,那么如果Real-server收到这个包后,发现包的目的IP不是自己的系统IP,那么就会认为这个包不是发给自己的,就会丢弃这个包,所以需要将这个IP地址绑到网卡上;当发送应答包给client时,Real-server就会把包的源和目的地址调换,直接回复给client。
ii) 关于ARP广播:
* 上面绑定VIP的掩码是”255.255.255.255″,说明广播地址是其本身,那么他就不会将ARP发送到实际的自己该属于的广播域了,这样防止与LVS上VIP冲突,而导致IP冲突。
* 另外在Linux的Real-server上,需要设置ARP的sysctl选项:
TUN-IP隧道模式

工作原理
①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将在客户端请求报文的首部再封装一层IP报文,将源地址改为DIP,目标地址改为RIP,并将此包发送给RS。
③.RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己lo接口上的VIP,所以会处理次请求报文,并将响应报文通过lo接口送给eth0网卡直接发送给客户端。
特点
优点:
负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。
缺点:
隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。
模式对比

FULL-NAT
Full-NAT由此而生,解决的是LVS和RS跨VLAN的问题,而跨VLAN问题解决后,LVS和RS不再存在VLAN上的从属关系,可以做到多个LVS对应多个RS,解决水平扩容的问题。

边栏推荐
- Simulink代码生成: 查表模块及其代码
- Simple use of qtreeview of QT (including source code + comments)
- Summary of the latest rail transit (Subway + bus) stops and routes in key cities in China (II)
- KITTI数据集无法下载的解决方法
- MySQL learning summary 9: non empty constraints, uniqueness constraints, primary key, auto_ Increment, foreign key, default, etc
- 在JDBC连接数据库时报错:Connection to 139.9.130.37:15400 refused.
- How to write product requirements documents
- Age anxiety? How to view the 35 year old programmer career crisis?
- Feign based remote service invocation
- Least recently used cache (source force deduction)
猜你喜欢

Spark core concepts: Master, worker, driver program, executor, RDDS

Neil eifrem, CEO of neo4j, interprets the chart data platform and leads the development of database in the next decade

brew工具-“fatal: Could not resolve HEAD to a revision”错误解决

Data of all bank outlets in 356 cities nationwide (as of February 13, 2022)

Feign based remote service invocation

2-year experience summary to tell you how to do a good job in project management

Application framework / capability blueprint

视频播放屡破1000W+,在快手如何利用二次元打造爆款
![[JVM Series 5] performance testing tool](/img/94/b9a93fc21caacaf2a2e6421574de5c.jpg)
[JVM Series 5] performance testing tool
![[JVM series 4] common JVM commands](/img/32/339bf8a2679ca37a285f345ab50f00.jpg)
[JVM series 4] common JVM commands
随机推荐
[JVM Series 5] JVM tuning instance
MySQL learning summary 10: detailed explanation of view use
[synchronization function] version 2.0.16-19 has the update of synchronization function repair, but the problem has not been solved
Data from the first to seventh census (to counties)
Azure SQL db/dw series (13) -- using query store (2) -- report Introduction (2)
Simulink代码生成: 简单状态机及其代码
ONNX+TensorRT+YoloV5:基于trt+onnx得yolov5部署1
Masa auth - SSO and identity design
Display line number in MySQL query result
Golang picks up: why do we need generics
LeetCode185. All employees with the top three highest wages in the Department (MySQL)
China Civil Aviation Statistical Yearbook (1996-2020)
简述:分布式CAP理论和BASE理论
Figure data * reconstruction subgraph
Union, intersection and difference sets of different MySQL databases
How to write product requirements documents
[azure data platform] ETL tool (7) - detailed explanation of ADF copy data
[JVM Series 2] runtime data area
DTCC | 2021 China map database technology conference link sharing
在JDBC连接数据库时报错:Connection to 139.9.130.37:15400 refused.