LVS负载均衡群集之DR模式

一、概述

  • DR模式
  • 直接路由(Direct Routing)
  • 简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络
  • 负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道

在这里插入图片描述

  • 即公网访问时通过路由访问调度器,调度器将请求分配给下面的节点,数据回应时不通过调度器直接回应给公网客户端

二、LVS-DR部署

2.1、实验环境

  • 在LVS-DR中,每台节点服务器和调度器都需要配置VIP地址(虚拟地址)

  • VIP地址作为Web响应数据包的源地址

  • web1服务器IP为:192.168.100.101

  • web2服务器IP为:192.168.100.102

  • LVS服务器IP为:192.168.100.103

  • NFS服务器IP为:192.168.100.104

  • 虚拟VIP地址为:192.168.100.10

2.2、实验拓扑

在这里插入图片描述

2.3、NFS服务器配置

点此跳~~~~~
主要是为web池子提供存储空间

2.4、两个Web服务器配置

  • web1配置
[root@web1 ~]# yum install httpd -y   ###安装apache服务
[root@web1 ~]# systemctl stop firewalld.service  ###关闭防火墙
[root@web1 ~]# setenforce 0
[root@web1 ~]# vim /etc/fstab  ###将nfs共享的空间挂载到本地
192.168.5.30:/aaa  /var/www/html   nfs    defaults,_netdev  0 0 
[root@web1 ~]# df -hT  ##查看挂载
  • 在web首页中写入相关数据
[root@web1 ~]# cd /var/www/html
[root@web1 html]# vim index.html
<h1>this is aaaa web </h1>
  • 启动httpd服务
[root@web1 html]# systemctl start httpd
[root@web1 html]# netstat -ntap|grep httpd
tcp        0      0 192.168.5.10:80         0.0.0.0:*               LISTEN      106928/httpd        

  • 配置虚拟网卡
[root@web1 ~]# cd /etc/sysconfig/network-scripts/
[root@web1 network-scripts]# cp -p ifcfg-lo ifcfg-lo:0  ##配置VIP
[root@web1 network-scripts]# vim ifcfg-lo:0
##原先内容全删掉,直接加入下面4段话
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes   
  • 添加执行脚本,防止ARP广播风暴
[root@web1 network-scripts]# cd /etc/init.d  ##进入此目录,便于service命令管理
[root@web1 init.d]# vi  web1.sh
#!/bin/bash
VIP=192.168.100.10
           case "$1" in
           start)
               ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
              /sbin/route add -host $VIP dev lo:0
              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
              sysctl -p >/dev/null 2>&1
               echo "RealServer Start OK "
                                ;;
            stop)
             ifconfig lo:0 down
             route del $VIP /dev/null 2>&1
             echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
             echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
             echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
             echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
             echo "RealServer Stopd"
                                ;;
             *)
               echo "Usage: $0 {start|stop}"
               exit 1
     esac
    exit 0
  • 为脚本添加执行权限,关闭防火墙,启动网卡和控制脚本
[root@web1 init.d]# chmod +x /etc/init.d/bbb.sh  ##加执行权限
[root@web1 init.d]# systemctl stop firewalld
[root@web1 init.d]# setenforce 0
[root@web1 init.d]# systemctl restart network
[root@web1 init.d]# service web1.sh start
RealServer Start OK 
  • 校验网卡信息
[root@web1 ~]# ifconfig ens33
[root@web1 ~]# ifconfig lo:0

在这里插入图片描述

  • 同理配置web2服务器
  • web2服务器的首页信息如下
[root@web2 ~]# cd /var/www/html
[root@web2 html]# vim index.html
<h1>this is bbb web </h1>
  • web2服务器的网卡信息如下

在这里插入图片描述

2.5、LVS调度器配置

  • 安装管理工具,关闭proc响应关闭重定向功能
[root@lvs ~]# yum install ipvsadm -y
[root@lvs ~]# vim /etc/sysctl.conf
###添加以下内容
net.ipv4.ip_forward=1
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0
[root@lvs ~]# sysctl -p ##加载
  • 配置虚拟网卡
[root@lvs ~]# cd /etc/sysconfig/network-scripts/
[root@lvs network-scripts]# cp -p ifcfg-ens33 ifcfg-ens33:0  ##虚拟网卡
##原先内容全删掉,直接加入下面4段话
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
  • 添加控制脚本
[root@lvs network-scripts]# cd /etc/init.d  ##便于service命令管理
[root@lvs init.d]# vi  dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10   ##虚拟ip
RIP1=192.168.100.101 ##真实web服务器ip
RIP2=192.168.100.102
case "$1" in
start)
                /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm  ##保存配置
                systemctl start ipvsadm  ##启动服务
                /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up  
##设置ens33:0地址,广播地址,子网掩码,并开启
                /sbin/route add -host $VIP dev ens33:0  ##添加路由网段信息
                /sbin/ipvsadm -A -t $VIP:80 -s rr ##指定虚拟服务访问入口,指定轮询算法
                /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g ##指定真实服务器,dr模式
                /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
                echo "ipvsadm starting --------------------[ok]"
                ;;
stop)
                /sbin/ipvsadm -C   ##清空缓存
                systemctl stop ipvsadm  ##关闭服务
                ifconfig ens33:0 down  ##关闭接口
                route del $VIP   ##删除路由信息
                echo "ipvsamd stoped----------------------[ok]"
                 ;;
status)
                if [ ! -e /var/lock/subsys/ipvsadm ];then  ##判断文件存在与否决定状态
                echo "ipvsadm stoped---------------"
                exit 1
                                else
                                echo "ipvsamd Runing ---------[ok]"
                fi
                ;;
*)
                echo "Usage: $0 {start|stop|status}"
                exit 1
esac
exit 0
  • 为脚本添加执行权限,关闭防火墙,启动网卡和控制脚本
[root@lvs network-scripts]# chmod +x /etc/init.d/dr.sh 
[root@lvs  init.d]# systemctl stop firewalld
[root@lvs  init.d]# setenforce 0
[root@lvs  init.d]# systemctl restart network
[root@lvs  init.d]# service dr.sh start
RealServer Start OK 
  • 校验网卡信息

在这里插入图片描述

三、模拟外网客户端验证

  • 路径: 外网客户端----路由----调度器(VIP地址)----调度下面的节点服务器
  • 模拟外网客户端IP为192.168.100.50
    在这里插入图片描述
  • 访问VIP地址192.168.100.10,发现web节点服务器以轮询的方式处理请求
    在这里插入图片描述
    在这里插入图片描述
发布了59 篇原创文章 · 获赞 66 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42953006/article/details/104007406