Lvs nat模式全称是Virtual Server via Network Address Translation(VS/NAT),通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。
Lvs nat工作原理图如下
特点:
1,所有的后端服务器和Lvs服务器(调度器)要在同一个网段内
2,后端服务器IP是私有地址,仅用于集群节点之间进行通信
3,Lvs服务器同时处理请求和应答数据包
4,后端服务器的网关要指向Lvs服务器的IP
5,可以实现端口映射
6,后端服务器可以是任意操作系统
7,Lvs服务器很可能成为系统性能瓶颈(请求和返回都要经过Lvs服务器)
配置测试环境:
VMware8.0,三台CentOS5.6虚拟机
服务器配置
c_server 8.8.8.1
d_server0 8.8.8.8(公网ip)
d_server1 192.168.10.1(局域网ip)
r_server1 192.168.10.2(局域网ip)
r_server2 192.168.10.3(局域网ip)
保证c_server和d_server0之间可以相互通信,d_server1,r_server1和r_server2之间可以互相通信,且r_server1和r_server2的网关要指向d_server1(命令:route add default gw 192.168.10.1),这里还需要注意的是,服务器都要关闭防火墙(iptables -L -n;service iptables stop)。
软件安装:
在d_server机器上需要安装ipvsadm,
yum -y install ipvsadm*
创建配置脚本:
vi /root/lvs.sh
#!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward #打开路由转发功能 ipvsadm -C ipvsadm -At 8.8.8.8:80 -s rr ipvsadm -at 8.8.8.8:80 -r 192.168.10.2:80 -m ipvsadm -at 8.8.8.8:80 -r 192.168.10.3:80 -m ipvsadm -L -n
chmod a+x /root/lvs.sh
sh /root/lvs.sh
到此LVS nat模式负载均衡配置完毕!
测试:
关闭d_server上的web服务器,分别在r_server1和r_server2上的web目录下创建两个html文件
echo ‘192.168.10.2‘ > /home/webserver1/index.html
echo ‘192.168.10.3‘ > /home/webserver2/index.html
在c_server的浏览器上输入http://8.8.8.8/index.html,就可以看到效果了!