• 【LVS】nat模式+dr模式+防火墙标签解决轮询错误


    集群:同一个业务系统,部署在多台服务器上,集群中,每一台服务器实现的功能没有差别,数据 和代码都是一样的

    分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式 中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起 来,才是完整的业务

    分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数
    来提升效率。
    对于大型网站,访问用户很多,实现一个群集,在前面部署一个负载均衡服务器,后面几台服务器
    完成同一业务。如果有用户进行相应业务访问时,负载均衡器根据后端哪台服务器的负载情况,决
    定由给哪一台去完成响应,并且台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点,
    都完成不同的业务,如果一个节点垮了,那这个业务可能就会失败

    一.LVS--负载调度器

    • VS: Virtual Server ,负责调度
    • RS:RealServer,负责真正提供服务

    lvs概念

    VS Virtual Server
    RS Real Server
    CIP Client IP
    VIP: Virtual serve IP VS 外网的 IP
    DIP: Director IP VS 内网的 IP
    RIP: Real server IP
    访问流程:CIP <--> VIP == DIP <--> RIP

     lvs集群的类型

    lvs-nat
    修改请求报文的目标 IP, 多目标 IP DNAT
    lvs-dr 操纵封装新的 MAC 地址
    lvs-tun
    在原请求 IP 报文之外新加一个 IP 首部
    lvs-fullnat 修改请求报文的源和目标 IP

    案例:NAT模式

    图形:

    四台服务器都是采用的rhel9

    webserver1//rs1

    仅主机模式

    准备环境:

    安装软件编写html


    webserver2//rs2

    仅主机模式

     准备环境:

    安装软件编写html


    lvs配置

    2块网卡:/nat/仅主机

    准备环境:

    内核路由功能配置

    1. #vim /etc/sysctl.conf
    2. net.ipv4.ip_forward=1
    3. #sysctl -p #生效
    4. net.ipv4.ip_forward=1

    下载软件

    后端调用主机

    测试rs:

    在lvs虚拟机上ping并且访问他的内容


    客户机:172.25.254.200

    总的测试:



    案例:DR模式

    图形:

    lvs webserver1 webserver2处于同一个vlan里面都是仅主机模式

    client  route 处于同一个vlan里面都是nat模式

    解决 vip 响应问题
    DR 模型中各主机上均需要配置 VIP ,解决地址冲突的方式有三种:
    (1) 在前端网关做静态绑定
    (2) 在各 RS 使用 arptables
    (3) 在各 RS 修改内核参数,来限制 arp 响应和通告的级别
    限制响应级别 :arp_ignore
    0: 默认值,表示可使用本地任意接口上配置的任意地址进行响应
    1: 仅在请求的目标 IP 配置在本地主机的接收到请求报文的接口上时,才给予响应
    限制通告级别 :arp_announce
    0: 默认值,把本机所有接口的所有信息向每个接口的网络进行通告
    1: 尽量避免将接口信息向非直接连接网络进行通告
    2: 必须避免将接口信息向非本网络进行通告

    rs主机1

    仅主机模式

    准备环境:

     

     安装软件编写html

    静态绑定:

    检查:

    添加vip

     


    rs主机2

    仅主机模式

     准备环境:

    安装软件编写html

     静态绑定:

    检查:

    添加vip


    路由器route

    2块网卡:/nat/仅主机

    准备环境

     内核路由功能配置

    1. #vim /etc/sysctl.conf
    2. net.ipv4.ip_forward=1
    3. #sysctl -p #生效
    4. net.ipv4.ip_forward=1


    lvs配置

    仅主机模式

    准备环境

     添加vip

     

     在lvs虚拟机上ping并且访问他的内容

    后端调动rs1和rs2


    客户端

    nat模式

    准备环境

    测试:



    案例:防火墙标签解决轮询错误

    httphttps为例,当我们在RS中同时开放80443端口,那么默认控制是分开轮询的,这样我们就出 现了一个轮询错乱的问题
    当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1
    1. 在RS1和RS2中安装mod_ssl并重启apache
    2. ]# yum install mod_ssl -y
    3. ]# systemctl restart httpd
    4. 在lvs中设置调度,因为我们要调度80443两个端口所以我们需要设定两组策略
    5. ]# ipvsadm -C
    6. [root@lvs ~]# ipvsadm -A -t 192.168.0.100:80 -s rr
    7. [root@lvs ~]# ipvsadm -A -t 192.168.0.100:443 -s rr
    8. [root@lvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.101:80 -g
    9. [root@lvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.102:80 -g
    10. [root@lvs ~]# ipvsadm -a -t 192.168.0.100:443 -r 192.168.0.102:80 -g
    11. [root@lvs ~]# ipvsadm -a -t 192.168.0.100:443 -r 192.168.0.101:80 -g
    12. [root@lvs ~]# ipvsadm -Ln
    13. IP Virtual Server version 1.2.1 (size=4096)
    14. Prot LocalAddress:Port Scheduler Flags
    15. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    16. TCP 192.168.0.100:80 rr
    17. -> 192.168.0.101:80 Route 1 0 0
    18. -> 192.168.0.102:80 Route 1 0 0
    19. TCP 192.168.0.100:443 rr
    20. -> 192.168.0.101:443 Route 1 0 0
    21. -> 192.168.0.102:443 Route 1 0 0
    22. 测试问题
    23. [root@node10 ~]# curl http://192.168.0.100;curl -k https://192.168.0.100
    24. RS1 server - 192.168.0.101
    25. RS1 server - 192.168.0.101
    26. 当访问vip时两次调度都到了
    为了解决此问题:
    以下实验将会实现以下功能
    环境准备(以上即可)
    RS1和RS2
    • 安装mod_ssl模块让rs支持https

       重启httpd

    查看端口

    在lvs进行多端口标记

    多端口自动识别

    在客户端client

    测试

  • 相关阅读:
    Task-Driven Super Resolution: Object Detection in Low-resolution Images
    暑假加餐|有钱人和你想的不一样(第13天)+基于多目标粒子群算法的微电网优化调度(Matlab代码实现)
    Spring框架中都用到了哪些设计模式?
    一文详解 implementation api embed
    频域分析实践介绍
    mysql代码
    设计高并发系统的关键策略
    【【萌新的FPGA学习之初识ZYNQ】】
    第18章 用于大型程序的工具【C++】
    存储优化知识复习一详细版解析
  • 原文地址:https://blog.csdn.net/m0_64570996/article/details/141002024