自学教程 从零学编程

DHCP 协议

一、DHCP 是什么

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),应用层协议,基于UDP。

  • 客户端端口:68
  • 服务端端口:67

作用:局域网内自动给主机分配IP地址、子网掩码、网关、DNS服务器等网络参数,无需管理员手动给每台设备静态配置IP。

前身是BOOTP,DHCP在BOOTP基础上做了扩展;用来解决RARP只能分配IP、无法下发完整网络参数的缺陷。

二、通信模型

C/S架构

  • DHCP客户端:电脑、手机、打印机等接入局域网的设备
  • DHCP服务器:维护IP地址池,管理IP租约;可以是路由器、Windows服务器、Linux服务

DHCP请求是广播报文,客户端启动时还没有IP地址。

三、DHCP完整流程(DORA四步)

  1. Discover(发现)
    客户端无IP,发送UDP广播:源IP 0.0.0.0,目的IP 255.255.255.255
    广播内容:局域网里有没有DHCP服务器,我需要IP地址。
  2. Offer(提供)
    局域网内DHCP服务器收到Discover,从地址池挑选一个可用IP,构造Offer广播报文,告知客户端:我可以分配这个IP给你,附带子网掩码、租期。

多个DHCP服务器都可以回复Offer;客户端一般选择最先收到的Offer。

  1. Request(请求)
    客户端收到Offer,广播发送Request报文:确认选择该服务器提供的IP,请求正式租用这个IP。
    同时通知其他DHCP服务器:我已经选好了,你们的Offer作废。
  2. Ack(确认)
    DHCP服务器返回Ack确认报文,携带完整网络参数:IP、掩码、网关、DNS、IP租约时间。
    客户端收到Ack,配置网卡IP,租约生效。

简称口诀:D iscover,O ffer,R equest,A ck → DORA

四、IP租约与续租机制

IP不是永久分配,带有租约时间,常见默认24小时。

  • 50%租期:客户端发起单播续租请求,直接向DHCP服务器申请延长租约;成功则租期刷新。
  • 87.5%租期:如果50%续租失败,改为广播续租,寻找任何可用DHCP服务器。
  • 租期到期仍然无法续租:IP释放,客户端重新走DORA流程。

释放IP:客户端主动发送DHCP Release报文,归还IP。

五、DHCP报文类型

类型作用
DHCP Discover客户端寻找DHCP服务器
DHCP Offer服务器提供IP候选
DHCP Request客户端请求租用IP
DHCP ACK服务器确认分配IP与参数
DHCP NAK拒绝分配IP
DHCP Release客户端主动释放IP
DHCP Decline客户端检测IP冲突,拒绝该IP

六、DHCP地址分配三种方式

  1. 自动分配:第一次分配IP,永久使用。
  2. 动态分配:从地址池临时租用IP,到期续租(最常用)。
  3. 静态分配(保留/绑定):服务器配置MAC-IP绑定,指定MAC固定拿到同一个IP(IP-MAC静态绑定)。

七、DHCP中继(DHCP Relay)

DHCP广播报文默认无法跨路由器转发。
如果DHCP服务器和客户端不在同一个网段,需要在网关设备上开启DHCP中继。
中继代理接收客户端广播DHCP报文,封装成单播转发给跨网段DHCP服务器;服务器回复报文再由中继转发回客户端。

作用:多个子网共用一台DHCP服务器,不用每个网段单独部署DHCP服务。

八、优缺点

✅ 优点

  1. 自动化分配IP,大量终端场景减少手工配置工作量;
  2. 集中管理IP地址池,避免IP冲突;
  3. 可统一下发网关、DNS等全套网络参数。

❌ 缺点

  1. 依赖广播,容易受到DHCP欺骗(恶意伪造DHCP服务器下发假网关/DNS);
  2. 网络内存在多台DHCP服务器会造成IP分配混乱;
  3. 客户端断网后IP租约到期会重新获取IP,IP会发生变化。

九、DHCP与RARP/BOOTP对比

  • RARP:MAC查IP,只能分配IP,已淘汰;
  • BOOTP:UDP,分配IP,静态MAC-IP映射,无租约;
  • DHCP:BOOTP增强版,支持动态地址池、租约、更多网络参数。

十、小结

  1. DHCP应用层UDP协议,客户端68,服务器67端口;用于自动分配IP、掩码、网关、DNS;
  2. 分配流程DORA四步:Discover → Offer → Request → Ack;
  3. IP带有租约,50%时间尝试续租;87.5%广播续租;
  4. DHCP广播不能跨路由,跨网段需要DHCP中继;
  5. 三种分配方式:动态、自动、静态MAC绑定;存在DHCP欺骗安全风险。

思考题:DHCP客户端发送Discover报文时,源IP为什么是0.0.0.0?

标签:

0 条笔记