Keepalived+LVS实验

在这里插入图片描述
  
原理

  1. LVS1和LVS2 一个主一个备
  2. LVS1和LVS2和web的网关都是192.168.41.101
  3. LVS1和LVS2 会公用一个虚拟ip 比如192.168.41.111
  4. RS1和RS2 会添加一个IP到lo 添加方法 ip add addr 192.168.41.111 dev lo
  5. 还需要添加一个sorry_server那个直接添加就好。道理跟web一样。
  6. 客户的网关设置成路由的ip

Client [172.16.41.175]

选用桥接模式

vim ifcfg-ens33
TYPE="Ethernet"
NAME="ens33"
BOOTPROTO=static
DEVICE="ens33"
IPADDR=172.16.41.175
PREFIX=16
ONBOOT="yes"
#GATEWAY="172.16.0.1"
GATEWAY=172.16.41.101
route [192.168.41.101/172.16.41.101]

两个网卡 一个是nat一个是桥接

vim ifcfg-ens33
TYPE="Ethernet"
NAME="ens33"
BOOTPROTO=static
DEVICE="ens33"
IPADDR=192.168.41.101
PREFIX=24
ONBOOT="yes"
GATEWAY="192.168.41.2"
DNS1=114.114.114.114
DNS2=8.8.8.8
vim ifcfg-ens37
TYPE="Ethernet"
NAME="ens37"
BOOTPROTO=static
DEVICE="ens37"
ONBOOT="yes"
IPADDR=172.16.41.101
NETMASK=255.255.0.0                     
GATEWAY=172.16.0.1

[外链图片转存失败(img-RSiWrbjD-1565579592395)(A37AE81EFBB84ADDA87E5595B2591893)]

开启转发功能

[root@director ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@director ~]# sysctl -p
net.ipv4.ip_forward = 1
LVS1 [192.168.41.102]

yum install keepalived -y
yum install ipvsadm -y

[root@Centos7 ~]#vim /etc/keepalived/keepalived.conf 

! Configuration File for keepalived                                                                                                                                    

global_defs {
   notification_email {
        root@localhost
   }
   notification_email_from root@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_102
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_iptables
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 41
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    }
        unicast_src_ip 192.168.41.102
        unicast_peer {
        192.168.41.103
        }
    virtual_ipaddress {
        192.168.41.111 dev ens33 label ens33:1
    }
}

virtual_server 192.168.41.111 80 {
    delay_loop 3
    lb_algo wrr
    lb_kind DR
#    persistence_timeout 50
    protocol TCP
    sorry_server 192.168.41.106 80
    real_server 192.168.41.104 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              ststus_code 200
            }
            delay_before_retry 3
            connect_timeout 3
            nb_get_retry 3
        }
}
    real_server 192.168.41.105 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              ststus_code 200
            }
            delay_before_retry 3
            connect_timeout 3
            nb_get_retry 3
        }
}
}

[外链图片转存失败(img-s6aONAaj-1565579592395)(5F38223DF360424BA9048C4C4E9CBD24)]

[root@Centos7 ~]#systemctl start keepalived

LVS2 [192.168.41.103]

yum install keepalived -y
yum install ipvsadm -y

[root@Centos7 ~]#vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived                                                                                                                                                            

global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from root@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_103
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 41
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
        unicast_src_ip 192.168.41.103
        unicast_peer {
        192.168.41.102
        }
    virtual_ipaddress {
        192.168.41.111 dev ens33 label ens33:1
    }
}

virtual_server 192.168.41.111 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
   # persistence_timeout 50
    protocol TCP
    sorry_server 192.168.41.106 80
    real_server 192.168.41.104 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code 200
            }
            
            delay_before_retry 3
            connect_timeout 3                                                                                                                                                                  
            nb_get_retry 3
        }
    }
    real_server 192.168.41.105 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code 200
            }
            
            delay_before_retry 3
            connect_timeout 3
            nb_get_retry 3
        }
        
    }
}

[外链图片转存失败(img-XZQklI2X-1565579592396)(F1E659738208460FB024BA316069BDEC)]

[root@Centos7 ~]#systemctl start keepalived

web1 [192.168.41.104]

按下面的执行或者是运行脚本,重启后lo失效。

[root@Centos7 ~]#yum install httpd -y  
[root@Centos7 ~]#echo web1 > /var/www/html/index.html
[root@Centos7 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@Centos7 ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@Centos7 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@Centos7 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@Centos7 ~]#ip a a 192.168.0.111 dev lo

[外链图片转存失败(img-nAUnPWjJ-1565579592397)(333DE90A424B4980B9C58D1378130FC8)]

web2 [192.168.41.105]

按下面的执行或者是运行脚本

[root@Centos7 ~]#yum install httpd -y  
[root@Centos7 ~]#echo web2 > /var/www/html/index.html
[root@Centos7 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@Centos7 ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@Centos7 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@Centos7 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@Centos7 ~]#ip a a 192.168.0.111 dev lo

[外链图片转存失败(img-AkueK4Vq-1565579592397)(EE485675CD0E4F5CA3AC6DA658C7F455)]

web3 [192.168.41.106]

按下面的执行或者是运行脚本

[root@Centos7 ~]#yum install httpd -y  
[root@Centos7 ~]#echo sorry server > /var/www/html/index.html
[root@Centos7 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@Centos7 ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@Centos7 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@Centos7 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@Centos7 ~]#ip a a 192.168.0.111 dev lo

[外链图片转存失败(img-SbNOvfap-1565579592397)(76EAAEC584CF4C6BA5F9B9F71295B031)]

测试

正常
[外链图片转存失败(img-5ogskpWF-1565579592398)(F5987CF4D7024B2F9F0CE928A6331322)]
两个都down机
[外链图片转存失败(img-FHXlvBVQ-1565579592398)(385FF313BFC3419DB3902091C21BAF5D)]

RS脚本

开机有效加入到 /etc/rc,d/rc.local 里面

#!/bin/bash
vip=192.168.41.111
mask='255.255.255.255'
dev=lo:1
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig $dev $vip netmask $mask #broadcast $vip up
#route add -host $vip dev $dev
;;
stop)
ifconfig $dev down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值