LVS-NAT 模式负载均衡集群部署与配置指南

LVS(Linux Virtual Server)是基于 Linux 的负载均衡群集技术,NAT 模式通过地址转换实现内外网通信与负载分发,核心是 LVS 服务器充当网关,将外网请求转发至后端 Web 服务器。

一、核心概念

1. LVS 基础

本质:作用在四层的负载均衡器,不提供网页服务,仅通过算法为后端服务器分流减压。

核心价值:解决单台服务器性能瓶颈,实现高可用(HA)和负载均衡(LB)。

集群定义:3 台以上服务器对外表现为一个整体,提供单一访问入口(IP / 域名)。

2. NAT 模式原理

全称:Network Address Translation(网络地址转换)。

核心逻辑:LVS 服务器作为网关,通过 SNAT(源地址转换)将内网服务器 IP 映射为公网 IP,实现外网访问;通过 DNAT(目标地址转换)将外网请求转发至内网后端节点。

网络架构:LVS 需双网卡(外网网卡连 VMnet8,内网网卡连 VMnet1),后端服务器仅需内网 IP,网关指向 LVS 内网网卡。

二、环境准备

1. 硬件要求

1 台 Windows 宿主机(用于访问测试)。

1 台 LVS 服务器(双网卡:外网 ens33 + 内网 ens36)。

2 台 Web 服务器(安装 httpd,单网卡连 VMnet1)。

2. 网络配置规划

设备 网卡 网络模式 IP 地址 网关
LVS 服务器 ens33 VMnet8 192.168.10.133 192.168.10.2
LVS 服务器 ens36 VMnet1 192.168.253.128 192.168.253.2
Web01 服务器 ens33 VMnet1 192.168.253.129 192.168.253.128
Web02 服务器 ens33 VMnet1 192.168.253.130 192.168.253.128
Windows 宿主机 VMnet8 适配器 - 192.168.10.1 192.168.10.133

三、部署步骤

1. LVS 服务器配置

(1)虚拟机配置

LVS服务器,需要开启防火墙、其他两台web服务器关闭防火墙

查看自己LVS服务器的VMnet1的IP地址段是什么区间

添加一张网卡,将网络连接模式设置成自定义的VMnet1(仅主机模式):

(2)网卡配置

复制 ens33 配置文件生成 ens36:cp /etc/sysconfig/network-scripts/ifcfg-ens33 ifcfg-ens36

复制代码
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36

编辑 ifcfg-ens36:修改 NAME、DEVICE 为 ens36,配置内网 IP(192.168.253.128)及子网掩码和网关。

复制代码
####ens33网卡配置
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO="static"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=2756e2a9-f44e-457e-8865-b7a7ec201c99
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.10.133
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=8.8.8.8
DNS2=114.114.114.114
PREFIX=24


###ens36网卡配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO="static"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36    修改成网卡名字
DEVICE=ens36  修改成网卡名字
ONBOOT=yes
IPADDR=192.168.253.128 修改IP
NETMASK=255.255.255.0
GATEWAY=192.168.253.2  修改网关
DNS1=8.8.8.8
DNS2=114.114.114.114
PREFIX=24

重启网络:systemctl restart network,通过ip addr show ens36验证。

复制代码
systemctl restart network
# 查看是否生效
ip addr show ens36
(3)系统环境配置

开启防火墙并清空规则:systemctl start firewalldiptables -t nat -Fiptables -F

复制代码
#开启防火墙
systemctl start firewalld
#清除防火墙规则
iptables -t nat -F
iptables -F

开启路由转发:编辑/etc/sysctl.conf,添加net.ipv4.ip_forward = 1,执行sysctl -p生效。

复制代码
#配置SNAT转发规则
vim /etc/sysctl.conf
#开启路由转发的功能
net.ipv4.ip_forward = 1

#刷新生效
或 echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -p

配置 SNAT 规则:iptables -t nat -A POSTROUTING -s 192.168.253.0/24 -o ens33 -j SNAT --to-source 192.168.10.133

复制代码
#自定义路由转发规则,将所有192.168.253.0/24(内网网段)网段的流量全部映射192.168.10.133(外网IP)的地址
iptables -t nat -A POSTROUTING -s 192.168.253.0/24 -o ens33 -j SNAT --to-source 192.168.10.133
(4)LVS 服务配置

安装管理工具:yum -y install ipvsadm

初始化策略文件:ipvsadm-save > /etc/sysconfig/ipvsadm,启动服务:systemctl start ipvsadm.service

配置负载策略:

  1. 清空规则:ipvsadm -C

  2. 定义外网入口与轮询算法:ipvsadm -A -t 192.168.10.133:80 -s rr

  3. 添加后端节点:ipvsadm -a -t 192.168.10.133:80 -r 192.168.253.129:80 -m

    ipvsadm -a -t 192.168.10.133:80 -r 192.168.253.130:80 -m

  4. 保存策略:ipvsadm-save > /etc/sysconfig/ipvsadm

    ##安装ipvsadm 管理工具
    yum -y install ipvsadm

    ##启动服务前须保存负载分配策略+
    ipvsadm-save > /etc/sysconfig/ipvsadm
    或者 ipvsadm --save > /etc/sysconfig/ipvsadm

    systemctl start ipvsadm.service

    ##配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
    #清空规则
    ipvsadm -C
    #重新建立规则 (申明外网网卡是192.168.10.133,负载均衡模式是RR轮询)
    ipvsadm -A -t 192.168.10.133:80 -s rr
    #定义后端地址池(相当于nginx的upstream)
    ipvsadm -a -t 192.168.10.133:80 -r 192.168.253.129:80 -m
    ipvsadm -a -t 192.168.10.133:80 -r 192.168.253.130:80 -m
    #启用策略
    ipvsadm

    ipvsadm -ln #查看节点状态,Masq代表 NAT模式
    ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略

2. Web 服务器配置

(1)基础配置

内网2台web服务器环境准备:

2台服务器的网卡全部改成VMnet1 仅主机模式:

查看自己虚拟机VMnet1网卡的IP地址段是多少

然后修改自己web服务器的网卡,如: web1 192.168.253.129 web2 192.168.253.130,网卡配置文件

修改如下(web1):

第二台web2

(2)服务部署

搭建本地 YUM 仓库(因内网无法访问外网)。

安装并启动 httpd:yum install -y httpdsystemctl start httpd

自定义网页内容:Web01 编辑/var/www/html/index.html写入 "this is test01",Web02 写入 "this is test02"。

复制代码
#关闭防火墙:
systemctl disable firewalld --now

setenforce 0
####搭建本地yum仓库
略
搭建成功

#下载并开启httpd
yum install -y httpd
systemctl start httpd

#第一台web服务器(192.168.253.129)
vim /var/www/html/index.html

#第一台web服务器(192.168.253.129)

#第二台web服务器(192.168.253.130)

3. Windows 宿主机配置

打开 VMware Virtual Ethernet Adapter for VMnet8 属性,配置 IPv4:IP 为 192.168.10.1,子网掩码 255.255.255.0,网关 192.168.10.133。

四、验证方法

1. 连通性测试

Web 服务器 ping Windows 宿主机:ping 192.168.10.1,确保网络通畅。

LVS 服务器 curl 后端节点:curl http://192.168.253.129curl http://192.168.253.130,应显示对应网页内容。

2. 负载均衡验证

Windows 浏览器访问http://192.168.10.133,间隔 20 秒刷新,交替显示 "test01" 和 "test02"。

LVS 服务器查看流量状态:ipvsadm -ln,可见后端节点的连接数分布。

相关推荐
wanhengidc8 小时前
云手机的硬件依赖性如何?
运维·服务器·智能手机·云计算
piaoroumi8 小时前
UVC调试
linux·运维·前端
VekiSon8 小时前
Linux系统编程——标准IO
linux·运维·服务器
Evan芙8 小时前
DNS服务器类型,解析答案,正反解析域,资源记录定义总结
运维·服务器
wanhengidc8 小时前
巨椰 云手机办公便利性高
运维·服务器·安全·智能手机·云计算
Saniffer_SH9 小时前
【每日一题】PCIe答疑 - 接大量 GPU 时主板不认设备或无法启动和MMIO的可能关系?
运维·服务器·网络·人工智能·驱动开发·fpga开发·硬件工程
爱宇阳9 小时前
Linux 安全加固:禁用 IPv4 ICMP 重定向发送
linux·运维·安全
Saniffer_SH9 小时前
【每日一题】讲讲PCIe链路训练和枚举的前后关系
运维·服务器·网络·数据库·驱动开发·fpga开发·硬件工程
2401_861786189 小时前
linux修改ip地址(有详细步骤)kali
linux·运维·服务器
徐子元竟然被占了!!9 小时前
Linux-top
linux·运维·windows