动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)是一种流行的客户机/服务器(C/S)协议。几乎所有常用的客户端操作系统和大量的嵌入式设备(例如网络打印机和VoIP电话)都支持DHCP。这些设备通常使用DHCP获得IP地址、子网掩码、路由器的IP地址、DNS服务器的IP地址。其他服务的相关信息(例如使用VoIP的SIP服务器)也可通过DHCP传输。实际上DHCP的更准确说法应该是DHCPv4,因为DHCP的最初设想是供IPv4使用,而IPv6使用的DHCP版本是DHCPv6。
DHCP的设计基于一种早期协议——Internet引导程序协议(Bootstrap Protocol, BOOTP)。BOOTP为客户提供有限的配置信息,并且没有提供一种机制来支持改变已提供的信息。DHCP使用租用的概念来扩展BOOTP模型,并且可提供主机操作所需的所有信息。租用允许客户机使用一个商定的时间来配置信息。客户机可向DHCP服务器请求续订租约,并继续操作。在这个意义上,BOOTP和DHCP是向后兼容的,纯BOOTP客户端可使用DHCP服务器,DHCP客户端也可使用纯BOOTP服务器。因此两者都使用UDP/IP,客户机使用端口68,服务器使用端口67。
-
功能概述
DHCP主要由两个主要部分组成:地址管理和配置数据交付。地址管理用于IP地址的动态分配,并为客户机提供地址租用。配置数据交付包括DHCP协议的消息格式和状态机。
DHCP服务器可配置为提供三种地址分配:自动分配、动态分配和手动分配。三者之间的差异是地址分配是否基于客户机身份,以及该地址是否可撤销或变更。在动态分配中,客户机从服务器配置的地址池(通常为一个预定义的范围)中获得一个可撤销的IP地址,这也是最常用的地址分配方式。自动分配使用的是与动态分配相同的方法,但地址不可撤销。在手动分配中,DHCP用于传输地址,但地址对于请求的客户机是不变的(即它不是由服务器维护的可分配地址池的一部分)。手动分配的作用如同BOOTP。
-
地址池和租用
在动态分配中,DHCP客户机请求分配一个地址,服务器从可用的地址池中选择一个地址作为响应。在通常情况下,地址池是专门为DHCP用途而分配的一个连续的IP地址范围。分配给客户机的地址只在一段时间内有效,这段时间称为租用期。客户机可使用分配到的地址一直到租用期到期,但客户机可提出延长租期的请求,以续订租约。
租用期是DHCP服务器的一个重要配置参数,确定租用期的最佳数值需要对预期客户数、地址池大小和地址稳定性等因素加以权衡。较长的租用期通常会较快耗尽可用的地址池,但能提供更稳定的地址和减小网络开销(因为续租请求较少)。较短的租用期为其他客户提供可用性更高的地址池,但随之而来的是稳定性减小和网络流量负荷增大。客户机在租用期过半时开始