解析DHCP

何谓DHCP?
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)从原有的BootP协议发展而来,原来的目的是为无盘工作站分配IP地址的协议,当前更多地用于对多个客户计算机集中分配IP地址以及IP地址相关的信息的协议,这样就能将IP地址和TCP/IP的设置统一管理起来,而避免不必要的地址冲突的问题,因此常常用在网络中对众多DOS/Windows计算机的管理方面,节省了网络管理员手工设置和分配地址的麻烦。

DHCP提供了三种IP地址分配机制:
● 自动分配:给客户机分配永久的地址
● 动态分配:给客户机分配有一定租用期限的地址
● 手工分配:由网络管理员给客户机分配地址,并通过DHCP传达给客户机。
动态分配IP地址的优点:
● DHCP服务器自动重新分配不再被某客户机需要的地址。
● 动态地址分配尤其适合那些暂时与网络相连并且和一大批主机共用某个有限的地址池同时又不要求永久地址的主机。
● 当地址分配给一个永久与网络相连的主机并且地址池中可用地址很少时,也建议使用动态分配,当某个客户租用过期或主动释放其IP地址时,DHCP服务器会及时回收该地址以备之后重用。
除了能够方便管理之外,DHCP还能略微达到节省IP地址的目的。假设网络中有50台计算机,而只有40个 IP地址,但是这50台计算机不会同时启动,IP地址应该能满足要求。 DHCP也能用于统一设置其他的一些IP设置,如缺省路由、DNS服务器等等,使用它能减少一个大型网络的管理任务。

DHCP的工作过程
DHCP工作时要求客户机和服务器进行交互,由客户机通过广播向服务器发送申请IP地址的请求,然后由服务器分配一个IP地址以及其他的TCP/IP设置信息。整个过程可以分为以下几个

步骤:
IP地址租用申请 DHCP客户机的TCP/IP首次启动时,就要执行DHCP客户程序,以进行TCP/IP 的设置。由于此时客户机的TCP/IP还没有设置完毕,就只能使用广播的方式发送DHCP请求信息包,广播包使用 UDP端口67和68进行发送,广播信息中包括了客户机的网络界面的硬件地址和计算机名字,以提供给DHCP服务器进行分配。

IP地址租用提供 当接收到DHCP客户机的广播信息之后,所有的DHCP服务器均为这个客户机分配一个合适的IP地址,将这些IP地址、网络掩码、租用时间等信息,按照DHCP客户机提供的硬件地址通过DHCPOFFER报文发送回DHCP客户机。这个过程中DHCP服务器没有对客户计算机进行限制,因此客户机能收到多个IP地址提供信息。

IP地址租用选择 由于客户机接收到多个服务器发送的多个IP地址提供信息,客户机将选择一个IP地址,拒绝提供的其他IP地址,以便这些地址能分配给其他客户。客户机将向它选择的服务器发送选择租用信息。

IP地址租用确认 服务器将收到客户的选择信息,如果没有例外发生,将回应一个确认信息,将这个IP地址真正分配给这个客户机。客户机就能使用这个IP地址及相关的TCP/IP数据,来设置自己的TCP/IP堆栈。

IP地址租用拒绝 如果客户通过检测发现服务器提供的地址已被其他主机使用,就会通过向该服务器发送信息拒绝使用该地址,客户机将重新回到地址租用请求状态。
IP地址租用通知 如果客户机通过网络管理员手工配置已经获得了正确的IP地址,这时客户应该通过广播信息从服务器处获得其他配置信息。

更新租用 DHCP中,每个IP地址是有一定租期的,若租期已到DHCP服务器就能够将这个IP地址重新分配给其他计算机。因此每个客户计算机应该提前续租它已经租用的IP地址(客户机向提供给它IP地址的服务器发送DHCPREQUEST报文),服务器将回应客户机的请求并更新该客户机的租期设置。一旦服务器返回不能续租的信息(DHCPNAK),那么DHCP客户机只能在租期到达时放弃原有的IP地址,重新申请一个新 IP地址。为了避免发生问题,续租在租期达到50%时就将启动,如果没有成功将不断启动续租请求过程。如果直到租期达到87.5%时仍然没有得到该服务器的应答,则从那一刻开始以广播方式向所有服务器发出更新请求,如果直到租用期满还没有成功,客户机将重新进入地址请求状态,否则继续使用该地址。

释放IP地址租用 客户机可以通过发送DHCPRELEASE报文主动释放自己的IP地址请求;也可以不释放,但也不续租,等待租期过期而释放占用的IP地址资源。

由于DHCP依赖于广播信息,因此一般的情况下,客户机和服务器应该位于同一个网络之内。然而可以将网络中的路由器设置为转发BootP广播包,使得服务器和客户机可以位于两个不同的网络中。然而配置转发广播信息,不是一个很好的解决办法,更好的办法为使用DHCP中继代理服务器,DHCP中继代理服务器和DHCP客户机位于同一个网络中,来回应客户机的租用请求,然而它不维护DHCP数据,也不拥有IP地址资源,它只是将请求通过TCP/IP转发给位于另一个网络上的DHCP服务器以进行实际的IP地址分配和确认。中继代理服务器必须知道DHCP服务器的地址,还要知道如何把接收到的报文转发给该服务器。

文章录入:dnbm    责任编辑:dnbm 

你可能感兴趣的:(解析DHCP)