Microsoft KB Archive/152273

= DHCP Server May Give Out Duplicate IP Addresses =

Article ID: 152273

Article Last Modified on 11/1/2006

-

APPLIES TO


 * Microsoft Windows NT Workstation 3.5
 * Microsoft Windows NT Workstation 3.51
 * Microsoft Windows NT Workstation 4.0 Developer Edition
 * Microsoft Windows NT Server 3.5
 * Microsoft Windows NT Server 3.51
 * Microsoft Windows NT Server 4.0 Standard Edition

-



This article was previously published under Q152273





SYMPTOMS
In network environments that allow duplicate routes between DHCP clients and a DHCP server, a DHCP server gives out one IP address to two different clients.

This can occur in several different network environments, including Token Ring environments with large numbers of source routing bridges (where the bridges would be set up in a way that would provide multiple, unique routes between the server and client) and Ethernet environments with multiple routers enabled with BOOTP relay agents or IP helper addressing.



RESOLUTION
Obtain the hotfix mentioned below for your version of Windows NT Server.



STATUS
Microsoft has confirmed this to be a problem in Windows NT version 4.0.

A supported fix is now available, but has not been fully regression tested and should be applied only to systems experiencing this specific problem. Unless you are severely impacted by this specific problem, Microsoft recommends that you wait for the next Service Pack that contains this fix. Contact Microsoft Technical Support for more information.

Microsoft has confirmed this to be a problem in Windows NT versions 3.5 and 3.51. A supported fix is now available, but has not been fully regression tested and should be applied only to systems experiencing this specific problem. Unless you are severely impacted by this specific problem, Microsoft recommends that you wait for the next Service Pack that contains this fix. Contact Microsoft Technical Support for more information.



MORE INFORMATION
A network trace of the problem shows multiple DISCOVER packets arriving at the DHCP server with the same XID. Only one DISCOVER was sent by the client, but because of the multiple routes the packet can take through the source routing bridges, more than one of the same packet arrives at the DHCP server. The DHCP server responds to each of the DISCOVER packets with an OFFER. Each time an OFFER is sent, the DHCP server resets the lease on the IP address to 15 minutes. When a REQUEST is received by the DHCP server, it sets the lease to the lease period that was designated by the administrator of the DHCP server. It then sends an ACK to the client, and the client then completes the initialization of TCP/IP.

Since multiple DISCOVER packets with the same XID and client MAC address are being processed, a REQUEST from the client might be received while the server is sending OFFERs. If this happens and the DHCP server ACKs the client and then sends OFFERs after ACKing, the IP address is set to the temporary lease time of 15 minutes. Since the client already has bound to the IP address that it received and ACKed for, it will ignore subsequent OFFER packets from the DHCP server. The temporary lease on the IP address will expire, since the client will not respond to the OFFER packets that are sent after the first OFFER packet. The IP address will then be marked as available for leasing by the next client that requests an IP address. The example below illustrates the process in which this could happen.

NOTE: This behavior may also happen in Ethernet configurations that are routed with slower or multiple BOOTP relay agents.

Example of a Network Monitor trace:
#    Source Addr. Dest. Addr. Protocol Command

=
========================================================= 20   Client         *BROADCAST     DHCP      Discover  (xid=35663566)

Client sends Discover; there are 4 because the packet takes 4 routes to the server.

21   Client         *BROADCAST     DHCP      Discover  (xid=35663566) 22   Client         *BROADCAST     DHCP      Discover  (xid=35663566) 24   DHCPServer     *BROADCAST     DHCP      Offer     (xid=35663566)

DHCP Server sends Offer.

25   Client         *BROADCAST     DHCP      Request   (xid=36773677)

Client sends Request; again 4 because of 4 routes to the server.

26   Client         *BROADCAST     DHCP      Request   (xid=36773677) 27   Client         *BROADCAST     DHCP      Request   (xid=36773677) 28   Client         *BROADCAST     DHCP      Request   (xid=36773677) 29   DHCPServer     *BROADCAST     DHCP      Offer     (xid=35663566)

Server sends another Offer. Notice XID is the same as the first Offer.

30   DHCPServer     *BROADCAST     DHCP      ACK       (xid=36773677) 31   DHCPServer     *BROADCAST     DHCP      ACK       (xid=36773677) 32   DHCPServer     *BROADCAST     DHCP      ACK       (xid=36773677) 33   DHCPServer     *BROADCAST     DHCP      ACK       (xid=36773677)

Server ACKs the 4 Requests it receives from the client; at this time server removes IP address from temporary lease.

34   DHCPServer     *BROADCAST     DHCP      Offer      (xid=35663566) 35   DHCPServer     *BROADCAST     DHCP      Offer      (xid=35663566)

Server sends 2 more Offers. XID is the same as previous 2 Offers and puts the IP address in temporary 15 minute lease. This lease will expire, since the client has an IP address per the ACK from the server. When this 15 minute lease expires, the server will give this IP address to the next client that renews and doesn't have a reserved IP address.

Additional query words: prodnt

Keywords: kbhotfixserver kbqfe kbnetwork KB152273

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.