Although a single DHCP server can support a network of any size, it is often useful to have two. Here's what happens when a DHCP client enters the network:.
1. The client broadcasts a DHCP discover message that is forwarded to DHCP servers on the network.
2. Each DHCP server that receives the discover message responds with a DHCP offer message that includes an IP address that is appropriate for the subnet where the client is attached.
3. The client considers the offer message and selects one. It sends a request to use that address to the DHCP server that originated the offer.
4. The DHCP server acknowledges the request and grants the client a lease to use the address.
5. The client uses the IP address to bind to the network. If the IP address is associated with any configuration parameters, the parameters are incorporated into the client's TCP/IP configuration.
In step 1 I told you that DHCP clients request their addresses using broadcast messages. The preceding chapters have pointed out several times that broadcast messages don't cross TCP/IP routers. Does that mean that a DHCP client can't obtain an IP address from a DHCP server on another subnet?.
No, not if you configure routers with the BOOTP protocol. BOOTP is an older protocol that assigns IP addresses, and it remains in use to allow DHCP broadcasts to propagate across routers. Thanks to BOOTP, a DHCP server can service clients on any number of subnets.
In Figure 14.17, BOOTP is enabled on the router, which must, of course, be configured to route TCP/IP traffic. When the client broadcasts a request for an IP address, BOOTP receives the request and sends a directed message to any DHCP server that it knows about. This allows a DHCP server on a remote subnet to receive the request. The DHCP server responds through a directed message, so there is no problem with routing the response back to the client.