Internet Protocol Suite: HTDCGKHGC
Internet Protocol Suite: HTDCGKHGC
Internet Protocol Suite: HTDCGKHGC
Application layer
BGP
DHCP
DNS
FTP
HTTP
HTTPS
IMAP
LDAP
MGCP
MQTT
NNTP
NTP
POP
ONC/RPC
RTP
RTSP
RIP
SIP
SMTP
SNMP
SSH
Telnet
TLS/SSL
XMPP
more...
Transport layer
TCP
UDP
DCCP
SCTP
RSVP
more...
Internet layer
IP
o IPv4
o IPv6
ICMP
ICMPv6
ECN
IGMP
IPsec
more...
Link layer
ARP
NDP
OSPF
Tunnels
o L2TP
PPP
MAC
o Ethernet
o Wi-Fi
o DSL
o ISDN
o FDDI
more...
v
t
e
1History
2Overview
3Operation
o 3.1Discovery
o 3.2Offer
o 3.3Request
o 3.4Acknowledgement
o 3.5Information
o 3.6Releasing
4Client configuration parameters
5Options
o 5.1Documented in RFC 2132
5.1.1Client vendor identification
o 5.2Documented elsewhere
5.2.1Relay agent information sub-options
6Relaying
7Reliability
8Modern application
9Security
10IETF standards documents
11See also
12Notes
13References
14External links
History[edit]
In 1984, the Reverse Address Resolution Protocol (RARP), defined in RFC 903, was introduced
to allow simple devices such as diskless workstations to dynamically obtain a suitable IP
address. However, because it acted at the data link layer it made implementation difficult on
many server platforms, and also required that a server be present on each individual network
link. RARP was superseded by the Bootstrap Protocol (BOOTP) defined in RFC 951 in
September 1985. This introduced the concept of a relay agent, which allowed the forwarding of
BOOTP packets across networks, allowing one central BOOTP server to serve hosts on many IP
subnets.[3]
DHCP is based on BOOTP but can dynamically allocate IP addresses from a pool and reclaim
them when they are no longer in use. It can also be used to deliver a wide range of extra
configuration parameters to IP clients, including platform-specific parameters. [4] DHCP was first
defined in RFC 1531 in October 1993; but due to errors in the editorial process was almost
immediately reissued as RFC 1541.
Four years later the DHCPINFORM message type[5] and other small changes were added
by RFC 2131; which as of 2014 remains the standard for IPv4 networks.
DHCPv6 was initially described by RFC 3315 in 2003, but this has been updated by many
subsequent RFCs.[6] RFC 3633 added a DHCPv6 mechanism for prefix delegation, and stateless
address autoconfiguration was added by RFC 3736.
Overview[edit]
Internet Protocol (IP) defines how devices communicate within and across local networks on the
Internet. A DHCP server can manage IP settings for devices on its local network, e.g., by
assigning IP addresses to those devices automatically and dynamically.
DHCP operates based on the client–server model. When a computer or other device connects to
a network, the DHCP client software sends a DHCP broadcast query requesting the necessary
information. Any DHCP server on the network may service the request. The DHCP server
manages a pool of IP addresses and information about client configuration parameters such
as default gateway, domain name, the name servers, and time servers. On receiving a DHCP
request, the DHCP server may respond with specific information for each client, as previously
configured by an administrator, or with a specific address and any other information valid for the
entire network and for the time period for which the allocation (lease) is valid. A DHCP client
typically queries for this information immediately after booting, and periodically thereafter before
the expiration of the information. When a DHCP client refreshes an assignment, it initially
requests the same parameter values, but the DHCP server may assign a new address based on
the assignment policies set by administrators.
On large networks that consist of multiple links, a single DHCP server may service the entire
network when aided by DHCP relay agents located on the interconnecting routers. Such agents
relay messages between DHCP clients and DHCP servers located on different subnets.
Depending on implementation, the DHCP server may have three methods of allocating IP
addresses:
Dynamic allocation
A network administrator reserves a range of IP addresses for DHCP, and each DHCP
client on the LAN is configured to request an IP address from the DHCP server during
network initialization. The request-and-grant process uses a lease concept with a
controllable time period, allowing the DHCP server to reclaim and then reallocate IP
addresses that are not renewed.
Automatic allocation
The DHCP server permanently assigns an IP address to a requesting client from the
range defined by the administrator. This is like dynamic allocation, but the DHCP server
keeps a table of past IP address assignments, so that it can preferentially assign to a
client the same IP address that the client previously had.
Manual allocation
Also commonly called static allocation and reservations.The DHCP server issues a
private IP address dependent upon each client's client id (or, traditionally, the client MAC
address), based on a predefined mapping by the administrator. This feature is variously
called static DHCP assignment by DD-WRT, fixed-address by the dhcpd
documentation, address reservation by Netgear, DHCP reservation or static
DHCP by Cisco and Linksys, and IP address reservation or MAC/IP address binding by
various other router manufacturers. If no match for the client's client ID (if provided)
or MAC address (if no client id is provided) is found, the server may or may not optionally
fall back to either Dynamic or Automatic allocation.
DHCP is used for Internet Protocol version 4 (IPv4) and IPv6. While both versions
serve the same purpose, the details of the protocol for IPv4 and IPv6 differ
sufficiently that they may be considered separate protocols. [7] For the IPv6 operation,
devices may alternatively use stateless address autoconfiguration. IPv6 hosts may
also use link-local addressing to achieve operations restricted to the local network
link.
Operation[edit]
An illustration of a typical non-renewing DHCP session; each message may be either a
broadcast or a unicast, depending on the DHCP client capabilities.[8]
Discovery[edit]
The DHCP client broadcasts a DHCPDISCOVER message on the network subnet
using the destination address 255.255.255.255 (limited broadcast) or the specific
subnet broadcast address (directed broadcast). A DHCP client may also request its
last known IP address. If the client remains connected to the same network, the
server may grant the request. Otherwise, it depends whether the server is set up as
authoritative or not. An authoritative server denies the request, causing the client to
issue a new request. A non-authoritative server simply ignores the request, leading
to an implementation-dependent timeout for the client to expire the request and ask
for a new IP address.
For example, if HTYPE is set to 1, to specify that the medium used is Ethernet,
HLEN is set to 6 because an Ethernet address (MAC address) is 6 octets long. The
CHADDR is set to the MAC address used by the client. Some options are set as
well.
Offer[edit]
When a DHCP server receives a DHCPDISCOVER message from a client, which is
an IP address lease request, the DHCP server reserves an IP address for the client
and makes a lease offer by sending a DHCPOFFER message to the client. This
message contains the client's client id (traditionally a MAC address), the IP address
that the server is offering, the subnet mask, the lease duration, and the IP address of
the DHCP server making the offer. The DHCP server may also take notice of the
hardware-level MAC address in the underlying transport layer: according to
current RFCs the transport layer MAC address may be used if no client ID is
provided in the DHCP packet.
The DHCP server determines the configuration based on the client's hardware
address as specified in the CHADDR (client hardware address) field. Here the
server, 192.168.1.1, specifies the client's IP address in the YIADDR (your IP
address) field.
DHCPOFFER message
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
0x00000000
9.7.10.15,
9.7.10.16,
9.7.10.18
Request[edit]
In response to the DHCP offer, the client replies with a DHCPREQUEST message,
broadcast to the server,[a] requesting the offered address. A client can receive DHCP
offers from multiple servers, but it will accept only one DHCP offer. Based on
required server identification option in the request and broadcast messaging, servers
are informed whose offer the client has accepted. [10]:Section 3.1, Item 3 When other DHCP
servers receive this message, they withdraw any offers that they have made to the
client and return the offered IP address to the pool of available addresses.
DHCPREQUEST message