本实验一共需要用到4台虚拟机,VMWare版本为7.0,如下所示:

 

 

用轮调算法配置集群LVS-DR_第1张图片

Real server 1:
eth0 RIP: 192.168.1.11/24
lo:0 VIP: 192.168.1.1/24
Real server 2:
      eht0 RIP: 192.168.1.12/24
      lo:0 VIP: 192.168.1.1/24
Director:
      eth0 DIP: 192.168.1.13/24
      eth0:0 VIP: 192.168.1.1/24
Web server:
      eth0: 192.168.1.14/24
注:RIP和VIP可以不在同一网络,但所有RIP必在同一网络,VIP可以用公网地址,RIP用私有地址
 
配置Real server 1:
保证有WEB服务
# yum install httpd 
制作一个简单的主页
# echo "This page is from Real server 1" > /var/www/html/index.html
注:在配置Real sever 2 时可写入不同内容,以增强实验效果,但在实际生产应用中,二者内容必须得保持一致
# service httpd start 
# chkconfig httpd on
 
关闭selinux
# setenforce 0
 
查看80端口是否开启
# netstat -tnlp
 
# ifconfig eth0 192.168.1.11/24      RIP 此处不需要网关
 
隐藏ARP广播
# vim /etc/sysctrl.conf  添加如下内容:
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
 
注:等号“=”前后必须有空格!!!
 
上述修改方法永久生效,下面给出一种临时生效的方法:
        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
 
查看是否修改成功
# sysctrl -p
若出现所添加的内空,则说明添加成功
 
添加VIP
# ifconfig lo:0 192.168.1.1 broadcast 192.168.1.1 netmask 255.255.255.255 up
查看
# ifconfig 
 
添加一个特殊路由,使所有访问VIP(192.168.1.1)请求都从lo:0发出
# route add -host 192.168.1.1 dev lo:0
查看
# route -n
显示Iface结果为lo而不是lo:0,这是正常现象
 
配置Real server 2:
过程和Real server 1相同!!!
这里不再赘述
 
配置Director:
 
添加DIP
# ifconfig eth0 192.168.1.13/25
 
添加VIP
# ifconfig eth0:0 192.168.1.1 broadcast 192.168.1.1 netmask 255.255.255.255 up
 
查看 
# ifconfig
 
# route add -host 192.168.1.1 dev eth0:0
查看
#route -n
 
开启路由功能
# vim /etc/sysctl.conf
修改net.ipv4.ip_forward的值为1,显示为:
net.ipv4.ip_forward = 1
 
接下来开始定义虚拟服务
之前,最好清空iptables,或直接关闭之
 
# yum install ipvsadm
 
清空ipvs信息
# ipvsadm -C
查看
# ipvsadm -L -n
 
添加新规则
# ipvsadm -A -t 192.168.1.1:80 -s rr
注:此处 -s 为指定算法,如果需要其它算法,可在些处修改
# ipvsadm -a -t 192.168.1.1:80 -r 192.168.1.11 -g -w 5
# ipvsadm -a -t 192.168.1.1:80 -r 192.168.1.12 -g -w 8
保存配置
# serviec ipvsd save
查看保存情况 
# ipvsadm -L -n
 
 
 
 
至此,可以客户端的浏览器中访问192.168.1.1
由于本实验采用的是cc(轮调算法),所以每刷新一次访问的页都不同,会在Real server 1和Real server 2两者的页面之间转换
 
配置Web server
 
# yum install httpd
# echo "This page is from nfs of the Web server!!!" > /var/www/html/index.html
# service httpd start
 
关闭selinux
# setenforce 0
 
# ifconfig eth0 192.168.1.14/24
 
启用nfs共享
# vim /etc/exports
添加
/var/www 192.168.1.11(ro)
/var/www 192.168.1.12(ro)
 
注:只允许两台Real server挂载
 
设置开机自动启动nfs
# chkconfig nfs on
 
至此,Web server 配置完毕
 
在Real server挂载nfs之前,它们最好先删去或重命名之前创建的/var/www/html/index.html文件
 
在两台Real server上分别执行如下命令挂载nfs
# mount 192.168.1.14:/var/www   /var/www
 
 
 
再次在客户端上访问192.168.1.14
发现出现的页面一直都是来自web server 的页面
实验成功!!!
 
注:如果想少开一台虚拟机,可以将Web server省去,在一台Real server上做好web服务,然后用nfs共享,让另一台Real server挂载,可减小物理机的开销!