DHCP之简要分析
DHCP客户端从DHCP服务器动态获取IP地址,主要通过四个阶段进行:
(1) 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCP-DISCOVER报文。
(2) 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCP-DISCOVER报文后,根据IP地址分配的优先次序选出一个IP地址,与其他参数一起通过DHCP-OFFER报文发送给客户端。DHCP-OFFER报文的发送方式由DHCP-DISCOVER报文中的flag字段决定。
(3) 选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发来DHCP-OFFER报文,客户端只接受第一个收到的DHCP-OFFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含DHCP服务器在DHCP-OFFER报文中分配的IP地址。
(4) 确认阶段,即DHCP服务器确认IP地址的阶段。DHCP服务器收到DHCP客户端发来的DHCP-REQUEST报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认将地址分配给该客户端,则返回DHCP-ACK报文;否则返回DHCP-NAK报文,表明地址不能分配给该客户端。
注:
客户端收到服务器返回的DHCP-ACK确认报文后,会以广播的方式发送免费ARP报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内没有收到回应,客户端才使用此地址。否则,客户端会发送DHCP-DECLINE报文给DHCP服务器,并重新申请IP地址。
如果网络中存在多个DHCP服务器,除DHCP客户端选中的服务器外,其它DHCP服务器中本次未分配出的IP地址仍可分配给其他客户端。
DHCP 主要有四个过程: discover、offer、request、ack。
step 1:
客户端(PC机或移动终端)以广播包的形式,找寻可以提供分配ip的服务器或路由器,这即为discover阶段。
step 2:
所有收到这个discover广播包,并且可以有分配IP功能的服务器或路由器,会回应这个广播包;发包的方式可能是广播报文,也可能是 单播报文 (这因路由器的不同而可能不同)。这即为offer阶段
step3:
客户端收到这个包后(虽然这时候网络中有很多offer报文,但此时只会接受第一个到达的offer报文),从这个offer报文中提取所要的 ip,dns,net gate,并根据IP计算submask, 然后以广播包的形式,告知所有的可分配IP的服务器或路由器我已经得到一个IP,并且此报文中包含了为客户端分配IP的服务器或路由器的信息。这即为 request阶段。
step4:
所有的路由器或服务器收到这个request广播包之后,从中提取服务器的信息,如果是指向自己的,则会回ACK(同样,因路由器的不同回ACK的方式可能是广播报文,也可能是单播报文 ),其他的服务器或路由器则不会回ACK。这即为ACK阶段。
IP地址分配策略
针对客户端的不同需求,DHCP提供三种IP地址分配策略:
手工分配地址:由管理员为少数特定客户端(如WWW服务器等)静态绑定固定的IP地址。通过DHCP将配置的固定IP地址发给客户端。
自动分配地址:DHCP为客户端分配租期为无限长的IP地址。
动态分配地址:DHCP为客户端分配具有一定有效期限的IP地址,到达使用期限后,客户端需要重新申请地址。绝大多数客户端得到的都是这种动态分配的地址。
IP地址的租约更新
如果采用动态地址分配策略,则DHCP服务器分配给客户端的IP地址有一定的租借期限,当租借期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP地址租约。
在DHCP客户端的IP地址租约期限达到一半时间时,DHCP客户端会向为它分配IP地址的DHCP服务器单播发送DHCP-REQUEST报文,以进行IP租约的更新。如果客户端可以继续使用此IP地址,则DHCP服务器回应DHCP-ACK报文,通知DHCP客户端已经获得新IP租约;如果此IP地址不可以再分配给该客户端,则DHCP服务器回应DHCP-NAK报文,通知DHCP客户端不能获得新的租约。
如果在租约的一半时间进行的续约操作失败,DHCP客户端会在租约期限达到7/8时,广播发送DHCP-REQUEST报文进行续约。DHCP服务器的处理方式同上,不再赘述。
DHCP有8种类型的报文,每种报文的格式相同,只是某些字段的取值不同。DHCP报文格式基于BOOTP的报文格式,具体格式如图1-3所示(括号中的数字表示该字段所占的字节)。
各字段的解释如下:
l op:报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在option字段中标识。
l htype、hlen:DHCP客户端的硬件地址类型及长度。
l hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1。
l xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。
l secs:DHCP客户端开始DHCP请求后所经过的时间。目前没有使用,固定为0。
l flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播方式发送,0表示采用单播方式,1表示采用广播方式。其余比特保留不用。
l ciaddr:DHCP客户端的IP地址。
l yiaddr:DHCP服务器分配给客户端的IP地址。
l siaddr:DHCP客户端获取IP地址等信息的服务器IP地址。
l giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。
l chaddr:DHCP客户端的硬件地址。
l sname:DHCP客户端获取IP地址等信息的服务器名称。
l file:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。
l options:可选变长选项字段,包含报文的类型、有效租期、DNS服务器的IP地址、WINS服务器的IP地址等配置信息。
DHCP常用选项介绍
常见的DHCP选项有:
l Option 3:路由器选项,用来指定为客户端分配的网关地址。
l Option 6:DNS服务器选项,用来指定为客户端分配的DNS服务器地址。
l Option 51:IP地址租约选项。
l Option 53:DHCP消息类型选项,标识DHCP消息的类型。
l Option 55:请求参数列表选项。客户端利用该选项指明需要从服务器获取哪些网络配置参数。该选项内容为客户端请求的参数对应的选项值。
l Option 66:TFTP服务器名选项,用来指定为客户端分配的TFTP服务器的域名。
l Option 67:启动文件名选项,用来指定为客户端分配的启动文件名。
l Option 150:TFTP服务器地址选项,用来指定为客户端分配的TFTP服务器的地址。
l Option 121:无分类路由选项。该选项中包含一组无分类静态路由(即目的地址的掩码为任意值,可以通过掩码来划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。
l Option 33:静态路由选项。该选项中包含一组有分类静态路由(即目的地址的掩码固定为自然掩码,不能划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。如果存在Option 121,则忽略该选项。
分享到:
相关推荐
protocol_analysis_002.doc protocol_analysis_002.doc DHCP协议分析
通过DHCP抓包详细分析DHCP协议的详尽内容
一、 DCHP协议基础知识 2 1. IP网络主机配置方法概述 2 2. DHCP协议主机配置优缺点 3 二、 DHCP协议报文格式 3 1. DHCP协议封装 3 ...四、 从实际抓包分析DHCP协议 14 1. 前期准备: 14 2. DHCP解码信息 15
网络协议分析文档教程-DHCP 动态主机配置协议分析.pdf
HCP是一个非常典型的C/S模型(Client/Server)...DHCP Client是DHCP客户端,期望通过DHCP服务器获得ip地址等信息,使用端口68监听报文 (在生产环境中,DHCP客户端可以是PC、路由器、交换机、网络打印机、摄像头等等)
DHCP网络包分析
DHCP 可以说是 BOOTP 的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP环境...
CentOS局域网DHCP服务器搭建教程 DHCP通常是用于局域网内的一个通信协议,它主要是通过客户端发送广播数据报给整个物理网段的所有主机,若局域网内有DHCP服务器时,才会响应客户端的IP参数要求。所以,**DHCP服务器...
DHCP协议分析,通过抓包对报文进行分析解释
通过科来协议分析软件,对DHCP协议进行解码详解
一个不错的DHCP地址池状态分析系统,不错,推荐!
wlan dhcp认证成功率低常见问题分析,以及指标优化具体思路。
dhcp server dhcp client
华三DHCP及DHCP 中继实验配置
DHCP服务器学习之dhcp配置
DHCP报文格式和抓包分析,从最简单的报文格式开始分析,从基本上了解DHCP帧内容及其应用场景
android DHCP获取IP失败分析解决.pdf
DHCP Snooping功能的详细分析
dhcp4java java实现的dhcp协议