DHCP服务器的四个包是Discover(发现)、Offer(提供)、Request(请求)和ACK(确认),这四类报文按顺序组成DORA过程,完成客户端从服务器获取IP地址的完整握手,这个过程看似简单,但每一个包的角色和时机都有严格定义,排查网络故障时,抓包看这四类报文的状态,就能快速定位问题。
DHCP四个包分别是什么
DHCP全称动态主机配置协议,工作在应用层,底层依赖UDP,客户端用68端口,服务器用67端口,当你把电脑接入局域网时,网卡会自动向网络里发起一次IP租用请求,这次请求并不是一步完成的,而是通过四类报文逐层推进。
Discover:客户端的“有人吗”
电脑开机后,如果没有静态IP配置,网卡会发出一个DHCP Discover广播包,目标地址是255.255.255.255,源地址是0.0.0.0,这个包的唯一目的就是问一句:网络里有没有DHCP服务器?如果有,请给我一个可用的IP地址,该广播包会携带客户端的MAC地址和机器名,作为服务器的识别依据。
Offer:服务器的“我用这个”
局域网里的DHCP服务器收到Discover后,会从地址池里挑一个尚未租出去的IP,连同子网掩码、网关、DNS等参数,打包进一个Offer包,单播或者广播回传给客户端,这里有个关键细节:服务器在Offer阶段不会立刻把IP标记为已占用,而是先预留,等客户端回应后再正式锁定租约。
Request:客户端的“就它了”
如果网络里存在多台DHCP服务器,客户端会收到多个Offer包,客户端只会选择第一个到达的Offer,然后广播一次Request包,向全网声明:我接受了某个服务器给的IP,其他服务器的Offer我通通不要,这个广播动作非常聪明,既确认了目标服务器,又顺带通知其他服务器释放预留地址。
ACK:服务器的“成交”
目标服务器收到Request后,会做最后一步确认,回传一个ACK包,这个包里包含正式的IP地址、租约时长、续租时间等参数,客户端收到ACK后,会用这个IP做一次地址冲突检测,如果发现IP已被占用,会发一个Decline包拒绝该租约,再重新走一次Discover流程,整个过程四类报文缺一不可,业界常把Discover、Offer、Request、ACK的首字母组合起来,称为DORA过程。
DHCP四个包的顺序和租约关系
DHCP四包交互不只是开机时发生一次,租约到期前,客户端会按时间节点发起续租,续租流程和初次获取有区别,但四类报文依然会轮番登场。
租约续租的两个关键节点

客户端拿到IP后,会记录两个时间点:租约50%和租约87.5%,租约过半时,客户端会直接单播Request包给原服务器,请求续约,如果服务器同意,回一个ACK,租约重置,整个交互只需要两个包,但如果过半时服务器没有响应,客户端会在租约87.5%时再次发起Request请求,这次改用广播,寻找任何一台可用的DHCP服务器兜底,业内专家指出,多数企业局域网出现IP冲突,往往发生在租约续租失败、客户端重新走完整DORA流程之后。
租约释放的悄悄话
电脑关机或断网时,客户端会主动发一个Release包给服务器,告诉它这个IP我不再使用了,服务器收到后会把地址放回池子,注意,Release包不属于DORA四包中的任何一环,它是独立的第五种报文,常见于故障排查中的地址归还场景。
DHCP服务器怎么配置
了解四包的含义后,配置DHCP服务器就有章可循了,不同场景下的配置路径差异较大,下面按家用路由器和企业Linux服务器两种典型环境说明。
家用路由器开启DHCP
家用宽带路由器出厂默认开启DHCP服务,多数用户无需改动,需要调整时,进入路由器管理后台,找到“DHCP服务器”或“局域网设置”页面,核心配置项有三个:
- 地址池范围:决定分配给客户端的IP起止区间,例如192.168.1.100到192.168.1.199
- 租约时间:家用环境建议保持默认的24小时或2小时,终端设备多就设短一些
- 网关和DNS:不填写时默认下发路由器自身IP,可手动改为公共DNS如114.114.114.114
Linux服务器配置DHCP服务
企业内网用Linux做DHCP服务器,需要安装dhcpd服务,以CentOS/RHEL系列为例,先执行yum install dhcp安装,随后编辑主配置文件/etc/dhcp/dhcpd.conf,核心段落如下:
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option routers 192.168.10.1;
option domain-name-servers 223.5.5.5, 119.29.29.29;
default-lease-time 600;
max-lease-time 7200;
}
配置完成后执行systemctl restart dhcpd重启服务,这里重点解释default-lease-time和max-lease-time的区别:默认租约是客户端无特殊要求时的租期,最大租约是客户端主动请求长租期时服务器能给予的上限,调试时执行tail -f /var/log/messages可以实时查看服务日志,确认四包交互是否正常完成。
验证四包交互的关键命令

配置完后,用客户端机器执行ipconfig /release释放旧地址,再执行ipconfig /renew重新获取,如果成功,客户端会显示获得的IP、网关和DNS,若获取失败,换用dhclient -v命令在前台运行,可以看到客户端正在经历Discover、Offer、Request、ACK的每一帧报文,哪一步卡住一目了然。
DHCP抓包分析四包交互
文字描述不够直观时,抓包是理解四包最有效的方式,Wireshark是行业内最常用的抓包工具,操作路径清晰,即使是初学者也能快速掌握。
抓包过滤规则
打开Wireshark,选择与局域网相连的网卡,在过滤栏输入bootp或dhcp,抓包全过程建议先在客户端执行ipconfig /release,再开始抓包,最后执行ipconfig /renew,这样四包顺序干净利落,不会混入无关流量。
四包的关键字段识别
- Discover包:源IP为0.0.0.0,目的IP为255.255.255.255,Option 53字段值为1
- Offer包:目的IP为客户端MAC对应的IP,多数情况下为广播,Option 53字段值为2
- Request包:源IP仍为0.0.0.0,目的IP为255.255.255.255,Option 53字段值为3,注意此时Option 54字段会标明选中的服务器IP
- ACK包:目的IP为分配给客户端的IP,Option 53字段值为5,同时携带租约时长、子网掩码、网关等信息
常见故障特征
抓包结果里出现了Discover但没有Offer,说明服务器不可达或地址池耗尽,有Offer但客户端没有回Request,常见原因是客户端网卡驱动异常或防火墙拦截了UDP 68端口,有Request但服务器不回ACK,大概率是服务器日志报错,检查ip冲突检测是否开启、配置文件的range和subnet是否匹配,还有一类低频故障:客户端收到ACK后仍显示无网络,可以检查客户端是否拿到了和网关相同的IP,或子网掩码是否被错误下发。
DHCP服务器选型对比
不同场景下DHCP服务器的承载能力和价格差异较大,采购前先明确终端数量再做决策,避免资源浪费或性能不足。
小型企业办公场景
终端数量在100台以内时,用路由器自带的DHCP服务即可满足需求,主流企业级路由器,如锐捷、H3C的入门款,DHCP地址池支持数百个IP分配,价格在数百元到千元区间,这个量级下单独部署一台DHCP服务器属于过度设计,维护成本高并且收益有限。
中大型园区网络场景
终端数量超过500台,或网

络存在多VLAN划分时,建议部署独立DHCP服务器,这里有两种主流方案:基于Windows Server或Linux的软件方案,以及基于核心交换机内置DHCP服务的硬件方案,软件方案灵活可控,一台4核8G的服务器就能支撑数千个终端并发请求,硬件成本在万元左右,交换机方案性能更强,但不适合做跨网段地址分配,多用于单一广播域内的大规模地址下发,据行业共识,有相当比例的后续IP地址冲突问题,不是服务器性能不足,而是多台DHCP设备同时存在于同一二层网络里导致的。
家用宽带场景
家庭环境无需纠结造包过程,光猫和路由器都内置了DHCP服务,但需要注意两个要点:光猫改桥接模式后,DHCP由路由器接管,光猫自身的DHCP服务需保持关闭,否则会出现两个DHCP服务器抢答,用户感知到网速时快时慢,再一个要点是关闭路由器WAN口的自动获取IP,手动指定一个和光猫管理网段不冲突的地址,防止网络拓扑变更时DORA过程混乱。
关于DHCP服务器四个包的常见问题
DHCP Offer包一定是广播发送吗
不一定,Offer包具体是单播还是广播,取决于客户端在Discover包中设置的Flags字段,如果客户端明确请求用单播回复,服务器就发单播;如果客户端没有特别声明,多数服务器会直接广播,实践中,单播请求能显著减少局域网内的无效广播流量,现代操作系统如Windows 10以上版本默认都会请求单播回复。
DHCP服务器没有回ACK包,IP地址会怎样
客户端会继续使用通过Offer拿到的IP,但处于不可靠状态,由于没有收到ACK,客户端不知道租约生效时间,它会在租约时间过半时重新发起Request请求,如果三次请求都没有得到ACK,客户端会放弃该IP,回到IP为0.0.0.0的状态,并重新发起Discover广播,整个周期中客户端表现为无法正常访问网络直到获得有效ACK。
DHCP四包分析在无线网络中有什么不同
无线网络中的DHCP四包交互原理完全相同,但无线控制器会额外增加一道认证环节,客户端关联无线信号后,先通过802.1X认证或Portal认证,认证通过后才能发送DHCP Discover包,如果用户反馈无线连上但上不了网,排查顺序是:先确认是否通过认证,再抓包看DHCP四包是否正常完成。
DHCP四包的本质是一场快速谈判:客户端找地址、服务器报地址、客户端定地址、服务器确认地址,只要牢牢记住这个顺序,无论是日常配置还是故障排错,都能沿着这条链路快速找到方向和结论。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/746265.html

