LVSDR模式部署
问题:
路由器根据ARP表项,会将新来的请求报文转发给RealServer,导致Director的VIP失效
解决:
对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
DR模式的特点
1)Director Server和Real Server必须在同一个物理网络中;
2)Real Server可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对RIP进行直接访问;
3)Director Server作为群集的访问入口,但不作为网关使用;
4)所有的请求报文经由Real Server,但回复响应报文不能经过Director Server;
5)Real Server的网关不允许指向Director Server IP,即Real Server发送的数据包不允许经过Director Server;
6)Real Server上的lo接口配置VIP的IP地址。
一 实验环境:
二 . 实验架构图
三. 实验操作内容
DR服务器:192.168.47.100
Web服务器1:192.168.42.102
Web服务器2:192.168.47.103
VIP服务器:192.168.47.200
nfs服务器:192.168.47.104
1.nfs共享服务器配置 192.168.47.
先共享服务初始化操作
vim /etc/selinux/confing
查看nfs文件共享需要查看是否安装了 rpcbind,nfs-utile
rpm -q rpcbind nfs-utils 如果没安装使用yum install安装
开始创建共享目录
cd opt [root@localhost opt]# mkdir yhy1 yhy2 [root@localhost opt]# echo "yhy1" > yhy1/test.html [root@localhost opt]# echo "yhy2" > yhy2/test.html #创建两个目录并输入内容进去 [root@localhost opt]# ls yhy1 test.html [root@localhost opt]# ls yhy2 test.html
添加共享策略
vim /etc/exports /opt/yhy1 192.168.47.0/24(rw,sync,no_root_squash) /opt/yhy2 192.168.47.0/24(rw,sync,no_root_squash) systemctl enable --now rpcbind nfs #从左往右一次启动 showmount -e #查看是否共享完成
去节点服务器刷新共享nfs 7-2 7-3
2. 配置节点服务器7-2,7-3
7-2 7-3安装nginx前面有安装过程
cd /etc/yum.repos.d/ vim nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true yum -y install nginx
去7-2设置vip网卡
cd /etc/sysconfig/network-scripts/ vim ifcfg-lo:0 DEVICE=lo:0 ONBOOT=yes IPADDR=192.168.47.200 NETMASK=255.255.255.255 ifup lo:0 #重启网卡
ifconfig查看
7-3做以上同样的操作
7-2添加路由信息
route add -host 192.168.47.200 dev lo:0 #添加路由信息 route -n #查看
7-3同样操作添加路由信息
7-2开机自动添加添加路由信息
cd /etc/rc.d vim rc.local [root@localhost rc.d]# which route /usr/sbin/route /usr/sbin/route add -host 192.168.47.200 dev lo:0 #添加信息
7-3作上述同样操作
7-2 7-3 需要给rc.d文件权限
7-2,7-3添加内核参数
vim /etc/sysctl.conf net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2
sysctl -p #加载
7-1,7-2做永久挂载操作
vim /etc/fstab 如果不确定挂载位置可以查看:cat /etc/nginx/conf.d/default.conf 192.168.47.104:/opt/yhy2 /usr/share/nginx/html nfs defaults,_netdev 0 0
mount -a #刷新挂载 去挂载目录下查看
web节点服务器准备好了 上面
3 . 配置负载调度器
#关闭防火墙和selinux systemctl stop firewalld setenforce 0 #安装ipvsadm yum install -y ipvsadm
#先保存一下路径 ipvsadm-save > /etc/sysconfig/ipvsadm #开启ipvsadm systemctl start ipvsadm.service systemctl enable ipvsadm.service 加载模块 modprobe ip_vs cat /proc/net/ip_vs ifconfig
配置虚拟IP地址
cd /etc/sysconfig/network-scripts cp ifcfg-ens33 ifcfg-ens33:0 #若是隧道模式,复制为ifcfg-tun10 vim ifcfg-ens33:0 DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.122.188 NETMASK=255.255.255.255 ifup ens33:0 #开启网卡 [root@director network-scripts]# ifconfig ens33:0 ens33:0: flags=4163 mtu 1500 inet 192.168.47.188 netmask 255.255.255.255 broadcast 192.168.47.188 ether 00:0c:29:59:be:be txqueuelen 1000 (Ethernet)
🍔
调整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
配置负载均衡分配策略
先开启两个nginx ,web服务 systemctl enable --now nginx ipvsadm -ln ipvsadm -C ipvsadm -A -t 192.168.47.200:80 -s rr ipvsadm -a -t 192.168.47.200:80 -r 192.168.47.102:80 -g ipvsadm -a -t 192.168.47.200:80 -r 192.168.47.103:80 -g ipvsadm ipvsadm -ln
编写nginx配置文件
cd /etc/nginx/ vim nginx.conf systemctl restart nginx
4.去网页测试
192.168.47.200/test.
🍟
四.总结 LVS-DR 模式配置步骤:
-
1)配置NFS共享存储
-
2)节点服务器安装Web服务,在 lo:0按口配置VIP,修改内核参数 arp ignore=1 arp announce=2,添加路由 route add -host dev lo:0
-
3)调度服务器在ensXX:0接口配置vI,修改内核参数关闭IP路由转发功能和重定向功能―ip forward=0 send redirects=0
-
4)调度服务器安装 ipvsadm 工具,配置虚拟服务器和真实节点服务器相关配置(-g选择DR模式)
-
5)客户端测试
-
注意项:如果客户端与调度服务器、节点服务器不在同一个网段,调度服务器、节点服务器的默认网关要指向网关路由器的IP地址