跳转到正文

连上 Wi-Fi 就能上网,你的电脑究竟经历了怎样的“配置乞讨”? ​

在前面的课程中,每当我们推演网络通信,总是预设“主机 A 的 IP 是 192.168.1.10,子网掩码是 /24,默认网关是 192.168.1.254,DNS 是 8.8.8.8”。

在只有三两台电脑的小机房里,网络管理员确实可以逐台手动敲键盘输入这些参数(静态配置)。

但在一个拥有数千名员工的企业园区、或者商场每天流动数万名顾客的 Wi-Fi 场景下,手动配 IP 会瞬间演变成一场噩梦:

  • 只要有两个人不小心手抖填了同一个 IP,就会引发严重的**地址解析协议(ARP) 地址冲突**,双双断网;
  • 员工带着笔记本从 1 楼会议室(网段 A)走到 3 楼工位(网段 B),就得把所有网络设置重新配置一遍。

如何让终端在网线插上或连上 Wi-Fi 的一瞬间,全自动获取到合法的 IP、网关与 DNS,拔掉网线后自动回收地址?
这正是应用层协议——动态主机配置协议(DHCP)(Dynamic Host Configuration Protocol,动态主机配置协议) 的核心使命!


学完本课后,你将能够:

  1. 识记 DHCP 的客户端与服务端端口号(Client 使用 UDP 68,Server 使用 UDP 67)。
  2. 完整推演 DHCP DORA 流程 四步交互(Discover → Offer → Request → ACK)的报文寻址与广播单播细节。
  3. 解释 租期计时器机制:为什么在 50% 租期(T1)时单播续约、在 87.5% 租期(T2)时广播抢救。
  4. 攻克 华为 ICT 大赛超高频考点:DHCP Option 43 与 Option 60 如何在跨三层组网中让无线 FIT AP 自动找到 AC 控制器。

1. 端口与架构:身无分文的客户端如何发包? ​

DHCP 采用标准的客户端/服务端(C/S)架构:

  • 服务端(Server):通常由企业出口路由器、三层核心交换机或专用 Linux 服务器担任,常驻监听 UDP 67 端口。
  • 客户端(Client):PC、手机、打印机、无线 AP 等终端,监听 UDP 68 端口。

核心难题:自己连 IP 都没有,怎么向网络发包? ​

刚开机的电脑没有任何 IP,它不知道网段里有没有 DHCP 服务器,更不知道服务器的 IP 是多少。 答案就在链路层与网络层的全网广播中:

  • 源 IP 填:0.0.0.0(未指定地址,代表“我还没有 IP”);
  • 目的 IP 填:255.255.255.255(受限广播地址,局域网内所有主机都会收到);
  • 源 MAC 填:网卡本机的物理 MAC;
  • 目的 MAC 填:FF-FF-FF-FF-FF-FF(全网广播)。

2. 经典 DORA 四步曲交互推演 ​

DHCP 最核心的工作流程由 4 个英文首字母构成:D-O-R-A。

DHCP DORA 流程与 Option 43 原理图

第一步:DHCP Discover(发现阶段) ​

  • 客户端在局域网内大声呼喊:“全网的主机请注意,我是 MAC 为 XX:XX 的新终端,有谁能借我一个 IP 地址吗?”
  • 以广播形式打出,同一个 VLAN 内的所有设备都能收到该报文。

第二步:DHCP Offer(提供阶段) ​

  • 局域网内的 DHCP 服务器收到 Discover 报文后,从自己配置的本地地址池(IP Pool)中挑选一个空闲可用的 IP(例如 192.168.1.50),并为其打上预留标记。
  • 服务器向客户端回复 DHCP Offer 报文,里面不仅携带了拟分配的 IP,还附带了子网掩码、默认网关(Option 3)、DNS 服务器(Option 6)、以及租期(Option 51)。
  • 注意:如果局域网内存在多台 DHCP 服务器,客户端可能会先后收到多份 Offer。

第三步:DHCP Request(选择与请求阶段) ​

  • 客户端通常会采纳最先到达的那一份 Offer。
  • 随后客户端向全网再次发出一个广播形式的 DHCP Request 报文!
  • 为什么必须是广播?
    1. 正式通知被选中的那台 DHCP 服务器:“我决定租用你提供的 192.168.1.50!”
    2. 同时向其他没被选中的 DHCP 服务器宣告:“抱歉,我选了别人,请你们尽快把刚才为我预留的 IP 释放回地址池给其他人使用!”

第四步:DHCP ACK(最终确认阶段) ​

  • 被选中的 DHCP 服务器向客户端发回 DHCP ACK 报文,正式盖章批准租约生效!
  • 客户端收到 ACK 后,正式将该 IP 绑定到自己的网卡,并在局域网内发送一个**免费 ARP(Gratuitous ARP)**检测是否有人撞车,确认无冲突后即可正式上网。

3. 租约与续约时序:50% 单播与 87.5% 广播 ​

DHCP 分配的 IP 地址并不是永久赠予的,而是**“租借(Lease)”**给客户端的(缺省租期通常为 1 天到 8 天)。这保证了当某台电脑关机拔线离开后,IP 不会被无限期占着茅坑不拉屎。

为了防止租期到期时突然断网,客户端在后台维护了两个关键的续约倒计时定时器:

1. T1 计时器(租期用过 50% 时) ​

  • 假设总租期为 8 天。在第 4 天(50%)时刻,客户端会在后台以单播方式直接向当初借给它地址的原 DHCP 服务器发送一个 DHCP Request 请求续租。
  • 如果服务器在线,直接回送 DHCP ACK,租期计时器重新刷满重置回 8 天。用户对整个过程毫无感知。

2. T2 计时器(租期用过 87.5% 时) ​

  • 如果第 4 天时原服务器恰好宕机或在重启维护,客户端收不到 ACK,它会继续正常使用网络。
  • 到了第 7 天(即耗尽 87.5% 租期)时,大难临头!客户端不再固执地找原服务器,而是改用全网广播向局域网内的所有 DHCP 服务器求救:“我的租约马上要到期了,任何在线的服务器都可以给我续约!”
  • 只要有任意一台合法服务器回复 ACK,连接就能保住。

3. 租约到期(100% 耗尽) ​

  • 如果到了第 8 天依然没有任何人理会,客户端必须立即停止使用该 IP 并解绑网卡,然后重新从第一步 DORA 重新发起乞讨。

4. DHCP 中继代理(DHCP Relay) ​

广播报文是绝对无法跨越路由器的。如果企业有 20 个部门、20 个独立网段,难道必须在每个网段里各买一台物理 DHCP 服务器吗?

答案是利用 DHCP 中继代理(DHCP Relay):

  • 部署在每个网段网关路由器或三层交换机上。
  • 当网关接口侦听到客户端发来的广播 DHCP Discover 时,中继代理将其拦截下来,取出载荷,封装成一个单播 IP 报文(源 IP 为网关接口 IP,目的 IP 为跨网段的数据中心集中式 DHCP 服务器 IP)转发出去。
  • 集中式 DHCP 服务器收到后,根据报文中携带的 giaddr(网关接口 IP)字段,就能判断出该客户端属于哪一个子网,从而从对应的地址池中精准抽取 IP 并单播回送!

5. 华为 ICT 大赛真题王牌:Option 43 与 Option 60 ​

在现代企业园区中,无线网络几乎全网标配“无线控制器(AC)+ 瘦无线接入点(FIT AP)”架构。

FIT AP 本身是个“哑终端”,里面没有配置,上电后必须首先连接到局域网里的 AC 控制器去下载无线配置和 SSID。

  • 二层直连时:AP 可以直接发广播呼叫 AC。
  • 跨三层网段时:AP 在 1 楼楼道(网段 192.168.10.0/24),AC 摆在核心机房(网段 10.1.1.0/24),AP 发出的广播无论如何也到不了机房!

华为的终极解决方案:DHCP DHCP Option 43 扩展字段!

奇妙协作全流程: ​

  1. AP 自报家门(Option 60):FIT AP 上电执行 DHCP Discover 时,在报文中附带 Option 60(Vendor Class Identifier,厂商标识符),里面写着明文 "Huawei AP"。
  2. 服务器精准响应(Option 43):DHCP 服务器一查是华为 AP,在下发的 DHCP Offer/ACK 报文中,除了给 AP 分配普通 IP 之外,专门在 Option 43 字段 中塞入 AC 控制器的真实公网/内网 IP 地址(例如 10.1.1.100)!
  3. 精准建链:AP 拿到了这个 IP,立即单刀直入,跨越三层网络向该 IP 建立 CAPWAP 隧道,成功被 AC 纳管!

华为 VRP 路由器配置实战: ​

text
[Huawei] dhcp enable                                      # 开启 DHCP 服务
[Huawei] ip pool AP_POOL                                  # 创建名为 AP_POOL 的全局地址池
[Huawei-ip-pool-AP_POOL] network 192.168.10.0 mask 24     # 分配网段
[Huawei-ip-pool-AP_POOL] gateway-list 192.168.10.254      # 分配默认网关
[Huawei-ip-pool-AP_POOL] dns-list 114.114.114.114         # 分配 DNS
[Huawei-ip-pool-AP_POOL] option 43 sub-option 2 ip-address 10.1.1.100 # 方式一(IP格式):告知 AP 的 AC 地址
# 或者采用 ASCII 字符串格式:option 43 sub-option 3 ascii 10.1.1.100

6. 课后核心测验 ​

华为 ICT 大赛 2024–2025 省初赛 · 真题 · 单选

在企业大型 WLAN 组网中,当无线接入点(FIT AP)与无线控制器(AC)处于不同的 IP 网段(跨三层网络)时,FIT AP 通常通过 DHCP 报文中的哪一个 Option 字段来自动获取 AC 的 IP 地址?

课后巩固 · 练习 · 单选

当一台 PC 从 DHCP 服务器获取到了为期 8 天的 IP 租期,正常情况下,该 PC 会在租期过去多长时间后首次向 DHCP 服务器发起租期续约请求?该请求报文是以什么方式发送的?

7. 下一步学习 ​

通过 DNS,我们知道了服务器的名字叫什么;通过 DHCP,我们的电脑拥有了合法的身份与网络路线。

万事俱备,东风已至!现在我们要真正打开应用层最灿烂的明珠——HTTP 协议。

从 1990 年代的简陋纯文本,到今天的二进制分帧与 QUIC 飞跃,网络工程师是如何在 30 年间一步步把网页加载速度压榨到毫秒级的?

下一课,让我们共同见证:第 29 课 · HTTP 协议演进:HTTP/1.1、HTTP/2 与 HTTP/3!