DHCP的工作原理
时间:2012-11-17
启用DHCP的客户机第一次启动并试图加入网络时,它自动执行以下的初始化步骤,以便从DHCP服务器获得租约。
1.当DHCP客户端第一次登录网络时,假如客机机上没有任何IP信息设定,它会向网络发出DHCP DICOVER数据包。因为客户端不知道DHCP服务器的位置,为保证服务器能够接受到请求,数据包源地址设定为0.0.0.0,而目的地址为255.255.255.255,以广播形式发送DHCP DISCOVER的信息。
2.当DHCP服务器监听到客户端发出的DHCP DISCOVER广播后,它会从那些还没有租出的地址范围内,选择可用的IP,连同其他TCP/IP设定,以DHCP OFFER数据包形式发送给客户机。
3.如果客户端收到网络上多台DHCP服务器的响应,会挑选响应最快的一个DHCP OFFER,并且会向网络发送一个DHCP REQUEST广播封包,告诉所有DHCP服务器它使用哪一台服务器提供的IP地址。
同时,客户端还会向网络发送ARP广播数据包,查询网络上面有没有其他机器使用这个IP地址;如果发现这个IP已经被占用,客户则会送出一个DHCP DECLINE数据包给DHCP服务器,拒绝接受其DHCP OFFER,并重新发送DHCP REQUEST信息。
4.将地址分配给客户机,DHCP服务器发送一个DHCP ACK消息,以确认IP租约的正式生效,结束完整的DHCP工作过程。
5.DHCP客户端成功地从服务器取得IP地址之后,一般不需要再发送DHCP DISCOVER信息了,除非其租约已经失效或者IP地址也重新设定回0.0.0.0.而会直接使用已经租用到的IP地址向为其发此IP地址的DHCP服务器发出DHCP REQUEST信息,DHCP服务器会尽量让客户端使用原来的IP地址,如果没特殊情况,会直接响应DHCP ACK,允许客户端继续使用这个IP地址,如果这个地址已经失效或已经被其他机器使用了,服务器则会响应一个DHCP NACK数据包给客户端,要求其重新执行DHCP DISCOVER.