RESUBMIT - Problems running multiple dhclients at the same time

Bob Schatz bschatz at yahoo.com
Tue Jun 8 20:20:13 UTC 2010


(Sorry - resubmitting this since the first one had mangled formatting)

We are having problems running multiple dhclients from the same box and same interface at the same time and could not find a solution on the FAQ.

We are using version 4.1.1 of the DHCP server and dhclient and we are only running one DHCP server.

The problem is that all 6 dhclients end up with the same IP address even though we specify a different dhcp-client-identifier for each dhclient.  This is very reproducible.

Are we doing something wrong?

The reproduction case is:

1.   Create 6 dhclient.config files where each has these contents:

    request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, host-name,
    netbios-name-servers, netbios-scope, ntp-servers;

    pseudo "eth0-vcsX" "eth0" {
      send dhcp-client-identifier "00:30:48:bf:85:86-eth0-vcsX";
      script "/sbin/dhclient-script";
   }
   timeout 15;

   where vcsX is one of vcs1, vcs2, etc.

   For example, the file /tmp/dhclient.vcs1.config would have the contents:


          request subnet-mask, broadcast-address, time-offset, routers,
         domain-name, domain-name-servers, host-name,
         netbios-name-servers, netbios-scope, ntp-servers;

         pseudo "eth0-vcs1" "eth0" {
            send dhcp-client-identifier "00:30:48:bf:85:86-eth0-vcs1";
          script "/sbin/dhclient-script";
         }
         timeout 15;

2.    Run 6 dhclients in parallel in a loop with:

       # for i in 1 2 3 4 5 6
       do
             dhclient –pf /tmp/pid.$i –lf /tmp/dhclient.$i.lease –cf /tmp/dhclient.$i.config eth0 &
       done
 
3.    What you will see is that all lease files will have the same fixed-lease IP address.


We see these messages on the DHCP server:

Jun  7 17:54:11 mgraid-qa2-1 dhcpd: DHCPDISCOVER from 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:11 mgraid-qa2-1 dhcpd: Abandoning IP address 10.4.253.20: pinged before offer
Jun  7 17:54:15 mgraid-qa2-1 dhcpd: DHCPDISCOVER from 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:16 mgraid-qa2-1 dhcpd: DHCPOFFER on 10.4.253.21 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:16 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.21 (10.4.253.10) from 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:16 mgraid-qa2-1 dhcpd: DHCPACK on 10.4.253.21 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:16 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.21 (10.4.253.10) from 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:16 mgraid-qa2-1 dhcpd: DHCPACK on 10.4.253.21 to 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:19 mgraid-qa2-1 dhcpd: DHCPDISCOVER from 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:19 mgraid-qa2-1 dhcpd: DHCPDISCOVER from 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:19 mgraid-qa2-1 dhcpd: DHCPDISCOVER from 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:19 mgraid-qa2-1 dhcpd: DHCPDISCOVER from 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:19 mgraid-qa2-1 dhcpd: DHCPDISCOVER from 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:19 mgraid-qa2-1 dhcpd: DHCPDISCOVER from 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPOFFER on 10.4.253.22 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPOFFER on 10.4.253.23 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPOFFER on 10.4.253.24 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPOFFER on 10.4.253.25 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPOFFER on 10.4.253.26 to 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPOFFER on 10.4.253.27 to 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: uid lease 10.4.253.25 for client 00:30:48:bf:b8:88 is duplicate on 10.4.253.0/25
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPACK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPACK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth1: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth0: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth1: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth0: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth1: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth0: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth1: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth0: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth0
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth1: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth1
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPREQUEST for 10.4.253.22 (10.4.253.10) from 00:30:48:bf:b8:88 via eth0: lease 10.4.253.22 unavailable.
Jun  7 17:54:20 mgraid-qa2-1 dhcpd: DHCPNAK on 10.4.253.22 to 00:30:48:bf:b8:88 via eth0

DHCP sends 1 ACK and 6 NAK packets.  According to line 1709 of dhclient.c, the NAK, received by the client, should cause the client to EXPIRE ... which should cause a DHCPDISCOVER... correct?  But we see no new DHCPDISCOVER attempts by the remaining “dhclient” instances.


Any feedback would be appreciated.

Thanks


      



More information about the dhcp-users mailing list