Notes‎ > ‎

Keepalived

Configuration to implement simple VRRP with Keepalived.

Class B Network 192.168.0.0

ISP
|         -eth0   192.168.2.254 
|-lb0--[
|         -eth0:0 192.168.255.1 VIP
|
|         -eth0   192.168.3.254
|-lb1--[
          -eth0:0 192.168.255.1 VIP

! Configuration File for keepalived

global_defs {
   notification_email {
     james@callfire.com
   }
   notification_email_from keepalived@callfire.com
   smtp_server 192.168.255.1
   smtp_connect_timeout 30
   router_id CORESITE-director1
}

vrrp_script chk_haproxy {           # Requires keepalived-1.1.13
    script "killall -0 haproxy"     # cheaper than pidof
    interval 2                      # check every 2 seconds
    weight 2                        # add 2 points of prio if OK
}

vrrp_instance VIRTUAL_ROUTER1 {
    interface eth0
    state MASTER
    virtual_router_id 51
    priority 101 # highest number is your master
    garp_master_delay 2
    advert_int 1
    smtp_alert
    virtual_ipaddress {
        192.168.255.1/16 label eth0:0
    }
    track_script {
        chk_haproxy
    }
}

I then setup nat with iptables on both lb0 and lb1.  This will give you redundant nat gateways on your subnet.

[troubleshooting]
$ ip addr list eth0

References:
http://serverfault.com/questions/170515/connection-sync-suggestions-with-haproxy-and-keepalived
http://haproxy.1wt.eu/download/1.3/doc/architecture.txt
Comments