DHCP client may fail to obtain a DHCP-assigned IP address (167014)



The information in this article applies to:

  • Microsoft Windows Server 2003, Enterprise Edition
  • Microsoft Windows Server 2003, Standard Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0
  • Microsoft Windows for Workgroups
  • Microsoft TCP/IP-32 for Windows for Workgroups
  • Microsoft Windows 95

This article was previously published under Q167014

SYMPTOMS

When a DHCP client is moved from one subnet to another, it may fail to obtain a valid IP address on the new subnet.

RESOLUTION

To work around this problem, do one of the following methods:
  • Do not use IP addressing schemes that overlap.
  • Run the following commands after you move the client to a new segment:

    Ipconfig /Release
    Ipconfig /Renew

MORE INFORMATION

When a DHCP client that has previously had a DHCP-assigned address is started again, the client goes into an INIT-REBOOT state. The client will attempt to verify that it can still use the same address by sending a DHCPRequest packet, populating the DHCP Option Field "DHCP Requested Address" with the previously assigned IP address.

If the DHCP server remains silent, the client assumes the previous address is still valid and keeps it. If a DHCP server sends a NACK packet in response to the DHCPRequest, the client goes into the Discover cycle; it also requests the previously assigned address in the DHCPDiscover packet.

When a DHCP server receives a DHCPRequest with a previously assigned address specified, it first checks to see if it came from the local segment by checking the GIADDR field. If it originated from the local segment, the DHCP server compares the requested address to the IP address and subnet mask belonging to the local interface that received the request.

If the address appears to be on the same subnet, the DHCP server will remain silent even if the address is not in the range of its pool of addresses. The DHCP server assumes that the address was assigned by another DHCP server on the same segment if it is not from its own pool. If the address fails the subnet mask/IP address check, the DHCP server checks to see if it came from a Superscope, if one is defined. If not, the server responds to the DHCPRequest with a NACK packet.

If the client sending the DHCPRequest is requesting an address that appears to be on the same subnet but was actually assigned with a different subnet mask, the DHCP server will remain silent and the client will fail to obtain a valid IP address for the new subnet.

For example, assume the DHCP client obtains address 172.17.3.x with a subnet mask of 255.255.255.0, and the client is moved to a new segment where the address of the DHCP server is 172.17.1.x with a subnet mask of 255.255.0.0. When the subnet mask/IP address comparison is done on the DHCP server, the DHCP server will remain silent, assuming another DHCP server on the segment assigned the address. If the subnet masks were reversed, the client would obtain a valid address.

Modification Type:MajorLast Reviewed:12/28/2004
Keywords:kbinfo kbnetwork KB167014