LVS的DR模式html
(1)环境说明nginx
三台机器:vim
director(eth0192.168.71.100, vip eth0:0: 192.168.71.110)浏览器
real server1(eth0 rip: 192.168. 71.111, vip lo:0: 192.168.71.110)bash
real server2(eth0 rip: 192.168.71.166, vip lo:0: 192.168.71.110)服务器
三台机器及vip必须在一个网段测试
(2)编写脚本.net
Director 上执行server
# vim /usr/local/sbin/lvs_dr.shhtm
增长以下内容:
#! /bin/bash
# director 服务器上开启路由转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.71.110
rs1=192.168.71.111
rs2=192.168.71.166
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
#给eth0:0绑定一个vip地址 子网是255.255.255.255#
route add -host $vip dev ens33:2
#增长一条路由#
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
#-g是DR模式#
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
两台rs上也编写脚本 vim /usr/local/sbin/lvs_rs.sh//内容以下
#/bin/bash
vip=192.168.71.110
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#如下操做为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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
而后 director 上执行
# bash /usr/local/sbin/lvs_dr.sh
两台 rs 上执行
# bash /usr/local/sbin/lvs_dr_rs.sh
两台rs要把nginx启动
(3)测试
Windows 下浏览器测试访问 http://192.168.71.110
在打开一台虚拟机用crul 192.168.71.110 测试
查看LVS的执行过程
[root@master ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.71.110:80 wrr
-> 192.168.71.111:80 Route 1 0 1
-> 192.168.71.166:80 Route 1 0 4