深入解析LVS命令参数及DR模式下的ARP抑制原理
深入解析LVS命令参数及DR模式下的ARP抑制原理
一、LVS简介
Linux Virtual Server (LVS) 是基于Linux内核的高性能负载均衡解决方案,支持NAT、DR(Direct Routing)和TUN(IP Tunneling)三种模式。其中,ipvsadm
是管理LVS配置的核心命令行工具。本文将详解 ipvsadm
的常用参数,并探讨DR模式下ARP抑制的必要性。
二、ipvsadm命令参数详解
1. 虚拟服务管理
-
添加虚拟服务
-A
:添加虚拟服务(VIP),-t
指定TCP协议,-s
指定调度算法(如轮询rr、加权轮询wrr)。
示例:ipvsadm -A -t 192.168.1.100:80 -s rr
-
修改/删除虚拟服务
-E
修改,-D
删除。
示例:ipvsadm -E -t 192.168.1.100:80 -s wrr # 修改调度算法 ipvsadm -D -t 192.168.1.100:80 # 删除虚拟服务
2. 真实服务器管理
-
添加真实服务器(RS)
-a
:添加RS,-r
指定RS地址,-g|i|m
指定模式(DR/NAT/TUN),-w
设置权重。
示例:ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g -w 1
-
修改/删除真实服务器
-e
修改,-d
删除。
示例:ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.2:80 -w 5 # 修改权重为5 ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.2:80 # 删除RS
3. 查看与清空配置
-
查看当前规则
-ln
以数字格式显示,--stats
显示统计信息。
示例:ipvsadm -ln # 查看所有规则 ipvsadm -ln --stats # 查看流量统计
-
清空所有配置
ipvsadm -C
4. 持久化配置
- 保存配置
ipvsadm-save > /etc/sysconfig/ipvsadm
- 恢复配置
ipvsadm-restore < /etc/sysconfig/ipvsadm
三、DR模式下的ARP抑制
1. 为什么需要ARP抑制?
在DR模式下,负载均衡器(Director)和真实服务器(RS)共享同一个VIP。客户端请求首先到达Director,但响应数据由RS直接返回客户端(不经过Director)。此时若RS的网卡响应了VIP的ARP请求,会导致以下问题:
- ARP冲突:客户端可能直接与RS通信,绕过负载均衡器。
- 流量混乱:多台RS同时响应ARP,导致MAC地址漂移。
2. 如何配置ARP抑制?
通过修改Linux内核参数,禁止RS响应VIP的ARP请求。
- 配置步骤:
a. 在RS上设置VIP到lo接口:
b. 修改ARP参数:ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up
参数解释: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
arp_ignore=1
:仅响应目标IP为本机接口的ARP请求(忽略lo接口的VIP)。arp_announce=2
:始终使用接口的本地IP作为ARP源地址(避免VIP暴露)。
四、完整DR模式配置示例
1. Director配置(负载均衡器)
# 添加虚拟服务
ipvsadm -A -t 192.168.1.100:80 -s rr
# 添加真实服务器
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.3:80 -g
2. 真实服务器配置
# 配置VIP到lo接口
ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up
# 启用ARP抑制
sysctl -w net.ipv4.conf.lo.arp_ignore=1
sysctl -w net.ipv4.conf.lo.arp_announce=2
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
五、总结
- ipvsadm命令:是LVS的核心管理工具,需熟练掌握虚拟服务和真实服务器的增删改查。
- DR模式ARP抑制:通过限制RS的ARP响应,确保流量经过负载均衡器,避免数据链路层混乱。
通过合理配置LVS,可构建高性能、高可用的负载均衡集群,而理解底层原理(如ARP抑制)是避免“坑”的关键。