一、实验环境及主机架构
1.1 实验环境
- 系统:RHEL9.3
- NAT网卡网段:192.168.56.0/24
- host-only网卡网段:172.25.254.0/24
1.2 主机架构
架构图如下:

主机配置清单如下:
- VServer
- NAT网卡
- VIP:192.168.56.150
- GW:192.168.56.2
- DNS:114.114.114.114
- host-only网卡:
- DIP:172.25.254.10
- NAT网卡
- RServer1
- host-only网卡:
- RIP:172.25.254.30
- GW:172.25.254.10
- host-only网卡:
- RServer2
- host-only网卡:
- RIP:172.25.254.20
- GW:172.25.254.10
- host-only网卡:
二、VS主机配置LVS
2.1 VS主机部署ipvsadm
安装ipvsadm
bash
[root@Vserver ~]# dnf search ipvsadm
[root@Vserver ~]# dnf install ipvsadm.x86_64 -y
2.2 开启Linux的内核路由功能
bash
[root@Vserver ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0
[root@Vserver ~]# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
[root@Vserver ~]# sysctl -p
net.ipv4.ip_forward = 1
2.3 配置LVS
bash
[root@Vserver ~]# ipvsadm -C
[root@Vserver ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@Vserver ~]# ipvsadm -A -t 192.168.56.150:80 -s wrr
[root@Vserver ~]# ipvsadm -a -t 192.168.56.150:80 -r 172.25.254.30 -m -w 2
[root@Vserver ~]# ipvsadm -a -t 192.168.56.150:80 -r 172.25.254.20 -m -w 1
[root@Vserver ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.56.150:80 wrr
-> 172.25.254.20:80 Masq 1 0 0
-> 172.25.254.30:80 Masq 2 0 0
2.4 测试
bash
[root@Vserver ~]# for i in {1..10};do curl 192.168.56.150;done
RS1-172.25.254.30
RS1-172.25.254.30
RS2-172.25.254.20
RS1-172.25.254.30
RS1-172.25.254.30
RS2-172.25.254.20
RS1-172.25.254.30
RS1-172.25.254.30
RS2-172.25.254.20
RS1-172.25.254.30
可见可以实现访问请求按照规则转发,没有问题
2.5 ipvs策略持久化
bash
[root@Vserver ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
[root@Vserver ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.56.150:80 -s wrr
-a -t 192.168.56.150:80 -r 172.25.254.20:80 -m -w 1
-a -t 192.168.56.150:80 -r 172.25.254.30:80 -m -w 2
[root@Vserver ~]# systemctl enable --now ipvsadm.service
Created symlink /etc/systemd/system/multi-user.target.wants/ipvsadm.service → /usr/lib/systemd/system/ipvsadm.service.
2.6 测试持久化
bash
[root@Vserver ~]# ipvsadm -C
[root@Vserver ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@Vserver ~]# ipvsadm-restore < /etc/sysconfig/ipvsadm
[root@Vserver ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.56.150:80 wrr
-> 172.25.254.20:80 Masq 1 0 0
-> 172.25.254.30:80 Masq 2 0 0
可见持久化没有问题,并且由于已经设置ipvsadm的开机自启动,所以如果主机重启也可以实现策略持久化
综上,我们已经实现了LVS中NAT模式的配置,实现了调度器按照权重轮询分发请求,完成了该实验。