LVS-DR模式部署实战指南
·
一、实验环境规划
1.1 拓扑结构图
本次 LVS-DR 模式完整拓扑如下:

1.2 主机信息详细规划表
| 主机角色 | 主机名 | 物理网卡 IP | VIP / 特殊配置 | 网关 | 业务角色 |
|---|---|---|---|---|---|
| 客户端 | client | 172.25.254.99/24 | - | 172.25.254.100 | 测试访问节点 |
| 路由器 | router |
eth0:172.25.254.100/24 eth1:192.168.0.100/24 |
- | 外网网关 172.25.254.2 | 跨网段路由转发 |
| LVS 调度器 | lvs | 192.168.0.50/24 | lo:192.168.0.200/32(VIP) | 192.168.0.100 | 负载均衡调度器 |
| 真实服务器 RS1 | RS1 | 192.168.0.10/24 | lo:192.168.0.200/32(VIP) | 192.168.0.100 | 后端 Web 业务节点 |
| 真实服务器 RS2 | RS2 | 192.168.0.20/24 | lo:192.168.0.200/32(VIP) | 192.168.0.100 | 后端 Web 业务节点 |
二、各节点 IP 配置
所有节点使用 RHEL9 默认的 NetworkManager 管理网络配置,修改配置文件后重载生效。
2.1 Client 客户端配置
NAT 网卡配置,网关指向路由器外网 IP:
# /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
address1=172.25.254.99/24,172.25.254.100
method=manual
2.2 Router 路由器双网卡配置
外网 NAT 网卡 eth0:
# /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
method=manual
address1=172.25.254.100/24,172.25.254.2
dns=8.8.8.8;
内网仅主机网卡 eth1:
# /etc/NetworkManager/system-connections/eth1.nmconnection
[connection]
id=eth1
type=ethernet
interface-name=eth1
[ipv4]
method=manual
address1=192.168.0.100/24
2.3 LVS 调度器配置
仅主机网卡 eth0:
# /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
method=manual
address1=192.168.0.50/24,192.168.0.100
回环网卡 lo(配置 VIP):
# /etc/NetworkManager/system-connections/lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo
[ipv4]
method=manual
address1=127.0.0.1/8
address2=192.168.0.200/32
2.4 RS1/RS2 真实服务器配置(RS1 示例,RS2 仅 IP 不同)
仅主机网卡 eth0(RS1 示例):
# /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
method=manual
address1=192.168.0.10/24,192.168.0.100
回环网卡 lo(配置 VIP,RS1/RS2 配置相同):
# /etc/NetworkManager/system-connections/lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo
[ipv4]
method=manual
address1=127.0.0.1/8
address2=192.168.0.200/32
2.5 所有节点 IP 配置生效命令
nmcli connection reload
nmcli connection up eth0
# 路由器额外重载外网网卡
nmcli connection up eth1
三、Router 路由器内核转发与 NAT 配置
路由器需要开启内核路由转发,并配置双向 SNAT,实现内外网网段互通。
3.1 开启内核 IP 转发
# 查看当前转发状态
sysctl -a | grep ipv4.ip_forward
# 默认输出 net.ipv4.ip_forward = 0
# 永久开启转发
echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
sysctl -p
# 输出 net.ipv4.ip_forward = 1 即为成功
3.2 配置 iptables SNAT 策略
# 1. 内网网段访问外网时,源IP转换为路由器外网IP
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.100
# 2. 外网访问内网时,源IP转换为路由器内网IP(确保回包正常)
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.0.100
# 查看配置
iptables -t nat -L -n
四、RS1/RS2 节点 Web 服务与 ARP 抑制配置
4.1 部署 httpd 服务(区分 RS1/RS2 节点)
RS1 配置:
dnf install httpd -y
systemctl enable --now httpd
echo 192.168.0.10-RS1 > /var/www/html/index.html
# 本地验证服务
curl localhost
RS2 配置:
dnf install httpd -y
systemctl enable --now httpd
echo 192.168.0.20-RS2 > /var/www/html/index.html
# 本地验证服务
curl localhost
4.2 关键配置:RS 节点 ARP 抑制
DR 模式中,VS 和 RS 同时配置 VIP,若不做 ARP 抑制,会导致 ARP 广播冲突,客户端无法正确将请求发送到 VS。
配置永久 ARP 抑制(写入 sysctl.conf):
# RS1执行
echo net.ipv4.conf.all.arp_ignore = 1 >> /etc/sysctl.conf
echo net.ipv4.conf.lo.arp_ignore = 1 >> /etc/sysctl.conf
echo net.ipv4.conf.all.arp_announce = 2 >> /etc/sysctl.conf
echo net.ipv4.conf.lo.arp_announce = 2 >> /etc/sysctl.conf
# RS2执行相同配置
echo net.ipv4.conf.all.arp_ignore = 1 >> /etc/sysctl.conf
echo net.ipv4.conf.lo.arp_ignore = 1 >> /etc/sysctl.conf
echo net.ipv4.conf.all.arp_announce = 2 >> /etc/sysctl.conf
echo net.ipv4.conf.lo.arp_announce = 2 >> /etc/sysctl.conf
# 重载配置
sysctl -p
参数解析:
| 参数 | 配置值 | 作用 |
|---|---|---|
arp_ignore |
1 | 仅当 ARP 请求的目标 IP 是接收网卡的本地 IP 时,才响应 ARP 请求 |
arp_announce |
2 | 发送 ARP 请求时,优先使用与目标 IP 匹配的网卡 IP 作为源地址 |
!!!通俗理解:配置后,RS 节点不会响应任何针对 VIP 的 ARP 请求,只有 VS 会响应,确保所有客户端请求先抵达 VS 调度器。
临时生效方法(可选):
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
五、LVS 调度器 DR 模式策略配置
5.1 安装 ipvsadm 工具
dnf install ipvsadm -y
5.2 配置 DR 模式转发规则
# 1. 新增虚拟服务器VIP:80,调度算法为rr轮询
ipvsadm -A -t 192.168.0.200:80 -s rr
# 2. 添加RS1节点,-g表示DR模式(直接路由)
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g
# 3. 添加RS2节点,DR模式
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g
# 查看已配置规则
ipvsadm -Ln
5.3 配置成功输出
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.200:80 rr
-> 192.168.0.10:80 Route 1 0 0
-> 192.168.0.20:80 Route 1 0 0
!!!Route标识代表当前为 DR 直接路由模式,报文仅修改二层 MAC 地址转发,三层 IP 不变。
六、最终负载均衡功能测试
切换到 Client 客户端,循环访问 VIP 地址,验证轮询效果:
for i in {1..10};do curl 192.168.0.200;done
测试结果
请求按 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-DR 模式完整实验部署完成。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)