LVS-NAT(Virtual Server via NAT)原理说明与配置用例

LVS-NAT(Virtual Server via NAT)原理说明与配置用例





由于IPv4中IP地址的不足和一些安全原因,越来越多的网络使用内部IP地址,例如(10.0.0.0/255.0.0.0, 172.16.0.0/255.240.0.0 , 192.168.0.0/255.255.0.0),这些内部IP地址是不能够在互联网上使用的,当它们需要访问互联网或者被互联网访问时,就需要一种网络地址转换技术,即NAT。


什么是NAT?

NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。
如下图所示,NAT网关有2个网络端口,其中公共网络端口的IP地址是统一分配的公共 IP,为202.20.65.5;私有网络端口的IP地址是保留地址为192.168.1.1。私有网中的主机192.168.1.2向公共网中的主机202.20.65.4发送了1个IP包(Dst=202.20.65.4,Src=192.168.1.2)。



当IP包经过NAT网关时,NAT Gateway会将IP包的源IP转换为NAT Gateway的公共IP并转发到公共网,此时IP包(Dst=202.20.65.4,Src=202.20.65.5)中已经不含任何私有网IP的信息。由于IP包的源IP已经被转换成NAT Gateway的公共IP,Web Server发出的响应IP包(Dst= 202.20.65.5,Src=202.20.65.4)将被发送到NAT Gateway。




LVS-NAT是如何工作的?



当用户访问由集群服务器提供的服务时,请求地址为互联网的IP地址(external IP address),IP数据包首先到达负载均衡服务器(load balancer),负载均衡服务器检查数据包的目的地址与端口号,并在转发规则列表中查找对应的真实服务器(N个),然后根据调度算法选择出一个真实的服务器(real server)来提供服务,同时这个连接的信息会被记录在负载均衡服务器的哈希表中(因为要保证后续的TCP数据包被发到同一个真实服务器上),这个数据包的【目的IP地址】与【端口port】会被重写为真实服务器的IP地址与端口,然后这个数据包会被转发到真实服务器上。当这个数据包返回到负载均衡服务器时,数据包的【原IP地址】与【端口prot】会被重写为负载均衡服务器的IP地址与端口,然后返回给用户。



是否感到困惑?让我们用一个实验来理解吧!



实验必须配置成俩个网段,客户端在一个网段, 集群 服务器在一个网段,LVS负载均衡服务器配置俩个网卡,分别在俩个网段。这是因为NAT网络地址转换,真实服务器处理完数据包需要发送给网关,如果客户端与真实服务器在相同网段,那么数据包不会经过网关而是直接返回给客户端,这里一点要注意。

我们假设192.168.10.0/24 为互联网,给客户端使用。 192.168.80.0/24 为企业内网,给集群服务器使用。

客户端的IP地址: 192.168.10.130
LVS负载负载均衡服务器的网卡1:192.168.10.100 
LVS负载负载均衡服务器的网卡2:192.168.80.128 
真实服务器1的IP地址:192.168.80.135,网关必须配置为192.168.80.128 
真实服务器1的IP地址:192.168.80.135,网关必须配置为192.168.80.128d


下图说明了LVS负载均衡服务器的转发规则列表。



所有的请求流量全部到达负载均衡服务器 (192.168.10.100:80),然后由负载均衡服务器分发到真实服务器(192.168.80.135:8080,192.168.80.136:8080)。

数据包的重写过程如下(NAT网络地址转换)

原IP与端口    192.168.10.130:49292   目标IP与端口 192.168.10.100:80
负载均衡服务器会根据算法选择一台真实服务器(例如192.168.80.135:8080 ),然后数据包会被修改为下面的样子,然后转发。
原IP与端口    192.168.10.130:49292  目标IP与端口 192.168.80.135:8080
真实服务器处理完数据包返回给负载均衡服务器。

原IP与端口    192.168.80.135:8080    目标IP与端口  192.168.10.130:49292

接下来数据包的原IP端口地址会被重写为负载均衡服务器的IP与端口,然后发送给客户端。

IP与端口    192.168.10.100:80     目标IP与端口 192.168.10.130:49292


在CentOS上安装与配置LVS负载均衡

1、安装ipvsamd   yum install ipvsadm   可以参考  http://blog.csdn.net/nimasike/article/details/51932674

2、关闭所以机器的防火墙,测试时先关闭,测试通过后在开启固定端口。

3、echo 1 > /proc/sys/net/ipv4/ip_forward   开启负载均衡服务器转发IP数据包的功能,这么些只是暂时开启,重启后会失效,如果希望重启后仍然生效请GOOGOLE。

4、添加LVS负载均衡服务器转发规则列表。
添加一个虚拟服务并制定调度算法     -A 添加  -t IP与端口 -s 调度算法一共8种
ipvsadm -A -t 192.168.10.100:80 -s rr   

添加真实服务器并指定为NAT模式    -a  添加后台真实服务器  -t 加添到哪个组  -r 真实服务器 -m NAT模式 -w 转发权重
ipvsadm -a -t 192.168.10.100:80 -r 192.168.80.135:8080 -m -w 1
ipvsadm -a -t 192.168.10.100:80 -r 192.168.80.136:8080 -m -w 1

5、通过ipvsadm -S -n 查看

6、ipvsadm --help 可以查看帮助

7、在真实服务器部署tomcat  然后通过客户端访问,可以看到负载均衡成功了。

8、ipvsadm -L -n -c  通过命令查看转发情况,可以看到数据被转发给135与136俩太真实服务器了。

猜你喜欢

转载自blog.csdn.net/tiandao321/article/details/80825064
今日推荐