LVS-NAT负载均衡实战部署指南
一、实验环境规划
1.1 拓扑结构图

1.2 主机信息详细规划表
| 主机角色 | 主机名 | 内网 IP (仅主机网卡) | 外网 IP (NAT 网卡 / VIP) | 网关 | 业务角色 |
|---|---|---|---|---|---|
| 调度器 VS | VS | 192.168.0.50 | 172.25.254.100 | 外网网关172.25.254.2,DNS8.8.8.8 |
LVS 调度器、流量转发网关 |
| 真实服务器 RS1 | RS1 | 192.168.0.10 | 无外网 IP | 网关192.168.0.50(VS 内网 IP) |
后端 Web 业务节点 |
| 真实服务器 RS2 | RS2 | 192.168.0.20 | 无外网 IP | 网关192.168.0.50(VS 内网 IP) |
后端 Web 业务节点 |
| 测试客户端 Client | client | 172.25.254.99 | - | 网关172.25.254.100(VS 的 VIP) |
负载均衡访问测试机 |
1.3 虚拟机网卡环境要求
- VS 调度器:配置双网卡
- eth1:NAT 模式网卡,配置外网 VIP,对接客户端网络
- eth0:仅主机(host-only)模式网卡,对接后端 RS 内网网段
- RS1、RS2 真实服务器:单网卡,仅配置仅主机(host-only)模式,无外网网卡,不连通外网
- Client 测试机:单网卡,NAT 模式网卡,与 VS 外网网段互通
二、各节点网卡 IP 配置
RHEL9 默认废弃network.service,全程使用nmconnection配置文件管理静态 IP,所有配置修改完成后重启网络生效。
2.1 VS 调度器双网卡 IP 配置
2.1.1 内网仅主机网卡 eth0 配置
配置文件路径:/etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
method=manual
address1=192.168.0.50/24
2.1.2 外网 NAT 网卡 eth1 配置
配置文件路径:/etc/NetworkManager/system-connections/eth1.nmconnection
[connection]
id=eth1
type=ethernet
interface-name=eth1
[ipv4]
method=manual
address1=172.25.254.100/24
gateway=172.25.254.2
dns=8.8.8.8
2.2 RS1 真实服务器网卡配置
单仅主机网卡,网关强制指向 VS 内网 IP 192.168.0.50配置文件路径:/etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
method=manual
address1=192.168.0.10/24
gateway=192.168.0.50
2.3 RS2 真实服务器网卡配置
单仅主机网卡,网关强制指向 VS 内网 IP 192.168.0.50配置文件路径:/etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
method=manual
address1=192.168.0.20/24
gateway=192.168.0.50
2.4 Client 测试机 IP 配置
NAT 网段静态 IP,网关指向 VS 对外 VIP配置文件路径:/etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
method=manual
address1=172.25.254.99/24
gateway=172.25.254.100
2.5 IP 配置生效命令
所有节点修改完配置文件后,执行以下命令重载网络配置:
# 重载网络连接,使IP配置生效
nmcli connection reload
nmcli connection up eth0
# VS额外重载外网网卡
nmcli connection up eth1
三、VS 调度器内核转发与 LVS 策略配置
3.1 开启 Linux 内核 IP 转发
LVS-NAT 模式必须开启内核路由转发,否则无法完成跨网段报文转发。
- 先查看当前内核转发状态
sysctl -a | grep ip_forward
默认输出:net.ipv4.ip_forward = 0(关闭状态)
- 永久开启内核转发,写入系统配置文件
# 将转发参数写入永久配置
echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
# 重载sysctl配置,立即生效
sysctl -p
重载后验证:
sysctl net.ipv4.ip_forward
# 输出 net.ipv4.ip_forward = 1 即为配置成功
3.2 ipvsadm 负载均衡策略配置
ipvsadm是 LVS 内核 IPVS 模块的用户态管理工具,本次配置NAT 模式(-m 参数)、rr 轮询调度算法。
3.2.1 安装 ipvsadm 工具
RHEL9 官方源内置软件,直接 yum 安装:
dnf install ipvsadm -y
3.2.2 完整策略配置命令
# 1、新增虚拟服务器VS:VIP:80端口,调度算法rr轮询
ipvsadm -A -t 172.25.254.100:80 -s rr
# 2、添加后端RS1节点,-m代表NAT转发模式,权重w=1
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m -w 1
# 3、添加后端RS2节点,NAT模式,权重w=1
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m -w 1
3.2.3 查看已配置的 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
!!!关键说明:
Masq标识代表当前为NAT 地址转换模式;无需额外配置 iptables NAT 表 POSTROUTING 链,LVS 内核模块自动完成双向报文地址转换。
四、后端 RS 节点 Web 服务部署
RS1、RS2 均部署 httpd 网页服务,编写差异化首页内容,用于测试负载均衡轮询效果。
4.1 RS1 节点服务配置
# 安装并开机自启httpd服务,立即启动
dnf install httpd -y
systemctl enable --now httpd
# 编写自定义首页,标识当前服务器节点
echo 192.168.0.10-RS1 > /var/www/html/index.html
4.2 RS2 节点服务配置
# 安装并开机自启httpd服务,立即启动
dnf install httpd -y
systemctl enable --now httpd
# 编写差异化首页,区分RS1节点
echo 192.168.0.20-RS2 > /var/www/html/index.html
五、最终负载均衡功能测试
切换到Client 测试机,循环访问 VS 的 VIP 地址,验证轮询负载均衡效果。
5.1 循环访问测试命令
for i in {1..10};do curl 172.25.254.100;done
5.2 成功测试结果
请求按照rr轮询算法,均匀交替分发到 RS1、RS2 两台后端服务器,输出如下:
192.168.0.20-RS2
192.168.0.10-RS1
192.168.0.20-RS2
192.168.0.10-RS1
192.168.0.20-RS2
192.168.0.10-RS1
192.168.0.20-RS2
192.168.0.10-RS1
192.168.0.20-RS2
192.168.0.10-RS1
至此,RHEL9.3 LVS-NAT 模式完整实验部署完成。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)