dhcp cluster fails to issue static lease when partner down for too long

Christ Schlacta lists at aarcane.org
Sun Sep 23 21:17:03 UTC 2012


Here are my two configs.  Additionally, I think it's moderately 
important to note that the system resumed issuing the static lease (for 
host izanami with pxe boot) as soon as the host ns2 was brought up.


master at ns1:~$ cat /etc/dhcp/dhcpd.conf
ddns-update-style interim;
update-static-leases off;

default-lease-time 600;
max-lease-time 3600;

authoritative;

   option space ipxe;
   option ipxe-encap-opts code 175 = encapsulate ipxe;
   option ipxe.priority code 1 = signed integer 8;
   option ipxe.keep-san code 8 = unsigned integer 8;
   option ipxe.skip-san-boot code 9 = unsigned integer 8;
   option ipxe.syslogs code 85 = string;
   option ipxe.cert code 91 = string;
   option ipxe.privkey code 92 = string;
   option ipxe.crosscert code 93 = string;
   option ipxe.no-pxedhcp code 176 = unsigned integer 8;
   option ipxe.bus-id code 177 = string;
   option ipxe.bios-drive code 189 = unsigned integer 8;
   option ipxe.username code 190 = string;
   option ipxe.password code 191 = string;
   option ipxe.reverse-username code 192 = string;
   option ipxe.reverse-password code 193 = string;
   option ipxe.version code 235 = string;
   option iscsi-initiator-iqn code 203 = string;
   # Feature indicators
   option ipxe.pxeext code 16 = unsigned integer 8;
   option ipxe.iscsi code 17 = unsigned integer 8;
   option ipxe.aoe code 18 = unsigned integer 8;
   option ipxe.http code 19 = unsigned integer 8;
   option ipxe.https code 20 = unsigned integer 8;
   option ipxe.tftp code 21 = unsigned integer 8;
   option ipxe.ftp code 22 = unsigned integer 8;
   option ipxe.dns code 23 = unsigned integer 8;
   option ipxe.bzimage code 24 = unsigned integer 8;
   option ipxe.multiboot code 25 = unsigned integer 8;
   option ipxe.slam code 26 = unsigned integer 8;
   option ipxe.srp code 27 = unsigned integer 8;
   option ipxe.nbi code 32 = unsigned integer 8;
   option ipxe.pxe code 33 = unsigned integer 8;
   option ipxe.elf code 34 = unsigned integer 8;
   option ipxe.comboot code 35 = unsigned integer 8;
   option ipxe.efi code 36 = unsigned integer 8;
   option ipxe.fcoe code 37 = unsigned integer 8;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

failover peer "dhcp-failover" {
         primary;
         address 10.0.0.121;
         port 647;
         peer address 10.0.0.122;
         peer port 647;
         max-response-delay 30;
         max-unacked-updates 10;
         load balance max seconds 3;
         mclt 1800;
         split 128;
}

key dhcp {
         algorithm hmac-md5;
         secret Censored
};

#########################################
# Subnets                               #
#########################################

#Main Subnet for Wired and Wireless Clients.
subnet 10.0.0.0 netmask 255.255.255.0 {
         pool {
                 failover peer "dhcp-failover";
                 range 10.0.0.128 10.0.0.250;
         }
         option domain-name "aarcane.info";
         ddns-domainname "aarcane.info";
         option subnet-mask 255.255.255.0;
         option broadcast-address 10.0.0.255;
         option routers 10.0.0.254;
         option domain-name-servers ns1.aarcane.info, ns2.aarcane.info;
         option ntp-servers time.aarcane.info;
}
#Gaming Area Network (Portables, Consoles)
subnet 10.1.0.0 netmask 255.255.255.0 {
         range 10.1.0.128 10.1.0.250;
         option domain-name "gan";

         option subnet-mask 255.255.255.0;
         option broadcast-address 10.1.0.255;
         option routers 10.1.0.254;
         option domain-name-servers ns1.aarcane.info, ns2.aarcane.info;
         option ntp-servers time.aarcane.info;
}

#########################################
# Leases                                #
#########################################

#Servers
host rebirth {
         hardware ethernet 6C:F0:49:C8:6C:70;
         fixed-address rebirth.aarcane.info;
}
host density {
         hardware ethernet 00:1B:21:C8:2E:56;
         fixed-address density.aarcane.info;
}

#Virtual Servers
host ds1 {
         hardware ethernet 52:54:00:2C:E2:70;
         fixed-address ds1.aarcane.info;
}
host ds2 {
         hardware ethernet 52:54:00:3f:42:28;
         fixed-address ds2.aarcane.info;
}
host dm {
         hardware ethernet 52:54:00:BF:67:1C;
         fixed-address dm.aarcane.info;
}
host radius {
         hardware ethernet 52:54:00:BE:B9:1D;
         fixed-address radius.aarcane.info;
}

host mysql {
         hardware ethernet 52:54:00:9A:0B:0F;
         fixed-address mysql.aarcane.info;
}

host www {
         hardware ethernet 52:54:00:1A:E4:87;
         fixed-address www.aarcane.info;
}


#Infrastructure
host routerkrieg {
         hardware ethernet 00:18:39:87:19:97;
         fixed-address routerkrieg.aarcane.info;
}
host unnamed-wrt {
         hardware ethernet 00:14:BF:18:FE:96;
         fixed-address unnamed-wrt.aarcane.info;
}

host wifi0 {
        hardware ethernet 00:15:6D:80:E0:50;
        fixed-address wifi0.aarcane.info;
}

host sw1 {
         hardware ethernet 30:46:9A:16:00:BA;
         fixed-address sw1.aarcane.info;
}

#Other systems
host ichigo {
         hardware ethernet 00:19:B9:80:96:51;
         fixed-address ichigo.aarcane.info;
}

#DirecTV Stuff
host directv1 {
         hardware ethernet 00:26:D9:00:AA:80;
         fixed-address directv1.aarcane.info;
}

#iPXE systems

host izanami {
         #Realtek
         #hardware ethernet BC:AE:C5:74:76:2D;
         #Intel
         hardware ethernet BC:AE:C5:74:7E:F6;
         if exists user-class and option user-class = "iPXE" {
                 filename "";
                 option routers 10.0.0.65;
                 option ipxe.no-pxedhcp 1;
                 #option ipxe.skip-san-boot 1;
                 option ipxe.keep-san 1;
                 option root-path 
"iscsi:density.aarcane.info::::iqn.2007-10.info.aarcane:izanami";
         }
}

#########################################
# Zones                                 #
#########################################

zone 10.in-addr.arpa {
         primary ns1.aarcane.info;
         key dhcp;
}
zone aarcane.info {
         primary ns1.aarcane.info;
         key dhcp;
}

camaster at ns2:~$ cat /etc/dhcp/dhcpd.conf
ddns-update-style interim;
update-static-leases off;

default-lease-time 600;
max-lease-time 3600;

authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

failover peer "dhcp-failover" {
         secondary;
         address 10.0.0.122;
         port 647;
         peer address 10.0.0.121;
         peer port 647;
         max-response-delay 30;
         max-unacked-updates 10;
         load balance max seconds 3;
}

key dhcp {
         algorithm hmac-md5;
         secret Censored
};

#########################################
# Subnets                               #
#########################################

#Main Subnet for Wired and Wireless Clients.
subnet 10.0.0.0 netmask 255.255.255.0 {
         pool {
                 failover peer "dhcp-failover";
                 range 10.0.0.128 10.0.0.250;
         }
         option domain-name "aarcane.info";
         ddns-domainname "aarcane.info";
         option subnet-mask 255.255.255.0;
         option broadcast-address 10.0.0.255;
         option routers 10.0.0.254;
         option domain-name-servers ns1.aarcane.info, ns2.aarcane.info;
         option ntp-servers time.aarcane.info;
}
#Gaming Area Network (Portables, Consoles)
subnet 10.1.0.0 netmask 255.255.255.0 {
         range 10.1.0.128 10.1.0.250;
         option domain-name "gan";

         option subnet-mask 255.255.255.0;
         option broadcast-address 10.1.0.255;
         option routers 10.1.0.254;
         option domain-name-servers ns1.aarcane.info, ns2.aarcane.info;
         option ntp-servers time.aarcane.info;
}

#########################################
# Leases                                #
#########################################

#Servers
host rebirth {
         hardware ethernet 6C:F0:49:C8:6C:70;
         fixed-address rebirth.aarcane.info;
}
host density {
         hardware ethernet 00:1B:21:C8:2E:56;
         fixed-address density.aarcane.info;
}

#Virtual Servers
host ds1 {
         hardware ethernet 52:54:00:2C:E2:70;
         fixed-address ds1.aarcane.info;
}
host ds2 {
         hardware ethernet 52:54:00:3f:42:28;
         fixed-address ds2.aarcane.info;
}
host dm {
         hardware ethernet 52:54:00:BF:67:1C;
         fixed-address dm.aarcane.info;
}
host radius {
         hardware ethernet 52:54:00:BE:B9:1D;
         fixed-address radius.aarcane.info;
}
host mysql {
         hardware ethernet 52:54:00:9A:0B:0F;
         fixed-address mysql.aarcane.info;
}
host www {
         hardware ethernet 52:54:00:1A:E4:87;
         fixed-address www.aarcane.info;
}



#Infrastructure
host routerkrieg {
         hardware ethernet 00:18:39:87:19:97;
         fixed-address routerkrieg.aarcane.info;
}
host unnamed-wrt {
         hardware ethernet 00:14:BF:18:FE:96;
         fixed-address unnamed-wrt.aarcane.info;
}

host wifi0 {
        hardware ethernet 00:15:6D:80:E0:50;
        fixed-address wifi0.aarcane.info;
}

host sw1 {
         hardware ethernet 30:46:9A:16:00:BA;
         fixed-address sw1.aarcane.info;
}

#Other systems
host ichigo {
         hardware ethernet 00:19:B9:80:96:51;
         fixed-address ichigo.aarcane.info;
}

#DirecTV Stuff
host directv1 {
         hardware ethernet 00:26:D9:00:AA:80;
         fixed-address directv1.aarcane.info;
}

#########################################
# Zones                                 #
#########################################

zone 10.in-addr.arpa {
         primary ns1.aarcane.info;
         key dhcp;
}
zone aarcane.info {
         primary ns1.aarcane.info;
         key dhcp;
}


On 9/23/2012 12:12 AM, Simon Hobson wrote:
> Christ Schlacta wrote:
>> so I've got a bunch of static leases configured in my config files
>
> Post your configs
>
>> I believe this is a pretty serious BUG. dhcpd should NEVER refuse or 
>> fail to issue a deterministic lease, one that's either statically 
>> defined, or defined in terms of a dns entry, or similarly 
>> deterministically defined.
>
> Funnily enough, no-one has ever reported such a problem before. Lets 
> see your configs - most "bugs" turn out to be config issues.
>



More information about the dhcp-users mailing list