keepalived 使用VRRP 虚拟路由冗余协议,默认使用多播方式.

1.一主一备

一主一备方式
### MASTER conf ###
notification_email_from [email protected]
   smtp_server smtp.qq.com
   smtp_connect_timeout 30
   #每个子网keepalived进程唯一,即一个路由器组中的一台路由器
   router_id lb01
   #检查vrrp报文中的所有地址比较耗时,设置此标志的意思是如果接收的到报文和上一个报文来至同一个路由器,则不执行检查。默认是跳过检查
   #vrrp_skip_check_adv_addr
   #严格执行VRRP协议规范,此模式不支持节点单播,引起vip问题的就是这个参数,这行会导致PING不通
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    #心跳,秒
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #keepalived 默认使用多播,如果同一个interface存在多个IP地址,要指定mcast_src_ip
    # mcast_src_ip           #指定多播源ip地址
    # unicast_src_ip 10.0.0.5   #单播的源地址,写本机上的ip即可
    # unicast_peer {
    #    10.0.0.6   #如果有多个主机组成集群,把其它主机ip都写上
    #}
        #设置为不抢夺IP,即master恢复,依旧由backup提示服务
    #nopreempt
    virtual_ipaddress {
        10.0.0.3/24 dev eth0 label eth0:1
   }
}
###---------------------------------------------
### BACKUP conf ###

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server smtp.qq.com
   smtp_connect_timeout 30
   #每个子网keepalived进程唯一,即一个路由器组中的一台路由器
   router_id lb02
   #检查vrrp报文中的所有地址比较耗时,设置此标志的意思是如果接收的到报文和上一个报文来至同一个路由器,则不执行检查。默认是跳过检查
   #vrrp_skip_check_adv_addr
   #严格执行VRRP协议规范,此模式不支持节点单播,引起vip问题的就是这个参数,这行会导致PING不通
   #vrrp_strict

   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    #本机网卡名
    interface eth0
    #实例相同,此行相同
    virtual_router_id 51
    priority 100
    #心跳,秒
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #设置为不抢夺IP,即master恢复,依旧由backup提供服务
    #nopreempt
    virtual_ipaddress {
    10.0.0.3/24 dev eth0 label eth0:1
   }
}

2. 两备无主

修改Master配置, Backup服务器的配置不变。
修改两台服务器的  state 都为BACKUP类型,同时设置实例为 nopreempt  设置为不抢夺VIP,然后先启动A服务器,A服务器会成为MASTER,
然后启动B服务器,由于A的优先级高priority 100 所以B不会抢夺VIP,这时A宕机,B成为MASTER,接着A恢复正常,由于设置了nopreempt 所以A不会抢夺VIP,B继续为MASTER而A为BACKUP。