LVS+keepalived部署

地址环境规划

DR1(主):192.168.100.66
DR2(备):192.168.100.77

web1:192.168.100.88
web2:192.168.100.99

vip:192.168.100.100

client:192.168.100.200

centos7-1——DR1调度服务器

1、安装ipvsadm、keepalived软件包

yum install ipvsadm keepalived -y

2、网卡模式:仅主机
固定IP:192.168.100.66

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

IPADDR=192.168.100.66
NETMASK=255.255.255.0
GATEWAY=192.168.100.1

service network restart

vim /etc/sysctl.conf
#添加路由转发功能
net.ipv4.ip_forward=1
#proc响应关闭重定向功能
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0

sysctl -p               //生效

3、构建虚拟网卡

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens33:0

vim ifcfg-ens33:0
//原有内容删掉
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.100
NETWASK=255.255.255.0

ifup ens33:0              //启用虚拟网卡

4、添加服务启动脚本

cd /etc/init.d/

vim dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.100
RIP1=192.168.100.88
RIP2=192.168.100.99
case "$1" in
start)
        /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
        systemctl start ipvsadm
        /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
        /sbin/route add -host $VIP dev ens33:0
        /sbin/ipvsadm -A -t $VIP:80 -s rr
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
        echo "ipvsadm starting------------------[ok]"
        ;;
        stop)
        /sbin/ipvsadm -C
        systemctl stop ipvsadm
        ifconfig ens33:0 down
        route del $VIP
        echo "ipvsamd stoped--------------------[ok]"
        ;;
        status)
        if [ ! -e ar/lock/subsys/ipvsadm ];then
        echo "ipvsadm stoped--------------------"
        exit 1
                else
                echo "ipvsamd Runing-------------[ok]"
        fi
        ;;
        *)
        echo "Usage: $0 {start|stop|status}"
        exit 1
        esac
        exit 0
                                                                     
chmod +x dr.sh                    //赋予执行权限

service dr.sh start                    //执行脚本

systemctl status ipvsadm             //查看服务开启状态

centos7-2——DR2调度服务器

1、安装ipvsdam、keepalived软件包

yum install ipvsdam keepalived -y

2、网卡模式:仅主机
固定IP:192.168.100.77

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

IPADDR=192.168.100.77
NETMASK=255.255.255.0
GATEWAY=192.168.100.1

3、构建虚拟网卡

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens33:0

vim ifcfg-ens33:0
//原有内容删掉
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.100
NETWASK=255.255.255.0

ifup ens33:0              //启用虚拟网卡

4、添加服务启动脚本

cd /etc/init.d/

vim dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.100
RIP1=192.168.100.88
RIP2=192.168.100.99
case "$1" in
start)
        /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
        systemctl start ipvsadm
        /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
        /sbin/route add -host $VIP dev ens33:0
        /sbin/ipvsadm -A -t $VIP:80 -s rr
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
        echo "ipvsadm starting------------------[ok]"
        ;;
        stop)
        /sbin/ipvsadm -C
        systemctl stop ipvsadm
        ifconfig ens33:0 down
        route del $VIP
        echo "ipvsamd stoped--------------------[ok]"
        ;;
stop)
       /sbin/ipvsadm -C
        systemctl stop ipvsadm
        ifconfig ens33:0 down
        route del $VIP
        echo "ipvsamd stoped--------------------[ok]"
        ;;
        status)
        if [ ! -e ar/lock/subsys/ipvsadm ];then
        echo "ipvsadm stoped--------------------"
        exit 1
                else
                echo "ipvsamd Runing-------------[ok]"
        fi
        ;;
        *)
        echo "Usage: $0 {start|stop|status}"
        exit 1
        esac
        exit 0
                                                                     
chmod +x dr.sh

service dr.sh start

systemctl status ipvsadm             //查看服务开启状态

centos7-3——web1节点服务器

1、安装httpd软件包

yum install httpd -y

2、网卡模式:仅主机
固定IP:192.168.100.88

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

IPADDR=192.168.100.88
NETMASK=255.255.255.0
GATEWAY=192.168.100.1

service network restart                    //重启网卡
systemctl stop firewalld.service        //关闭防火墙
setenforce 0

3、开启服务并查看开启状态

systemctl start httpd.service
systemctl status httpd.service

4、写HTML网页

cd /var/www/html/
echo "this is accp web" > index.html

5、构建虚拟网卡

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

DEVICE=Lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.0
ONBOOT=yes

cd /etc/init.d/
vim web.sh               //控制服务启动脚本

#!/bin/bash
VIP=192.168.100.100
        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/lo/arp_ignore
        echo "2" > /proc/sys/net/ipv4/conf/lo/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

chmod +x web.sh

service web.sh start

ifup lo:0      //启用立刻中断

在web2节点服务器上查看IP,可以看到虚拟IP就说明没问题:ifconfig

firefox "http://127.0.0.1/" &         //直接访问网站

service web.sh stop

service web.sh start       //建议重启服务

centos7-4——web2节点服务器

安装httpd软件包

yum install httpd -y

网卡模式:仅主机
固定IP:192.168.100.99

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

IPADDR=192.168.100.99
NETMASK=255.255.255.0
GATEWAY=192.168.100.1

service network restart                    //重启网卡
systemctl stop firewalld.service        //关闭防火墙
setenforce 0

systemctl start httpd.service
systemctl status httpd.service

cd /var/www/html/
echo "this is benet web" > index.html

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

DEVICE=Lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.0
ONBOOT=yes

cd /etc/init.d/
vim web.sh               //控制服务启动脚本

#!/bin/bash
VIP=192.168.100.100
        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/lo/arp_ignore
        echo "2" > /proc/sys/net/ipv4/conf/lo/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

chmod +x web.sh

service web.sh start

ifup lo:0      //启用立刻中断

firefox "http://127.0.0.1/" &         //直接访问网站

service web.sh stop

service web.sh start       //建议重启服务

测试

(1)centos7-1——DR1调度服务器

systemctl stop firewalld.service        //关闭防火墙
setenforce 0

(2)win7

仅主机模式

固定IP:192.168.100.200

网关:192.168.100.100

ping 192.168.100.100             //保证能通

http://192.168.100.100/

this is benet web     和       this is accp web

表明LVS没问题

keepalived部署(两台调度服务器上配置一样)

cd /etc/keepalived/

vim keepalived.conf

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1                         //指向本地
   smtp_connect_timeout 30
   router_id LVS_01                    //指定名称,备份服务器不同名称,另一台为02
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER                     //备份服务器是BACKUP  
    interface eth0
    virtual_router_id 10              //组号相同
    priority 100                          //优先级,备小于主
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass abc123              //验证密码
    }
    virtual_ipaddress {
        192.168.100.100               //虚拟IP
    }
}

virtual_server 192.168.100.100 80 {          //虚拟IP及端口号
    delay_loop 6
    lb_algo rr
    lb_kind DR                   //改为DR
    persistence_timeout 50
    protocol TCP

    real_server 192.168.100.88 80 {              //节点服务器1
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.100.99 80 {              //节点服务器2
        weight 1
        TCP_CHECK {                     //修改为TCP_CHECK
            connect_port 80              //添加端口
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

systemctl start keepalived.service
systemctl status keepalived.service

ip addr show dev ens33:0               //查看虚拟网卡

测试

在win7上:ping 192.168.100.100


down掉一台调度服务器:ifdown ens33:0
如果在win7上还能通,就说明另一台调度服务器去接替它工作,就达到目的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值