71 FreeBSD连载:DHCP的工作过程

设置DHCP动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)是用于对多个客户计算机集中分配IP地址以及IP地址相关的信息的协议,这样就能将IP地址和TCP/IP的设置统一管理起来,而避免不必要的地址冲突的问题,因此常常用在网络中对众多Dos/Windows计算机的管理方面,节省了网络管理员手工设置和分配地址的麻烦 。
除了能够方便管理之外,DHCP还能略微达到节省IP地址的目的 。假设网络中有50个计算机,但只有40个IP地址,但是这50台计算机不会同时启动,IP地址应该满足要求 。如果使用静态IP地址的设置方式,还是会遇到分配地址的困难,因为计算机的使用是随机的,无论怎样分配地址都无法避免出现冲突现象,而使用DHCP就能避免这个问题 。DHCP也能用于统一设置其他的一些IP设置,如缺省路由、DNS服务器等等,使用它能减少一个大型网络的管理任务 。
【71 FreeBSD连载:DHCP的工作过程】DHCP是从原有的BootP协议发展起来的,原来的目的是为无盘工作站分配IP地址的协议,当前更多的用于集中管理IP地址 。然而DHCP协议也有其缺点,例如一台DHCP客户计算机没有一个固定的IP地址,而对于提供网络服务的服务器来讲,经常变化的IP地址并不适合 。并且当前的DNS协议并不能和DHCP协作,为DHCP客户直接提供主机名解析任务 。
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客户提供的硬件地址发送回DHCP客户机 。这个过程中对DHCP服务器没有对客户计算机进行限制,因此客户机能收到多个IP地址提供信息 。
IP地址租用选择:由于客户机接收到多个服务器发送的多个IP地址提供信息,客户机将选择一个IP地址,拒绝其他提供的IP地址,以便这些地址能分配给其他客户 。客户机将向它选择的服务器发送选择租用信息 。
IP地址租用确认:服务器将收到客户的选择信息,如果也没有例外发生,将回应一个确认信息,将这个IP地址真正分配给这个客户机 。客户机就能使用这个IP地址及相关的TCP/IP数据,来设置自己的TCP/IP堆栈 。
更新租用:DHCP中,每个IP地址是有一定租期的,若租期已到,DHCP服务器就能够将这个IP地址重新分配给其他计算机 。因此每个客户计算机应该提前不断续租它已经租用的IP地址,服务器将回应客户机的请求并更新该客户机的租期设置 。一旦服务器返回不能续租的信息,那么DHCP客户机只能在租期到达时放弃原有的IP地址,重新申请一个新IP地址 。为了避免发生问题,续租在租期达到50%时就将启动,如果没有成功将不断启动续租请求过程 。
释放IP地址租用:客户机可以主动释放自己的IP地址请求,也可以不释放,但也不续租,等待租期过期而释放占用的IP地址资源 。
由于DHCP依赖于广播信息,因此一般的情况下,客户机和服务器应该位于同一个网络之内 。然而可以设置网络中的路由器为可以转发BootP广播包,使得服务器和客户机可以位于两个不同的网络中 。然而配置转发广播信息,不是一个很好的解决办法,更好的办法为使用DHCP中转计算机,DHCP中转计算机和DHCP客户机位于同一个网络中,来回应客户机的租用请求,然而它不维护DHCP数据和拥有IP地址资源,它只是将请求通过TCP/IP转发给位于另一个网络上的DHCP服务器,进行实际的IP地址分配和确认 。

推荐阅读