运行原理,如图2-1所示。
2-1 DHCP运行过程示意图
1.DHCP Client发现阶段
即DHCP客户端寻找DHCP服务端的过程,对应客户端发送DHCP Discovery,因为DHCP Server对应于DHCP客户端是未知的,所以DHCP客户端发出的DHCP Discovery报文是广播包,源地址为 0.0.0.0 目的地址为255.255.255.255。网络上的所有支持TCP/IP的主机都会收到该DHCP Discovery报文,但是只有DHCP Server会响应该报文。
注:客户端执行DHCP Discovery后,如果没有DHCP服务器响应客户端的请求,客户端会随机使用169.254.0.0/16 网段中的一个IP地址配置本机地址。
2.DHCP Server提供阶段
DHCP Server提供阶段,即为DHCP Server响应DHCP Discovery所发的DHCP Offer阶段,即DHCP服务器提供的IP地址的阶段。在网络中接到DHCP Discovery发现信息的DHCP服务器都会做出响应,它从未出租的一个IP地址中挑选一个分配给DHCP客户机,向客户机发送一个包含出租的IP地址和其他设置的DHCP Server提供信息。
3.DHCP Client确认阶段
即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果多台DHCP服务器向DHCP客户机发来的DHCP Offer提供信息,则DHCP客户机只接受第一个收到的DHCP Offer提供信息,然后它就以广播方式回答一个DHCP Request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。
4.DPCH Server确认阶段
即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP Request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP Pack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
5.DHCP Client重新登录网络
当DHCP Client重新登录后,就不需要再发送DHCP Discover发现信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如IP地址已分配其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送 Discover发现信息来请求新的IP地址。
6.DHCP Client更新租约
DHCP获取到的IP地址都有一个租约,租约过期后,DHCP Server将收回该IP地址,所以如果DHCP Client如果想继续使用该IP地址,则必须更新租约。更新的方式就是,当前租约期限过了一半后,DHCP Client都会发送DHCP Renew报文来续约租期。