The Simplicity and Serenity of DHCP Fault Tolerance: Page 2
Implementing DHCP Fault Tolerance
Having established that there is justification for providing more than one DHCP server, the question then becomes exactly how to do it. The first thing you will need is another server somewhere on the network, but as the need for DHCP fault tolerance is most likely only a reality in larger installations, this should not pose a significant issue. No matter where the other server is on the network, it can still act as a backup for the primary DHCP server in the event of a failure.
An unusually common misconception is that the DHCP server must be on the same subnet as the clients it serves, which is not the case. Having a DHCP server on the same subnet as the clients it serves will reduce the amount of DHCP-related traffic on the rest of the network, but it does not affect how the clients receive addresses, or how the DHCP service is configured.
The key to understanding how a DHCP server can service clients from a remote subnet is in appreciating how DHCP requests from clients are transmitted through the network. Much of the DHCP client-to-server communication is achieved via broadcast, though generally speaking, routers do not forward broadcast transmissions.
It is this principle that is at the root of the myth that DHCP servers must be connected to the same subnet as the clients they serve. In the case of DHCP traffic, routers can be configured to make an exception.
Not only will a router forward DHCP broadcast traffic, it will also insert the source subnet address from which the request was received into the packet. When the DHCP server receives the request, it can then use this information to see which subnet the request originated from, and examine the configured scopes to see if it has an address for that subnet that it can supply to the client.
The ability for a DHCP server to determine the originating subnet is an important consideration in DHCP implementations, as it makes it possible to place DHCP servers on subnets other than the ones it directly serves. It also makes it possible for a single DHCP server to provide addressing services to multiple subnets.
Using DHCP servers to service remote subnets provides additional flexibility to your fault tolerant DHCP implementation, but it also means that you will have broadcast DHCP traffic traveling on the other subnets, which is not so good.
A solution to this problem is to use DHCP relay agents (also known as BOOTP relay agents), which collect DHCP traffic from the local network and then send it directly to the DHCP server. They are able to do this because they are configured with the address of the DHCP server. DHCP relay agents can be implemented on many hardware routers, or if you are using a software-based router, DHCP relay agents are available for most common network operating systems.