keepalived外网IP作为VIP可行配置

! Configuration File for keepalived

global_defs {
   router_id LVS1_DEVEL
}

vrrp_instance HA_1 {
    state BACKUP
    interface eno1
    virtual_router_id 51
    priority 90
    advert_int 1
    garp_master_delay 3
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
                }
                virtual_ipaddress {
                        101.132.91.5
                }
                notify /etc/keepalived/arp.sh #notify 表示任何一状态切换时都会调用该脚本,并且该脚本在以上三个脚本执行完成之后进行调用
}

virtual_server 101.132.91.5 80 {
     delay_loop 2
     #lb_algo wrr #带有权重的轮询
     #lb_kind DR
     persistence_timeout 60 #同一IP的连接60秒内被分配到同一台真实服务器
     protocol TCP
     real_server 101.132.91.4  80 {
         weight 3 #权重为3
         notify_down /data/keepalived_shutdown.sh #当mysq服down时,执行此脚本,杀死keepalived实现切换, 自杀脚本.
         TCP_CHECK {
             connect_timeout 10
             nb_get_retry 3
             delay_before_retry 3
             connect_port 80
         }
     }
}


arp.sh内容

# cat /etc/keepalived/arp.sh
#!/bin/bash
VIP=101.132.91.5
GATEWAY=101.132.91.1
arping -I eno1 -c 3 -s $VIP $GATEWAY &>/dev/null

说明:
基本格式 arping -I 发送包的网卡接口 -c 次数 -s 源ip 目的ip
-I interface:设置ping使用的网络接口。
-c count:表示发送指定数量的ARP请求数据包后就停止。如果指定了deadline选项,则arping会等待相同数量的arp响应包,直到超时为止;

-s source:设定arping发送的arp数据包中的SPA字段的值。如果为空,则按下面处理,如果是DAD模式(冲突地址探测),则设置为0.0.0.0,如果是Unsolicited ARP模式(Gratutious ARP)则设置为目标地址,否则从路由表得出;

keepalived_shutdown.sh内容

#!/bin/bash
#kill掉keepalived进程,以防止脑裂问题。
service keepalived stop  #或者pkill keepalived

附件–密码:学号keepalived