LVS集群的nat模式详解(负载均衡)

目录

一、LVS集群的介绍

[1、LVS 相关术语:](#1、LVS 相关术语:)

2、lvs工作原理

3、相关名词概念

4、lvs集群的类型

二、lvs的nat模式

1、介绍:

2、数据逻辑:

3、nat实验部署

环境搭建:

1、lvs中要去打开内核路由功能,实现网络互联。

2、在web1,web2上安装配置httpd服务

3、在lvs上面配置ipvsadm

[4、用nat ip 172.25.254.100 进行测试](#4、用nat ip 172.25.254.100 进行测试)


一、LVS集群的介绍

集群:同一个业务系统,部署在多台服务器上,集群中,每一台服务器实现的功能没有差别,数据 和代码都是一样的 。

Cluster: 集群是为了解决某个特定问题将多台计算机组合起来形成的单个系统
Cluster常见的三种类型:
LB : LoadBalancing (负载均衡)由多个主机组成,每个主机只承担一部分访问
HA : High Availiablity (高可用) SPOF ( single Point Of failure )
MTBF:Mean Time Between Failure 平均无故障时间,正常时间
MTTR:Mean Time To Restoration ( repair )平均恢复前时间,故障时间
A=MTBF/ ( MTBF+MTTR ) (0,1) : 99%, 99.5%, 99.9%, 99.99%, 99.999%
SLA :Service level agreement(服务等级协议)是在一定开销下为保障服务的性能和可用性,服 务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。在 常规的领域中,总是设定所谓的三个 9 ,四个9来进行表示,当没有达到这种水平的时候,就会有一 些列的惩罚措施,而运维,最主要的目标就是达成这种服务水平。 停机时间又分为两种,一种是计划内停机时间,一种是计划外停机时间,而运维则主要关注计划外 停机时间
HPC :High-performance computing(高性能计算,国家战略资源)

1、LVS 相关术语:

LVS:Linux Virtual Server,负载调度器,内核集成。
VS: Virtual Server ,负责调度
RS:RealServer ,负责真正提供服务

2、lvs工作原理

VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS。

LVS(Linux Virtual Server)主要通过负载均衡技术,将来自客户端的请求转发给后端服务器,从而提供高性能、高可用的服务器集群服务。

LVS是Linux操作系统中一个优秀的负载均衡项目,它利用IP负载均衡技术,有效地将到达的请求分发到不同的服务器上,以实现高性能和高可用性。LVS的核心组件包括负载调度器(Load Balancer)、服务器池(Server Pool)和共享存储(Shared Storage)。请求首先到达负载调度器,然后根据预设的规则和算法,转发到服务器池中的某一台服务器进行处理。

3、相关名词概念

  • VS:Virtual Server
  • RS:Real Server
  • CIP:Client IP
  • VIP: Virtual serve IP VS外网的IP
  • DIP: Director IP VS内网的IP
  • RIP: Real server IP

访问流程: CIP <--> VIP == DIP <--> RIP

4、lvs集群的类型

  • lvs-nat: 修改请求报文的目标IP,多目标IP的DNAT
  • lvs-dr: 操纵封装新的MAC地址
  • lvs-tun: 在原请求IP报文之外新加一个IP首部
  • lvs-fullnat: 修改请求报文的源和目标IP

下面我们来介绍一下lvs的nat模式,其他几种模式我会在后面介绍一下。

二、lvs的nat模式

1、介绍:

  • 本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和
  • PORT实现转发
  • RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP
  • 请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈
  • 支持端口映射,可修改请求报文的目标PORT
  • VS必须是Linux系统,RS可以是任意OS系

2、数据逻辑:

  • 1.客户端发送访问请求,请求数据包中含有请求来源(cip),访问目标地址(VIP)访问目标端口(9000port)
  • 2.VS服务器接收到访问请求做DNAT把请求数据包中的目的地由VIP换成RS的RIP和相应端口
  • 3.RS1相应请求,发送响应数据包,包中的相应保温为数据来源(RIP1)响应目标(CIP)相应端口 (9000port)
  • 4.VS服务器接收到响应数据包,改变包中的数据来源(RIP1-->VIP),响应目标端口(9000-->80)
  • 5.VS服务器把修改过报文的响应数据包回传给客户端
  • 6.lvs的NAT模式接收和返回客户端数据包时都要经过lvs的调度机,所以lvs的调度机容易阻塞

客户请求到达vip后进入PREROUTING,在没有ipvs的时候因该进入本机INPUT,当IPVS存在后访问请求在通过PREROUTING后被ipvs结果并作nat转发
因为 ipvs 的作用点是在 PREROUTING 和 INPUT 链之间,所以如果在 prerouting 中设定规则会干扰 ipvs的工作。所以在做 lvs 时要把 iptables 的火墙策略全清理掉。

3、nat实验部署

拓扑图

环境要求:

准备3台Linux虚拟机:

一台作lvs进行负载均衡,其中要有2个网卡,一个为nat模式,一个为仅主机模式。

其他两台都为仅主机模式提供httpd服务,最终要实现的时在lvs上实现通过172.25.254.100,进行nat模式实现负载均衡。
Web服务器网关指向192.168.0.100
后端web服务器不需要连接外网

环境搭建:

|---------|----------------|----------------|-------------|
| 主机名 | ip | vip | 角色 |
| lvs | 192.168.0.100 | 172.25.254.100 | 调度器( VS ) |
| web1 | 192.168.0.10 | null | 真实服务器( RS ) |
| web2 | 192.168.0.20 | null | 真实服务器( RS ) |
| node4 | 172.25.254.130 | | 测试机 |

注意:在进行lvs负载均衡部署时,环境一定要成功没问题。!!!!

1、lvs中要去打开内核路由功能,实现网络互联。

bash 复制代码
[root@lvs ~]#vim /etc/sysctl.conf
#添加
net.ipv4.ip_forward = 1 
#查看
[root@lvs ~]#sysctl -p
net.ipv4.ip_forward = 1

2、在web1,web2上安装配置httpd服务

bash 复制代码
#web1上面,
[root@web1 ~]#dnf install httpd -y
[root@web1 ~]# echo web1 10 > /var/www/html/index.html
[root@web1 ~]# systemctl enable --now httpd


#web2上面,
[root@web2 ~]#dnf install httpd -y
[root@web2 ~]# echo web2 20 > /var/www/html/index.html
[root@web2 ~]# systemctl enable --now httpd

3、在lvs上面配置ipvsadm

bash 复制代码
#下载服务
[root@lvs ~]#yum install ipvsadm -y
#-s 调度算法 rr 轮询 -t 使用tcp协议 ,添加策略
[root@lvs ~]# ipvsadm -A -t 172.25.254.100:80 -s rr
[root@lvs ~]# ipvsadm -Ln
[root@lvs ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m
[root@lvs ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m
#查看策略
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.254.100:80 rr
  -> 192.168.0.10:80              Masq    1      0          0         
  -> 192.168.0.20:80              Masq    1      0          0  

#将其保存到配置文件中,使其可以当作服务启动
[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl enable --now ipvsadm.service 

ipvsadm 的详细用法将在后面介绍哦,现在先使用。

4、用nat ip 172.25.254.100 进行测试

以上就成功啦,实现简单的负载均衡,上面web服务写成不一样是为了实验结果明显,在企业中其内容一般都是一样的,这样就可以实现我们需要负载均衡的效果

相关推荐
椰椰椰耶22 分钟前
【Linux】常用的命令
linux·运维·服务器
xiaojiesec1 小时前
第145天:内网安全-Linux权限维持&Rootkit后门&Strace监控&Alias别名&Cron定时任务
linux·运维·安全
阿洵Rain3 小时前
【Linux】环境变量
android·linux·javascript
zealous_zzx4 小时前
深度解析Linux系统和Unix系统的基本概念及优缺点和原理
linux·unix
丢爸5 小时前
网络学习-eNSP配置NAT
linux·网络·学习
沐风ya5 小时前
NAT技术介绍+缺陷(内网穿透+工具),NAPT(介绍,替换过程,原理,NAT转换表)
linux·服务器·网络
天启代理ip6 小时前
HTTP隧道代理:互联网冲浪的隐形翅膀
服务器·网络·爬虫·网络协议·tcp/ip
别挡7 小时前
CentOS Stream 8中安装和使用 Docker
linux·docker·centos
人工智障调包侠7 小时前
Linux 目录介绍
linux·运维·服务器
愤怒的代码8 小时前
Centos使用阿里云镜像安装docker
linux·docker·centos