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

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

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值