LVS 配置详解之NAT

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS 配置详解之NAT相关的知识,希望对你有一定的参考价值。

 

LVS 有3种模式:

    NAT模式、IP TUN模式和DR模式。

 

LVS调度算法分为静态类型和动态类型,共计10种:

rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq

 

常用的调度算法:

固定调度算法:rr,wrr,dh,sh

动态调度算法:wlc,lc,lblc,lblcr

 

算法

说明

rr

轮询算法,它将请求依次分配给不同的rs节点,也就是RS节点中均摊分配。这种算法简单,但只适合于RS节点处理性能差不多的情况

wrr

加权轮训调度,它将依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。

Wlc

加权最小连接数调度,假设各台RS的全职依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS

Dh

目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得需要的RS

SH

源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS

Lc

最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS.

Lblc

基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

LVS调度算法的生产环境选型:

1、一般的网络服务,如http,mail,mysql等常用的LVS调度算法为:

        a.基本轮询调度rr

        b.加权最小连接调度wlc

        c.加权轮询调度wrc

2、基于局部性的最小连接lblc和带复制的给予局部性最小连接lblcr主要适用于web cache和DB cache

3、源地址散列调度SH和目标地址散列调度DH可以结合使用在防火墙集群中,可以保证整个系统的出入口唯一。

实际适用中这些算法的适用范围很多,工作中最好参考内核中的连接调度算法的实现原理,然后根据具体的业务需求合理的选型。

 

 

 

LVS Nat模式

这个是通过网络地址转换的方法来实现调度的。首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),这样真实服务器(RS)就能够接收到客户的请求数据包了。真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器。)把响应后的数据包发送给LB,LB再接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

调度过程IP包详细图:

技术分享

原理图简述:

       1)客户端请求数据,目标IP为VIP

       2)请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(此RIP地址是根据调度算法得出的。)并在连接HASH表中记录下这个连接。

       3)数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver的网关必须是LB,然后将数据返回给LB服务器。

       4)收到RS的返回后的数据,根据连接HASH表修改源地址VIP&目标地址CIP,及对应端口80.然后数据就从LB出发到达客户端。

       5)客户端收到的就只能看到VIP\DIP信息。

 

NAT模式优缺点:

      1、NAT技术将请求的报文和响应的报文都需要通过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多之能10-20台节点

     2、只需要在LB上配置一个公网IP地址就可以了。

     3、每台内部的节点服务器的网关地址必须是调度器LB的内网地址。

     4、NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。

 

实验环境图:

 

技术分享

其中LVS需要2块网卡:eth0和eth1,eth1与真实服务器处在同一网段,真实服务器的网关需指向LVS的内网卡:eth1。

LVS配置:

     # yum install -y ipvsadm

     # modprobe ip_vs                            #加载IPVS模块

     # lsmod |grep ip_vs

     # echo 1 >/proc/sys/net/ipv4/ip_forward      #开启IP转发模式

     # ipvsadm -C

     # ipvsadm -At 10.6.2.193:80 -s rr

     # ipvsadm -at 10.6.2.193:80 -r 192.168.1.2:80 -m

     # ipvsadm -at 10.6.2.193:80 -r 192.168.1.3:80 -m

     # ipvsadm -Ln

 

在Real-Server上做如下配置:

     # route add default gw 192.168.1.1

 

以上是关于LVS 配置详解之NAT的主要内容,如果未能解决你的问题,请参考以下文章

LVS实现负载均衡安装配置详解

负载均衡之LVS-NAT LVS-DR模型详解

搭建:LVS+Keepalived高可用Web服务群集环境

LVS 负载均衡群集详解地址转换模式(LVS-NAT)案例详解

LVS负载均衡之NAT模式原理及配置详细流程

LVS负载均衡之LVS-NAT实例部署(配置篇)