本教程是根据赶星视频在网上找的教程:
非常感谢这位哥们的分享:
http://bbs.chinaunix.net/thread-3578707-1-1.html
配置过程如下:望高手指点 这就是传说中的 LVS-NAT模式吗 ? 我做对了吗 ?心里没底啊 ? 生产环境也是这么搞的吗 ?求正解!!!谢谢!!!
=========================== Lvs-Nat模式是做地址转换,所以调度器(Director Server)必需要拥要两块物理网卡。 2、环境描述 负载均衡器 eth0:192.168.1.250 eth1:10.0.0.1 VIP 192.168.1.240 节点服务器 RIP 10.0.0.13 10.0.0.14 10.0.0.15 网关:10.0.0.1 负载均衡器安装和配置 A:安装 ipvsadm [root@localhost ~]# yum install ipvsadm [root@localhost ~]# ipvsadm [root@localhost ~]# lsmod | grep ip_vs ip_vs 78209 0 B:编写脚本 为了方便启动停止和调试,写成脚本形式,方便管理 [root@localhost ~]# vi /etc/init.d/lvsnet #!/bin/bash #LVS script NAT VIP=192.168.1.240 RIP1=10.0.0.13 RIP2=10.0.0.14 RIP3=10.0.0.15 case "$1" in start) echo "1">/proc/sys/net/ipv4/ip_forward /sbin/iptables -F /sbin/ipvsadm -C /sbin/ifconfig eth0:0 $VIP netmask 255.255.255.0 up /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -m /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -m /sbin/ipvsadm -a -t $VIP:80 -r $RIP3 -m /sbin/ipvsadm echo "start LVS of DirectorServer NAT" ;; stop) echo "0" > /proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig eth0:0 down echo "stop LVS of DirectorServer NAT" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac 要执行此脚本,必需赋可执行权限 [root@localhost ~]# chmod +x /etc/init.d/lvsnet 启动脚务测试,因为脚本存放在/etc/init.d/目录下,可以使用service方式来执行 [root@localhost ~]# service lvsnet start IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddressort Scheduler Flags -> RemoteAddressort Forward Weight ActiveConn InActConn TCP 192.168.1.240:http rr -> 10.0.0.15:http Masq 1 0 0 -> 10.0.0.14:http Masq 1 0 0 -> 10.0.0.13:http Masq 1 0 0 4、节点服务器配置 节点服务器不需要安装任何软件, 只需要把网关地址设为负载均衡器的 eth1 的 ip(10.0.0.1)。 如果以 NAT 方式做高可用性集群,eth1也是一个漂移 IP,可以使用虚拟 IP。如在配置脚本中加入一条VIP2=10.0.0.1 把这个 VIP2绑定到 eth1网卡上。 5、打开客户机访问测试 VIP:192.168.1.240 A:启服 10.0.0.14的 http 服务 [root@localhost ~]# service httpd start [root@localhost ~]# cat /var/www/html/index.htm web 14 打开一台客户机,提交 3次请求,结果如下: [root@CentOS ~]# curl curl: (7) couldn't connect to host [root@CentOS ~]# curl web 14 [root@CentOS ~]# curl curl: (7) couldn't connect to host 由上面结果可以看出,有两次访问返回失败,因为 LVS 负载均衡器只是根据调度算法将请求分发,不检测节点服务器是否可用。 B:启动另两台服务器的 http服务 写入不同的主页文件,在客户端向 VIP发 3次请求结果 [root@CentOS ~]# curl web 15 [root@CentOS ~]# curlweb 14 [root@CentOS ~]# curl web 13 查负载均衡器的信息 [root@localhost ~]# ipvsadm IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddressort Scheduler Flags -> RemoteAddressort Forward Weight ActiveConn InActConn TCP 192.168.1.240:http rr -> 10.0.0.15:http Masq 1 0 1 -> 10.0.0.14:http Masq 1 0 1 -> 10.0.0.13:http Masq 1 0 1 C:用脚本发大量请求 [root@CentOS ~]# for i in $(seq 1 999);do curl ;done web 15 web 14 web 13 web 15 web 14 web 13 以上是部分结果,以下是查看负载均衡器的结果 [root@localhost ~]# ipvsadm IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddressort Scheduler Flags -> RemoteAddressort Forward Weight ActiveConn InActConn TCP 192.168.1.240:http rr -> 10.0.0.15:http Masq 1 0 333 -> 10.0.0.14:http Masq 1 0 333 -> 10.0.0.13:http Masq 1 0 333 由以上结果可以看出,发送 999次请求被平均分发到三台真实主机上。
========================================================================
根据赶星的视频和这篇文章的教程,做实验,痛苦三天,一切按照教程做,但是地址就是不分发,总是访问自己,节点服务器都设置了网关为负载服务器的IP。
最后找出原因;
1:内网IP,也就是上面例子:10.0.0.1这个IP开始使用的NAT模式,不行,后来修改为桥接模式bridged,即可。
2:还有测试的时候一定不要在负载均衡器上测试,一定在客户端机器上测试。因为在负载均衡机器上测试它会不分发,并且总是访问自己的。