首页 理论教育 DHCP协议:计算机网络应用中的关键网络协议

DHCP协议:计算机网络应用中的关键网络协议

时间:2023-11-05 理论教育 版权反馈
【摘要】:DHCP是互联网上使计算机或网络设备获得配置信息的引导协议,是BOOTP的扩展,并能与BOOTP协同工作。动态地址分配是DHCP的最重要的功能。图8-10 DHCP客户端的6种工作状态切换客户端启动并首次访问网络时,进入“初始化”状态。在规模较大的网络中,为减轻DHCP服务器负担,通常指定多台DHCP服务器,服务器在端口67侦听DHCP报文。DHCP允许处在“绑定”状态的客户端提前终

DHCP协议:计算机网络应用中的关键网络协议

DHCP是互联网上使计算机或网络设备获得配置信息的引导协议,是BOOTP的扩展,并能与BOOTP协同工作。相比BOOTP,DHCP有两个优势:一是DHCP可使客户端在一个报文中获得全部所需的配置信息;二是DHCP可为客户端动态分配IP地址

DHCP也是客户端/服务器模式,请求配置信息的计算机或网络设备称DHCP客户端,负责提供信息的计算机称DHCP服务器。

DHCP使用与BOOTP相同的报文格式,DHCP服务器可接受客户端的BOOTP请求,并将配置信息提供给客户端。

1.地址分配方法

DHCP支持3种IP地址分配方法。

手工配置:DHCP支持与BOOTP相类似的静态IP地址分配方式,即在服务器上保存一个配置表,用于静态绑定硬件地址与IP地址。在此方式下,IP地址由系统管理员手工指定,而且为永久IP地址。由于每台计算机或网络设备的IP地址是唯一的,手工配置必须保证有足够的IP地址分配,否则相同的IP地址将导致网络通信冲突。

自动配置:DHCP支持动态分配IP地址的方式。为动态分配,系统管理员需在DHCP服务器上配置一个数据库,其中包含着一系列可用IP地址,当客户端启动时,向DHCP服务器发送请求,服务器则从数据库中取出一个IP地址,将其提供给客户端使用。客户端第一次成功获取IP地址后,将一直使用该IP地址,即所分配的是永久IP地址。DHCP服务器则必须保证分配给每个客户端的IP地址都是唯一的。该地址分配方式称为自动配置。

动态配置:当计算机需暂时接入网络,或一台计算机从一子网迁移到另一子网时,DHCP可在某时间段内为计算机自动分配可用IP地址,称“租借”,租约到期,客户端就停止使用该IP地址,或延续租约以继续使用该IP地址。这种动态分配非永久IP地址的方式称动态配置。

动态地址分配是DHCP的最重要的功能。DHCP使客户端无需手动设置即可自动获取IP地址,完成相关配置,如子网掩码、默认网关等,并连通网络,减少网管工作。

为了能进行动态地址分配,DHCP服务器上必须有一个数据库,用于保存一系列可供分配的IP地址,这些IP地址通常是由网管员指定。当客户端需要访问网络时,通过与DHCP服务器之间报文交换获取IP地址,服务器从尚未分配的IP地址中取出一个IP地址提供给客户端,一旦客户端接受了服务器提供的IP地址,就开始使用该地址进行网络通信。

动态地址分配提供的地址非永久性,有使用期限,DHCP服务器将IP地址“租借”给客户端使用一段时间,这段时间称“租用期限”。在分配IP地址的同时就确定了“租用期限”,在“租用期限”内服务器不会把同一个IP地址分配给其他客户端。一旦租约到期,客户端可选择延续租约,否则须停止使用该IP地址。无论服务器或客户端,都可在任何时刻中止租用。

服务器可根据需要来设置“租用期限”的长短。如提供上网接口的临时场所,为使IP地址及时回收,“租用期限”可设置短一些,如1~2h。对企业网络等,“租期”可设置为数天或数周。为在任何情况下都适用,DHCP允许客户端提出“租用期限”的请求,服务器则需通知客户端是否接受请求。作为一种极端,DHCP允许租期无限的情况,即分配永久IP地址,即前面提到的自动配置。

动态配置是唯一一种允许自动重用地址的分配方式,当可用IP地址不足时,动态配置是一种灵活方案。如ISP只能提供200个IP地址给拨号用户,但并不表明其客户最多只能有200个,因客户一般不可能全部在同一时间拨号上网,除用户各自行为习惯不同外,也有可能是线路限制。此时,可使用DHCP动态配置,将这200个IP地址,轮流租借给拨号上网客户使用,这就是为什么拨号上网用户每次上网时IP都不同的原因。

3种IP地址分配方法各有其特点,使用哪种分配方法,视具体情况而定。在很多情况下,系统管理员为某些计算机分配静态地址,为某些计算机动态获取永久或临时地址。

2.工作状态切换

在从DHCP服务器获取配置信息的过程中,DHCP客户端可处于以下6种工作状态之一:初始化、选择、请求、绑定、更新和重新绑定。图8-10详细说明了DHCP客户端的6种工作状态切换过程,以及在获取配置信息期间与DHCP服务器的报文交换。

978-7-111-43162-6-Chapter08-20.jpg

图8-10 DHCP客户端的6种工作状态切换

客户端启动并首次访问网络时,进入“初始化”状态。为发送数据报,客户端需获取一个IP地址,因此,客户端会在网络中广播DHCPDISCOVER报文,并进入“选择”状态。

在规模较大的网络中,为减轻DHCP服务器负担,通常指定多台DHCP服务器,服务器在端口67侦听DHCP报文。本地子网的每一个DHCP服务器都会收到客户端广播的DHCPDISCOVER报文,每个接收请求的DHCP服务器都检查自身是否有尚未分配的空闲地址,然后以DHCPOFFER报文作为响应,报文中包含分配给客户端的IP地址、子网掩码、DHCP服务器IP地址、租用期限等详细的配置信息。所有发送DHCPOFFER报文的服务器保留它们提供的地址,该地址在回收之前,不再分配给其他客户端。DHCP服务器必须以广播方式发送报文,因客户尚未获得能直接寻址的地址,广播发送给68端口,即DHCP客户端口。(www.xing528.com)

通常客户端会接收到多个DHCPOFFER报文,但只对首次接收的报文产生响应,以广播方式向DHCP服务器发送DHCPREQUEST报文,表示希望接收服务器提供的服务,同时进入“请求”状态。在DHCPREQUEST报文中,客户端还可以询问服务器其他的配置选项,如,DNS或网关地址等。

本地子网中所有DHCP服务器都可以看到客户端发送的DHCPREQUEST报文,但只有客户端指定的DHCP服务器会做出响应,其他DHCP服务器则将之前保留的IP地址进行回收。当服务器收到DHCPREQUEST报文时,以一个DHCPACK报文作为响应,该报文中提供了客户端请求的任何其他信息,并以广播方式发送。

当客户端收到DHCP服务器发来的DHCPACK报文后,就进入“绑定”状态。客户端可在“租期”内使用服务器提供的地址,且这段时间内一直保持“绑定”状态。

DHCP允许处在“绑定”状态的客户端提前终止租约,客户端只需向服务器发送一个DHCPRELEASE报文,并返回到“初始化”状态即可。提前终止租约在服务器或客户端无法较为精确地确定租借时间时很有用,服务器只要简单地选择一个足够长的“租借时间”给客户端就行了,客户端在不需要网络连接的时候及时释放IP地址。在可供使用的IP地址数目不多的情况下,DHCP的这个属性很重要。

一旦进入“绑定”状态,客户端将启动三个定时器。DHCP服务器在提供配置信息时,为定时器指定时间值,否则,客户端将使用协议中规定的默认值。

第一定时器的默认值是整个租借时间的50%,当达到规定时间时,如客户端还想继续使用当前地址,就需要进行延续租约操作。客户端需向为其提供地址的DHCP服务器发送一个DHCPREQUEST报文,用于询问是否能保持客户端当前的配置信息并更新租用期限,然后进入“更新”状态。如服务器同意客户端请求,就会向客户端发送一个DHCPACK报文,这样,客户端又回到“绑定”状态。该报文中可能包含新的租借时间值,也可能没有。如服务器不同意客户端继续使用当前地址,会向客户端发送一个DHCPNACK报文,客户端就停止使用当前地址,并返回到“初始化”状态。

客户端在发出延续租约的DHCPREQUEST报文后,如没有收到任何的响应信息,则可能网络出现问题或DHCP服务器不可用,这种情况下,DHCP会使用第二定时器,其默认期限为整个租借时间的87.5%,达到期限后客户端由“更新”状态转入“重新绑定”状态。客户端将向本地子网广播一个DHCPREQUEST报文,所有设置用于接收这个客户端请求的DHCP服务器都能响应这个请求。服务器发送DHCPACK报文表示同意延长租借时间,客户端则返回“绑定”状态;服务器发送DHCPNACK报文表示拒绝客户端继续使用当前地址,客户端则返回“初始化”状态。

如处于“重新绑定”状态的客户端,一直没有收到任何DHCP服务返回的响应,在第三定时器到期,即“租用时间”用完时,必须放弃当前使用的地址,并返回到“初始化”状态。

3.DHCP报文格式

DHCP报文沿用BOOTP报文格式,只对某些字段内容与含义做了修改,如图8-11所示。

978-7-111-43162-6-Chapter08-21.jpg

图8-11 DHCP报文格式

DHCP报文绝大多数字段与BOOTP报文中完全一致,因此DHCP与BOOTP后向兼容,DHCP服务器可响应BOOTP请求。DHCP报文只改变了两个字段,一是16位的“标志”字段,在BOOTP报文中它未被使用,二是BOOTP中的定长“特定厂商区域”字段,在DHCP中改为可变长度的“选项”字段。16位的“标志”字段只有最高位有意义,其余15位应设置为0。客户端将DHCP请求报文中“标志”字段的最高位设为1,可强制服务器将响应报文广播给客户端。客户端不能处理单播响应,因在获取DHCP服务器提供的地址之前,不能识别自己的IP地址。“选项”字段与BOOTP报文中的“特定厂商区域”字段的填写格式相同,每个选项条目由1B的“标签”(也称“代码”)字段,1B“长度”字段和数个字节的选项数据组成。DHCP报文类型选项3B组成,如图8-12。

978-7-111-43162-6-Chapter08-22.jpg

图8-12 DHCP报文类型选项的格式

DHCP报文有7种不同类型(表8-11),由报文类型选项的第3字节指定。

表8-11 DHCP报文类型

978-7-111-43162-6-Chapter08-23.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈