LVS集群

本文介绍了LVS(Linux Virtual Server)集群技术,包括负载均衡器的角色、VIP(Virtual IP)的概念,以及LVS的三种工作模式:nat、dr和tun。详细阐述了lvs-nat配置和lvs-dr配置的步骤,同时还讨论了session保持的方法和LVS调度器的工作原理。文章还提及了LVS的一些缺点,如缺乏健康检查功能。
摘要由CSDN通过智能技术生成

集群:

           多台主机做同一件事

           负载均衡集群

                  lvs             4层负载
                  Nginx        7层负载
                  haproxy    可4层,可7层负载
                  slb            云主机服务(例如阿里云),要付费
                  F5             硬件设备

           高可用集群(使用两台负载均衡器,一台坏了由另一台顶上)

                  keepalived

           高性能集群(超级计算机)

负载均衡器(只负责两边的转发请求)

 VIP(令牌,用户只知道令牌的地址,通过令牌就能找到)

lvs:Linux Virtual Server

l4:四层交换,四层路由:

    根据请求报文的目标IP和PORT将其转发至后端主机集群中的某一台主机(根据挑选算法)

    

    netfilter:

        PREROUTING --> INPUT

        PREROUTING --> FORWARD --> POSTROUTING

        OUTPUT --> POSTROUTING

        

lvs:

    ipvsadm/ipvs

    

    ipvsadm:用户空间的命令行工具,用于管理集群服务

    ipvs:工作于内核中netfilter INPUT钩子上

    

    支持TCP,UDP,AH,EST,AH_EST,SCTP等诸多协议

grep -i -A 2 'ipvs' /boot/config-2.6.32-504.el6.x86_64        查看系统对ipvs的支持情况,包括算法

    

lvs arch:

    调度器:director,dispatcher,balancer

    RS:Real Server

    

    Client IP:CIP

    Director Virutal IP:VIP

    Director IP:DIP

    Real Server IP:RIP

    

lvs type:

    lvs-nat:masquerade

        lvs-nat本质上就是多目标的DNAT(iptables)

        lvs-nat模式通过修改请求报文的目标IP地址(同时可能会修改目标端口)至挑选出来的某RS的RIP地址实现转发

        lvs-nat的特点:

            RS和DIP应该使用私网地址,且RS的网关要指向DIP

            请求和响应报文都要经由director转发,所以配置时需要将director的转发功能开启,极高负载的场景中,director可能会成为系统性能瓶颈

            支持端口映射

            RS可以使用任意OS

            RS的RIP和Director的DIP必须在同一IP网络

    lvs-dr(direct routing):lvs的默认模式,gateway

        lvs-dr模式通过修改请求报文的目标MAC地址进行转发

            Director:调度器要配置VIP,DIP

            RSs:所有的Real Server都要配置RIP,VIP

        lvs-dr的特点:

            保证前端路由器将目标IP为VIP的请求报文发送给director,解决方案有以下三种:

                静态绑定

                arptables

                修改RS主机内核的2个参数:

                    arp_announce:是否接收并记录别人的通告以及是否通告自己的mac地址给别人。

                        arp_announce有三个可选值,0,1,2,其意义如下:

                        0(default,默认值为0):通告自己所拥有的所有地址

                        1:尽量不通告与自己不在同一个网段的地址,比如不通告2.0网段的地址给1.0网段,不通告3.0网段的地址给1.0网段等,但是是尽量不通告,有可能还是会通告的

                            尽量避免不在该网络接口子网段的本地地址做出arp回应. 

                            当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.

                            此时会检查来访IP是否为所有接口上的子网段内ip之一.如果该来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.

                        2:总是不通告与自己不在同一个网段的地址,比如不通告2.0网段的地址给1.0网段,不通告3.0网段的地址给1.0网段等,绝对不会通告

                            对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.

                            首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 

                            如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.

                    arp_ignore:是否响应arp请求

                        arp_ignore有9个可选值,0,1,2,3,4,5,6,7,8,其意义如下:

                        0(default,默认值为0):回应任何网络接口上对任何本地IP地址的arp查询请求

                        1:请求报文从哪个接口进入的且请求的目标地址就是此接口配置的地址才予以响应,否则不响应

                            只回答目标IP地址是来访网络接口本地地址的ARP查询请求

                        2:只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内

                        3:不回应该网络接口的arp请求,而只对设置的唯一和连接地址做出回应

                        4-7:保留未使用

                        8:不回应所有(本地地址)的arp查询

            RS的RIP可以使用私有地址,也可以使用公网地址

            RS跟Director必须在同一物理网络中,中间不能有路由器相

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值