TCP/IP 地址和参数分配 - 动态主机配置协议

传输控制协议/因特网协议 (TCP/IP) 使已配置地址的机器之间能够进行通信。 网络管理员必须面对的部分 负担是为网络上的所有机器指定地址和分发参数。 通常地,在此过程中管理员给每个用户规定配置,允许用户配置自己的机器。 然而,错误配置和误解会生成管理员必须个别处理的服务调用。 动态主机配置协议 (DHCP) 提供网络管理员一种方式来从此配置问题中除去最终用户并将网络配置保留在一个集中位置。

DHCP 是一个应用层协议,它允许网络上的客户机从服务器获取 IP 地址和其他配置参数。 它通过在客户机上的守护程序和服务器上的另一守护程序之间交换包来获取信息。 现在大多数操作系统在它们的基础包中都提供 DHCP 客户机。

为获取一个地址,DHCP 客户机守护程序(dhcpcd)会广播一条 DHCP 发现消息,此消息由服务器接收并处理。 (可以在网络上配置多个服务器用于冗余。) 如果一个自由地址对该客户机来说是可用的,就会创建一条 DHCP 提供消息,此消息包含适用于那个客户机的 IP 地址和其他选项。 客户机接收该服务器的 DHCP 提供并存储它,同时等待其他提供。 当客户机选择最佳提供时,它会广播一个 DHCP 请求以指定它想要哪个服务器提供。

所有已配置的 DHCP 服务器都接收请求。 每一个都检查其是否是被请求的服务器。 如果不是,服务器会释放指定给那个客户机的地址。 被请求的服务器把地址标记为已指定,并返回一条 DHCP 确认,此时,事务结束。 在服务器指定的时间周期(租用)内客户机拥有一个地址。

当租用时间已使用一半时,客户机会发送给服务器一个更新数据包来延长租用时间。 如果服务器愿意更新,它会发送一个 DHCP 确认。 如果客户机没有从拥有其当前地址的服务器处得到响应,例如,服务器已经从一个网络移动到另一个,它会广播一个 DHCP 重新绑定包以到达服务器。 如果客户机在全部租用时间结束后 没有更新其地址,接口会关闭且此进程再次开始。 此循环防止使一个网络上的多台客户机指定相同的地址。

DHCP 服务器基于密钥来分配地址。 四个公共密钥是 network、class、vendor 和 client ID。 服务器使用这些 密钥来获取一个地址和一组配置选项来返回到客户机。

网络
标识包来自那个网络段。 网络密钥允许 服务器检查其地址数据库并根据网络段分配地址。
class
是完全由客户机配置的。 它能指定地址和选项。 此密钥能被用来表示网络中的机器功能或描述 机器为了管理目的是如何进行分组的。 例如,网络管理员可能想创建一个包含用于 NetBIOS 客户机的选项的 netbios 类或一个代表需要访问指定打印机的“财务”部门机器的 accounting 类。
vendor
帮助通过其硬件/软件平台 (例如, Microsoft Windows 95 客户机或 OS/2 Warp 客户机) 识别客户机。
client ID
通过机器主机名或它的介质访问控制 (MAC) 层地址来识别客户机。 客户机标识在 dhcpcd 守护程序的配置文件中指定。 此外,服务器能够使用客户机标识来把选项传递给一台指定的客户机或阻止一台特殊的客户机接收任何参数。

这些密钥能由配置个别或结合起来使用。 如果客户机提供了多个密钥且能够分配多个地址,仅有一个能选择,且选项集是从第一个选择的密钥中派生出来的。 有关选择密钥和地址的更多详细信息,请参阅 DHCP 配置

中继代理是必需的,这样来自客户机的初始广播才能离开本地网络。 此代理称为 BOOTP 中继代理。 中继代理充当 DHCPBOOTP 包的转发代理。