LVS-DR模式
#配置LVS-DR模式
1、实验环境准备
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8e49a724d37b5c60ca9b581f49a1d763.png)
安装nfs服务
[root@nfs ~]# yum -y install nfs-utils rpcbind
创建web共享目录
[root@nfs ~]# mkdir /opt/web1 /opt/web2
设置web网页
[root@nfs ~]# echo "<h1>This is web1<h1>" > /opt/web1/index.html
[root@nfs ~]# echo "<h1>This is web2<h1>" > /opt/web2/index.html
设置nfs共享目录权限
[root@nfs ~]# vim /etc/exports
增加以下内容:
/opt/web1 20.0.0.30(ro)
/opt/web2 20.0.0.40(ro)
开启nfs服务器和rpcbind并设置开机自启动
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl enable nfs
[root@nfs ~]# systemctl start rpcbind
[root@nfs ~]# systemctl enable rpcbind
查看访问权限
[root@nfs ~]# showmount -e
Export list for nfs:
/opt/web2 20.0.0.40
/opt/web1 20.0.0.30
3、设置web1
安装httpd服务器
[root@web1 ~]# yum -y install httpd
挂载nfs共享目录
[root@web1 ~]# mount 20.0.0.20:/opt/web1 /var/www/html/
开启httpd服务
[root@web1 ~]# systemctl start httpd.service
设置配置DR的脚本
[root@web1 ~]# vim web1.sh
#!/bin/bash
#web1
ifconfig lo:0 20.0.0.100 broadcast 20.0.0.100 netmask 255.255.255.255 up
route add -host 20.0.0.100 dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p &> /dev/null
执行web1.sh
[root@web1 ~]# sh web1.sh
查看ip地址
[root@web1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 20.0.0.30 netmask 255.255.255.0 broadcast 20.0.0.255
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 20.0.0.100 netmask 255.255.255.255
loop txqueuelen 1 (Local Loopback)
4、设置web2
安装httpd服务器
[root@web1 ~]# yum -y install httpd
挂载nfs共享目录
[root@web1 ~]# mount 20.0.0.20:/opt/web2 /var/www/html/
开启httpd服务
[root@web1 ~]# systemctl start httpd.service
设置配置DR的脚本
[root@web1 ~]# vim web2.sh
#!/bin/bash
#web1
ifconfig lo:0 20.0.0.100 broadcast 20.0.0.100 netmask 255.255.255.255 up
route add -host 20.0.0.100 dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p &> /dev/null
执行web1.sh
[root@web1 ~]# sh web2.sh
查看ip地址
[root@web1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 20.0.0.40 netmask 255.255.255.0 broadcast 20.0.0.255
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 20.0.0.100 netmask 255.255.255.255
loop txqueuelen 1 (Local Loopback)
5、设置LVS
加载ip_vs模块
[root@lvs ~]# modprobe ip_vs
安装管理软件ipvsadm
[root@lvs ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm
编辑调度服务器脚本
[root@lvs ~]# vim lvs.sh
#!/bin/bash
ifconfig ens33:0 20.0.0.100 broadcast 20.0.0.100 netmask 255.255.255.255 up #添加虚拟地址的虚接口
route add -host 20.0.0.100 dev ens33:0 #给ens33:0添加路由
ipvsadm -C #清除内核虚拟服务器表中的所有记录
ipvsadm -A -t 20.0.0.100:80 -s rr #创建虚拟服务器
ipvsadm -a -t 20.0.0.100:80 -r 20.0.0.30:80 -g #添加服务器节点
ipvsadm -a -t 192.168.100.100:80 -r 20.0.0.40:80 -g #添加服务器节点
ipvsadm -Ln #查看节点状态,加个"-n"将以数字形式显示地址、端口信息
执行脚本
[root@lvs ~]# sh lvs.sh
查看ip地址
[root@lvs ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 20.0.0.10 netmask 255.255.255.0 broadcast 20.0.0.255
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 20.0.0.100 netmask 255.255.255.255
loop txqueuelen 1 (Local Loopback)
客户机测试