• LVS-DR模式


    简介

    LVS-DR模式,也是最常用的Ivs负载方式,DR DIRECT ROUTING 直接路由模式
     

    数据流向

    负载均衡lvs调度器,只负责请求和转发到后端的真实服务器,响应结果由后端服务器直接转发给客户端,不需要经过调度器的处理。减轻了LVS的负担,提高性能和稳定性。

    LVS-DR模式的工作原理:

    1、客户端发送请求到vip
    2、LVS的调度器接受请求之后,根据算法选择一台后端真实的服务器,请求转发到后端的RS,请求报文的目的MAC地址,修改成后端真实服务器的MAC地址。转发
    3、后端真实服务器接受请求,处理完成之后,由于后端服务器直接把响应结果转发给客户端,响应报文中的目的的MAC地址修改成客户端的MAC地址。直接把响应报文转发到客户端。
    4、调度器,后端真实服务器都有vip地址,调度的地址和后端真实服务器在同一网段。

     

    LVS-DR模式的特点

    1、调度器的ip和真实服务器的ip必须在同一物理网络中
    2、真实服务器的ip地址可以是私有地址,也可以是公网地址。如果配置的是公网,通过互联网可以直接访问RIP
    3、调度器只做入口,但是不做网关。要把服务器的转发功能关闭
    4、后端真实服务器的网关也不能指向调度器,真实服务器的数据包不允许经过调度器
    5、后端真实服务器上,基于LO接口配置VIP的ip地址

    ARP协议:网络层协议,将IP地址解析为物理MAC地址
    ARP请求:主机A和主机B
    ARP 解决局域网内部的通信。 ip地址和MAC地址映射
    DR模式的调度器和后端服务器都在一个网段中,通过ARP请求实现局域网内部通信。

    问题一:
    由于调度器和后端真实服务器的都有相同的VIP地址,导致响应冲突,ARP通信紊乱???

    对后端的真实服务器进行处理,真实服务器不响应针对VIP地址的arp请求
    VIP地址使用LO的虚拟地址:arp_ignore
    后端真实服务器只响应目的ip为本地IP,也就是RIP。后端服务器的真正IP地址。ens33网卡提供的地址。


    问题二:
    返回报文使用的源地址还是VIP地址,调度器也是VIP,怎么把响应返回到客户端不经过调度器呢???

    后端真实服务器做一个内核参数的优化:arp_announce=2 系统不使用ip数据包的源地址,来设置ARO的请求。真实的物理网卡的地址。

    调度器的内核优化

    1. 1、关闭服务器作为网关的转发功能
    2. net.ipv4.ip_forward = 0
    3. 2、控制是否发送ICMP的重定向消息,禁止重定向
    4. net.ipv4.conf.all.send_redirects = 0
    5. 3、禁止默认网络接口,就是调度网卡,发送icmp的重定向消息
    6. net.ipv4.conf.default.send_redirects = 0
    7. 4、指明网卡设备,ens33不发送重定向消息
    8. net.ipv4.conf.ens33.send_redirects = 0
    9. 5、把vip的地址绑定到lo:0,作为LVS的vip地址。标识。告诉调度器,进行转发请求的ip地址寻址。
    10. route add -host 192.168.233.100 dev lo:0

    web内核优化

    1. web内核优化
    2. 1、#设置lo接口忽略来自任何接口的ARP请求
    3. net.ipv4.conf.lo.arp_ignore = 1
    4. 2、全部忽略设置lo接口仅会响应本地的IP地址,其他的接口ARP请求
    5. net.ipv4.conf.lo.arp_announce = 2
    6. 3、所有接口忽略来自任务接口的ARP请求
    7. net.ipv4.conf.all.arp_ignore = 1
    8. 4、所有接口仅会响应本地的IP地址的ARP请求,其他的接口的ARP请求全部忽略
    9. net.ipv4.conf.all.arp_announce = 2

    负载均衡算法设置

    1. 修改VIP的调度算法:
    2. ipvsadm -E -t 192.168.233.100:80 -s wrr
    3. 修改加权的轮询权重
    4. ipvsadm -e -t 192.168.233.100:80 -r 192.168.233.20:80 -w 3

    ipvsadm -ln 显示内容

    LVS的负载均衡的工作方式:

    1. 三种方式:NAT DR(用的最多) TUN(付费)
    2. NAT:
    3. ·优点:配置简单
    4. ·缺点:性能瓶颈
    5. 真实服务器:any
    6. 支持的网络:私网
    7. 后端服务数量:low(10-20
    8. DR
    9. ·优点:性能最好
    10. ·缺点:调度服务器和后端服务器真实服务器不能跨网段
    11. 真实服务器:NO-ARP (请求只能到真实服务器)
    12. 支持的网络:后端服务器即可是内网也可以是公网
    13. 真实服务器数量: 100
    14. TUN 公司不用

    实验需求

    1. setenforce 0
    2. systemctl stop firewalld.service

    test1 192.168.233.10 调度器
    test2 192.168.233.20 web集群1
    test3 192.168.233.30 web集群2
    VIP地址:192.168.10.99
    客户端: 随机选择。

    test1 192.168.233.10 调度器

    1. 1、创建虚拟网卡
    2. ifconfig ens33:0 192.168.10.99/24
    3. 2、调度器内核优化
    4. net.ipv4.ip_forward = 0
    5. net.ipv4.conf.all.send_redirects = 0
    6. net.ipv4.conf.default.send_redirects = 0
    7. net.ipv4.conf.ens33.send_redirects = 0
    8. 3、添加虚拟ip服务器 vip 及算法
    9. ipvsadm -A -t 192.168.10.99:80 -s rr
    10. 4、在虚拟ip服务器 添加后端真实的ip 及
    11. ipvsadm -a -t 192.168.10.99:80 -r 192.168.10.20:80 -g
    12. 5、把规则保存到
    13. ipvsadm-save > /etc/sysconfig/ipvsadm
    14. systemctl restart ipvsadm.service
    15. 删除虚拟ip服务器
    16. ipvsadm -D -t x.x.x.x:80
    17. 修改算法
    18. ipvsadm -E -t 192.168.10.99:80 -s dh

    test2 192.168.233.20 web集群1
    test3 192.168.233.30 web集群2

    1. 1、cd /etc/sysconfig/network-scripts/
    2. cp ifcfg-lo ifcfg-lo:0
    3. vim ifcfg-lo:0
    4. ..........
    5. DEVICE=lo:0
    6. IPADDR=192.168.10.99
    7. NETMASK=255.255.255.255
    8. ONBOOT=yes
    9. ..........
    10. 2、重启网卡
    11. ifup ifcfg-lo:0
    12. 3、把vip绑定到lo:0循环网卡上,作为LVS的vip地址。标识。告诉调度器,进行转发请求的ip地址寻址。
    13. route add -host 192.168.10.99 dev lo:0
    14. 4、vim /etc/sysctl.conf
    15. ..........
    16. net.ipv4.conf.lo.arp_ignore = 1
    17. net.ipv4.conf.lo.arp_announce = 2
    18. net.ipv4.conf.all.arp_ignore = 1
    19. net.ipv4.conf.all.arp_announce = 2
    20. ..........
    21. 5、立即生效
    22. sysctl -p
    1. 编译安装路径
    2. cd /usr/local/nginx/html/
    3. vim index.html
    4. .........
    5. 192.168.10.20
    6. 设置其ip地址
    7. .........
    8. yum安装
    9. vim /usr/share/nginx/html
    10. .........
    11. nginx-----1
    12. .........

    客户端: 随机选择。

  • 相关阅读:
    如何提升服务器的数据安全
    Linux权限的概念和权限管理
    【Oracle】Navicat Premium 连接 Oracle的两种方式
    Python机器视觉--OpenCV进阶(核心)--图像的开,闭运算,形态学梯度,顶帽,黑帽运算
    Stable Diffusion WebUI如何做到真人和动漫互相转换,就在这里!
    三年的功能测试,让我女朋友跑了,太难受了...
    PMI-ACP练习题(20)
    Dubbo源码篇07---SPI神秘的面纱---原理篇---下
    C语言-指针相关使用
    图像分割 - Canny边缘检测
  • 原文地址:https://blog.csdn.net/qq_61843057/article/details/133990304