集群(三)- LBC - LVS
00 分钟
2024-5-22
2024-6-20
type
status
date
slug
summary
tags
category
icon
password
文章状态

LVS 工作原理

官方文档地址:

什么是LVS?

Linux Virtual Server,是针对Linux内核开发的一个负载均衡项目。
官网是:
可以进入官网查阅相关的技术文档。LVS现在已经成为Linux内核的一部分,默认编译为 ip_vs 模块,必要时能够自动调用。

IPVS 函数

钩子函数
内核机制,在请求没有到达目的地址之前,捕获并取得优先控制权的函数。

IPVSADM 命令

管理集群服务的命令行工具,也可称为 IPVSADM 命令,是 LVS 在应用层的管理命令。需要使用 yum 单独安装。
工作在用户空间,负责为 IPVS 内核框架编写规则,定义谁是集群服务,谁是后端真实的服务器。

语法

常用选项
  • 选项后的参数
    • 以下参数可接在上述选项后。

管理 集群服务

添加
修改
删除

管理 集群中真实服务器

添加
修改
删除

查看 & 保存 & 清空 集群设置

相关名词

 
CIP
客户端 IP
DIP
负载调度器 IP
VIP
集群 IP
RIP
真实服务器 IP
 

工作模式

三种工作模式情景图例
三种工作模式情景图例
  • NAT 模式
    • 类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。服务器节点使用私有 IP 地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式,但负载调度器的压力较大。
      NAT 模式将客户端请求通过网络地址转换发送到后端服务器。
  • TUN 模式
    • 采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的 Internet 连接直接回应客户机,而不再经过负载调度器,服务器节点分散在互联网中的不同位置,具有独立的公网 IP 地址,通过专用 IP 隧道与负载调度器相互通信。
      TUN 模式,通过 IP 隧道技术将请求封装后发送至后端服务器。
  • DR 模式
    • 采用半开放的网络结构,与 TUN 模式的结构类似,但各节点不是分散在各地的,而是与调度器位于同一个物理网络,负载调度器与各节点服务器通过本地网络连接,不需要建立专用的 IP 隧道。
      DR模式中,请求直接路由到后端服务器,更改数据包的MAC地址以对应后端服务器。

A. 地址转换模式

NAT
NAT 工作模式流程示意图
NAT 工作模式流程示意图
📑
工作流程
  1. 客户端将请求交给负载调度器,客户端发出数据包,此时这个数据包的 源 IPCIP 目标 IPVIP(集群 IP)
  1. 数据包到达负载调度器后,修改数据包的目标 IP 地址为真实服务器的 IP ,此时数据包的源 IPCIP目标 IPRIP
  1. 将数据包发送给 RS,之后 RS 响应将数据包发回给负载调度器,此时数据包的 源 IPRIP目标 IPCIP
  1. 负载调度器在转发时,会将 源 IP 地址改为自己的 VIP 地址,然后再发给客户端,此时数据包的 源 IPVIP目标 IPCIP
  • 特点
      1. 负载调度器和真实服务器,必须位于同一网络
      1. 真实服务器的网关必须指向 DIP
      1. 负载调度器必须位于客户端和真实服务器之间
      1. RIP通常都是私有地址,仅用于各个集群节点通信
      1. 支持目标地址转换
      1. 真实服务器可以使用任意操作系统、负载调度器必须是 LINUX 系统
  • 缺点 ×
    • 所有数据报文都要经过负载调度器、压力过大

B. 路由模式

DR
DR 工作模式流程示意图
DR 工作模式流程示意图
🗺️
工作流程
  1. 客户端发出数据包,源 IP 是 CIP,目标 IP 是 VIP
  1. 依靠路由把数据发送给负载调度器,负载调度器将数据包的 源 MAC 地址 修改DIP 的MAC地址,将 目标 MAC 地址 修改RIP 的 MAC 地址,此时 源 IP 和 目标 IP 均未修改
  1. 由于 DS 和 RS 在同一网络中,所以通过二层来传输,通过调度器再将数据包发到 RS
  1. RS 接收数据包,之后通过 IO 接口传送给网卡(eth0)向外发出,此时的 源 IP 是 VIP目标 IPCIP
  1. 最后通过路由发给客户端
  • 特点
      1. 负载调度器和真实服务器,必须位于同一网络
      1. 真实服务器的网关必须指向路由器
      1. 负载调度只处理入站请求
      1. RIP 可以是私有地址,也可以是公网地址
      1. 真实服务器可以使用任意操作系统,负载调度器必须是 LINUX 系统
  • 优点 √
    • 负载调度器压力较小
  • 缺点 ×
    • 配置相对复杂

C. 隧道模式

TUN
TUN 工作模式流程示意图
TUN 工作模式流程示意图
🪄
工作流程
  1. 客户端发送数据包到负载调度器,此时数据包的 源 IPCIP目标 IPVIP
  1. 负载调度器会在数据包的外面再次封装一层 IP 数据包,封装 源 IPDIP ,目标 IP 为RIP 。此时 源 IPDIP目标 IPRIP
  1. 之后负载调度器将数据包发给 RS(因为在外层封装多了一层 IP 首部,所以可以理解为此时通过隧道传输),此时 源 IPDIP目标 IPRIP
  1. RS 接收到报文后发现是自己的 IP 地址,就将报文接收下来,拆除掉最外层的 IP 后,会发现里面还有一层 IP 首部,而且目标是自己的 IO 接口 VIP,那么此时 RS 开始处理此请求,处理完成之后,通过 IO 接口送给网卡 (eth0),然后向外传递。 此时的 源 IPVIP目标 IPCIP
  1. 之后将数据包发给客户端
  • 特点
      1. 所有真实服务器节点既要有 RIP,又要有 VIP,并且 RIP、必须是公网 IP
      1. 负载调度器和真实服务器必须支持隧道功能
      1. 负载调度器只处理入站请求
      1. 真实服务器一定不能使用负载调度集群做默认网关
      1. 不支持端口映射
  • 优点 √
    • 可跨互联网搭建集群
  • 缺点 ×
    • 对网络环境要求较高

上一篇
集群(二)- LBC
下一篇
集群(四)- HAC - Keepalived