基于NAT的LVS模式负载均衡

一. 基于NAT的LVS模式负载均衡

NAT(Network AddressTranslation)即网络地址转换,其作用是通过数据报头的修改,使得位于企业内部的私有IP地址可以访问外网,以及外部用用户可以访问位于公司内部的私有IP主机。LVS负载调度器可以使用两块网卡配置不同的IP地址,eth0设置为私有IP与内部网络通过交换设备相互连接,eth1设备为外网IP与外部网络联通。

第一步,用户通过互联网DNS服务器解析到公司负载均衡设备上面的外网地址,相对于真实服务器而言,LVS外网IP又称VIP(Virtual IP Address),用户通过访问VIP,即可连接后端的真实服务器(Real Server),而这一切对用户而言都是透明的,用户以为自己访问的就是真实服务器,但他并不知道自己访问的VIP仅仅是一个调度器,也不清楚后端的真实服务器到底在哪里、有多少真实服务器。

第二步,用户将请求发送至172.25.254.100,此时LVS将根据预设的算法选择后端的一台真实服务(172.25.77.1~172.25.77.3),将数据请求包转发给真实服务器,并且在转发之前LVS会修改数据包中的目标地址以及目标端口,目标地址与目标端口将被修改为选出的真实服务器IP地址以及相应的端口。

第三步,真实的服务器将响应数据包返回给LVS调度器,调度器在得到响应的数据包后会将源地址和源端口修改为VIP及调度器相应的端口,修改完成后,由调度器将响应数据包发送回终端用户,另外,由于LVS调度器有一个连接Hash表,该表中会记录连接请求及转发信息,当同一个连接的下一个数据包发送给调度器时,从该Hash表中可以直接找到之前的连接记录,并根据记录信息选出相同的真实服务器及端口信息。

二. 实验环境

基于NAT的LVS模式负载均衡

三. 配置NAT模式的LVS

1.虚拟机server1添加新的网卡eth1,在网卡eth1上配置外网IP:172.25.254.100,配置完成后**网卡。
基于NAT的LVS模式负载均衡
2. 在server1中打开内核的路由功能:vim /etc/sysctl.conf (出于安全考虑,Linux系统默认是禁止数据包转发的。)
基于NAT的LVS模式负载均衡
3.在虚拟机server1上安装ipvsadm(调度器)
ipvsadm是管理集群服务的命令行工具,用于管理LVS的策略规则
基于NAT的LVS模式负载均衡

4.在server1上添加调度策略

ipvsadm -C 		##清空调度策略
ipvsadm -A -t 172.25.254.100:80 -s rr 
ipvsadm -a -t 172.25.254.100:80 -r 172.25.77.2:80 -m 
ipvsadm -a -t 172.25.254.100:80 -r 172.25.77.3:80 -m
ipvsadm -l   	##列出调度策略

基于NAT的LVS模式负载均衡
5.在server2和server3,添加网关,因为NAT模式下数据包的走向是原路返回,要带着返回的数据包经过调度器回到客户端。

route add default gw 172.25.77.1   #给server2和servere3添加网关
/etc/init.d/httpd start           #打开server2和server3后端服务器的httpd

基于NAT的LVS模式负载均衡
基于NAT的LVS模式负载均衡
7.测试:
当访问外网IP(172.25.254.100)时,轮询访问后端服务器server1,server2.
基于NAT的LVS模式负载均衡