用户 IP 地址获取
某组织一旦获得了一块地址,它就可为本组织内的主机与路由器接口逐个分配 IP 地址。
系统管理员通常手工配置路由器中的IP地址 (常常在远程通过网络管理工具进行配置)。
主机地址可以通过手动配置,但是这项任务目前通常更多的是使用动态主机配置协议 (Dynamic Host Configuration, DHCP) [RFC2131] 来完成。
DHCP允许主机自动获取 (被分配) 一个IP地址。
网络管理员能够配置DHCP,以使某给定主机每次与网络连接时能得到一个相同的IP地址,或者某主机将被分配一个临时的IP地址(temporaryIPadres),该地址在每次与网络连接时也许是不同的。
除了主机IP地址分配外,DHCP 还允许一台主机得知其他信息,例如它的子网掩码、它的第一跳路由器地址 (常称为默认网关) 与它的本地 DNS 服务器的地址。
由于 DHCP 具有能将主机连接进一个网络的网络相关方面的自动能力,故它又常被称为即插即用协议 (plug and- play protocol)。
这种能力对于网络管理员来说非常有吸引力,否则他将不得不手工执行这些任务。
DHCP 还广泛地使用于住宅因特网接入网与无线局域网中,其中的主机频繁地加入和离开网络。
例如,考虑一个学生带着便携机从宿舍到图书馆再到教室。很有可能在每个位置,这个学生将连接到一个新的子网, 因此在每个位置都需要一个新的IP地址。
DHCP 在此情形下是最理想的方法,因为有许多用户来来往往,仅在有限的时间内需要地址。
类似地,DHCP 在住宅 ISP 接入网中是有用的。举一个例子,一个住宅区 ISP 有2000个客户,但不会有超过 400 个客户同时在线。
在这种情况下,动态地分配地址的DHCP服务器不需要一个含 2048个地址的块,而仅需一个含512个地址的
块 (例如像形式为a.b.c. d/23的块)。
当主机加人或离开时,DHCP 服务器要更新其可用的 IP 地址表。每当一台主机加人时,DHCP服务器从其当前可用的地址池中分配一个任意的地址给它;每当一台主机离开时,其地址便被收回这个池中。
DHCP是一个客户 - 服务器协议。客户通常是新达到的主机,它要获得包括自身使用的 IP 地址在内的网络配置信息。
在最简单场合下,每个子网将具有一台DHCP服务器。如果在某子网中没有服务器,则需要一个 DHCP中继代理 (通常是一台路由器),这个代理知道用于该网络的DHCP服务器的地址。
DHCP 执行步骤
对于一台新到达的主机而言,DHCP 协议是一个4个步骤的过程。
- DHCP 服务器发现。
一台新到的主机的首要任务是发现一个要与其交互的 DHCP 服务器。这可通过使用一个 DHCP 发现报文 (DHCP discover message) 来完成,客户在UDP分组中向端口 67 发送该发现报文。
但是这个数据报应发给谁呢?主机甚至不知道它所连接网络的IP地址,更不用说用于该网络的 DHCP 服务器地址
了。在这种情况下,DHCP 客户生成包含DHCP发现报文的IP数据报,其中使用播目的地址 255.255.255.255 并且使用“本主机”源地址0.0.0.0。
DHCP 客户将该 IP 数据报传递给链路层,链路层然后将该帧广播到所有与该子网连接的子网。
- DHCP 服务器提供。
DHCP 服务器收到一个 DHCP 发现报文时,用一个 DHCP 提供报文 (DHCP offer message) 向客户作出响应,仍然使用 IP 广播地址255. 255.255. 255。
因为在子网中可能有几个DHCP服务器,该客户也许会发现它处于能在几个提供者之间进行选择的优越位置。
每台服务器提供的报文包含有收到的发现报文的事务ID、向客户推荐的IP地址、网络掩码以及IP地址租用期 ( ades lease time), 即IP地址有效的时间量。
服务器租用期通常设置为几小时或几天[ Droms 2002 ]。
- DHCP 请求
新到达的客户从一个或多个服务器提供中选择一个,并向选中的服务器提供用一个 DHCP 请求报文(DHCP requet mesage) 进行响应,回显配置参数。
- 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 ]得到。