
DHCP (Dynamic Host Configuration Protocol according to abbreviationfinder) is a network protocol that allows nodes on an IP network to obtain their configuration parameters automatically. It is a client/server type protocol in which a server generally has a list of dynamic IP addresses and assigns them to clients as they become free, knowing at all times who has been in possession of that IP, how much time it has had and to whom it has been assigned afterwards.
Characteristic
It provides the configuration parameters to the computers connected to the computer network with the TCP/IP protocol (network mask, gateway and others) and also includes an IP address assignment mechanism.
This protocol was published in October 1993 and is currently documented in RFC 2131. The latest published as RFC 3415.
IP Address Assignment
Without DHCP, each IP address must be manually configured on each computer, and if the computer is moved to another location on another part of the network, a different IP address must be configured. DHCP allows the administrator to centrally monitor and allocate the necessary IP addresses and automatically assign and send a new IP if the computer is connected to a different place on the network.
The DHCP protocol includes three methods of assigning IP addresses:
- Manual or static assignment: Assigns an IP address to a given machine. It is usually used when you want to control the IP address assignment to each client, and also prevent unidentified clients from connecting.
- Automatic Assignment– Permanently assigns an IP address to a client machine the first time it makes a request to the DHCP server and until the client releases it. It is usually used when the number of clients does not vary much.
- Dynamic Allocation– The only method that allows dynamic reuse of IP addresses. The network administrator determines a range of IP addresses, and each computer connected to the network is configured to request its IP address from the server when the network interface card initializes. The procedure uses a very simple concept in a controllable time interval. This makes it easy to install new client machines to the network.
Some DHCP implementations can update the DNS associated with servers to reflect new IP addresses using the DNS update protocol set forth in RFC 2136 (English).
DHCP is an alternative to other network IP address management protocols, such as BOOTP (Bootstrap Protocol). DHCP is a more advanced protocol, but both are commonly used.
In Windows 98 or later, when DHCP is unable to assign an IP address, a process called ” Automatic Private Internet Protocol Addressing ” is used.
Configurable parameters
A DHCP server can provide optional configuration to the client computer. These options are defined in RFC 2132 (English)
List of configurable options:
- DNS server address
- DNS name
- IP address gateway
- Mass Publishing Address (broadcast address)
- Subnet mask
- Maximum wait time of the ARP(Address Resolution Protocol according to acronym in English)
- MTU (Maximum Transfer Unit) for the interface
- NIS (Network Information Service) servers
- NIS domains
- NTP(Network Time Protocol) servers
- SMTP server
- TFTP server
- WINS server name
Implementations
Microsoft introduced DHCP on its NT Servers with Windows NT version 3.5 in late 1994. Although they called it a new function, it was not invented by them.
The Internet Software Consortium (ISC) released DHCP distributions for Unix with version 1.0.0 of the ISC-DHCP-SERVER on December 6, 1997 and a version (2.0) that better aligns with RFC the June 22, 1999. The software can be found at http://www.isc.org/sw/dhcp/
Other important implementations include:
- Cisco– A DHCP server enabled in Cisco IOS 12.0 in February 1999
- Sun– Added DHCP support to its Solaris OS on July 8, 2001.
Additionally, many routers include DHCP support for networks of up to 255 computers.
A free version of DHCP Server for Windows can be found at: http://tftpd32.jounin.net/
Protocol Anatomy
(Internet Assigned Numbers Authority) in BOOTP: 67/UDP for server computers and 68/UDP for clients.
DHCP Release
Clients send a request to the DHCP server to release their IP address. As clients generally do not broadcast. The router can be configured to forward DHCP packets to a DHCP server on a different subnet. The client implementation creates a User Datagram Protocol (UDP) packet with destination 255.255.255.255 and also requires your last known IP address, although this is not necessary and may be ignored by the server.
DHCP Offer
The server determines the configuration based on the hardware address of the client computer specified in the CHADDRvbnv record. The server specifies the IP address in the YIADDR record. Like the one given in the other parameters.
DHCPRequest
The client selects the configuration from the received DHCP Offer packets . Once again, the client requests a specific IP address that the server indicated
DHCP Acknowledgment
Confirmation and closing message from the server to the client indicating the definitive parameters.
DHCP Pack
The DHCP server responds to the DHCPREQUEST with a DHCPACK, thus completing the initialization cycle. The Source address is the DHCP server IP address, and the Destination address is still 255.255.255.255. The source address is the IP address of the DHCP server, and the destination address is still 255.255.255.255. The YIADDR field contains the client’s address, and the CHADDR and DHCP: Client Identifier fields are the physical address of the network card in the requesting client. The YIADDR field contains the client address, and the CHADDR and DHCP: Client Identifier fields are the physical address of the network card on the client. The DHCP Option section identifies the packet as an ACK. The DHCP Option section identifies the packet as an ACK.
DHCP Inform
The client sends a request to the DHCP server: to request more information than the server sent with the original DHCPACK; or to echo the data for a particular use – for example, browsers use DHCP Inform to get proxy settings via WPAD. Such requests do not cause the DHCP server to refresh the IP expiration time in its database.