Open asu126 opened 6 years ago
codeclub LVS DR 模式验证
术语:
LVS相关术语
1). DS:Director Server。指的是前端负载均衡器节点。
2). RS:Real Server。后端真实的工作服务器。
3). VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
4). DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
5). RIP:Real Server IP,后端服务器的IP地址。
6). CIP:Client IP,访问客户端的IP地址。
0. 基本情况介绍:
VIP:10.140.8.225
DS: 10.140.8.31
RS: 10.140.8.31, 10.140.8.32
1. DS虚拟vip 添加
ifconfig p1p1:0 down
ifconfig p1p1:0 10.140.8.225 broadcast 10.140.8.225 netmask 255.255.255.255 up
route add -host 10.140.8.225 dev p1p1:0
2. DS开启内核转发功能
在lvs上开启内核转发功能。
echo 'net.ipv4.ip_forward=1' >>/etc/sysctl.conf
sysctl -p #查看配置
3. DS 配置LVS服务
ipvsadm -C ## --clear
3.1 LVS 采用加权轮训方式
# -A是添加一条虚拟服务器记录,代理转发所有去往该IP TCP的报文,-s指定算法wrr为加权轮询算法,-p会话保持时间(默认值是300s)
# ipvsadm -A -t 10.140.8.225 -s wrr -p 300
ipvsadm -A -t 10.140.8.225:3000 -s wrr -p 300
配置LVS RIP规则
ipvsadm -a -t 10.140.8.225:3000 -r 10.140.8.31:3000 -g -w 1
ipvsadm -a -t 10.140.8.225:3000 -r 10.140.8.32:3000 -g -w 1
3.2 LVS 采用轮训方式
ipvsadm -A -t 10.140.8.225:3000 -s rr
ipvsadm -a -t 10.140.8.225:3000 -r 10.140.8.31:3000 -g
ipvsadm -a -t 10.140.8.225:3000 -r 10.140.8.32:3000 -g
ipvsadm -E -t 10.140.8.225:3000 -s rr -p 10
ipvsadm -D -t 10.140.8.225:80
ipvsadm -A -t 10.140.8.225:80 -s rr
ipvsadm -a -t 10.140.8.225:80 -r 10.140.8.31:80 -g
ipvsadm -a -t 10.140.8.225:80 -r 10.140.8.32:80 -g
4. 在RS(真实服务器)上配置VIP
在两台真实服务器上都配置上VIP,即10.140.8.225地址。
ifconfig lo:0 10.140.8.225 netmask 255.255.255.255
在真实服务器上关闭ARP响应
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
5. 一台服务器既做DR,又做RS
iptables -t mangle -I PREROUTING -d $VIP -p tcp -m tcp --dport $VPORT -m mac ! --mac-source $MAC_Director2 -j MARK
iptables -t mangle -I PREROUTING -d $VIP -p tcp -m tcp --dport $VPORT -m mac ! --mac-source $MAC_Director1 -j MARK
iptables -t mangle -I PREROUTING -d $VIP -p tcp -m tcp --dport $VPORT -m mac ! --mac-source $MAC_Director2 -j MARK --set-mark 0x3
iptables -t mangle -I PREROUTING -d $VIP -p tcp -m tcp --dport $VPORT -m mac ! --mac-source $MAC_Director1 -j MARK --set-mark 0x4
$VIP 为VIP地址
$VPORT 为服务端口
$MAC_Director2 是备机的MAC (keepalived 之间互相监听的那块网卡)
iptables -t mangle -I PREROUTING -d $VIP -p tcp -m tcp --dport $VPORT -m mac ! --mac-source $MAC_Director2 -j MARK
iptables -t mangle -I PREROUTING -d $VIP -p tcp -m tcp --dport $VPORT -m mac ! --mac-source $MAC_Director1 -j MARK
31
iptables -t mangle -I PREROUTING -d 10.140.8.225 -p tcp -m tcp --dport 3000 -m mac ! --mac-source f0:98:38:6e:a3:29 -j MARK --set-mark 0x3
32
iptables -t mangle -I PREROUTING -d 10.140.8.225 -p tcp -m tcp --dport 3000 -m mac ! --mac-source f0:98:38:6e:a3:3d -j MARK --set-mark 0x4
http://www.178linux.com/special/n27linuxzy/page/3