LVS-DR负载均衡

  • LVS-DR负载均衡

    • LVS—DR工作模式

      • 原理

        • 客户端访问调度器的VIP地址,在路由器上应该设置VIP跟调度器的一对一的映射关系,调度器根据调度算法将该请求“调度“到后端真实服务器,真实服务器处理完毕后直接将处理后的应答报文发送给路由器,不经过调度器,这样调度器的压力就降低了一半,可以支持的节点也就增加了。

          • 映射关系:访问VIP的请求的下一跳应该是调度器的IP地址。

        • 产生的问题

          • arp请求出现一个IP对应多个mac地址的问题

            • 当网关第一次做arp请求广播寻找VIP所在的mac地址,但是因为调度器和网站都承载了VIP,本应该只有调度器做应答,但是这样都做了应答,那么网关在接收到同一个IP的新的mac地址后,就会更新arp表,这样下次请求,网关就不会将请求转发给调度器,这就不对了。

              • 解决办法:

                • 在web服务器上把承载VIP的设备,让它忽略arp请求,在内核文件中添加arp_ignore=1

                • arp_ignore=1 :系统只会响应当前网卡的arp请求(系统只会响应哪些接收到arp请求的接口上配置的”本地”IP地址的arp请求,如果一个arp请求是通过eth0接口接收到的,但请求的地址是在eth1上配置的,那么系统就不会做出响应)例本实验中web服务器的网卡ip与lo承载的VIP.

                  • 当前网卡,实际承载流量传输的IP地址

          • 路由器arp混乱的问题,也会出现一个IP地址对应多个mac地址。

            • 当web服务器出完请求后,需要做应答,应答报文中,源IP地址应该是VIP,经过负载均衡之后每一台web服务器都会通过VIP去做应答,这样对于网关来说同一个IP对应了多个mac地址,这样就造成了路由器arp记录混乱的问题。

              • 解决办法

                • arp_announce=2:该参数的目的是为了让承载的VIP不对应答做响应。

                • 当设置该参数时,web发送arp请求建立与网关的连接时,总会选择真实承载网卡流量的IP地址作为发送方的IP地址。

          • DR直接路由的目的

            • 当web服务器做应答时,必须用vip做为源IP来应答,虽然在web服务器上承载了两个IP,但是如果不添加任何策略,那么将无法决定应答报文中使用VIP作为源IP地址。

              • 解决办法

                • route add -host 192.168.10.172 dev lo:0

                • 添加路由策略,将去往172的数据包的封装,用lo:0所承载的VIP来做封装。

    • 实验操作

      • 拓扑

        • 为了方便实验,客户端与群集网络之间应该有一个路由器,路由器上应该配置IP与调度器一对一的映射关系,此拓扑省略了该过程。

      • 调度器服务器

        • 添加一个子接口作为承载VIP的设备

          • cp ifcfg-ens33 ifcfg-ens33:0

        • 调整内核参数,该参数是为了不让调度器发送icmp重定向消息,该消息的目的是为了当发现一个更加短,有效的路径后,它会通知数据包的原始发送者,这样更新了路由线路后,就会绕过调度器,这是不被允许的。

          • net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0 systctl -p

        • 安装ipvsadm并添加策略

          • ipvsadm -A -t 192.168.10.172:80 -s rr [root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.102 -g -w 1 [root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.103 -g -w 1

        • 关闭内核安全机制与防火墙

      • 节点服务器(web服务器)

        • 关闭内核安全机制与防火墙

        • 配置虚拟IP地址

          • 在lo网卡上设置子接口

            • cp ifcfg-lo ifcfg-lo:0

            • DEVICE=lo:0 NETMASK=255.255.255.255 IPADDR=192.168.10.172 ONBOOT=yes

              • 当一个子网掩码为32后,其广播,网络,主机地址都只有一个,自成一个网段,这样的情况下,即使同一个局域网内有两个相同的32的子网掩码,并且IP也相同也不会出现地址冲突。

                • 32的子网掩码通常只用来做封装数据包,或用改地址做为管理,并不会实际参与到通信过程中。

        • 做DR直接路由

          • route add -host 192.168.10.172 dev lo:0

        • 调整内核参数

          • net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2

        • 之后安装网站软件,创建测试页面进行测试

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 17:00:14       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 17:00:14       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 17:00:14       58 阅读
  4. Python语言-面向对象

    2024-07-09 17:00:14       69 阅读

热门阅读

  1. 单例模式之懒汉式

    2024-07-09 17:00:14       30 阅读
  2. 代码技巧专题 -- 使用策略模式编写HandleService

    2024-07-09 17:00:14       29 阅读
  3. 汇编学习基础知识【记录】

    2024-07-09 17:00:14       26 阅读
  4. mapper.xml 文件对应的 Dao 接口原理

    2024-07-09 17:00:14       25 阅读
  5. Linux服务监控自动巡检脚本--推送钉钉告警

    2024-07-09 17:00:14       34 阅读
  6. stm32中断

    2024-07-09 17:00:14       26 阅读
  7. 使用引用 XML 文件来优化 EtherCAT ESI 文件的描述

    2024-07-09 17:00:14       33 阅读
  8. uni app for()在App上不运行

    2024-07-09 17:00:14       25 阅读
  9. OpenSNN推文:盛夏智慧之光:七月高校新闻聚焦

    2024-07-09 17:00:14       33 阅读
  10. 【计算机网络——1.2网络边缘】

    2024-07-09 17:00:14       34 阅读
  11. 音频demo:将PCM数据与g726数据的相互转换

    2024-07-09 17:00:14       26 阅读
  12. x-mind没有配置文件,可以自己创建文件修改内存

    2024-07-09 17:00:14       53 阅读