LVS | LVS 负载均衡原理(NAT模式)(二)
LVS-NAT模式:
NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(源地址NAT)。如果把NAT的 过程稍微变化,就可以 成为负载均衡的一种方式。
原理其实就是把从客户端发来的IP包的IP头目的地址在DIR上换成其中一台RealServer的IP地址并发至此 RealServer,而RealServer则在处理完成后把数据经过DIR主机发回给客户端,DIR在这个时候再把数据包的源IP地址改为DIR接口 上的IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过DIR。
LVS-NAT模式请求说明图 :
整个请求过程示意:
- client发送request到LVS的VIP上,VIP根据负载算法选择一个Real-server,并记录连接信息到hash表中,然后修改client的request的目的IP地址为Real-server的地址,将请求发给Real-server;
- Real-server收到request包后,发现目的IP是自己的IP,于是处理请求,然后发送reply给LVS;
- LVS收到reply包后,修改reply包的的源地址为VIP,发送给client;
- 从client来的属于本次连接的包,查hash表,然后发给对应的Real-server;
- 当client发送完毕,此次连接结束或者连接超时,那么LVS自动从hash表中删除此条记录。
实验环境:
Direcotr:
Server1(调度器):双网卡:eth0(对外):172.25.254.10 eth1(对内):172.25.254.1
Realserver:
Server2(服务器):172.25.254.2
Server3(服务器):172.25.254.3
Client:172.25.254.96
server1:
[1] 添加一块网卡:172.25.254.10
[2] 开启路由机制:
[[email protected] ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[[email protected] ~]# sysctl -p
[3] 加载NAT模块:
[[email protected] ~]# modprobe iptable_nat
[4] 设置策略:
[[email protected] ~]# ipvsadm -A -t 172.25.254.10:80 -s rr ## rr 为轮询算法
[[email protected] ~]# ipvsadm -a -t 172.25.254.10:80 -r 172.25.254.2:80 -m ##-m 表示nat
[[email protected] ~]# ipvsadm -a -t 172.25.254.10:80 -r 172.25.254.3:80 -m
[5] 保存策略:
[[email protected] ~]# /etc/init.d/ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]
server2:
[1] 配置ifcfg-eth0:
[2] 重启服务:
[[email protected] network-scripts]# /etc/init.d/network start
[[email protected] network-scripts]# /etc/init.d/httpd start
server3:
[1] 配置ifcfg-eth0:
[2] 重启服务:
[[email protected] network-scripts]# /etc/init.d/network start
[[email protected] network-scripts]# /etc/init.d/httpd start
在客户端测试: