前面我们了解了关于LVS三种模式(LVS/NAT,LVS/DR,LVS/TUN)的工作原理,以及它们间区别和优势,下面我们逐一介绍关于这三种模式的实例部署,本节主要介绍LVS/NAT实例部署,如下:


LVS/NAT实例部署

如图所示为整体的拓扑图:

wKioL1bUEjPy1efOAACrHcSP91E705.png

一.部署前说明:

(1)系统版本: centos 6.6

(2)角色及ip相关信息:

CIP:192.168.10.13/24
VIP:192.168.10.100/24 (这里VIP的地址为DIR链接外网的ip地址)

DIR:eth0:192.168.1.100/24 Eth1:192.168.10.100/24

Real-server:192.168.1.10/24 和 192.168.1.11/24. 192.168.1.12/24(提供http服务)

二.部署操作:

负载均衡器上配置操作

(1)在DIR上安装ipvsadm软件包以及相关依赖包:

# yum install openssl-devel popt-devel libnl-devel ipvsadm  -y

(2)在DIR上新建一个shell脚本文件,如下操作所示:

# vim /etc/init.d/lvs-nat

脚本内容如下

#!/bin/sh
#
# Startup script handle the initialisation of LVS
# chkconfig: - 28 72
# description: Initialise the Linux Virtual Server for NAT
#
### BEGIN INIT INFO
# Provides: ipvsadm
# Required-Start: $local_fs $network $named
# Required-Stop: $local_fs $remote_fs $network
# Short-Description: Initialise the Linux Virtual Server
# Description: The Linux Virtual Server is a highly scalable and highly
#   available server built on a cluster of real servers, with the load
#   balancer running on Linux.
# description: start LVS of Nat
LOCK=/var/lock/ipvsadm.lock
VIP=192.168.10.100
RIP1=192.168.1.10
RIP2=192.168.1.11
RIP3=192.168.1.12
. /etc/rc.d/init.d/functions
start() {
      PID=`ipvsadm -Ln | grep ${VIP} | wc -l`
     if [ $PID -gt 0 ];
     then
         echo "The LVS-NAT Server is already running !"
     else
         echo "1" >/proc/sys/net/ipv4/ip_forward
         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
         /bin/touch $LOCK
         #Clear IPVS table
         /sbin/ipvsadm -C
         #set LVS
         /sbin/ipvsadm -At $VIP:80 -s rr
         /sbin/ipvsadm -at $VIP:80 -r $RIP1:80 -m -w 1
         /sbin/ipvsadm -at $VIP:80 -r $RIP2:80 -m -w 1
         /sbin/ipvsadm -at $VIP:80 -r $RIP3:80 -m -w 1
         echo "starting LVS-NAT Server is ok!"
     fi
}

stop() {      
        echo "0" >/proc/sys/net/ipv4/ip_forward
        echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects
        echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects
        echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects
        echo "1" >/proc/sys/net/ipv4/conf/eth1/send_redirects
        /sbin/ipvsadm -C
        rm -rf $LOCK
        echo "stopping LVS-NAT server is ok!"
}

status() {
     if [ -e $LOCK ];
     then
         echo "The LVS-NAT Server is already running !"
     else
         echo "The LVS-NAT Server is not running !"
     fi
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        start
        ;;
  status)
        status
        ;;
  *)
        echo "Usage: $1 {start|stop|restart|status}"
        exit 1
esac
exit 0

授权并启动该脚本

# chmod 777 /etc/init.d/lvs-dr

# service lvd-nat start


RS server 上配置操作

(1)分别在每个RIP上安装http服务,并创建测试页,如下分别为RIP上测试页面:

RIP1上的测试页:

wKiom1bX6vXCkRthAADFo0xHL68750.png

RIP2上的测试页:

wKioL1bX65OSFK-0AAC7W7TYPlo206.png

RIP3上的测试页:

wKiom1bX6zPBwiK8AACv-7xwEgU639.png

(2)RIP上关于lvs部分配置:

LVS-NAT 模式的后端机器关于LVS不需要做任何配置.特别需要注意的是:LVS-NAT模式中需要将后端的RS server即RIP的网关统一指向到DIR的内网地址Eth0的ip,即DIR的内网地址充当后端RS server的网关;


三.LVS负载测试:

在客户端上访问:http://vip,这时我们就可以看到如下的页面,此时页面为RIP1的页面

wKioL1bX7ZqyyXYVAACwFFOgTMI568.png

多次刷新页面会分别跳转到RIP2,RIP3上,如下:

wKioL1bX716DxW3sAAB-7GJklrs936.png

wKiom1bX71nSElZUAACAFhL_9Lk972.png

这时我们用命令ipvsadm -Ln -c 可以看到如下链接信息:

wKiom1bX8AKgoicJAAAtNLeU-yc343.png

通过这里我们就可以看到相关lvs链接信息。


总结 : LVS/NAT是所有模式中最方便配置的一种模式,配置时,只需要配置DIR,不需要配置后端RS server 但后端RS server的网关必须为与之直连的网卡地址。