uid lease is duplicate / multiple DHCPOFFER

Wim Vandersmissen wim.vandersmissen at icts.kuleuven.be
Thu Apr 29 13:22:42 UTC 2010


Hi,

We recently migrated our old dhcp environment to a 4.1.1 failover one.
After the migration we got users complaining that they got new ip addresses and
the logs are showing "uid lease x.x.x.x for client aa:bb:cc:dd:ee:ff is 
duplicate on x.x.x.x/y" on those users.

Sometimes the dhcpservers know that they should load balance to the peer and 
only send one DHCPOFFER and sometimes they respond with two DHCPOFFERS 
containing two different IP addresses.

I used wireshark to debug the DHCPDISCOVER 
    - the client 'secs' field (0) or sometimes (3) or (5) is below our 
	'load-balance-max-secs'  (6)
    - the clients 'client address field' is also 0.0.0.0

Some more information about the failover:
    - we're using 'split 128' for the load-balancing 
    - we're not using any reservations.
    - we're using 'one-lease-per-client'
    - both partners are in normal state (00:00:00:02)
    - MCLT = 1800
    - for this example the max-lease-time = 900

In the example below you can see that at 09h35 it works correctly, load balanced 
to peer.. but at 21h40 both servers responds with different DHCPOFFERS and 
different ip's which cause the duplicate message and a possible different ip for
the client (in this case it takes the same, but in other cases it takes the other
one)

We're seeing this behaviour on around 10% of our users (unique mac addresses).
 
cat /var/log/all|grep "Apr 29"|grep DHCPDISCOVER|awk '{print $8}'|sort|uniq|wc
  10912   10912  196416
cat /var/log/all|grep "Apr 29"|grep duplicate|awk '{print $11}'|sort|uniq|wc
   1160    1160   20880

Disabling the secondary dhcp server solves the duplicate messages and obviously
also the two different DHCPOFFERS but also removes the failover, so it's not 
really an option.

Any clues/ideas what I can do/check next ?

Thanks,

Wim


-----------------------
09:35:44 dhcp1-l dhcpd: DHCPDISCOVER from 00:00:00:aa:bb:cc via 10.0.14.254: load balance to peer dhcp-failover
09:35:44 dhcp2-l dhcpd: DHCPDISCOVER from 00:00:00:aa:bb:cc via 10.0.14.254
09:35:45 dhcp2-l dhcpd: DHCPOFFER on 10.0.14.164 to 00:00:00:aa:bb:cc (Jarri) via 10.0.14.254
09:35:45 dhcp1-l dhcpd: DHCPREQUEST for 10.0.14.164 (134.58.127.6) from 00:00:00:aa:bb:cc via 10.0.14.254: lease owned by peer
09:35:45 dhcp2-l dhcpd: DHCPREQUEST for 10.0.14.164 (134.58.127.6) from 00:00:00:aa:bb:cc (Jarri) via 10.0.14.254
09:35:45 dhcp2-l dhcpd: DHCPACK on 10.0.14.164 to 00:00:00:aa:bb:cc (Jarri) via 10.0.14.254
09:36:25 dhcp2-l dhcpd: DHCPACK to 10.0.14.164 (00:00:00:aa:bb:cc) via eth1
09:36:25 dhcp1-l dhcpd: DHCPACK to 10.0.14.164 (00:00:00:aa:bb:cc) via eth1

---
21:40:06 dhcp1-l dhcpd: DHCPDISCOVER from 00:00:00:aa:bb:cc via 10.0.14.254
21:40:06 dhcp2-l dhcpd: DHCPDISCOVER from 00:00:00:aa:bb:cc via 10.0.14.254
21:40:07 dhcp2-l dhcpd: DHCPOFFER on 10.0.14.164 to 00:00:00:aa:bb:cc (Jarri) via 10.0.14.254
21:40:07 dhcp1-l dhcpd: DHCPOFFER on 10.0.14.179 to 00:00:00:aa:bb:cc (Jarri) via 10.0.14.254
21:40:07 dhcp1-l dhcpd: uid lease 10.0.14.179 for client 00:00:00:aa:bb:cc is duplicate on 10.0.14.0/24
21:40:07 dhcp1-l dhcpd: DHCPREQUEST for 10.0.14.164 (134.58.127.6) from 00:00:00:aa:bb:cc via 10.0.14.254: lease owned by peer
21:40:07 dhcp2-l dhcpd: DHCPREQUEST for 10.0.14.164 (134.58.127.6) from 00:00:00:aa:bb:cc (Jarri) via 10.0.14.254
21:40:07 dhcp2-l dhcpd: DHCPACK on 10.0.14.164 to 00:00:00:aa:bb:cc (Jarri) via 10.0.14.254
21:40:12 dhcp1-l dhcpd: DHCPACK to 10.0.14.164 (00:00:00:aa:bb:cc) via eth1
21:40:12 dhcp2-l dhcpd: DHCPACK to 10.0.14.164 (00:00:00:aa:bb:cc




More information about the dhcp-users mailing list