Article ID: 120932 - View products that this article applies to.
This article was previously published under Q120932
A DHCP (Dynamic Host Configuration Protocol) server can provide IP addresses to clients spanning multiple subnets if the router that separates them can act as an RFC 1542(BOOTP) relay agent. If the router cannot function as relay agent, each subnet that has DHCP clients requires a DHCP server.
A relay agent that conforms to RFC 1542 relays DHCP packets to the remote side even though they are broadcast packets. Before relaying a DHCP message from a DHCP client, the agent examines the GIADDR (gateway IP address) field. If the field has an IP address of 0.0.0.0, the agent fills it with the router's IP address. When the DHCP server receives the message, it examines the Relay IP Address field to see if it has a DHCP scope (a pool of IP addresses) that can be used to supply an IP address lease. If the DHCP server has multiple DHCP scopes, the address in the Relay IP Address field identifies the DHCP scope from which to offer an IP address lease. This process allows one DHCP server to manage different scopes for subnets.
You can use a multihomed Windows NT Server 3.5x system configured as a DHCP server, with multiple network cards and IP routing enabled, instead of a relay agent for subnetting purposes.
When it receives the DHCPDISCOVER message, the DHCP server sends a DHCPOFFER directly to the relay agent identified in the GIADDR field, and the agent relays the message to the DHCP client. The client's IP address is still unknown, thus it has to be a broadcast on the local subnet. Similarly, a DHCPREQUEST message is relayed from client to server and a DHCPACK message is relayed from server to client, according to RFC 1542.
When you have multiple DHCP servers, Microsoft recommends that you place your DHCP servers on different subnets to achieve a degree of fault tolerance, rather than having all the DHCP servers in one subnet. The servers should not have common IP addresses in their scopes (each server should have a unique pool of addresses).
If the DHCP server in the local subnet goes down, requests are relayed to a remote subnet, and the DHCP server there can respond to DHCP requests if it maintains a scope of IP addresses for the requesting subnet. If the remote server has no scope defined for the requesting subnet, it cannot provide IP addresses, even if it has available addresses for other scopes. If each DHCP server has a pool of addresses for each subnet, then it can provide IP addresses for remote clients whose DHCP server is down.
Article ID: 120932 - Last Review: February 20, 2007 - Revision: 2.2