Microsoft KB Archive/172408

= Custom DHCP Client Identifiers for Windows NT =

Article ID: 172408

Article Last Modified on 2/23/2007

-

APPLIES TO


 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Professional Edition
 * Microsoft Windows NT Workstation 4.0 Developer Edition
 * Microsoft Windows NT Server 4.0 Standard Edition

-



This article was previously published under Q172408





SUMMARY
A Dynamic Host Configuration Protocol (DHCP) client will normally use the media access control address of its network interface card (NIC) to identify itself to a DHCP server. Windows NT DHCP clients can also have client identifiers manually configured.



MORE INFORMATION
When DHCP clients request and renew IP addresses, they normally send their hardware type and media access control address to a DHCP Server as a unique identifier. This allows the DHCP server to track the allocation of addresses and allows administrators to reserve addresses for specific interfaces. This client identifier is sent as option 61 in the client's DHCP Discover and Request packets as described in RFC2132, "DHCP Options and BOOTP Vendor Extensions." In general, this identifier will be the media access control address of the network interface card requesting the address, but this is not required.

Most implementations of DHCP are simplified by allowing the Windows NT client to automatically specify their media access control address, but it is possible in Windows NT 4.0 to manually enter a client identifier. This allows an administrator to reserve an IP address for a DHCP client so the client will receive the same IP address even if its network card is replaced.

Implementing a user-defined DHCP client identifier requires Windows NT 4.0 SP2 or later. To manually configure a DHCP client identifier, perform the following steps:

WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows NT to correct them. Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use this tool at your own risk.  Start Registry Editor (Regedt32.exe) and select the following subkey:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 'X'\Parameters\Tcpip.

where  is the network adapter driver name and 'X' is the number of the adapter. For example, for an Intel Etherexpress Pro network adapter the  is Epro so you might have an entry similar to Epro1.

In Windows 2000 the location is:

HKLM\System\CurrentControlSet\Services\TcpIp\Parameters\Interfaces\NICGUID

  Click Add value from the Edit menu, and type the following information:

     Value Name: DhcpClientIdentifier Value Type: REG_DWORD Value Range: 0x0 - 0xFFFFFFFF Value Default: 0x0  Click OK, exit Registry Editor, and restart the system for the changes to take effect.</ol>

Creating a DHCP Server Reservation
A DHCP server can use a custom DHCP client identifier to reserve an IP address for a specific network interface card. If the NIC is replaced, the new NIC will receive the same IP address from the DHCP server. When a Windows NT DHCP client sends a client identifier to a DHCP server, it sends the identifier as 4 bytes, or 8 hexadecimal characters. The identifier is sent in groups of two hexadecimal characters, with these groups of two sent in reverse order. If the identifier is less than 8 hexadecimal characters, then zeros are padded at the end of the identifier. For example:

<pre class="fixed_text">Custom Client Identifier     Client Reservation on DHCP Server

12345678                     78563412 123456                        56341200 1234                          34120000 1234567                       67452301 12345                         45230100 123                           23010000 A18F42                        428FA100 CF432                        32F40C00 C32D1BE                      BED1320C

Refer to the online Help in DHCP Manager under the section "Managing Client Reservations" and pages 206-207 of the Windows NT 4.0 Server Networking Guide.

<div class="references_section">