failover and load balancing

Gennaro Vitale genvit at yahoo.it
Wed Jul 2 13:11:03 UTC 2008


Hi all,
I'm trying to configure failover and balancing on two dhcp server.
The version I'm using is 4.0.0a2.

The client sends the dhcp requests to a dhcp relay agent which is configured to contact two servers.

The problem is the following: when I start both servers (the main as first) I see the that both servers receive the dhcp packets and both reply to them.
I've used ethereal to track packets and I saw that for the main server there is the following sequence:
  discover
  offer
  request
  ack
and for the backup the sequence is the following:
  discover
  request
  offer
  ack (not always)
for all those packets, the transaction ID is the same.

Analyzing packets, I saw that all of them has the secs field valorized with 0x000A.

My questions are the following:
Is correct that both servers reply to the same requests?
Can the value of secs disable the balancing ("load balance max seconds" set to 3 on main server)?
Below you can find my config files.
Please, contact me if you need more info.
Thanks.



# dhcpd.conf

authoritative;
one-lease-per-client true;

option domain-name "interbusiness.it";
option domain-name-servers 151.99.0.100, 151.99.125.1;
ddns-update-style ad-hoc;

max-lease-time 120;
default-lease-time 120;

# Define Telsey-STB options
option vendor-specific-info code 43 = string;
#option stb-bzimage code 160 = string;
option option-160 code 160 = string ;
option option-161 code 161 = string ;
option option-162 code 162 = string ;
option option-163 code 163 = string ;
option option-165 code 165 = string ;
option option-166 code 166 = string ;
option option-170 code 170 = string ;
#option stb-boot-method code 165 = string;
#option stb-tftp-server code 166 = string;
#option stb-conf-tftp-server code 168 = string;
option stb-conf-file-name code 169 = string;






#################################  Telsey  #################################

# STB Vendor Class ID
class "telsey-stb-f5" {
    match if(option vendor-class-identifier = "telsey-stb-f5" and
             substring(binary-to-ascii(16, 8, ":", hardware), 2, 6) = "0:3:6f" );

}

# "fisys"
class "telsey-stb-f5-fisys" {
    match if(option vendor-specific-info = "fisys" and
             option vendor-class-identifier = "telsey-stb-f5" and
             substring(binary-to-ascii(16, 8, ":", hardware), 2, 6) = "0:3:6f" );

}


# "mboot"
class "telsey-stb-f5-mboot" {
    match if(option vendor-specific-info = "mboot" and
             option vendor-class-identifier = "telsey-stb-f5" and
             substring(binary-to-ascii(16, 8, ":", hardware), 2, 6) = "0:3:6f" );

    # 1 = multicast: 239.192.75.5
    # 2 = port: 11111
    option vendor-specific-info 1:4:EF:C0:4B:5:2:2:2B:67;

    # option 160
    option option-160 1:4:EF:C0:4B:3:2:2:2B:68;

    # option 162
    option option-162 1:4:EF:C0:4B:3:2:2:2B:6A;

}

# "upgrd"
class "telsey-stb-f5-upgrd" {
    match if(option vendor-specific-info = "upgrd" and
             option vendor-class-identifier = "telsey-stb-f5"  and
             substring(binary-to-ascii(16, 8, ":", hardware), 2, 6) = "0:3:6f" );

    # 1 = multicast: 239.192.75.6
    # 2 = port: 11111
    option vendor-specific-info 1:4:EF:C0:4B:5:2:2:2B:67;

}

#################################  Telsey  #################################




#################################  Pirelli  #################################

class "pirelli-stb" {
    match if(option vendor-class-identifier = "pirelli-stb" and
             (substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:17:c2" or
              substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:1c:a2" or
              substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:13:c8") );
}

# "fisys"
class "pirelli-stb-fisys" {
    match if(option vendor-class-identifier = "pirelli-stb" and
             option vendor-specific-info = "fisys" and
             (substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:17:c2" or
              substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:1c:a2" or
              substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:13:c8") );

}

# "mboot"
class "pirelli-stb-mboot" {
    match if(option vendor-class-identifier = "pirelli-stb" and
             option vendor-specific-info = "mboot" and
             (substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:17:c2" or
              substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:1c:a2" or
              substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:13:c8") );

    # 1 = multicast: 239.192.75.3
    # 2 = port: 11111
    option vendor-specific-info 1:4:EF:C0:4B:3:2:2:2B:67;
}

# "upgrd"
class "pirelli-stb-upgrd" {
    match if(option vendor-class-identifier = "pirelli-stb" and
             option vendor-specific-info = "upgrd" and
             (substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:17:c2" or
              substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:1c:a2" or
              substring(binary-to-ascii(16, 8, ":", hardware), 2, 7) = "0:13:c8") );

    # 1 = multicast: 239.192.75.4
    # 2 = port: 11111
    option vendor-specific-info 1:4:EF:C0:4B:4:2:2:2B:67;

}

#################################  Pirelli  #################################




class "Aminoaminet110fisys" {
        match if(option vendor-class-identifier = "Aminoaminet110fisys" and
                 substring(binary-to-ascii(16, 8, ":", hardware), 2, 5) = "0:2:2" );

}


# failover configuration
include "/opt/dhcpd/etc/failover.dhcpd.conf";



# addresses pool

subnet 10.10.0.0 netmask 255.255.255.0 {
    option routers 10.10.0.190;
}

subnet 82.107.195.32 netmask 255.255.255.240 {

    # default router for all
    option routers 82.107.195.34;

    pool {
        failover peer "dhcp-failover";
        allow members of "telsey-stb-f5";
        allow members of "pirelli-stb";
        allow members of "Aminoaminet110fisys";
        deny dynamic bootp clients;
        range 82.107.195.35 82.107.195.39;
    }

}

# end dhcpd.conf #




############################################
# failover configuration on primary server #
############################################

failover peer "dhcp-failover" {
  primary;
  address 10.10.0.171;
  port 519;
  peer address 10.10.0.173;
  peer port 520;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 600;
  split 128;
  #hba ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
  #    00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00;
  load balance max seconds 3;

}



##############################################
# failover configuration on secondary server #
##############################################

failover peer "dhcp-failover" {
  secondary;
  address 10.10.0.173;
  port 520;
  peer address 10.10.0.171;
  peer port 519;
  max-response-delay 60;
  max-unacked-updates 10;

}




      Scopri il Blog di Yahoo! Mail: trucchi, novità, consigli... e la tua opinione!
http://www.ymailblogit.com/blog/


More information about the dhcp-users mailing list