cdchenli 发表于 2019-1-4 12:55:24

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.1310.0.0.14   10.0.0.15
  网关:10.0.0.1
  负载均衡器安装和配置
  A:安装 ipvsadm
  # yum install ipvsadm
  # ipvsadm
  # lsmod | grep ip_vs
  ip_vs                  782090
  B:编写脚本
  为了方便启动停止和调试,写成脚本形式,方便管理
  # 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
  要执行此脚本,必需赋可执行权限
  # chmod +x /etc/init.d/lvsnet
  启动脚务测试,因为脚本存放在/etc/init.d/目录下,可以使用service方式来执行
  # service lvsnet start
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddressort Scheduler Flags
  -> RemoteAddressort         Forward Weight ActiveConn InActConn
  TCP192.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 服务
  # service httpd start
  # cat /var/www/html/index.htm
  web 14
  打开一台客户机,提交 3次请求,结果如下:
  # curl http://192.168.1.240
  curl: (7) couldn't connect to host
  # curl http://192.168.1.240
  web 14
  # curl http://192.168.1.240
  curl: (7) couldn't connect to host
  由上面结果可以看出,有两次访问返回失败,因为 LVS 负载均衡器只是根据调度算法将请求分发,不检测节点服务器是否可用。
  B:启动另两台服务器的 http服务
  写入不同的主页文件,在客户端向 VIP发 3次请求结果
  # curl http://192.168.1.240/
  web 15
  # curl http://192.168.1.240/
  web 14
  # curl http://192.168.1.240/
  web 13
  查负载均衡器的信息
  # ipvsadm
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddressort Scheduler Flags
  -> RemoteAddressort         Forward Weight ActiveConn InActConn
  TCP192.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:用脚本发大量请求
  # 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
  以上是部分结果,以下是查看负载均衡器的结果
  # ipvsadm
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddressort Scheduler Flags
  -> RemoteAddressort         Forward Weight ActiveConn InActConn
  TCP192.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:还有测试的时候一定不要在负载均衡器上测试,一定在客户端机器上测试。因为在负载均衡机器上测试它会不分发,并且总是访问自己的。

页: [1]
查看完整版本: LVS+NAT模式教程测试