LVS+NAT模式教程测试

本教程是根据赶星视频在网上找的教程:

非常感谢这位哥们的分享:

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 http://192.168.1.240
curl: (7) couldn't connect to host
[root@CentOS ~]# curl http://192.168.1.240
web 14
[root@CentOS ~]# curl http://192.168.1.240
curl: (7) couldn't connect to host
由上面结果可以看出,有两次访问返回失败,因为 LVS 负载均衡器只是根据调度算法将请求分发,不检测节点服务器是否可用。

B:启动另两台服务器的 http服务
写入不同的主页文件,在客户端向 VIP发 3次请求结果
[root@CentOS ~]# curl http://192.168.1.240/
web 15
[root@CentOS ~]# curl http://192.168.1.240/

 


web 14
[root@CentOS ~]# curl http://192.168.1.240/
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 http://192.168.1.240;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:还有测试的时候一定不要在负载均衡器上测试,一定在客户端机器上测试。因为在负载均衡机器上测试它会不分发,并且总是访问自己的。

 

 

你可能感兴趣的:(LVS,职场,休闲,NAT模式测试)