DHCP工作过程
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)。DHCP一般在局域网中使用,用于管理、分配IP地址,使client动态的获取IP等信息。简单来说就是自动给内网机器分配IP的。
DHCP的IP分配方式:
1. 自动分配:
当客户端第一次成功的从DHCP服务器上获取到一个IP后,就永远使用这个IP
2. 动态分配
客户端获取IP后,并非永久使用这个IP,每次使用完之后就得释放这个IP,供其他客户端使用。
3. 手动分配
DHCP服务器管理员专门为客户端分配地址
DHCP工作流程:
1. 客户端寻找DHCP服务器
2. DHCP服务器响应客户端
3. 客户端选择服务器的IP地址
4. 服务器确认
5. 重新登录IP的使用
6. 延长IP使用期限
一.发现阶段,即DHCP客户机寻找DHCP服务器的阶段
DHCP客户端启动时,计算机发现本机上没有任何IP地址设定,将以广播方式通过UDP 67端口发送DHCP Discover发现信息来寻找DHCP服务器,因为客户机还不知道自己属于哪一个网络,所以封包的源地址为0.0.0.0目的地址为255.255.255.255,向网络发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。

二.提供阶段,即DHCP服务器提供IP地址的阶段
DHCP服务器收到客户端发出的DHCP discover广播后,通过解析报文,查询dhcpd.conf配置文件。它会从那些还没有租出去的地址中,选择最前面的空置IP,连同其它TCP/IP设定,通过UDP 68端口响应给客户端一个DHCP offer数据包(包中包含IP地址、子网掩码、地址租期等信息)。告诉DHCP客户端,该DHCP服务器拥有资源,可以提供DHCP服务。

三.选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段
DHCP客户端接受到DHCP offer提供信息之后,如果客户机收到网络上多台DHCP服务器的响应,一般是最先到达的那个,然后以广播的方式回答一个DHCP request数据包(包中包含客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等)。告诉所有DHCP服务器它将接受哪一台服务器提供的IP地址,所有其他的DHCP服务器撤销它们的提供以便将IP地址提供给下一次IP租用请求。

四.确认阶段,即DHCP服务器确认所提供的IP地址的阶段
当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。

五.重新登录
以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。
六.更新租约
DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息
举个例子来说,在一个北展那么大的房子里,有很多人,这时候郭德纲大喊一声:“谁借我充电宝” ----这就是发现阶段DHCP discover
这时候于谦先说:“我有”,岳云鹏接着说:“我也有” ---提供阶段DHCP offer
这时候郭德纲说:于谦回答的,我借他的, ------选择阶段,选择第一个收到的DHCP服务器
于谦说:“好的,给你,一个小时还我” ---------确认阶段,DHCP提供IP
第二天,郭德纲手机有没电了,这次直接找于谦 -----重新登录
如果于谦说我的借给别人了,那郭老师就给重新开始第一步,大喊:“谁借我充电宝” -----如果IP无法给原来的用户,客户端必须重新发送DHCP discover
郭老师借了半个小时,觉得还要用,就对于谦说:“一会在还你,我在用一个小时” -------跟新租约
参考链接:
DHCP协议原理及其实现流程:
https://blog.csdn.net/wuruixn/article/details/8282554
DHCP协议详解:https://blog.csdn.net/zzd_zzd/article/details/88372014

浙公网安备 33010602011771号