lvs-nat模型:类似于DNAT,但支持多目标转发, 就是多目标的DNAT

它通过修改请求报文的目标地址为根据调度算法所挑选出的某RS的RIP来进行转发

架构特性:

(1) RS应该使用私有地址,即RIP应该为私有地址,各RS的网关必须指向DIP

(2) 请求报文和响应报文都经由Director转发;高负载场景中,Director易于成为系统瓶颈

(3) 支持端口映射

(4) RS可以使用任意类型的OS

(5) RS的RIP必须与Director的DIP在同一网络

架设NAT模式的LVS负载均衡前需要先弄清楚哪个端口是哪个IP地址。

因此我们要先根据自己需要架设的服务拓扑图来规划IP地址以及测试。

1、根据上面的拓扑图我们可以规划IP地址为:

    VIP:192.168.10.1

    VIP为外网地址,因此这个地址需要能连通外部网络的,注意如果是在VM虚拟机上实验最好设置成桥接模式。

    

    DIP:192.168.100.1

    DIP为内网私有地址,不对外公布的,并且后面的Real server的网关都必须要设置成DIP

    

    RIP:192.168.100.2-4

    RIP为Real server的IP地址,拓扑图的三台服务器依次设置IP地址从2到4

2、设置完成IP地址架设完内部网络之后进行测试是否连通。

    先测试各个IP地址之间是否能够正常通信,使用ping工具

    在每个主机上都ping一下其他主机的IP地址

3、测试需要架设的服务是否能够在Directory上正常访问

    本次以http为例,在各个RS上安装完http之后,在Directory使用curl

测试完成之后就可以配置集群了。

我们使用LVS配置,不懂的可以先看另一篇博客LVS基础  

配置Directory

    在Directory服务器上面配置ipvsadm,本机配置的是http服务,端口号是80

    开启nat转发功能:

        vim /etc/sysctl.conf

            修改nat.ipv4.ip_forward = 1

            1为打开,0为关闭

        sysctl -p 马上让修改的配置生效

    

ipvsadm -A -t 192.168.10.1:80 -s rr    //设置VIP为访问集群时候的IP地址,端口号为80,-s 代表使用自定义集群访问模式,rr为轮询,代表每个服务器都会轮换着访问ipvsadm -a -t 192.168.10.1:80 -r 192.168.100.2 -m -w 1  //设置192.168.100.2为一个RS服务器,-m代表是开启NAT模式, -w为权重,1为权重为1ipvsadm -a -t 192.168.10.1:80 -r 192.168.100.3 -m -w 2  //设置192.168.100.3为一个RS服务器,-m代表是开启NAT模式, -w为权重,2为权重为2ipvsadm -a -t 192.168.10.1:80 -r 192.168.100.4 -m -w 3  //设置192.168.100.4为一个RS服务器,-m代表是开启NAT模式, -w为权重,3为权重为3注意:权重越大代表被访问到的几率越大,不过为RR轮询的时候是无效的。

配置完Directory之后集群的配置就已经配置完成了。

测试集群是否可以正常访问:

    1、实验环境中先确保iptables防火墙为关闭状态

    2、实验环境中确保selinux为关闭状态或警告状态

    3、在RS服务器中建立http页面,页面内容最好是能区分每个主机的不通内容,例如:192.168.100.2这样一个IP地址的内容

    4、在本地物理机直接访问VIP测试是否能够正常访问,并且是否是正常轮询访问的,如果都正常代表LVS集群已经架设完成

总结:

    LVS负载均衡集群对网络要求较高,如果内部网络架设不完整或者不通都将会导致集群无法正常访问,重点只要所有IP地址都能ping通就能正常架设成功。