LVS-DR(Linux Virtual Server - Direct Routing)是一种高性能的负载均衡集群架构,通过直接路由技术将请求分发到后端真实服务器(Real Server),并允许响应数据直接返回客户端(不经过负载均衡器)。以下是其核心原理、配置要点和注意事项:
一、LVS-DR 工作原理
-
请求流程:
-
客户端发送请求到虚拟IP(VIP)。
-
负载均衡器(Director)通过IPVS(IP Virtual Server)修改请求的目标MAC地址,将请求转发给选中的Real Server。
-
Real Server 处理请求后,直接使用VIP作为源IP将响应返回给客户端(绕过Director)。
-
-
关键技术:
-
ARP抑制:Real Server需配置为不响应VIP的ARP请求,避免IP冲突。
-
VIP绑定 :VIP需配置在Real Server的
lo
接口(回环接口)上,仅用于响应数据包。
-
二、LVS-DR 配置步骤
1. 负载均衡器(Director)配置
# 添加VIP到网卡(如eth0)
ifconfig eth0:0 192.168.1.100 netmask 255.255.255.255 broadcast 192.168.1.100 up
# 启用IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# 使用ipvsadm配置规则
ipvsadm -A -t 192.168.1.100:80 -s rr # 创建TCP服务,使用轮询调度
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g # 添加Real Server,-g表示DR模式
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.3:80 -g
2. 真实服务器(Real Server)配置
# 在每台Real Server上配置VIP到lo接口
ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 broadcast 192.168.1.100 up
# 抑制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
三、LVS-DR 优缺点
优点
-
高性能:响应数据不经过Director,吞吐量高。
-
低延迟:Real Server直接响应客户端。
-
可扩展性强:支持大量Real Server。
缺点
-
网络限制:Director和Real Server必须在同一物理网络(不能跨路由)。
-
ARP问题:需严格配置ARP抑制,否则可能引发IP冲突。
四、常见问题与解决
-
Real Server无法响应请求:
-
检查VIP是否绑定到
lo
接口。 -
验证
arp_ignore
和arp_announce
参数配置是否正确。
-
-
客户端收到重复响应:
- 确保只有Director和Real Server绑定VIP,其他设备未占用该IP。
-
跨网段不可用:
- LVS-DR要求所有节点在同一二层网络,跨网段需改用NAT或TUN模式。
五、应用场景
-
高并发Web服务:如HTTP/HTTPS负载均衡。
-
视频流媒体:需要高吞吐量的场景。
-
数据库读负载均衡:适用于只读查询的分发。