目录
一、DR模式的概念
1、DR模式的工作原理
(1)客户端发送请求至调度器(VIP),请求报文源地址是CIP,目标地址为VIP;
(2)LVS调度器接收到请求,报文在PREROUTING链检查,确定目的IP是本机,于是将报文发送至INPUT链,ipvs内核模块确定请求的服务是配置的LVS集群服务,然后根据用户设定的均衡策略选择某台后端RS,并将目标MAC地址修改RIP的MAC地址。因为调度器和后端服务器RS在同个网段,因此直接二层互通,将请求发给选择的RS处理;
(3)因为报文目的mac是本机,且RS上有配置VIP,因此RS能接收该报文。后端服务处理完请求后,将响应直接发往客户端,此时源IP地址为VIP,目标IP为CIP。
2、DR模式的名词解释
(1)DR
调度器,lvs的前端设备
(2)RS
真正提供服务的后端服务器
(3)RIP
后端服务器的ip地址
(4)DIP
调度器和后端服务器通信的ip
(5)源IP
CIP(客户端的IP)
(6)目的ip
VIP(设置的统一入口),对外公布的ip,客户请求进来的ip
(7)源MAC地址
DS调度器的MAC地址
(8)目的MAC地址
RS真正服务器的MAC地址
二、部署DR模式
1、环境配置
负载调度器:ip地址 192.168.222.10
vip 虚拟地址 :192.168.222.50
web1地址 : 192.168.222.20
web 2地址:192.168.222.100
nfs服务器:192.168.222.30
2、配置nfs服务器
1、安装nfs服务
yum -y install nfs-utils rpcbind
2、开启服务
systemctl start rpcbind.service
systemctl start nfs.service
3、创建共享目录
mkdir /opt/abc
mkdir /opt/def
4、给共享目录设置权限
chmod 777 /opt/abc
chmod 777 /opt/def
5、编写共享策略
vim /etc/exports
/usr/share *(ro,sync)
/opt/abc 192.168.222.0/24(rw,sync)
/opt/def 192.168.222.0/24(rw,sync)
6、发布共享
exportfs -rv
2、配置web1服务
1、安装httpd服务,并开启
yum install httpd -y
systemctl start httpd
2、挂载共享目录
mount 192.168.222.30:/opt/abc /var/www/html
3、配置虚拟网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.222.50
NETMASK=255.255.255.255
NETWORK=127.0.0.0
systemctl restart network
4、添加路由
route add -host 192.168.222.50 dev lo:0
route -n
5、开机执行命令
vim /etc/rc.d/rc.local
/usr/sbin/route add -host 192.168.222.50 dev lo:0
chmod +x /etc/rc.d/rc.local
6、调整proc响应参数
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
2、配置web2
yum install httpd -y
systemctl start httpd
2、挂载共享目录
mount 192.168.222.30:/opt/def /var/www/html
3、配置虚拟网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.222.50
NETMASK=255.255.255.255
NETWORK=127.0.0.0
systemctl restart network
4、添加路由
route add -host 192.168.222.50 dev lo:0
route -n
5、开机执行命令
vim /etc/rc.d/rc.local
/usr/sbin/route add -host 192.168.222.50 dev lo:0
chmod +x /etc/rc.d/rc.local
6、调整proc响应参数
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
3、负载调度器
1、安装ipvsadm工具
yum install ipvsadm.x86_64 -y
2、配置虚拟ip地址
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
#删除UUID,dns与网关,注意子网
NAME=ens33:0
DEVICE=ens33:0
IPADDR=192.168.222.50
NETMASK=255.255.255.255
3、重启网卡
systemctl restart network
ifup ens33:0
4、调整proc参数
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
5、加载模块
modprobe ip_vs
cat /proc/net/ip_vs
6、配置分配策略,并启动服务
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
7、清空ipvsadm,并做策略
ipvsadm -C
ipvsadm -A -t 192.168.222.50:80 -s rr
ipvsadm -a -t 192.168.222.50:80 -r 192.168.222.20:80 -g
ipvsadm -a -t 192.168.222.50:80 -r 192.168.222.100:80 -g
8、保存配置
ipvsadm
ipvsadm -ln
ipvsadm-save >/etc/sysconfig/ipvsadm
6、测试效果