🐣个人主页 可惜已不在
🐤这篇在这个专栏 华为_可惜已不在的博客-CSDN博客
🐥有用的话就留下一个三连吧😼
目录
一.
DHCP是什么?
动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户IP地址进行动态管理和配置。DHCP于1993年10月成为标准协议,其前身是BOOTP协议。DHCP协议由RFC 2131定义,采用客户端/服务器通信模式,由客户端(DHCP Client)向服务器(DHCP Server)提出配置申请,DHCP Server为网络上的每个设备动态分配IP地址、子网掩码、默认网关地址,域名服务器(DNS))地址和其他相关配置参数,以便可以与其他IP网络通信。
二.
DHCP的工作原理
(1)基本原理:
- 协议报文基于UDP的方式进行交互
- DHCP采用C/S(Client/Server,客户端/服务器)通信模式,采用67(DHCP服务器)和68(DHCP客户端)两个端口号
(2)DHCP客户端首次接入工作原理
阶段 | 工作内容 | |||
---|---|---|---|---|
第一步:发现阶段- | 首次接入网络的DHCP客户端以广播方式发送DHCP DISCOVER报文(目的IP地址为255.255.255.255)给同一网段内的所有设备(包括DHCP服务器或中继)。DHCP DISCOVER报文中携带了客户端的MAC地址(chaddr字段)、需要请求的参数列表选项(Option55)、广播标志位(flags字段)等信息。 | |||
第二步:提供阶段 |
| |||
第三步:这 选择阶段 |
| |||
第四步:确认阶段 |
|
看图片更为直观一些

DHCP工作图
三.
DHCP报文格式
报文名称 | 工作内容 |
---|---|
Op(op code): | 表示报文的类型,取值为1或2,含义如下: |
Secs(seconds): | 由客户端填充,表示从客户端开始获得IP地址或IP地址续后所使用了的秒数,缺省值为3600s |
Flags: | 客户端请求服务器发送响应报文的形式,只有最高位有意义,其余15位置0。最高位为0时请求发送单播响应,最高位为1时请求发送广播响应 |
Yiaddr (your client ip address): | 表示服务器分配给客户端的IP地址。当服务器进行DHCP响应时,将分配给客户端的IP地址填入此字段 |
Siaddr(server ip address): | DHCP服务器的IP地址Chaddr(client hardware address):客户端的MAC地址 |
Options: | DHCP通过此字段包含了服务器分配给终端的配置信息Htype(hardware type):表示硬件地址的类型 |
Hlen(hardware length): | 表示硬件地址的长度 |
Hops (hops): | 表示当前DHCP报文经过的DHCP Relay数目。该字段由客户端设置为0,每经过一个DHCP Relay时,该字段加1。此字段的作用是限制DHCP报文所经过的DHCP Relay数目 |
Xid: | 表示DHCP客户端选取的随机数,使DHCP服务器的回复与DHCP客户端的报文相关联 |
Sname(server host name): | 表示客户端获取配置信息的服务器名字。此字段由DHCP服务器填写,是可选的。如果填写,必须是一个以0结尾的字符串 |
File(file name): | 表示客户端启动DHCP相关配置的文件名。此字段由DHCP服务器填写,随着DHCP地址分配的同时下发至客户端。本字段是可选的,如果填写,必须是一个以0结尾的字符串 |

DHCP的报文结构图
四.
DHCP Options预定义选项字段介绍
Options类型 | 工作内容 | ||
---|---|---|---|
DHCP报文中Options字段 | 为可变长度字段,最多为312Byte,此字段包含了DHCP报文类型,服务器分配给终端的配置信息,如网关IP地址,DNS服务器的IP地址,客户端可以使用!P地址的有效租期等信息 | ||
Options字段 | 由Type、Length和Value三部分组成。其中Type字段取值范围1~255. | ||
Option 82称为中继代理信息选项 |
| ||
Option 43称为厂商特定信息选项 |
|
TLV对应值内容
五.
DHCP消息类型
DHCP报文通过Options选项中的Type=53来表示DHCP的报文类型。当Type=53,Length=1,Value取值从01到08分别表示不同的DHCP报文类型
消息类型 | 工作内容 |
---|---|
DHCP DISCOVER: | DHCP客户端首次登录网络时进行DHCP交互过程发送的第一个消息,用来寻找DHCP服务器。 |
DHCP OFFER:DHCP | 服务器用来响应DHCP DISCOVER消息,此消息携带了各种配置信息。 |
DHCP REQUEST:DHCP | 客户端广播请求回应DHCP服务器OFFER消息;DHCP客户端重启广播确认之前的IP地址等配置信息;续租。 |
DHCP DECLINE: | 当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此消息来通知服务器 |
DHCP ACK:DHCP | 服务器对客户端的DHCP REQUEST消息的确认响应消息 |
DHCP NAK: | 服务器对客户端的DHCP REQUEST消息的拒绝响应消息。 |
DHCP RELEASE: | 客户端可通过发送此消息主动释放服务器分配给它的IP地址。 |
DHCP INFORM:DHCP | 客户端获取IP地址后,如果需要向DHCP服务器获取更为详细的配置信息(网关地址、DNS服务器地)则向DHCP服务器发送DHCPINFORM请求消息址 |
六:
DHCP地址续租
- 当租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功。
- 当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCPACK报文,则租期更新成功。
- 如果租期时间到时都没有收到服务器的回应,客户端停止使用此IP地址,重新发送DHCP DISCOVER报文请求新的IP地址
七:
DHCP分配IP地址顺序
- DHCP服务器的数据库中与客户端MAC地址静态绑定的IP地址。
- 客户端以前曾经使用过的IP地址,即客户端发送的请求报文中请求IP地址选项的地址(通过DHCP REQUEST报文,报文中的Option 50(请求的IP地址选项)字段填入曾经使用过的IP地址)。
- 在DHCP地址池中,顺序查找可供分配的空闲IP地址,最先找到的IP地址。
- 如果在DHCP地址池中未找到可供分配的空闲IP地址,则依次查询超过租期、发生冲突的IP地址,如果找到可用的IP地址,则进行分配,否则报告错误
八:
DHCP中继客户端首次接入工作原理
第一和第二阶段
第一步:发现阶段
|
DHCP中继接收到DHCP客户端
广播发送的DHCP DISCOVER报
文后,进行如下处理
:
|
| ||||
第二步:提供阶段
|
|
|
第三和第四阶段
第三步:选择阶段- |
中继接收到来自客户端的DHCP REQUEST报文的处理过程同“第三步:选择阶段
|
第四步:确认阶段 |
中继接收到来自服务器的DHCP ACK报文的处理过程同“第四步:确认阶段”
|