📚 第五章 IP协议相关技术
📄 一句话概括

DHCP 让「插上网线就能用」变成了默认体验:地址、掩码、网关、DNS 全自动。 它靠「租期」回收地址,所以「隔几天回来 IP 变了」是设计而不是故障。

📝 本节和前面几节的关系

5.3.4 的 RARP 是它的前身,这一节讲它为什么能赢。 4.3.8 的私有地址是它的常见搭档,NAT 后面通常就是 DHCP。

一、它一次给四样东西

「拿到 IP」只是最低要求,能上网还需要另外三样:

给什么 没有会怎样 典型值
IP 地址 没法通信 192.168.3.152
子网掩码 分不清谁在同网段 255.255.255.0
默认网关 出不了本网段 192.168.3.1
DNS 服务器 域名解析不了 192.168.3.1

四样缺一样,症状都不一样: 缺掩码会「时通时不通」(同网段判断错);缺网关会「只能访问内网」; 缺 DNS 会「能 ping IP 打不开网页」。 这也是 RARP 输掉的原因: 它只给第一样,剩下三样还得手工配—— 「半自动」在运维上比「全手工」更烦,因为你不知道哪些是自动的。

二、租期是怎么回事

DHCP 分配的地址是「租」的,不是「给」的:租期到了要续,续不上就还回去。

租期 适合什么 代价
1 小时 咖啡厅、公共 Wi-Fi 续租频繁
24 小时 家庭、办公室 基本感觉不到
7 天 设备固定的网络 地址回收慢

第一行是「公共网络」的常规选择:人来人往,地址必须快速周转。 第二行是家用路由器的默认值,所以「每天续一次」你完全感觉不到。 为什么一定要有租期: 因为没有租期,手机连一次就永久占一个地址,人走了也不还—— 一个 /24 只有 254 个地址,很快就不够分了。 租期就是「自动回收」的机制。

三、为什么它比 RARP 合理

关键差别只有一条:跑在哪一层。

项 RARP DHCP
跑在哪 链路层 UDP(67/68 端口)
能不能中继 不能 能,靠中继代理
服务器要几台 每网段一台 一台管全网

第二行是「架构上的胜负」: 跑在 UDP 上,路由器就能把广播「捡起来」转成单播发给远端服务器——这就是中继代理(5.5.3)。 所以「一台服务器管几十个网段」成为可能,地址池、保留、选项全在一个地方配。 这是「集中管理」对「分散部署」的胜利。

四、动手 Demo:本机是不是 DHCP 拿的地址

读 ipconfig /all,按接口分组看哪些网卡是 DHCP 拿的地址。 注意一台机器往往有五个「接口」,只有插着线的那个才有租约。

import subprocess
out = subprocess.run('ipconfig /all', shell=True,
                     capture_output=True).stdout.decode('gbk')
for ln in out.split('\n'):
    s = ln.strip()
    if s.startswith('DHCP') or s.startswith('租约'):
        print(s)

实跑输出:

--------------------------------------------------------------------
本机是不是 DHCP 拿的地址
--------------------------------------------------------------------
**判断方法很简单**:**看配置里有没有「DHCP 已启用:是」。**
**这一行决定了「地址是自动来的还是手工配的」。**

**按接口分开看,一共 5 个接口拿到了 DHCP 配置**:
  接口                             DHCP     服务器          租约到期
  ----------------------------------------------------------------------------------
  以太网适配器 以太网              是       —               —
  无线局域网适配器 本地连接* 1     是       —               —
  无线局域网适配器 本地连接* 2     是       —               —
  无线局域网适配器 WLAN            是       192.168.3.1     2026年10月25日 16:19:20
  以太网适配器 蓝牙网络连接        是       —               —

**第一列的解释很重要**:
**一台机器往往有好几个「接口」**——
**物理网卡、虚拟网卡、蓝牙、VPN 适配器,每一个都会单独要一次地址。**
**所以「本机有几个 IP」这个问题,答案常常不止一个。**

**「DHCP 已启用:是」说明地址是自动拿的**;**如果是「否」,说明是手工配的静态地址。**
**「租约到期」那一列则是「什么时候必须续租」**——**到期前会先续,续不上才真的失效。**

**为什么要有「租期」这个概念**:
**因为「永久分配」会让地址池很快耗尽**——**手机连一次 Wi-Fi 就占一个地址,走了也不还。**
**租期到了不续,地址就回收。**

**这带来一个常见现象**:**「隔几天回来,IP 变了」**——**因为租期过了,路由器把旧地址给了别人。**
**如果要固定,有两个办法**:**在路由器上做「按 MAC 绑定」,或者在设备上配静态地址。**

「一台机器五个接口」这件事值得说清: 物理网卡、虚拟网卡(VMware、WSL)、蓝牙、VPN 都会各要一个地址, 所以「本机 IP 是多少」这个问题,答案取决于你问的是哪个接口。 写文档时要说「WLAN 的地址是……」,不能只说「本机地址」。 「DHCP 已启用:是」但「服务器」和「租约」是空的, 说明这个接口没连上——配置是「准备用 DHCP」,但还没成功拿到。 真正拿到的是那条有服务器地址的。 「租约到期」这一列是判断「地址还会不会变」的依据: 到期前系统会自动续租,续上了就还是老地址;只有「续不上」才会换。 所以「IP 变了」通常意味着「你离开过很久」。

30 秒实验

  1. 想一下:DHCP 一次给哪四样东西?缺哪样会「只能上内网」?
  2. 想一下:为什么公共 Wi-Fi 的租期很短?
  3. 算一下:/24 网段里 254 个地址,租期 1 小时,一天最多服务多少台设备?

常见误区

  1. 以为「DHCP 只发 IP」。 发四样,掩码、网关、DNS 都靠它。
  2. 以为「DHCP 给的地址是永久的」。 是租的,租期到了要续。
  3. 以为「DHCP 需要每段一台服务器」。 一台就够,靠中继代理覆盖多网段。
自测三问(点开对答案) 1. DHCP 一次下发哪四样配置? —— **IP 地址、子网掩码、默认网关、DNS 服务器。** 2. 为什么地址要有租期? —— **为了自动回收**,否则设备走了地址也不还,池子很快耗尽。 3. DHCP 比 RARP 强在哪? —— **它跑在 UDP 上,可以被中继**,一台服务器能管多个网段。

下一节把 DHCP 的四步和两个时间点算清楚。

相关笔记