组网第36课:DHCP 地址分配——地址池、中继、租期、Option 43 与 DHCP Snooping
手机能连上 WiFi 却上不了网?先查 DHCP 这一关
文章目录
一、开场:信号满格,就是打不开网页
那天刚到一个网点,前台小姑娘举着手机冲我喊:“你看我这 WiFi,信号是满的,可网页就是转圈,打不开!”
我拿过手机一看,WiFi 确实连着,但点进网络详情——IP 地址那栏是空的,或者干脆是个 169.254 开头的怪地址。
我跟她说:“你这不是没连上,是连上了但没人给你发地址。就像你进了酒店,门开了,可前台没给你房卡,你哪间房都进不去。”
给她发地址的,就是 DHCP。这东西平时悄无声息,我们每次连网、手机开机、电脑插网线,地址都是它自动发的;可一旦它出问题,现象就是“看着连着、实则上不了网”,最容易把人绕晕。
这一课把 DHCP 讲透:地址怎么发、地址池怎么建、跨 VLAN 怎么靠中继发、租期和 Option 43 是什么、还有怎么防“私接的假 DHCP”。
二、DHCP 是什么:设备一接入,自动给你发地址
1. 类比:酒店前台分房
- 你住酒店,不用自己挑房间,到前台登记,前台就给你安排一间、递上房卡;
- 设备接入网络也一样,不用人手配 IP,DHCP 服务器(前台)自动给它发一个地址(房卡);
- 这就是为什么几百台设备的网络,管理员不用一台台去配地址。
2. 发地址的四步:DORA

- D(Discover,发现):新设备大喊一声“这里有 DHCP 服务器吗?我要地址”;
- O(Offer,提供):DHCP 服务器回应“有,我给你这个地址”;
- R(Request,请求):设备说“行,那我就用这个”;
- A(Ack,确认):服务器确认“归你了,拿去用”;
- 四步走完,设备才真正拿到地址、网关、DNS。
顺带说两个底层细节
- DHCP 用的是 UDP,客户端从 68 端口发、服务器从 67 端口回,记不住也没关系,抓包时认这两个端口;
- 前两步(Discover/Offer)是“谁都能听到”的广播,设备有了地址后,后续续租可以改单播,更省。
理解这个,你就明白为什么新设备一开始要“大喊”,以及为什么中继必须在三层设备上做——它得帮广播“跨网段”。
3. 地址池:服务器手里的“空房表”
- 服务器不是乱发,它有一个地址池,圈定一段可发的地址;
- 同时还会把网关、DNS、租期一起发给设备;
- 已固定占用的地址(服务器、打印机)可以排除,不发出去。
三、动手配置:建地址池(华为 VRP)
1. 全局开启 DHCP
<SW> system-view
[SW] sysname CORE
[CORE] dhcp enable
2. 建全局地址池
[CORE] ip pool VLAN10
[CORE-ip-pool-VLAN10] network 192.168.10.0 mask 255.255.255.0
[CORE-ip-pool-VLAN10] gateway-list 192.168.10.1
[CORE-ip-pool-VLAN10] dns-list 114.114.114.114 8.8.8.8
[CORE-ip-pool-VLAN10] lease day 7 hour 0 minute 0
[CORE-ip-pool-VLAN10] excluded-ip-address 192.168.10.2 192.168.10.10
[CORE-ip-pool-VLAN10] quit
network:可发的网段;gateway-list:发给设备的网关;dns-list:DNS 服务器;lease:租期;excluded-ip-address:保留不发的地址(给固定设备用)。
3. 在 VLAN 接口上启用全局地址池
[CORE] interface Vlanif10
[CORE-Vlanif10] ip address 192.168.10.1 255.255.255.0
[CORE-Vlanif10] dhcp select global
[CORE-Vlanif10] quit
[CORE] save
4. 验证
[CORE] display ip pool name VLAN10 all
Pool-Name : VLAN10
Pool-No : 1
Lease : 7 Days 0 Hours 0 Minutes
Network : 192.168.10.0
Mask : 255.255.255.0
Gateway : 192.168.10.1
IP address Statistic
Total :253
Used :12 # 已发出去的
Idle :241
关键看 Used(已发)和 Idle(空闲),Idle 为 0 就是地址池发空了。
讲个地址池发空的事故
有个访客特别多的网点,地址池只配了一个 /27,可用地址 30 个。某天开大会,来的人一多,地址池瞬间发空,后面的人全连不上。
我一查,Idle 为 0。临时把网段扩成 /24、再清掉一些早已离场的旧绑定,才恢复。从那以后我记住:访客、移动场景,地址池要按峰值人数留余量,别卡着当前人数配。 地址这东西,宁可多留,不能不够。
5. 接口地址池(更简单的写法)
小网络里,也可以直接用接口地址池,不用单独建 pool:
[CORE] interface Vlanif20
[CORE-Vlanif20] ip address 192.168.20.1 255.255.255.0
[CORE-Vlanif20] dhcp select interface
[CORE-Vlanif20] dhcp server dns-list 114.114.114.114
[CORE-Vlanif20] dhcp server lease day 3
接口地址池就发“接口所在网段”的地址,配置省事,适合一个接口一个网段的场景。
四、租期:地址不是“永久归你”
1. 类比:酒店续住,中午 12 点前不续就收回
- 酒店房间,你住到中午 12 点,不续住、不退房,前台就把房收回去给别人;
- DHCP 地址也有租期,到期前设备要“续租”,不续,服务器就把地址收回;
- 这是为了让设备离开网络后,地址能被回收再用,而不是一直占着。
2. 租期设多久合适
- 办公网、固定设备多:租期可以设长(几天),减少续租流量;
- 访客、人流大、设备经常换:租期设短(几小时),地址能快速周转;
- 华为默认租期通常是 1 天,按实际调整。
地址冲突:两台设备抢同一个地址
有一种故障叫地址冲突:一台设备手动配了地址,DHCP 又把同一个地址发给了别人,结果两台设备互相抢,时通时断,还会弹“地址冲突”提示。
- 根子是“手动配的地址”和“地址池范围”重叠了;
- 解决办法:固定设备的地址要么从池子里排除,要么用静态绑定,别让它落在自动发放的范围里;
- 服务器、打印机、网关这些,我都会在地址池里 exclude 或绑定,从源头避免冲突。
看到冲突告警,先查谁手动占了地址,再查地址池有没有把它排除。
五、DHCP 中继:跨 VLAN 发地址
1. 问题:DHCP 请求是“广播”,出不了网段
- 新设备的 Discover 是广播,广播只在本 VLAN 内有效,到不了别的网段;
- 可你不可能给每个 VLAN 都配一台 DHCP 服务器;
- 这时就靠中继(Relay):让三层设备当“二传手”,把请求转给远处的 DHCP 服务器。
2. 类比:各楼层服务员帮你把开房请求转给前台
- 前台只有一个,在主楼;你在别的楼层,就由楼层服务员帮你把“要开房”的话带给前台;
- 中继就是这个“楼层服务员”,把本网段的 DHCP 广播,变成单播发给中心服务器,再把回复带回来。
3. 中继怎么配

[CORE] dhcp enable
[CORE] interface Vlanif30
[CORE-Vlanif30] ip address 192.168.30.1 255.255.255.0
[CORE-Vlanif30] dhcp select relay
[CORE-Vlanif30] dhcp relay server-ip 172.16.0.100
[CORE-Vlanif30] quit
dhcp select relay:这个接口不自己发地址,当中继;dhcp relay server-ip:真正的 DHCP 服务器地址;- 前提是本设备到服务器路由可达,否则转发不过去。
4. 验证
[CORE] display dhcp relay interface Vlanif30
思科中继更简单,在接口下写
ip helper-address 172.16.0.100即可。
给固定设备做“静态绑定”
有些设备(打印机、门禁)需要固定地址,又不想手动去设备上配。可以在 DHCP 里做绑定:把它的 MAC 地址和一个固定 IP 绑在一起,设备每次来都拿到同一个地址。
- 好处是地址固定、又集中在 DHCP 管理,不用一台台去改;
- 华为设备可用静态地址绑定或地址池里的固定分配功能,具体命令随版本;
- 这比在终端手动写地址更省心,换设备时改绑定即可。
这是“自动分配”和“固定地址”之间的折中,项目里很实用。
六、Option 43:给 AP 递一张“AC 在哪”的纸条
- 类比:前台给你一张小纸条,上面写着“你们的网管(AC)在哪个房间”;
- 无线 AP 上电后,要找到 AC 控制器才能注册上线,可它一开始不知道 AC 在哪;
- 就靠 DHCP 回应里的 Option 43,把 AC 的地址告诉 AP;
- 地址池里配置(华为 AP 常用写法):
[CORE-ip-pool-VLAN10] option 43 sub-option 3 ascii 10.0.0.1
- 不同厂商 AP 的 Option 43 子选项和格式不同,部署时要按 AP 厂商的格式来;
- 这里先理解作用:它是 DHCP 顺便捎给设备的“额外信息”。
七、DHCP Snooping:防“私接的假 DHCP”
1. 类比:防黑中介冒充前台
- 要是有人在楼里偷偷摆个桌子、冒充前台,给你发假房卡,你照着假房卡走,就进了别人的套;
- 网络里也一样,有人私接一台 DHCP 服务器(或家用路由器),乱发地址和网关,把流量带偏;
- DHCP Snooping 就是门禁:只认合法的 DHCP 服务器,假的发来的回应直接拦。
2. 信任口与非信任口

- 信任口(Trusted):连合法 DHCP 服务器、上联设备的口,允许发地址;
- 非信任口(Untrusted):连普通用户的口,不允许发 DHCP 回应,假服务器就在这被拦;
- 这样即使有人私接,也发不出假地址。
3. 怎么配
[SW] dhcp enable
[SW] dhcp snooping enable
[SW] vlan 10
[SW-vlan10] dhcp snooping enable
[SW-vlan10] quit
[SW] interface GigabitEthernet0/0/1
[SW-GigabitEthernet0/0/1] dhcp snooping trusted
[SW-GigabitEthernet0/0/1] quit
[SW] save
重点:上联口(朝合法服务器方向)要设成 trusted,否则合法地址也会被拦。
4. 验证
[SW] display dhcp snooping
思科对照
| 动作 | 华为 | 思科 |
|---|---|---|
| 地址池 | ip pool 名 | ip dhcp pool 名 |
| 网关 | gateway-list | default-router |
| 排除地址 | excluded-ip-address | ip dhcp excluded-address |
| 中继 | dhcp select relay + dhcp relay server-ip | ip helper-address |
| Snooping | dhcp snooping enable | ip dhcp snooping |
| 信任口 | dhcp snooping trusted | ip dhcp snooping trust |
| 看地址 | display ip pool | show ip dhcp binding |
拿不到地址的排查决策
八、排障落点
| 现象 | 命令 | 看到什么 | 判断 | 动作 |
|---|---|---|---|---|
| 连不上、169 地址 | 看地址池 | Idle 为 0 | 地址池发空 | 扩池/清绑定 |
| 个别 VLAN 不发 | 看中继 | 没中继/服务器不通 | 中继缺失 | 配 relay、查路由 |
| 拿到错误网关 | 查私接 | 有假服务器 | 被私接 DHCP 坑 | 开 Snooping、拔掉 |
| 合法地址也没有 | 看信任口 | 上联口未信任 | 被 Snooping 拦 | 设 trusted |
| 能拿地址不通网 | 看 DNS/网关 | 配置有误 | 地址池参数错 | 改 gateway/dns |
| AP 不注册 | 看 Option 43 | 没配 AC 地址 | 缺 Option 43 | 补 AC 地址 |
客户端也能主动重新申请:Windows 用 ipconfig /release 释放、再 ipconfig /renew 重新获取,排查时比反复断开重连快,能立刻验证 DHCP 是否恢复。
九、🔧 运维视角 & 📐 设计视角
🔧 运维视角:
- “连上了但上不了网”,先看有没有拿到地址,169 开头就是 DHCP 没发成功;
- 地址池发空、中继没配、信任口漏设,是三个高频坑;
- 怀疑私接,先开 Snooping,再顺着非信任口找设备。
📐 设计视角:
- 地址池按 VLAN 规划,给固定设备预留并排除,地址段要连续;
- 集中部署一台 DHCP 服务器,各 VLAN 用中继,统一管理、好排查;
- 接入交换机默认开启 Snooping,上联口信任,把私接风险挡在最前面。
十、小结与命令速查表
- DHCP 自动发地址,四步 DORA:发现、提供、请求、确认;
- 地址池圈定可发地址,带网关、DNS、租期;
- 跨 VLAN 靠中继,把广播转给中心服务器;
- Option 43 给 AP 指 AC,Snooping 防私接假 DHCP。
本篇命令速查表:
| 目的 | 华为命令 |
|---|---|
| 开 DHCP | dhcp enable |
| 建池 | ip pool VLAN10 |
| 发网段 | network 192.168.10.0 mask 255.255.255.0 |
| 网关 | gateway-list 192.168.10.1 |
| 租期 | lease day 7 |
| 接口用全局池 | dhcp select global |
| 接口地址池 | dhcp select interface |
| 中继 | dhcp select relay + dhcp relay server-ip 172.16.0.100 |
| Option 43 | option 43 sub-option 3 ascii 10.0.0.1 |
| Snooping | dhcp snooping enable |
| 信任口 | dhcp snooping trusted |
| 看池 | display ip pool name VLAN10 all |
十一、思考题 & 评论区接招
💬 互动题(评论区接招):
被“私接 DHCP 服务器”坑过的,扣 1。
说说你遇到的情况:是不是有人接了个家用路由器,结果大家都拿到了错地址、上不了网?
再回答两个问题:
1)DHCP Snooping 里,为什么上联口一定要设成 trusted?
2)如果忘了设,会出现什么现象?排查命令我已经放在上面了,把你的“踩坑经历”写在评论区,我帮你一起复盘,看看私接 DHCP 还能玩出什么花样。
系列导航:
- 上一课:第 35 课《静态路由》)
- 下一课:第 37 课《综合案例:一台三层交换机带全网》
- 专栏主页:[网络工程师进阶:企业组网实战——从交换机配置到园区网交付]
我是你们的老网工。DHCP 这一关,看着不起眼,却是“连上”和“上不了网”的分界。下一课我们把前面学的东西串起来,做一个完整的综合案例:一家 50 人的公司,一台三层交换机,把 VLAN、VLANIF、DHCP、静态路由全部配通,从空配置到能上网,一步不落地走一遍。这份配置你可以直接拿去改改用。下一课《一台三层交换机带全网》,我们实战见。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)