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报文内容详解.pdf
从 BOOTP协议到DHCP协议,包括DHCP的报文格式,发送的7种报文,还有例子可看奥
服务器对客户端的 DHCP REQUEST 报文的确认响应报文,客户端收到此报文后,才真正获得了 IP 地址和相关的配置信息。 总结:租约约定在offer阶段便开始了,offer、request、ack阶段均有 dns:在discocer的关键参数...
DHCP报文解析,有详细的流程图,和每个阶段对应的报文解析。较全面的介绍了dhcp协议工作的原理,同时结合报文讲解,更容易了解和记住。
详细介绍DHCP报文格式,分析DHCP报文的帧格式,从各个字段讲解
DHCP的工作流程 DHCP的报文格式 解码信息
dhcp 报文交互详解 报文类型 交互过程
解析 68 7.9 小结 69 第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址池 74 ...
04 第2课下-router lsa详解 05 第3课 2 3 类LSA 06 第4课上-123类lsa 07 第四课下-4 5类lsa,特殊区域 08 第5课上-nssa、汇总、认证 09 第5课下-OSPF综合实验 10 第6课上-eth-trunk 11 第6课下-muxvlan、端口...
网盘文件永久链接 01-数据通信基础 02-参考模型 封装解封装 ensp模拟器 03-MAC地址 进制转换 04-csma cd 以太网帧结构 认识交换机 ...光纤光模块详解 模拟器与实验环境 视频讲解 HCIA-Datacom V1.0PPT+实验手册
第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址池 74 8.4 DHCP能处理的其他分配 75 8.4.1 注意重载 75 ...
8 BGP详解 9 BGP实验 10 ISIS概念 11 I-S---I-S-介-绍 12 组播技术介绍 13 组播IGMP 14 组播PIM-DM 15 PIM协议介绍 16 路由策略和策略路由 17 Eth-Trunk 18 Rstp+MSTP 19 MPLS原理介绍 20 MPlS与MPLS 21 MPLS实验 ...
PPPoE & IPoE 协议原理 一、概述 二、PPPoE 协议原理 2.1 PPPoE 报文结构 2.2 PPPoE 总体接入认证流程 ... 3.1 DHCP 报文结构 3.2 DHCP 建立过程 3.3 IPoE 接入认证过程 四、 两种宽带认证技术的比较
DHCP数据报文 内部网关协议和外部网关协议 802.11协议族 安全协议之:RADIUS IPv4协议(互联网协议) TCP-传输控制协议 MDLC协议 FTP协议的分析和扩展 TFTP:简单文件传输协议 ADSL使用中常见协议 网络安全...
第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址池 74 8.4 DHCP能处理的其他分配 75 8.4.1 注意重载 75 ...
第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址池 74 8.4 DHCP能处理的其他分配 75 8.4.1 注意重载 75 ...
web/portal认证由于其简单和与业务密切相关的特性引起许多人的关注!...本文提出强制认证、arp/心跳报文断线检测和二次dhcp地址分配等策略。扬长避短,使用web/portal认证真正能够在比较大型的运营商网络中使用
第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址池 74 8.4 DHCP能处理的其他分配 75 8.4.1 注意重载 75 ...
第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址池 74 8.4 DHCP能处理的其他分配 75 8.4.1 注意重载 75 ...