📖 6.3 动态主机配置协议 DHCP
🎯 课程摘要:DHCP 用于自动给网络中的主机配置 IP 地址、子网掩码、默认网关、DNS 服务器等网络配置信息,免去手工配置的繁琐与易错。DHCP 采用 C/S 方式,使用 UDP(服务器端口 67、客户端口 68),通过"发现→提供→请求→确认"四步完成 IP 地址租用,并支持租约续约、释放及 DHCP 中继代理跨网分配。
📝 详细笔记
1. DHCP 的作用
- 概念定义:DHCP(动态主机配置协议)是一种可自动为网络中主机分配网络配置信息的应用层协议。
- 原理解析:主机要正常访问网络,需正确配置 IP 地址、子网掩码、默认网关、DNS 服务器等。若主机数量多,手工配置工作量大且容易出错。在网络中添加一台 DHCP 服务器并设置好可分配的配置信息后,各主机开机后自动启动 DHCP 程序,向 DHCP 服务器请求自己的网络配置信息,即可自动获取而无需人工参与。
- ⚠️ 重点/考点:DHCP 自动分配的网络配置信息主要包括——IP 地址、子网掩码、默认网关、DNS 服务器。
2. DHCP 的协议基础
- 概念定义:DHCP 属于 TCP/IP 体系应用层协议,使用运输层 UDP 提供的服务,采用 C/S 方式。
- 原理解析:
- DHCP 服务器进程运行在 DHCP 服务器上(简称 DHCP 服务器),DHCP 客户进程运行在用户主机上(简称 DHCP 客户)。
- DHCP 报文在运输层被封装成 UDP 用户数据报,在网络层封装成 IP 数据报,再封装成相应链路层帧(如以太网帧)发送。
- DHCP 服务器使用 UDP 端口 67,DHCP 客户使用 UDP 端口 68,二者均为熟知端口。
- ⚠️ 重点/考点:DHCP 使用 UDP,服务器端口 67、客户端口 68,二者均为熟知端口。
3. DHCP 获取 IP 地址的完整过程(DORA 四步)
DHCP 客户与 DHCP 服务器交互的核心过程可概括为 DHCP 四步:Discover→Offer→Request→Ack,即"发现→提供→请求→确认":
各步骤要点说明:
- DHCP 发现报文(Discover):客户广播发送。源 IP 为 0.0.0.0(主机尚无 IP),目的 IP 为广播地址 255.255.255.255(因不知有哪些服务器)。报文内封装事务 ID 和客户 MAC 地址。网络中所有设备都收到并层层解封;非 DHCP 服务器(未监听端口 67)丢弃,DHCP 服务器接受并响应。
- DHCP 提供报文(Offer):服务器收到发现报文后,据其中客户 MAC 查库——有则用相应配置、无则用默认配置构建提供报文。源 IP 为服务器 IP,目的 IP 仍为广播地址(主机尚无 IP)。报文含事务 ID 及配置信息(IP 地址、子网掩码、地址租期、默认网关、DNS 服务器等)。服务器从 IP 地址池挑选地址时会用 ARP 确保该 IP 未被其他主机占用。客户据事务 ID 判断是否自己所请求,一般选择先到的 Offer。
- DHCP 请求报文(Request):客户向所选服务器发送。源 IP 仍为 0.0.0.0(需先征得服务器同意才能正式使用租用 IP),目的 IP 仍为广播(借此一次性告知所有服务器是否被选为自己服务器,避免逐个单播)。报文封装事务 ID、客户 MAC、接受的租约中的 IP、提供此租约的服务器 IP 等。
- DHCP 确认报文(Ack):被选服务器接受请求后回送确认。源 IP 为服务器 IP,目的 IP 仍为广播。客户收到后即可使用所租用 IP。使用前还须用 ARP 检测该 IP 是否被其他主机占用:若被占用,客户发送 DHCP 谢绝报文谢绝租约并重新发送发现报文;未被占用则正式使用。
- ⚠️ 重点/考点:
- 上述前四步分别对应"寻找服务器→提供 IP 租用→接受租约→确认租约"。
- 四步交互中,前两步和客户的请求均用广播,只有服务器的 Ack 仍是广播(因主机仍无 IP)。
- DHCP 服务器选 IP 用 ARP 防冲突;客户用 IP 前也用 ARP 检测冲突,双重保障。
4. IP 地址租约的续约与释放
- 概念定义:DHCP 分配的 IP 地址是租用的,有租用期(租期)限制。
- 原理解析:
- 租期过半:客户向所租用的 DHCP 服务器发送 DHCP 请求报文请求更新租期(此时源 IP 为已租用 IP,目的 IP 为该服务器地址)。
- 服务器同意 → 发回 DHCP 确认报文,客户得到新租期。
- 服务器不同意 → 发回 DHCP 否认报文,客户必须立即停止使用原 IP 并重新发送发现报文。
- 服务器未响应 → 在租期用到 87.5% 时客户必须再次发送请求报文继续等待;若仍未响应,租期到期后必须立即停止使用原 IP 并重新申请。
- 提前释放:客户可随时提前终止租期,只需向服务器发送 DHCP 释放报文即可。
- 租期过半:客户向所租用的 DHCP 服务器发送 DHCP 请求报文请求更新租期(此时源 IP 为已租用 IP,目的 IP 为该服务器地址)。
- ⚠️ 重点/考点:续约的两个关键时间点——租期过半发起续约请求;租期 87.5% 再次发起续约请求。
5. DHCP 中继代理
- 概念定义:DHCP 中继代理是使跨路由器的不同网络中的主机也能通过 DHCP 自动获取配置信息的机制。
- 原理解析:由于广播的 DHCP 发现报文不会被路由器转发而被丢弃,若每个网络都设一台 DHCP 服务器则数量过多。解决方法是给路由器配置 DHCP 服务器的 IP 地址并使之成为 DHCP 中继代理:路由器收到广播的 DHCP 发现报文后,将其单播转发给 DHCP 服务器,后续交互通过该路由器完成。
- ⚠️ 重点/考点:使用 DHCP 中继代理的主要原因是不愿在每个网络上都设置一台 DHCP 服务器(避免服务器数量过多);路由器把广播的发现报文单播转发给 DHCP 服务器。
💡 核心总结
- DHCP 自动分配 IP 地址、子网掩码、默认网关、DNS 服务器等,免手工配置。
- 采用 C/S 方式,基于 UDP(服务器 67、客户 68,均为熟知端口)。
- 获取 IP 走 DORA 四步:Discover→Offer→Request→Ack,前三步及客户请求均用广播(源 IP 0.0.0.0、目的 IP 255.255.255.255)。
- 服务器选 IP 与客户用 IP 前均用 ARP 检测冲突。
- IP 为租用制:租期过半续约、87.5% 再续约、可随时释放。
- DHCP 中继代理让路由器把广播发现报文单播转发给 DHCP 服务器,实现跨网自动配置。
❓ 课后思考 / 经典考题
- 简述 DHCP 客户获取 IP 地址的"发现—提供—请求—确认"四步过程,并说明各步使用广播的原因。
- DHCP 服务器在挑选 IP 和客户在使用 IP 前分别为什么要使用 ARP?
- 主机租用的 IP 地址在租期过半和租期 87.5% 时分别会如何处理?服务器不同意续约时客户应如何做?
- 为什么需要 DHCP 中继代理?路由器在其中起什么作用?