• 部署LVS-DR集群


    目录

    一,LVS-DR工作原理

    1,LVS-DR数据包流向分析

    二,部署LVS-DR集群实验

    1,实验准备

    2,关闭防火墙,核心防护

    3,安装 ipvsadm keeplived ,

     4,给lvs调度服务器配置虚拟子接口

    5,调整proc的响应参数

    6,配置负载均衡策略

     三,web站点服务器配置

    web1服务器

    1,修改网卡

    2, 添加路由禁锢

     3,启动apache服务器

    1,web2

    2,添加路由禁锢

    4,在两台apache中/var/www/html中写数据


    一,LVS-DR工作原理

    LVS-DR(Linux Virtual Server Director Server)工作模式,是生产环境中最常用的一种工作模式

    LVS-DR模式,Director Server 作为群集的访问入口,不作为网关使用。
    节点Director Server 与Real Server 需要在同一个网络中,返回给客户端的数据不需要经过Director Server。
    为了对整个群集的访问,Dreector Server和Real Server都需要配置VIP地址

    1,LVS-DR数据包流向分析

    1、Clinent向目标VIP发出请求,Director(负载均衡器)接收

    • 源ip:客户端ip,目标ip:虚拟ip,源MAC:客户端MAC地址,目标MAC:负载均衡器的MAC地址

    2、Director根据负载均衡算法选择RealServer_1(真实服务器),不修改也不封装IP报文,而是将数据帧的MAC地址改为RealServer_1的MAC地址,然后在局域网上发送。

    • 源ip:虚拟ip,目标ip:真实虚拟ip,源MAC:负载均衡器MAC,目标MAC:真实服务器MAC

    3、RealServer_1收到这个帧,解封装后发现目标IP与本机匹配(RealSERVERS事先绑定了VIP),于是处理这个报文,随后重新封装报文,发送到局域网。

    • 源ip:虚拟ip,目标ip:客户机ip,源MAC:真实ens33网卡MAC,目标MAC:客户端MAC
    • 注意:如果跨网段,则报文通过路由器经由internet返回给用户
       

    4、Client将收到回复报文,Client认为得到正常的服务,而不会知道是那一台服务器处理的。

    1. ①客户端向目标VIP发送请求, 负载均衡器接收
    2. ②负载均衡器根据负载均衡算法选择后端真实服务器,不修改也不封装IP报文,而是将数据帧的
    3. MAC地址改为后端真实服务器的MAC地址,然后在局域网上发送
    4. ①后端真实服务器收到这个帧,解封装后发现目标IP与本机匹配(事先绑定了VIP),于是处理
    5. 这个报文。
    6. 田随后重新封装报文,将响应报文通过1o接口传送给物理网卡然后向外发出客户端将收到回复报文
    7. 。客户端认为得到正常的服务,而不会知道是哪一-台服务器处理的如果跨网段,则报文通过路由器经由internet返回给用户

    5,LVS-DR中的ARP问题

    1. 在LVS-DR负载均衡集样中,负载均衡与节点服务器都要配置相同的VIP地址。
    2. 2、在局域网中具有相同的IP地址,势必会造成各服务器ARP通信的系乱。
    3. 当ARPE播发送到VS-DR集群时,因为负载均衡器和节点服务器都是连接到相同网络上,它们都会接收到ARP广播。只有前端的负
    4. 载均衡器进行响应,其他节点服务器不应该响应ARP广播。
    5. 3、对节点服务器进行处理,使其不响应针对VIP的ARP请求。
    6. 使用虚接口1o:0 承载VIP地址设置内核参数arp_ ignore=1:系统只响应目的IP为本地IP的ARP请求
    7. 4、 Rea1Serter返回报文(源IP是VIP)经路由器转发, 重新封装报文时,需要先获取路由器的MAC地址
    8. 5、发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址,而不使
    9. 用发送接口的IP地址如: ens33
    10. 6、路由器收到ARP请求后,将更新ARP表项
    11. 7、原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址
    12. 8、路由器根据ARP表项, 会将新来的请求报文转发给Realserver, 导致Di rector的VIP失效
    13. 解决方法:对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发
    14. 送接口的IP地址

    二,部署LVS-DR集群实验

    1,实验准备

     

    主lvs调度服务配置(主):192.168.135.189,虚拟子接口,ens33:0 192.168.135.100

    web 1 ens33 192.168.135.111 io:192.168.135.100

    web 2 ens33 192.168.135.113 ip:192.168.135.100

    2,关闭防火墙,核心防护

     [root@tomcat189 ~]#systemctl stop firewalld
    [root@tomcat189 ~]#setenforce 0
    [root@tomcat189 ~]#systemctl disable firewall

    3,安装 ipvsadm keeplived ,

    yum -y install keepalived ipvsadm

    modprobe ip_vs #加载ip_vs模块

    cat /proc/net/ip_vs 查看ip_vs版本信息

    ipvsadm-save > /etc/sysconfig/ipvsadm

    systemctl start ipvsadm

     4,给lvs调度服务器配置虚拟子接口

    cd /etc/sysconfig/network-scripts/
    cp ifcfg-ens33  ifcfg-ens33:0
    vim ifcfg-ens33:0

     进入ens33:0 修改配置

     

    DEVICE=ens33:0 #设备名称

    ONBOOT=yes   #是否启用

    IPADDR=192.168.135.100  #ip名称

    NETMASK=255.255.255.255 #
    不需要配置网关

     

    5,调整proc的响应参数

    #由于LVS负载均衡器和各节点需要共用vip地址,应该关闭linux内核的重定向响应参数,不充当路由器(转发,重定向)

    由于LVS负载均衡器和各个节点需要共用vip地址,应该关闭Linux内核的重定向响应参数,不充当路由器,这样当DS收到客户端发来的数据包时,就不会立马转发给后台RS服务器,而是转发给自己的虚拟子接口

    vim /etc/sysctl.conf     #编辑内核proc参数
    net.ipv4.ip_forward = 0      #关闭ip转发
    net.ipv4.conf.all.send_redirects = 0      #关闭所有send重定向
    net.ipv4.conf.default.send_redirects = 0    #关闭默认重定向
    net.ipv4.conf.ens33.send_redirects = 0    #关闭网卡重定向

    sysctl -p   #查看内核参数

     sysctl -p 查看内核参数

    开启ipvsadm

    [root@tomcat189 network-scripts]#modprobe ip_vs
    [root@tomcat189 network-scripts]#cat /proc/net/ip_vs
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    [root@tomcat189 network-scripts]#

    6,配置负载均衡策略

    ipvsadm -C    #清除规则
    ipvsadm -A -t 192.168.135.100:80 -s rr   #创建虚拟主机,指定ip地址,并指定分流模式为轮询
    ipvsadm -a -t 192.168.135.100:80 -r 192.168.135.111:80 -g  
    #添加真实服务器ip地址,并指定负载均衡模式为DR,ip隧道模式为-i,-m为nat模式
    ipvsadm -a -t 192.168.1135.100:80 -r 192.168.135.113:80 -g  
    #添加真实服务器ip地址,并指定负载均衡模式为DR,ip隧道模式为-i

    ipvsadm   #启动策略
    ipvsadm -ln    #查看节点状态信息
    ipvsadm -Lnc   #监控连接数

     

     三,web站点服务器配置

    web1服务器

    1,修改网卡

     

     

    cd /etc/sysconfig/network-scripts/    #进入网卡配置目录
    cp -p ifcfg-lo ifcfg-o:0    #复制环回网卡
    vim ifcfg-lo:0   #修改内容
    DEVICE=lo:0
    ONBOOT=yes
    IPADDR=192.168.135.100      #地址为VIP
    NETMASK=255.255.255.255

    ifup ifcfg-lo:0    #启动环回网卡
    ifconfig lo:0    #查看环回网卡

     

    2, 添加路由禁锢

    1. route add -host 192.168.135.100 dev lo:0
    2. 或者下面方式,都可实现路由禁锢,下面的为永久添加
    3. vim /etc/rc.local #linux在开启启动时,会加载的内容
    4. /sbin/route add -host 192.168.135.100 dev lo:0

     调整内核的arp响应参数以组织更新vip的Mac地址,避免冲突

    1. vim /etc/sysctl.conf
    2. net.ipv4.conf.all.arp_ignore = 1 #系统只响应目的ip为本地的arp请求
    3. net.ipv4.conf.all.arp_announce = 2 #系统不使用ip包的源地址来设置arp请求的原地址,而选择发送接口的ip地址。
    4. net.ipv4.conf.lo.arp_ignore = 1
    5. net.ipv4.conf.lo.arp_announce = 2
    6. sysctl -p #刷新

     3,启动apache服务器

    1,web2

     

     

    2,添加路由禁锢

    1. route add -host 192.168.135.100 dev lo:0
    2. 或者下面方式,都可实现路由禁锢,下面的为永久添加
    3. vim /etc/rc.local #linux在开启启动时,会加载的内容
    4. /sbin/route add -host 192.168.135.100 dev lo:0

     调整内核的arp响应参数以组织更新vip的Mac地址,避免冲突

    1. vim /etc/sysctl.conf
    2. net.ipv4.conf.all.arp_ignore = 1 #系统只响应目的ip为本地的arp请求
    3. net.ipv4.conf.all.arp_announce = 2 #系统不使用ip包的源地址来设置arp请求的原地址,而选择发送接口的ip地址。
    4. net.ipv4.conf.lo.arp_ignore = 1
    5. net.ipv4.conf.lo.arp_announce = 2
    6. sysctl -p #刷新

    3, 开启apache ,,

    4,在两台apache中/var/www/html中写数据

    1. <html>
    2. <body>
    3. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    4. <h1>,</h1>
    5. </body>
    6. </html>

     

     验证,用本机windows机器访问

     

  • 相关阅读:
    白话谈区块链和其应用场景
    玩机搞机---全网最详细的手机全机型 刷机教程 二
    力扣--有效的括号
    【C++】vector的介绍与使用
    使用 MyBatisPlus 的注解方式进行 SQL 查询,它结合了条件构造器(Wrapper)和自定义 SQL 片段来构建查询语句。
    RN:Error: /xxx/android/gradlew exited with non-zero code: 1
    在Excel VBA中使用SQL到底优势在哪儿
    uniapp新建的vuecli项目启动报错并且打包失败的问题(已解决)
    OceanBase 首席科学家阳振坤博士入选2022 年度“CCF王选奖”
    华为防火墙基础自学系列 | Site to Site IPSec VdPdNd
  • 原文地址:https://blog.csdn.net/m0_54594153/article/details/126731030