APIPA 是什么
169.254.0.0/16 是 IPv4 的链路本地地址段(RFC 3927),Windows 与多数 Linux 发行版在 DHCP 获取失败后会自动从这段里挑一个地址自用,机制俗称 APIPA(自动专用 IP 寻址)。这类地址只在本地链路上有效,路由器不转发,DHCP 恢复后系统会自动放弃它。
看到它意味着什么
主机出现 169.254.x.x 基本可以断定没拿到 DHCP 地址,问题通常在物理链路、VLAN 划分、DHCP 服务或地址池耗尽。此时排查顺序应是链路与交换机端口在前、DHCP 服务在后,而不是继续在网络层找原因。少数设备间也会用链路本地地址做点对点发现,那是另一个用途。
基本信息
| 地址段 | 169.254.0.0/16 |
|---|---|
| 机制 | APIPA 自动私有地址,RFC 3927 |
| 触发条件 | DHCP 超时或失败后自动选取,DHCP 恢复后自动放弃 |
| 可达范围 | 仅本地链路,不可路由 |
| IPv6 对应 | fe80::/10 链路本地地址 |
典型使用场景
- 排障标识:网卡拿到 169.254 地址即说明 DHCP 环节有问题
- 直连两台设备做临时通信:无 DHCP 时它们会各自取链路本地地址互访
- IP 摄像头、打印机的初始配置:部分设备出厂用链路本地地址做开局
- 无线路由器桥接失败时终端会出现该地址
- 编写监控告警:把出现 169.254 地址作为 DHCP 异常的判据
定位 DHCP 问题
定位 DHCP 问题
ipconfig /all | Select-String '169.254' # 命中即说明未取得 DHCP 地址
ipconfig /release; ipconfig /renew # 重新申请地址
# Linux 侧
ip -4 addr show | grep '169\.254' # 命中同样说明 DHCP 失败
dhclient -v eth0 # 观察四个报文阶段卡在哪一步常见成因与动作
| 现象 | 常见成因 | 处理动作 |
|---|---|---|
| 终端拿到 169.254 地址 | DHCP 服务不可达或地址池耗尽 | 查 DHCP 服务、作用域与中继配置 |
| 同一网段部分终端异常 | 接入端口 VLAN 配错 | 核对端口 PVID 与上联 Trunk |
| 跨网段全部拿不到地址 | DHCP 中继未配或指向错误 | 检查中继与路由可达性 |
| 偶发出现后自行恢复 | DHCP 服务重启或瞬时拥塞 | 查服务日志与池余量 |
云厂商的实例元数据服务使用 169.254.169.254,这个地址虽属同一段,用途完全不同:它由云平台内部提供,用于查询实例信息与获取临时凭证,与 APIPA 无关,也不能从公网访问。
169.254.0.0/16 不应出现在企业内网的规划与路由中:它既不可路由也不是私网段,混用会与 APIPA 机制冲突,且部分云平台会对访问 169.254.169.254 的流量做安全审计。