Dynamic Host Configuration Protocol (DHCP)
By using the Dynamic Host Configuration Protocol (DHCP) service in Windows Server 2003, client systems can be automatically configured with IP addresses and other configurable parameters that allow them to operate on the network. To install the DHCP role on the server, refer to the "DHCP Server Role" section in Chapter 2, "Server Roles and Security."
After the server role has been established, you must authorize the DHCP server in Active Directory if it is installed on a member server. To do this, log in to the domain with administrative rights, run the DHCP MMC, and choose Action, Manage Authorized Servers from the menu. When the Manage Authorized Servers dialog box opens, you can then authorize the server.
DHCP and Domain Controllers
If you are installing the DHCP server role on a domain controller, the server should be automatically authorized the first time you add the server to the DHCP console. You can also use the Configure Your Server Wizard to install the DHCP role on your system, as outlined in Chapter 2, "Server Roles and Security."
Requiring DHCP servers from both the Windows 2000 Server and Windows Server 2003 families to be authorized in Active Directory introduces a certain level of stability to your network. Adding Active Directory authorization prevents Windows 2000 and 2003 servers from being brought online when they are not authorized and causing IP address allocation issues on the network.
The downside (for lack of a better term) is that nothing prevents Windows NT 4 DHCP servers, Unix DHCP servers, or hardware DHCP devices, such as routers that offer DHCP addresses, from being introduced onto the network.
Windows Server 2003 can provide IP addresses by using DHCP manual assignment, DHCP dynamic assignment, or Automatic Private IP Addressing (APIPA).
In actuality, the DHCP client service supplies IP addresses when it attempts to contact the DHCP server and cannot get a response. Also, no default gateway is assigned to clients when APIPA is used. Because of this, clients using APIPA are limited to their own subnet.
Manual IP address assignment and DHCP manual address assignment are actually two different things. For manual IP address assignment, an administrator or similarly delegated person manually enters a static IP address and other information, such as the subnet mask and default gateway, DNS server, WINS server, and so forth.
DHCP manual address assignment dynamically assigns the same specific IP address from a scope of addresses to a specific DHCP client each time the client starts up by using the DHCP service. This enables administrators to automatically assign a static IP address to these systems without actually having to set each system with all the parameters (default gateway, DNS servers, and so on), as with manual IP address assignment.
DHCP automatic assignment dynamically assigns randomly available IP addresses from available scopes to all DHCP clients each time they start up by using the DHCP service. This allows administrators to automatically assign IP addresses to clients without actually having to set all the parameters (default gateway, DNS servers, and so on) for each system, as with manual IP address assignment.
DHCP servers are usually set up with multiple scopes, called a superscope, to work side by side with other DHCP servers in the enterprise. The DHCP lease process begins over UDP ports 67 and 68 as a broadcast message from the client system. For DHCP clients to successfully contact DHCP servers on remote networks, the IP routers must be RFC 1542 compliant. These routers support forwarding DHCP broadcasts off the local subnet. If the routers are not compliant, a DHCP Relay Agent must be in use on that subnet.
The DHCP Relay Agent is available through the Routing and Remote Access MMC on Windows Server 2003 (see Figure 3.1). Systems configured in the role of a DHCP server should not be configured as DHCP Relay Agents because both services use UDP ports 67 and 68 and degrade each other's services if they are installed together. On a single subnet, there is no practical need to do this because the DHCP server should simply respond to user requests on the subnet.Figure 3.1 The first step in configuring the DHCP Relay Agent service in the Routing and Remote Access MMC.
Figure 3.2 shows the available routing protocols in the New Routing Protocol dialog box: DHCP Relay Agent, IGMP Router and Proxy, Open Shortest Path First (OSPF), and RIP Version 2 for Internet Protocol.
When a client first starts, it sends out a DHCPDISCOVER broadcast message to all addresses (255.255.255.255). The message contains the client's hardware (MAC) address and hostname. (The client also sends this message when its original lease has expired and cannot be renewed.) All available DHCP servers that are configured to respond receive the DHCPDISCOVER broadcast and send a DHCPOFFER broadcast message back with the following information:
The client's hardware address
An offered IP address
Length of the lease
A server identifier (the IP address of the offering DHCP server)
Figure 3.2 You can add routing protocols through the New Routing Protocol dialog box.
The DHCP client selects the IP address from the first offer it receives and responds with a DHCPREQUEST broadcast message that includes the IP address of the server whose offer was accepted. All the other DHCP servers then retract their lease offers and mark those addresses available for the next IP lease request.
The DHCP server whose lease was accepted responds with a DHCPACK broadcast message, which contains the valid lease period for that IP address and other configuration information outlined in the scope, such as router information (default gateway), subnet mask, and so forth. After the DHCP client receives this acknowledgment, TCP/IP is completely initialized, and the client can use the IP address for communication.
Automatic Private IP Addressing (APIPA)
When a DHCP client sends out the DHCPDISCOVER broadcast message, it waits one second for an offer. If the client does not receive a response from a DHCP server, it rebroadcasts the request three times at 9-, 13-, and 16-second intervals, with a random offset length of 0ms and 1000ms. If an offer is not received after the four requests, the client retries once every five minutes.
Beginning with Windows 98, DHCP clients can configure themselves by using APIPA and the DHCP client service. After the four attempts to receive an IP address have failed, the DHCP client auto-configures its IP address and subnet mask using the reserved Class B network address 169.254.0.0 and the subnet mask 255.255.0.0. No default gateway is used, so systems that use APIPA are not routable.
The DHCP client tests for an address conflict to make sure the IP address it has chosen is not already in use on the network. To do this, it broadcasts its selection from the range to the local subnet. If a conflict is found, the client selects another IP address and continues this process up to 10 attempts.
After the DHCP client makes sure the address it has chosen is not in conflict with another system on the subnet, it configures its network interface with the IP address. The client then continues to check for a response from the DHCP server every five minutes. If a DHCP server becomes available, the client drops its APIPA settings and uses the address the DHCP server offers at that time.
DHCP Relay Agent
When a DHCP client request for an IP address hits a non-RFC-1542 compliant router (meaning that the DHCPDISCOVER broadcast message can't be forwarded off the subnet), it fails to receive a response because the DHCP server never receives the DHCPDISCOVER broadcast message, and the client system configures itself with an APIPA address.
If a DHCP Relay Agent is in use on the subnet, it receives the DHCPDISCOVER broadcast message and forwards (routes) the message off the subnet to the DHCP server. Subsequently, when the DHCP server responds with an address and the DHCP client selects the IP address, the client responds with a DHCPREQUEST broadcast message that includes the IP address of the server whose offer was accepted. Again, this DHCPREQUEST broadcast message does not get out of this subnet unless a DHCP Relay Agent in use on the subnet can receive the DHCPREQUEST broadcast message and forward (route) the message off the subnet to the DHCP server.
Placement of DHCP Servers
DHCP servers should be located on at least one subnet on a LAN in a routed network. When the server needs to support clients on remote subnets separated by routers, the router should be RFC 1542 compliant, or a DHCP Relay Agent should be used to support forwarding DHCP traffic between the subnets.
When your network design allows more than one DHCP server to respond to requests, best practices dictate using the 80/20 rule, at a minimum, to divide the scope of addresses between the two DHCP servers. If Server 1 is configured to make available most of the addresses (approximately 80%) in the scope, Server 2 can be configured to make the remainder of the scope addresses (approximately 20%) available to clients.
The 80/20 rule for splitting addresses available in the scope can be tailored to meet your environment's addressing needs.