【网际互联】DHCP 动态主机配置协议 - 图1

用户 IP 地址获取

某组织一旦获得了一块地址,它就可为本组织内的主机与路由器接口逐个分配 IP 地址。

系统管理员通常手工配置路由器中的IP地址 (常常在远程通过网络管理工具进行配置)。

主机地址可以通过手动配置,但是这项任务目前通常更多的是使用动态主机配置协议 (Dynamic Host Configuration, DHCP) [RFC2131] 来完成。

DHCP允许主机自动获取 (被分配) 一个IP地址。

网络管理员能够配置DHCP,以使某给定主机每次与网络连接时能得到一个相同的IP地址,或者某主机将被分配一个临时的IP地址(temporaryIPadres),该地址在每次与网络连接时也许是不同的。

除了主机IP地址分配外,DHCP 还允许一台主机得知其他信息,例如它的子网掩码、它的第一跳路由器地址 (常称为默认网关) 与它的本地 DNS 服务器的地址。

【网际互联】DHCP 动态主机配置协议 - 图2

由于 DHCP 具有能将主机连接进一个网络的网络相关方面的自动能力,故它又常被称为即插即用协议 (plug and- play protocol)。

这种能力对于网络管理员来说非常有吸引力,否则他将不得不手工执行这些任务。

DHCP 还广泛地使用于住宅因特网接入网与无线局域网中,其中的主机频繁地加入和离开网络。

例如,考虑一个学生带着便携机从宿舍到图书馆再到教室。很有可能在每个位置,这个学生将连接到一个新的子网, 因此在每个位置都需要一个新的IP地址。

【网际互联】DHCP 动态主机配置协议 - 图3

DHCP 在此情形下是最理想的方法,因为有许多用户来来往往,仅在有限的时间内需要地址。

类似地,DHCP 在住宅 ISP 接入网中是有用的。举一个例子,一个住宅区 ISP 有2000个客户,但不会有超过 400 个客户同时在线。

在这种情况下,动态地分配地址的DHCP服务器不需要一个含 2048个地址的块,而仅需一个含512个地址的
块 (例如像形式为a.b.c. d/23的块)。

当主机加人或离开时,DHCP 服务器要更新其可用的 IP 地址表。每当一台主机加人时,DHCP服务器从其当前可用的地址池中分配一个任意的地址给它;每当一台主机离开时,其地址便被收回这个池中。

DHCP是一个客户 - 服务器协议。客户通常是新达到的主机,它要获得包括自身使用的 IP 地址在内的网络配置信息。

在最简单场合下,每个子网将具有一台DHCP服务器。如果在某子网中没有服务器,则需要一个 DHCP中继代理 (通常是一台路由器),这个代理知道用于该网络的DHCP服务器的地址。

【网际互联】DHCP 动态主机配置协议 - 图4

DHCP 执行步骤

对于一台新到达的主机而言,DHCP 协议是一个4个步骤的过程。

  1. DHCP 服务器发现。

一台新到的主机的首要任务是发现一个要与其交互的 DHCP 服务器。这可通过使用一个 DHCP 发现报文 (DHCP discover message) 来完成,客户在UDP分组中向端口 67 发送该发现报文。

但是这个数据报应发给谁呢?主机甚至不知道它所连接网络的IP地址,更不用说用于该网络的 DHCP 服务器地址
了。在这种情况下,DHCP 客户生成包含DHCP发现报文的IP数据报,其中使用播目的地址 255.255.255.255 并且使用“本主机”源地址0.0.0.0。

DHCP 客户将该 IP 数据报传递给链路层,链路层然后将该帧广播到所有与该子网连接的子网。

【网际互联】DHCP 动态主机配置协议 - 图5

  1. DHCP 服务器提供。

DHCP 服务器收到一个 DHCP 发现报文时,用一个 DHCP 提供报文 (DHCP offer message) 向客户作出响应,仍然使用 IP 广播地址255. 255.255. 255。

因为在子网中可能有几个DHCP服务器,该客户也许会发现它处于能在几个提供者之间进行选择的优越位置。

每台服务器提供的报文包含有收到的发现报文的事务ID、向客户推荐的IP地址、网络掩码以及IP地址租用期 ( ades lease time), 即IP地址有效的时间量。

服务器租用期通常设置为几小时或几天[ Droms 2002 ]。

  1. DHCP 请求

新到达的客户从一个或多个服务器提供中选择一个,并向选中的服务器提供用一个 DHCP 请求报文(DHCP requet mesage) 进行响应,回显配置参数。

  1. DHCP ACK

服务器用 DHCP ACK 报文(DHCP ACK messge) 对DHCP请求报文进行响应,证实所要求的参数。

DHCP 的不足

一旦客户收到 DHCP ACK 后,交互便完成了,并且该客户能够在租用期内使用 DHCP 分配的 IP 地址。

因为客户可能在该租用期超时后还希望使用这个地址,所以DHCP还提供了一种机制以允许客户更新它对一个 IP地址的租用。

考虑到作为人工配置主机的IP地址的替代方法,DHCP的即插即用能力的价值是显而易见的。

考虑这样的情况:一个学生带着便携机从教室移动到图书馆、宿舍,每到新的位置就加入一个新的网络并获得一个新的IP地址。

如果在每个位置都要系统管理员重新配置便携机,而且很少有手工配置其计算机的经验,这种情况简直是不可想象的。

然而,从移动性角度看,DHCP确实有不足之处。因为每当结点连到一个新子网时,要从DHCP得到一个新的IP地址,当一个移动结点在子网之间移动时,就不能维持与远程应用之间的TCP连接。

在移动 IP 中需要一种对 IP 基础设施的近期扩展,允许移动结点在网络之间移动时能使用其单一永久的地址。

一个DHCP开放源码参考实现可从因特网系统协会[ ISC 2012 ]得到。

【网际互联】DHCP 动态主机配置协议 - 图6