用户的请求被调度器动态地分配到真实服务器上,真实服务器响应请求把结果直接返回给用户。不过,在这种模式下不会封装IP,而是将数据帧的MAC地址改为真实服务器的MAC地址。
模拟规则 | 主机名 | IP | VIP |
---|---|---|---|
调度器 | dir | 192.168.200.130 | 192.168.200.110 |
真实服务器1 | rs1 | 192.168.200.131 | 192.168.200.110 |
真实服务器2 | rs2 | 192.168.200.132 | 192.162.200.110 |
1.在dir上建立脚本文件lvs_dr.sh
# vim /usr/local/sbin/lvs_dr.sh
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.200.110
rs1=192.168.200.131
rs2=192.168.200.132
#注意这里的网卡名字
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
给予脚本文件执行权限
# chmod +x /usr/local/sbin/lvs_dr.sh
运行脚本
# bash /usr/local/sbin/lvs_dr.sh
2.在两个rs服务器上建立脚本lvs_nat.sh
# vim /usr/local/sbin/lvs_nat.sh //rs1、rs2均执行
#/bin/bash
vip=192.168.200.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
两个服务器脚本相同
给予执行权限
# chmod +x /usr/local/sbin/lvs_nat.sh
执行脚本
#bash /usr/local/sbin/lvs_nat.sh
3.安装nginx ,更改默认页面
# echo "rs1" > /usr/share/nginx/html/index.html //rs1上执行
# echo "rs2" > /usr/local/nginx/html/index.html //rs2上执行
4.浏览器访问VIP
如果出现以下问题
SIOCADDRT: File exists
重启网卡