一、实验环境规划

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 虚拟机网卡环境要求

  1. VS 调度器:配置双网卡
    • eth1:NAT 模式网卡,配置外网 VIP,对接客户端网络
    • eth0:仅主机(host-only)模式网卡,对接后端 RS 内网网段
  2. RS1、RS2 真实服务器:单网卡,仅配置仅主机(host-only)模式,无外网网卡,不连通外网
  3. 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 模式必须开启内核路由转发,否则无法完成跨网段报文转发。

  1. 先查看当前内核转发状态
sysctl -a | grep ip_forward

默认输出:net.ipv4.ip_forward = 0(关闭状态)

  1. 永久开启内核转发,写入系统配置文件
# 将转发参数写入永久配置
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 模式完整实验部署完成。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐