DHCP and IP Addresses

As they write programs, our software engineering friends worry about minimizing something called edit sensitivity. As it turns out, this can be a serious problem for network managers, not just for programmers. A friend of mine recently learned this lesson the hard way.

Everyone knows that Dynamic Host Configuration Protocol (DHCP) servers are great at automatically assigning TCP/IP addresses to user workstations. For any shop with more than a few desktop computers to maintain, setting up a DHCP server to dole out IP address parameters can save hours of manual configuration. Thus, using DHCP servers has become a matter of conventional wisdom in managing user computers.

At the same time, most network managers are reluctant to use DHCP to assign addresses to servers. Conventional TCP/IP address wisdom for servers, it seems, is the opposite: Network managers want to know the IP addresses of their servers, so they assign static IP addresses to each server by hand.

For his NT servers, my friend implemented this policy in the usual way. He turned off the DHCP option in his servers' TCP/IP network control panels, then keyed in the necessary IP addresses, subnet masks, gateway addresses, and related Domain Name System (DNS) and Windows Internet Naming Service (WINS) information. Of course, to make sure he never assigned the same IP address more than once, he wrote each one down on a yellow pad.

As time went on, his company's complement of NT servers grew from a few dozen to several hundred. His yellow pad of IP addresses gave way to an Access database. But he still manually entered IP address information into each server as he deployed it, and this practice recently created a serious edit sensitivity problem for him.

What is edit sensitivity? In software engineering, edit sensitivity measures the number of lines of code in the program that need to be modified to implement a change in the behavior of a computer program. One modification to the code is good -- edit in-sensitive. Anything more than one is not so good. The "badness" quotient generally goes up in proportion with the number of required changes.

The same is true with computer networks. When my friend decided a few months ago to move all of his computer systems to a newly installed high-speed Ethernet, he found his company's servers to be extremely edit sensitive.

He expected the obvious problem of assigning new addresses to each server as he moved it to the new network. He had to visit each machine to switch the connection anyway, he reasoned, so the extra work involved in changing the machines' addresses would be negligible.

His headaches began, however, when he moved his DNS and WINS servers. Once on the new network, the DNS and WINS machines had new IP addresses and the old addresses became invalid. While my friend had carefully changed the IP addresses on each server as it was moved, he frequently -- and randomly -- overlooked changing the servers' statically assigned DNS and WINS server addresses, which were now no longer valid. The bottom line is he had to put the DNS and WINS boxes back on the old network in a hurry, then revisit each server to fix the faulty DNS and WINS settings. No small job when you've got more than 200 servers to administer.

If he'd thought to use it, DHCP could have prevented these problems. Most DHCP implementations -- including Microsoft Corp.'s -- provide a feature known as a lease reservation. Network managers can use DHCP to assign specific IP address leases to specific servers, based on the MAC addresses of their network cards. By enabling DHCP on those servers, and simply leaving all of his other TCP/IP settings blank, my friend could have managed his whole network move from his DHCP server's database -- which would have been edit insensitive, not to mention extremely smart. --Al Cini is a senior consultant with Computer Methods Corp. (Marlton, N.J.) specializing in systems and network integration. Contact him at al.cini@computermethods.com.