DHCP技术介绍


DHCP

DHCP简介

随着网络规模的不断扩大和网络复杂度的提高,计算机的数量经常超过可供分配的IP地址数量。同时随着便携机及无线网络的广泛使用,计算机的位置也经常变化,相应的IP地址也必须经常更新,从而导致网络配置越来越复杂。DHCPDynamic Host Configuration Protocol,动态主机配置协议)就是为解决这些问题而发展起来的。

DHCP采用客户端/服务器通信模式,由客户端向服务器提出配置申请,服务器返回为客户端分配的IP地址等相应的配置信息,以实现IP地址等信息的动态配置。

DHCP的典型应用中,一般包含一台DHCP服务器和多台客户端(如PC和便携机),如1所示。

图1 DHCP典型应用

&  说明:

DHCP客户端和DHCP服务器处于不同物理网段时,客户端可以通过DHCP中继与服务器通信,获取IP地址及其他配置信息。

 

DHCPIP地址分配

IP地址分配策略

针对客户端的不同需求,DHCP提供三种IP地址分配策略:

l              手工分配地址:由管理员为少数特定客户端(如WWW服务器等)静态绑定固定的IP地址。通过DHCP将配置的固定IP地址发给客户端。

l              自动分配地址:DHCP为客户端分配租期为无限长的IP地址。

l              动态分配地址:DHCP为客户端分配具有一定有效期限的IP地址,到达使用期限后,客户端需要重新申请地址。绝大多数客户端得到的都是这种动态分配的地址。

IP地址动态获取过程

图2 IP地址动态获取过程

2所示,DHCP客户端从DHCP服务器动态获取IP地址,主要通过四个阶段进行:

(1)        发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCP-DISCOVER报文。

(2)        提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCP-DISCOVER报文后,根据IP地址分配的优先次序选出一个IP地址,与其他参数一起通过DHCP-OFFER报文发送给客户端。DHCP-OFFER报文的发送方式由DHCP-DISCOVER报文中的flag字段决定,具体请参见“DHCP报文格式”的介绍。

(3)        选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发来DHCP-OFFER报文,客户端只接受第一个收到的DHCP-OFFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含DHCP服务器在DHCP-OFFER报文中分配的IP地址。

(4)        确认阶段,即DHCP服务器确认IP地址的阶段。DHCP服务器收到DHCP客户端发来的DHCP-REQUEST报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认将地址分配给该客户端,则返回DHCP-ACK报文;否则返回DHCP-NAK报文,表明地址不能分配给该客户端。

&  说明:

l      客户端收到服务器返回的DHCP-ACK确认报文后,会以广播的方式发送免费ARP报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内没有收到回应,客户端才使用此地址。否则,客户端会发送DHCP-DECLINE报文给DHCP服务器,并重新申请IP地址。

l      如果网络中存在多个DHCP服务器,除DHCP客户端选中的服务器外,其它DHCP服务器中本次未分配出的IP地址仍可分配给其他客户端。

 

IP地址的租约更新

如果采用动态地址分配策略,则DHCP服务器分配给客户端的IP地址有一定的租借期限,当租借期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP地址租约。

DHCP客户端的IP地址租约期限达到一半时间时,DHCP客户端会向为它分配IP地址的DHCP服务器单播发送DHCP-REQUEST报文,以进行IP租约的更新。如果客户端可以继续使用此IP地址,则DHCP服务器回应DHCP-ACK报文,通知DHCP客户端已经获得新IP租约;如果此IP地址不可以再分配给该客户端,则DHCP服务器回应DHCP-NAK报文,通知DHCP客户端不能获得新的租约。

如果在租约的一半时间进行的续约操作失败,DHCP客户端会在租约期限达到7/8时,广播发送DHCP-REQUEST报文进行续约。DHCP服务器的处理方式同上,不再赘述。

DHCP报文格式

DHCP8种类型的报文,每种报文的格式相同,只是某些字段的取值不同。DHCP报文格式基于BOOTP的报文格式,具体格式如3所示(括号中的数字表示该字段所占的字节)。

图3 DHCP报文格式

各字段的解释如下:

l              op:报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在option字段中标识。

l              htypehlenDHCP客户端的硬件地址类型及长度。

l              hopsDHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1

l              xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。

l              secsDHCP客户端开始DHCP请求后所经过的时间。目前没有使用,固定为0

l              flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播方式发送,0表示采用单播方式,1表示采用广播方式。其余比特保留不用。

l              ciaddrDHCP客户端的IP地址。

l              yiaddrDHCP服务器分配给客户端的IP地址。

l              siaddrDHCP客户端获取IP地址等信息的服务器IP地址。

l              giaddrDHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。

l              chaddrDHCP客户端的硬件地址。

l              snameDHCP客户端获取IP地址等信息的服务器名称。

l              fileDHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。

l              option:可选变长选项字段,包含报文的类型、有效租期、DNS服务器的IP地址、WINS服务器的IP地址等配置信息。

附件下载

联系我们