BootP is simple and effective. So effective, in fact, that it became the basis for Dynamic Host Configuration Protocol. DHCP operates over the same UDP ports, 67 and 68, as BootP. It provides all of the services of BootP as well as some important extensions.
DHCP is designed to provide all possible TCP/IP configuration parameters to its clients. DHCP includes every parameter that was defined in the "Requirements for Internet Hosts" RFC, which means that everything necessary for TCP/IP can be configured from the DHCP server.
The other, and probably more important, extension is that DHCP permits IP addresses to be dynamically assigned. Manually configuring a system with ifconfig permanently assigns an address to the interface. The address assigned to a host through BootP is also a permanent assignment. Both of these techniques are static—the address is permanently assigned and cannot be used for any other host. With DHCP, an address is "leased" to the host for a specific period of time. When the time expires, the host must either renew the lease or return the address to the server so that it can be assigned to another system.
The advantages of dynamic address assignment are as follows:
• You don't need to create a custom configuration for each host. On a BootP server, you must create a configuration for every client because you are responsible for assigning each system a unique IP address. With a DHCP server, the server is responsible for the address assignments.
• It makes more effective use of scarce IP addresses. Unused addresses are returned to the address pool, from where they can be used again.
Dynamic address assignment, like everything else, is not perfect. DNS may not know about addresses that are assigned through DHCP, which means that remote computers could not look up the address of a system that got its address from DHCP. In that case, a system using a dynamically assigned address could not offer services to other systems.
This is a shortcoming, but it's not a fatal flaw. First, only officially recognized servers should offer services to other systems, and skilled technical people who don't have any trouble doing a TCP/IP configuration run most servers. Second, the number of servers on a network is small compared with the total number of systems, and therefore the burden of server configuration is correspondingly small. Third, the bulk of the systems on a network are desktop systems that shouldn't offer TCP/IP services to remote users, so they do not need static IP addresses. This makes desktop clients perfect candidates for dynamic address assignment. And finally, there are techniques for coordinating addresses between DHCP and DNS using Dynamic DNS (DDNS). To find out more about DDNS, see Linux DNS Server Administration by Craig Hunt, Sybex 2001. Even without DDNS, DHCP works fine for most systems, and can dramatically decrease the configuration workload.
Was this article helpful?