Difference between revisions of "Keepalived"

Line 106: Line 106:
  
 
  #! /bin/sh
 
  #! /bin/sh
 
+
 
  set -x
 
  set -x
 
+
 
  IP=10.20.30.77
 
  IP=10.20.30.77
 
+
 
  echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
 
  echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
 
  echo 1 > /proc/sys/net/ipv4/ip_forward
 
  echo 1 > /proc/sys/net/ipv4/ip_forward
 
+
 
  echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
 
  echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
 
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
 
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
 
  echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
 
  echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
 
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
 
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
 
+
 
  /sbin/ifconfig lo:0 $IP netmask 255.255.255.255 broadcast $IP up
 
  /sbin/ifconfig lo:0 $IP netmask 255.255.255.255 broadcast $IP up
 
  /sbin/route add -host $IP dev lo:0
 
  /sbin/route add -host $IP dev lo:0

Revision as of 18:42, 4 November 2009

Directors setup

test1:~# apt-get install keepalived 
dpkg-reconfigure ipvsadm

answer Yes, Backup

global_defs {
    router_id OX
}

vrrp_sync_group OX_GROUP {
    group {
        OX_GOUP
    }
}

vrrp_instance OX_VRRP {
    state BACKUP
    interface eth0
    garp_master_delay 10
    virtual_router_id 10
    priority 101
    nopreempt
    advert_int 1
    authentication {
        auth_type AH   # Simple 'PASS' can use
        auth_pass 1234 # example password '1234' 
    }
    virtual_ipaddress {
        10.20.30.77/24 brd 10.20.30.255 dev eth0 # virtual service ip 10.20.30.67
    }
    virtual_ipaddress_excluded {
    }
}

virtual_server_group OX_HTTP {
        10.20.30.77 80         # virtual ip and port 80
}

virtual_server_group OX_OL_PUSH {
        10.20.30.77 44335      # VIP VPORT
}

virtual_server group OX_WEB {
    delay_loop 3
    lvs_sched  rr
    lvs_method DR
    protocol   TCP
    virtualhost 10.20.30.77

    real_server 10.20.30.123 80 {
        weight 1
        inhibit_on_failure
        HTTP_GET {
            url {
                path /servlet/TestServlet
                status_code 200
            } 
            connect_port 80
            connect_timeout 10
        }
    }

    real_server 10.20.30.321 80 {
        weight 1
        inhibit_on_failure
        HTTP_GET {
            url {
                path /servlet/TestServlet
                status_code 200
            }
            connect_port 80
            connect_timeout 10
        }
    } 
}

virtual_server group OX_OL_PUSH {
    delay_loop 3
    lvs_sched  rr
    lvs_method DR
    protocol   UDP

    real_server 10.20.30.123 44335 {
        weight 1
        inhibit_on_failure
	  TCP_CHECK {
                 connect_port 9999
		  connect_timeout 5
        }
    }

    real_server 10.20.30.321 44335 {
        weight 1
        inhibit_on_failure
        TCP_CHECK {
                 connect_port 9999
		  connect_timeout 5
        }
    }
}


Real Servers setup

#! /bin/sh

set -x

IP=10.20.30.77

echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
echo 1 > /proc/sys/net/ipv4/ip_forward

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

/sbin/ifconfig lo:0 $IP netmask 255.255.255.255 broadcast $IP up
/sbin/route add -host $IP dev lo:0