DHCP (Dynamic Host Configuration Protocol ,动态主机配置协议)是IETF为实现IP的自动配置而设计的协议,它可以为客户端自动分配IP地址,子网掩码以及缺省网关,DNS服务器的IP地址等TCP/IP参数。DHCP是BOOTP的一种扩展。
DHCP协议在网络协议中所属的位置:
DHCP -------------应用层
UDP -------------传输层
IP -------------网络层
链路层
首先看下DHCP的报文格式。
报文格式:
- op,和BOOTP兼容,报文类型,BOOTREQUEST=1,表示请求报文;BOOTREPLY=2,表示回应报文。
- htype,硬件地址类型,1表示10Mb/s的以太网硬件。
- hlen,硬件地址长度,目前系统只对10Mb/s的以太网支持,硬件地址长度固定为6。
- hops,跳数。客户端设置为0,也能被一个DHCP中继代理服务器设置。
- xid,事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。该ID由客户端设置并由服务器返回,为32位整数。
- secs,由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数。
- flags,标志字段。这个16比特的字段,目前只有最左边的一个比特有用,该位为0,表示单播,为1表示广播。
- ciaddr(client ip address),客户端的IP地址。只有客户端是Bound、Renew、Rebinding状态,并且能响应ARP请求时,才能被填充。
- yiaddr(your Ip address),有DHCP服务器分配给DHCP客户端的IP地址。
- siaddr,表明DHCP协议流程的下一个阶段要使用的服务器的IP地址,通常在PXE,BOOTP时候指定下一站TFTP服务器的IP地址。
- giaddr(gataway Ip address),DHCP中继器的IP地址。
- chaddr(clent hardware address),客户端硬件地址(Mac地址)。客户端必须设置它的"chaddr"字段。UDP数据包中的以太网帧首部也有该字段,但通常通过查看UDP数据包来确定以太网帧首部中的该字段获取该值比较困难或者说不可能,而在UDP协议承载的DHCP报文中设置该字段,用户进程就可以很容易地获取该值。
- sname,可选的服务器主机名,该字段是空结尾的字符串,由服务器填写。
- file,启动文件名,是一个空结尾的字符串。DHCP Discover报文中是"generic"名字或空字符,DHCP Offer报文中提供有效的目录路径全名。
- options,可选参数域,格式为"代码+长度+数据"。
关于报文中的Options的可选项:
DHCP与BOOTP兼容Option。RFC中定义了很多Option,但是不同的设备上可能支持一部分。
下面链接是RFC中定义的BOOTP/DHCP的Option。两百多种。
http://www.networksorcery.com/enp/protocol/bootp/options.htm
有几个理解:
1、Option 53 : DHCP message type. DHCP报文的类型,包含以下类型:
[1-DHCPDISCOVER;2-DHCPOFFER; 3-DHCPREQUEST; 4-DHCPDECLINE; 5-DHCPACK; 6-DHCPNAK; 7-DHCPRELEASE; 8-DHCPINFORM]
2、Option 55: Parameter request list. 客户端请求的时候会带一个参数列表,其实这个列表也是一个Option的列表。但是服务端并不是必须按照客户端的参数列表完全填充该参数列表的option。
参考:
RFC,TCP/IP详解
bootp/dhcp option:http://www.networksorcery.com/enp/protocol/bootp/options.htm
相关推荐
### DHCP报文内容详解 #### 一、概述 动态主机配置协议(DHCP)是一种用于自动分配IP地址及其相关信息(如子网掩码、默认网关等)的网络管理协议。DHCP通过发送和接收特定格式的数据包来实现这一功能。本文档将深入...
### DHCP基本知识与主要流程详解 #### DHCP简介与作用 DHCP,全称为Dynamic Host Configuration Protocol,即动态主机配置协议,是一种自动化管理网络设备IP地址分配的重要机制。在网络环境中,尤其是大型网络或...
DHCP 协议解析、每个流程的报文解析 DHCP(Dynamic Host Configuration Protocol)是一种应用层协议,用于让主机自动获取 IP 地址和相关的网络参数。DHCP 协议采用 UDP 作为传输协议,主机发送请求消息到 DHCP ...
在DHCP的报文格式中,主要有四种类型的消息:DHCP Discover(发现)、DHCP Offer(提供)、DHCP Request(请求)和DHCP Acknowledge(确认)。此外,还有DHCP Decline(拒绝)、DHCP Release(释放)和DHCP Renew...
DHCP报文包含多种字段,用于传输客户端和服务器之间的配置信息。例如,在DHCP-DISCOVER报文中,包含了客户端的硬件地址、所需的服务类型等信息。在DHCP-OFFER报文中,则包含了服务器提供的IP地址、子网掩码、租约...
### DHCP报文格式详解与抓包分析 #### 一、DHCP报文格式概述 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种自动分配网络配置参数的服务协议,广泛应用于局域网环境中的IP地址分配。DHCP...
在Cisco路由器上配置DHCP(动态主机配置协议)是一项关键任务,它允许网络中的设备自动获取IP地址及其他网络配置信息。...此外,确保路由器和交换机的接口正确配置为VLAN模式,以允许DHCP报文在VLAN之间传输。
这涉及到理解DHCP报文的结构,如BOOTP字段(如Op Code、Hardware Type、Client IP Address、Your IP Address等)和DHCP选项(如DHCP Message Type、Server Identifier、Requested IP Address等)。 2. **网络通信**...
在某些情况下,需要将CISCO路由器配置为DHCP中继设备,以便将DHCP报文转发到其他网络中。要配置DHCP中继服务,需要执行以下命令: 1. 开启DHCP中继服务:Router1#service dhcp relay 2. 配置DHCP中继服务器:Router...
DHCP报文在传输过程中被封装成UDP数据报,并通过IP数据包进行传输。具体封装层次如下: - **链路层头**:使用广播形式发送。 - **IP包头**:客户端的源IP地址为全0(因为它还没有获得IP地址)。 - **DHCP报文**:...
CISCO路由器DHCP配置详解 DHCP(Dynamic Host Configuration Protocol)是一种网络协议,主要用来提供自动分配IP地址给网络设备的功能。DHCP协议在RFC2131中定义,使用UDP协议进行数据报传递,使用的端口是67和68。...
- 控制通过接口发送的DHCP报文的最大速率。 ```shell ZXR10(config-if)#ip dhcp snooping rate-limit ``` **6. 配置DHCP Snooping代理功能** - 使能代理功能以转发DHCP请求至DHCP服务器。 ```shell ZXR10...
"DHCP 协议解码详解" DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种帮助计算机从指定的 DHCP 服务器获取它们的配置信息的自举协议。DHCP 使用客户端/服务器模式,请求配置信息的计算机叫做...
DHCP报文格式是DHCP协议的核心组件之一,本节将详细介绍DHCP报文格式的组成部分和字段含义。 DHCP报文格式由以下几个部分组成: 1. Transaction ID(事务ID):是一个32位的整数,用于标识DHCP事务的唯一性。 2. ...
### DHCP自动获取服务配置操作详解 #### 一、DHCP简介与原理 ##### 1.1 DHCP定义 DHCP(Dynamic Host Configuration Protocol),即动态主机配置协议,是一种应用于TCP/IP网络的应用层协议。通过DHCP服务,网络...
Linux DHCPD(DHCP-4.2.5)源代码详解 DHCP(Dynamic Host Configuration Protocol)是一种网络协议,主要用于自动分配或动态地重新分配IP地址、子网掩码、默认网关等网络配置信息,使得网络设备在连接到网络时能够...