LVSDR模式部署

2023年 9月 16日 70.4k 0

问题:

路由器根据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地址。

一 实验环境:

  • 为了提高网站负载能力,需要构建web群集平台;
  • 网页文档存放在内网,各web节点公用;
  • 二 . 实验架构图

    image.png

    三. 实验操作内容

    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
    

    image.png

    查看nfs文件共享需要查看是否安装了 rpcbind,nfs-utile

      rpm -q rpcbind nfs-utils
      如果没安装使用yum install安装
    

    image.png

    开始创建共享目录

    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
    

    image.png

    添加共享策略

    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
    #查看是否共享完成
    

    image.png

    去节点服务器刷新共享nfs 7-2 7-3

    image.png

    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
     #重启网卡
    
     
    

    image.png

     ifconfig查看  
    

    image.png

    7-3做以上同样的操作
    

    image.png

    7-2添加路由信息

      route add -host 192.168.47.200 dev lo:0 
      #添加路由信息
      route -n
      #查看
    

    image.png

    7-3同样操作添加路由信息

    image.png

    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
       #添加信息   
    

    image.png

    7-3作上述同样操作
    

    image.png

    7-2 7-3 需要给rc.d文件权限

    image.png

    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
    

    image.png

    sysctl -p
    #加载
    

    image.png

    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  
    

    image.png

    image.png

    image.png

     mount -a 
    #刷新挂载
    去挂载目录下查看
    

    image.png

    web节点服务器准备好了 上面

    3 . 配置负载调度器

    #关闭防火墙和selinux
    systemctl stop firewalld
    setenforce 0 
    #安装ipvsadm 
    yum install -y ipvsadm
    

    image.png

     #先保存一下路径
    ipvsadm-save > /etc/sysconfig/ipvsadm
    #开启ipvsadm
    systemctl start ipvsadm.service 
    systemctl enable ipvsadm.service 
    
    加载模块
    modprobe ip_vs
    cat /proc/net/ip_vs
    ifconfig
    

    image.png

    配置虚拟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)
    

    image.png

    🍔

    image.png

    调整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
    

    image.png

    image.png

    配置负载均衡分配策略

    先开启两个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
    

    image.png

    编写nginx配置文件

     cd /etc/nginx/  
     vim nginx.conf 
     systemctl restart nginx
    

    image.png

    4.去网页测试

    192.168.47.200/test.

    image.png

    🍟

    image.png

    四.总结 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地址

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论