ipvsadm 参数

添加虚拟服务器

1
ipvsadm -A [-t|u|f] [vip_addr:port] [-s:指定算法]
  • -A:添加
  • -t:TCP 协议
  • -u:UDP 协议
  • -f:防火墙标记
  • -D:删除虚拟服务器记录
  • -E:修改虚拟服务器记录
  • -C:清空所有记录
  • -L:查看

添加后端 RealServer

1
ipvsadm -a [-t|u|f] [vip_addr:port] [-r ip_addr] [-g|i|m] [-w 指定权重]
  • -a:添加
  • -t:TCP 协议
  • -u:UDP 协议
  • -f:防火墙标记
  • -r:指定后端 realserver 的 IP
  • -g:DR 模式
  • -i:TUN 模式
  • -m:NAT 模式
  • -w:指定权重
  • -d:删除 realserver 记录
  • -e:修改 realserver 记录
  • -l:查看

通用命令

1
2
ipvsadm -ln             # 查看规则
service ipvsadm save # 保存规则

负载均衡器端配置

安装 LVS

1
2
[root@lb01 ~]# yum -y install ipvsadm
[root@lb01 ~]# ipvsadm

添加绑定 VIP

1
[root@lb01 ~]# ip addr add 192.168.0.89/24 dev eth0 label eth0:1

配置 LVS-DR 模式

1
2
3
4
5
6
# 创建一个 DR,并指定调度算法采用 rr
[root@lb01 ~]# ipvsadm -A -t 192.168.0.89:80 -s rr

# 添加 RS
[root@lb01 ~]# ipvsadm -a -t 192.168.0.89:80 -r 192.168.0.93 -g
[root@lb01 ~]# ipvsadm -a -t 192.168.0.89:80 -r 192.168.0.94 -g

Real-Server 端配置

配置测试后端 realserver

1
2
3
4
5
6
7
# 测试 realserver-1 网站是否正常
[root@realserver-1 ~]# curl 192.168.0.93
192.168.0.93

# 测试 realserver-2 网站是否正常
[root@realserver-2 ~]# curl 192.168.0.94
192.168.0.94

绑定 VIP 到 lo 网卡

1
2
# 由于 DR 模式需要 realserver 也有 VIP
[root@realserver-1 ~]# ip addr add 192.168.0.89/32 dev lo label lo:1

抑制 ARP

1
2
3
4
[root@realserver-1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@realserver-1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@realserver-1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@realserver-1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

客户端测试

1
2
3
4
[root@test ~]# curl 192.168.0.89
192.168.0.93
[root@test ~]# curl 192.168.0.89
192.168.0.94

参考资料