LVS/DR安装配置

 

一、拓扑图

 

 

二、系统环境

类别

ip

系统

内存

负载均衡器

192.168.1.210

centos6.5(64 bit)

4G

Web服务器

192.168.1.170

centos6.5(32 bit)

256M

Web服务器

192.168.1.171

centos6.5(32 bit)

256M

压力测试机

192.168.1.168

centos6.5(32 bit)

512M

 

三、LVS安装配置

Centos6.5可直接通过yum来安装

安装ipvsadm:yum install ipvsadm

安装keepalived: yum install keepalived

安装好后修改keepalived配置文件:vi /etc/keepalived/keepalived.conf

 

! Configuration File for keepalived

 

global_defs {

   notification_email {

     acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.1.169

    }

}

 

virtual_server 192.168.1.169 80 {

    delay_loop 6           //每隔6秒检查realserver状态

    lb_algo rr              //LVS算法

    lb_kind DR             //Direct Route

    persistence_timeout 5    //同一ip的连接5秒内被分配到同一台realserver      

    protocol TCP            //用tcp协议检查realserver状态

 

    real_server 192.168.1.170 80 {

        weight 3            //权重

        TCP_CHECK {

            connect_timeout 3  //3秒无响应超时

            nb_get_retry 3

            delay_before_retry 3

        }

    }

 

    real_server 192.168.1.171 80 {

        weight 3

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

 

    }

 

}

 

 

还需要对系统内核响应参数进行修改(centos6.5默认值可不需要配置):

停止路由转发功能

sysctl –w net.ipv4.ip_forward=0

sysctl –w net.ipv4.conf.all.send_redirects=1

sysctl –w net.ipv4.conf.default.send_redirects=1

sysctl –w net.ipv4.conf.eth0.send_redirects=1           //eth0根据实际情况修改

可以用下面的脚本快速设置

vs.sh

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

sysctl –p >/dev/null 2>&1

该设置会在重启网络服务或者系统重启后失效,需重新配置,也可在/etc/sysctl.conf中直接添加使其永久生效。

 

四、realserver配置

 

停止路由转发

sysctl –w net.ipv4.ip_forward=0

 

忽略arp设置

sysctl –w ipv4.conf.lo.arp_ignore=1

sysctl –w ipv4.conf.all.arp_ignore=1

参数1的意义:只回答目标IP地址是来访网络接口本地地址的ARP查询请求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使eth0收到来自10.1.1.2这样地址发起的对192.168.0.1的查询会回答,而对10.1.1.1 的arp查询不会回应)。

 

设置arp宣告值

sysctl –w ipv4.conf.lo.arp_announce=2

sysctl –w ipv4.conf.all.arp_announce=2

参数2的意义:对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送。

注:lo的两条配置是可以不用的,arp对逻辑接口是没有意义的。

 

添加vip,掩码四个255使其处于一个独立网段,不与外部主机广播

ifconfig lo:0 192.168.1.169 netmask=255.255.255.255 broadcast 192.168.1.169 up

 

添加主机vip路由

route add –host 192.168.1.169 dev lo:0

 

 

这个可以用下面的脚本来快速设置

realserver.sh

#!/bin/bash

VIP=192.168.1.169

. /etc/rc.d/init.d/functions

 

case "$1" in

start)

      ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

      /sbin/route add -host $VIP dev lo:0

      echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

      echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

      echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

      echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

      sysctl -p >/dev/null 2>&1

      echo "RealServer Start OK"

      ;;

stop)

      ifconfig lo:0 down

      route del $VIP >/dev/null 2>&1

      echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

      echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

      echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

      echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

      echo "RealServer Stoped"

      ;;

*)

      echo "Usage: $0 {start|stop}"

      exit 1

esac

exit 0

 

realserver.sh start启动vip绑定

完成后ifconfig查看网卡信息

 

出现这条则表示绑定成功

 

五、功能验证

在170和171两台realserver上配置apache服务,在客户机浏览器中通过虚ip 192.168.1.169来访问其主页,刷新后主页会进行轮询,则说明配置成功。

注:需要将keepalived配置文件的persistence_timeout设置为0才能看见明显的效果。

 

posted @ 2014-04-16 09:14  Verruckt  阅读(360)  评论(0编辑  收藏  举报