站长资讯网
最全最丰富的资讯网站

LVS-NAT模式解析

一、LVS/NAT原理

1. 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP

2. PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链

3.IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP

4. POSTROUTING链通过选路,将数据包发送给Real Server 5. Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP 6. Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为

Virtual Server via Network Address Translation(VS/NAT)

通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

二、NAT模式优缺点

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

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

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

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

三、Lvs-NAT模式流程

NAT模型:地址转换类型,主要是做地址转换,类似于iptables的DNAT类型,它通过多目标地址转换,来实现负载均衡, 一个Director最多负载提供10个Real Server主机

1、client发送request到LVS的VIP上,VIP选择一个Real-server,并记录连接信息到hash表中,然后修改client 的request的目的IP地址为Real-server的地址,将请求发给Real-server;

2、 Real-server收到request包后,发现目的IP是自己的IP,于是处理请求,然后发送reply给LVS;

3、LVS收到reply包后,修改reply包的的源地址为VIP,发送给client;

4、从client来的属于本次连接的包,查hash表,然后发给对应的Real-server。

5、 当client发送完毕,此次连接结束或者连接超时,那么LVS自动从hash表中删除此条记录。

四、LVS-NAT模式下的负载均衡

Load Balance 双网卡:

eth0:172.25.56.1(对外)

eth4:192.168.56.1(对内)

Virtual IP: 172.25.56.1

gateway: 192.168.56.1

server2(RS): 192.168.56.2

server3(RS): 192.168.56.3

1、在server1中:

1)配置网络

ip link set up eth1 #激活eth4网卡

ip addr add 192.168.56.1/24 dev eth4 #添加网络

ip addr #查看网络

2)配置yum仓库

vim /etc/yum.repos.d/rhel-source.repo

添加:

[LoadBalancer]

name=LoadBalancer

baseurl=https://172.25.56.250/rhel6.5/LoadBalancer

gpgcheck=0

3)打开内部路由功能

sysctl -a | grep ip_forward

sysctl -w net.ipv4.ip_forward=1

4)安装ipvsadm

yum install ipvsadm -y

/etc/init.d/ipvsadm start #开启服务

ipvsadm -C #清空策略

ipvsadm -A -t 172.25.56.1:80 -s rr

ipvsadm -a -t 172.25.56.1:80 -r 192.168.56.2:80 -m #给vip添加rip,使用NAT模式

ipvsadm -a -t 172.25.56.1:80 -r 192.168.56.3:80 -m

/etc/init.d/ipvsadm save #保存策略

ipvsadm -ln #查看策略

2、在server2中:

1)配置网关

route add default gw 192.168.56.1 注:NAT工作路径源路经返回,只需要指定网关即可

route -n #查看网关

2)安装apache

yum install httpd -y

vim /var/www/html/index.html

server2

/etc/init.d/httpd start

3、在server3中:

1)配置网关

route add default gw 192.168.56.1 注:NAT工作路径源路经返回,只需要指定网关即可

route -n #查看网关

2)安装apache

yum install httpd -y

vim /var/www/html/index.html

server3

/etc/init.d/httpd start

五、测试

注:物理机ip网段必须与eth0在同一网段,且不能于RS在同一网段,否则会不经过网关直接访问RS

在物理机中执行 for i in {1..10};do curl 172.25.56.1;done ,出现轮询即配置生效

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号