DHCP报文
DHCP报文是承载于UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号。DHCP报文的格式如下图所示。
图1 DHCP报文格式
< 所有DHCP提供的配置信息都在options字段中,这才是精华部分 >
报文中各字段的描述如下:
- op,报文类型,1表示请求报文,2表示回应报文。
- htype,硬件地址类型,1表示10Mb/s的以太网的硬件地址。
- hlen,硬件地址长度,以太网中该值为6。
- hops,跳数。客户端设置为0,也能被一个代理服务器设置。
- xid,事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。该ID由客户端设置并由服务器返回,为32位整数。
- secs,由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数。
- flags,标志字段。这个16比特的字段,目前只有最左边的一个比特有用,该位为0,表示单播,为1表示广播。
- ciaddr,客户端的IP地址。只有客户端是Bound、Renew、Rebinding状态,并且能响应ARP请求时,才能被填充。
- yiaddr,"你自己的"或客户端的IP地址。
- siaddr,表明DHCP协议流程的下一个阶段要使用的服务器的IP地址。
- giaddr,DHCP中继器的IP地址。//注意:不是地址池中定义的网关
- chaddr,客户端硬件地址。客户端必须设置它的"chaddr"字段。UDP数据包中的以太网帧首部也有该字段,但通常通过查看UDP数据包来确定以太网帧首部中的该字段获取该值比较困难或者说不可能,而在UDP协议承载的DHCP报文中设置该字段,用户进程就可以很容易地获取该值。
- sname,可选的服务器主机名,该字段是空结尾的字符串,由服务器填写。
- file,启动文件名,是一个空结尾的字符串。DHCP Discover报文中是"generic"名字或空字符,DHCP Offer报文中提供有效的目录路径全名。
-
options,可选参数域,格式为"代码+长度+数据"。
DHCP Options
Option id |
Length(字节) |
描述 |
1 |
4 |
Subnet Mask |
3 |
n*4 |
Router(网关) |
6 |
n*4 |
DNS Server |
7 |
n*4 |
Log Server |
26 |
2 |
Interface MTU |
33 |
n*8 |
Static route |
35 |
4 |
ARP cache timeout |
42 |
n*4 |
NTP servers |
51 |
4 |
IP address lease time |
53 |
1 |
Message type 1-DHCPDISCOVER 2-DHCPOFFER 3-DHCPREQUEST 4-DHCPDECLINE 5-DHCPACK 6-DHCPNAK 7-DHCPRELEASE 8-DHCPINFORM |
54 |
4 |
DHCP Server Identifier |
60 |
n |
华为自定义:可配置该终端设备在发起DHCP请求时,通过Option 60携带域信息。ME60收到DHCP报文时,可根据Option 60中携带的域信息来分配IP地址。 |
82 |
n |
华为自定义:ME60作为DHCP Relay,在中继用户DHCP报文时,可在Option 82中填写用户的物理位置信息,通知DHCP服务器按物理位置信息对为用户分配IP地址。 |
DHCP报文类型
DHCP共有八种报文,分别为DHCP Discover、DHCP Offer、DHCP Request、DHCP ACK、DHCP NAK、DHCP Release、DHCP Decline、DHCP Inform。各报文类型功能如表1所述。
DHCP报文类型 |
描述 |
DHCP Discover |
DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置。 |
DHCP Offer |
DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如网关、DNS服务器等),构造一个Offer报文,发送给用户,告知用户本服务器可以为其提供IP地址。< 只是告诉client可以提供,是预分配,还需要client通过ARP检测该IP是否重复> |
DHCP Request |
DHCP客户端可能会收到很多Offer,所以必须在这些回应中选择一个。Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器,并回应一个广播Request报文,通告选择的服务器。DHCP客户端成功获取IP地址后,在地址使用租期过去1/2时,会向DHCP服务器发送单播Request报文续延租期,如果没有收到DHCP ACK报文,在租期过去3/4时,发送广播Request报文续延租期。 |
DHCP ACK |
DHCP服务器收到Request报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录,如果有则发送ACK报文作为回应,通知用户可以使用分配的IP地址。 |
DHCP NAK |
如果DHCP服务器收到Request报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则发送NAK报文作为回应,通知用户无法分配合适的IP地址。 |
DHCP Release |
当用户不再需要使用分配IP地址时,就会主动向DHCP服务器发送Release报文,告知服务器用户不再需要分配IP地址,DHCP服务器会释放被绑定的租约。 |
DHCP Decline |
DHCP客户端收到DHCP服务器回应的ACK报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送Decline报文,通知服务器所分配的IP地址不可用。 |
DHCP Inform |
DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,服务器收到该报文后,将根据租约进行查找,找到相应的配置信息后,发送ACK报文回应DHCP客户端。< 极少用到> |
参考:华为ME60产品文档及RFC2131/RFC2132
相关推荐
DHCP 协议解析、每个流程的报文解析 DHCP(Dynamic Host Configuration Protocol)是一种应用层协议,用于让主机自动获取 IP 地址和相关的网络参数。DHCP 协议采用 UDP 作为传输协议,主机发送请求消息到 DHCP ...
DHCP报文在TCP/IP通信中扮演着关键角色,它允许设备(如计算机、手机)连接到网络时获取必要的网络设置。在标题中提到的"dhcp release"报文是DHCP协议的一个组成部分,现在我们将深入探讨这个主题。 首先,DHCP报文...
在给定的“dhcp报文.zip”压缩包中,包含了两个Wireshark捕获的PCAPNG文件,用于分析DHCP客户端与服务器以及DHCP中继的交互过程。 1. DHCP客户端与服务器的交互: - DHCP发现(DHCP Discover):当新设备接入网络...
DHCP 报文类型共有八种,分别为DHCP Discover、DHCP Offer、DHCP Request、DHCP ACK、DHCP NAK、DHCP Release、DHCP Decline、DHCP Inform。每种报文类型都有其特定的功能和应用场景。 DHCP Discover 报文是DHCP ...
### DHCP报文格式详解与抓包分析 #### 一、DHCP报文格式概述 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种自动分配网络配置参数的服务协议,广泛应用于局域网环境中的IP地址分配。DHCP...
通过对DHCP报文内容的详细解析,我们可以更好地理解DHCP的工作原理和技术细节。DHCP通过定义一系列标准的报文格式和交互流程,使得网络中的设备能够自动获得所需的网络配置信息,从而大大简化了网络管理的工作。对于...
DHCP协议pcap数据包下载,支持抓包软件(如:wireshark)打开并学习DHCP协议报文解析。需要其他协议,请查看我发布的其他资源。
易语言模拟DHCP报文源码,模拟DHCP报文,Binary2String,Byte2Hex,GetAdapterMac,String2Binary,checksum,Ethernet报文,IP报文,UDP报文,Discover,Request,Release,Request_续期,addr2str,字节集反转,解析Options,获取...
4. DHCP报文分析:通过监听和解析DHCP报文,服务器可以了解哪些IP地址已被分配,从而避免重复分配。这种方法可能涉及DHCP Offer、ACK和Nak报文的处理。 5. 实时共享机制:资料可能介绍了一种基于DHCP报文的实时更新...
### DHCP报文格式RFC1541:详细解析与应用 #### 一、DHCP协议基础知识 **DHCP(Dynamic Host Configuration Protocol)**是一种用于自动配置网络设备IP地址及其相关参数的标准协议。它通过简化主机配置的过程来...
在“易语言模拟DHCP报文源码.zip”这个压缩包中,包含的是使用易语言编写的模拟DHCP(Dynamic Host Configuration Protocol)报文的源代码。DHCP是一种网络协议,用于自动分配IP地址、子网掩码、默认网关等网络配置...
以下是对DHCP报文的详尽解析: 1. DHCP Discover(发现) 当一个新设备(客户端)连接到网络时,它不知道自己的IP地址,所以会发送一个DHCP Discover报文,广播到网络中的所有设备。这个报文包含客户端的MAC地址,...
- DHCP Offer:网络上的DHCP服务器接收到Discover报文后,会响应一个DHCP Offer报文,提供一个可用的IP地址和其他网络配置信息。Offer报文中的"Your (client) Ip address"字段包含了服务器准备出租的IP地址,同时,...
自己写的一个有关DHCP的PPT,包括一些DHCP工作原理及一些包的结构,希望能对大家有用。
当DHCP服务器收到DHCP Discover报文后,会响应一个DHCP Offer报文,其中包含服务器为客户端分配的IP地址及其相关信息。此阶段的特点包括: - **网络接口层**:报文依然包含MAC地址信息,但在这一阶段,服务器已经为...
Linux和Windows服务端DHCP报文对比研究.pdf
dhcp 解析option和调试 dhcp 解析option和调试
- 中继代理在转发客户端的DHCP报文到服务器时,会在报文中添加自己的源和目的IP地址和MAC地址,以便服务器能够正确响应。 - 中继代理在接收到服务器的DHCP响应后,会将响应报文的目标地址改为客户端的MAC地址,并...
dhcp报文共享
- `clientpacket.c`: 可能包含了客户端DHCP报文的构建和解析逻辑。 - `options.c`: 处理DHCP选项的函数,如请求特定的网络配置参数。 - `packet.c`: 可能包含了UDP数据包的发送和接收功能。 - `socket.c`: 实现...