LVS-DR(Direct Routing)模式是一种高性能的负载均衡模式,其中后端RS(Real Server)的配置非常关键。以下是详细的配置步骤:
在每个RS上执行:
# 添加VIP到lo接口
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up
# 或者使用ip命令(推荐)
ip addr add $VIP/32 dev lo label lo:0
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
为了使这些设置永久生效,可以添加到/etc/sysctl.conf
:
cat >> /etc/sysctl.conf <<EOF
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
EOF
# 应用配置
sysctl -p
在某些情况下,可能需要添加路由:
route add -host $VIP dev lo:0
# 检查VIP是否配置正确
ip addr show lo:0
# 检查ARP设置
sysctl -a | grep arp_ignore
sysctl -a | grep arp_announce
确保后端服务监听在VIP上或0.0.0.0上。例如对于web服务:
# 检查监听
netstat -tulnp | grep 80
/etc/rc.local
)或网络配置文件中以下是一个完整的配置脚本示例:
#!/bin/bash
VIP=192.168.1.100
# 配置VIP
ip addr add $VIP/32 dev lo label lo:0
# 配置ARP
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
# 持久化配置
cat >> /etc/sysctl.conf <<EOF
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
EOF
# 应用sysctl配置
sysctl -p
echo "LVS-DR RS configuration completed."
通过以上步骤,您的RS就可以正确参与到LVS-DR模式的负载均衡集群中了。