平台:RedHat Enterprise Linux centos6.3 ipvsadm ipvs
1. NAT模型
NAT模型:地址转换类型,主要是做地址转换,类似于iptables的DNAT类型,它通过多目标地址转换,来实现负载均衡,一个Director最多负载提供10个Real Server主机
2.LVS/NAT 配置
相关服务和名字的定义:     
CIP:客户端IP      
Director:负载调度集群的主机,也简称DR       
VIP:Virtual IP,向外提供服务的IP      
DIP:与内部主机通信的IP,在DR主机上      
RIP:Real Server IP,内部真正提供服务的IP
   
三台服务器一台作为director, 两台作为real server     
Director 有一个外网ip (192.168.31.166) 和一个内网ip(192.168.21.166), 两个real server上只有内网ip(192.168.21.100)和(192.168.21.101) 并且需要把两个real server的内网网关设置为director的内网ip(192.168.21.166)      
两个real server 上都安装httpd: yum install -y nginx      
Director上安装ipvsadm  yum install -y  ipvsadm      
Direcotr 上 vim /usr/local/sbin/lvs_nat.sh //增加:      
#! /bin/bash      
# director 服务器上开启路由转发功能:      
echo 1 > /proc/sys/net/ipv4/ip_forward      
# 关闭icmp的重定向      
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects      
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects      
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects      
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects      
# director 设置nat防火墙      
iptables -t nat -F      
iptables -t nat -X      
iptables -t nat -A POSTROUTING -s 192.168.21.0/24  -j MASQUERADE      
# director设置ipvsadm      
IPVSADM=‘/sbin/ipvsadm‘      
$IPVSADM -C      
$IPVSADM -A -t 192.168.31.166:80 -s lc -p 300      
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.100:80 -m -w 1      
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.101:80 -m -w 1      
直接运行这个脚本就可以完成lvs/nat的配置了:      
/bin/bash /usr/local/sbin/lvs_nat.sh      
通过浏览器测试两台机器上的web内容,为了区分开,我们可以把nginx的默认页修改一下:      
rs1上: echo "rs1rs1" >/usr/share/nginx/html/index.html      
rs2上: echo "rs2rs2" >/usr/share/nginx/html/index.html
三台服务器一台作为director, 两台作为real server     
Director 有一个外网ip (192.168.31.166) 和一个内网ip(192.168.21.166), 两个real server上只有内网ip(192.168.21.100)和(192.168.21.101) 并且需要把两个real server的内网网关设置为director的内网ip(192.168.21.166)      
两个real server 上都安装httpd: yum install -y nginx      
Director上安装ipvsadm  yum install -y  ipvsadm      
Direcotr 上 vim /usr/local/sbin/lvs_nat.sh //增加:      
#! /bin/bash      
# director 服务器上开启路由转发功能:      
echo 1 > /proc/sys/net/ipv4/ip_forward      
# 关闭icmp的重定向      
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects      
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects      
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects      
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects      
# director 设置nat防火墙      
iptables -t nat -F      
iptables -t nat -X      
iptables -t nat -A POSTROUTING -s 192.168.21.0/24  -j MASQUERADE   #类似于SNA 源地址转发,解释为从防火墙出来的源地址作伪装位虚拟虚拟地址VIP       
# director设置ipvsadm      
IPVSADM=‘/sbin/ipvsadm‘      
$IPVSADM -C      
$IPVSADM -A -t 192.168.31.166:80 -s lc -p 300      
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.100:80 -m -w 1      
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.101:80 -m -w 1      
直接运行这个脚本就可以完成lvs/nat的配置了:      
/bin/bash /usr/local/sbin/lvs_nat.sh      
通过浏览器测试两台机器上的web内容,为了区分开,我们可以把nginx的默认页修改一下:      
rs1上: echo "rs1rs1" >/usr/share/nginx/html/index.html      
rs2上: echo "rs2rs2" >/usr/share/nginx/html/index.html
在客户端测试:curl 192.168.31.166 其中192.168.31.166是VIP:Virtual IP,向外提供服务的IP
参考博客:http://chrinux.blog.51cto.com/6466723/1198748
http://www.aminglinux.com/bbs/data/attachment/forum/201406/16/115114l0ez0aga011e901u.jpg       
原文:http://www.cnblogs.com/the-study-of-linux/p/5066094.html