LVS-DR负载均衡

2024-07-09 1719阅读
  • 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来做封装。

    • 实验操作

      • 拓扑

        • LVS-DR负载均衡

        • 为了方便实验,客户端与群集网络之间应该有一个路由器,路由器上应该配置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

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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]