DHCP 日志与接入定位
DHCP 服务器在分配地址时,会把 MAC、分配时刻与租期写入租约文件,这条记录把「某个 IP 在某段时间属于哪块网卡」固定下来。溯源中常见的问题是只知道 IP 不知道设备,租约加交换机 MAC 地址表就能把范围收缩到具体端口。租约文件是纯文本,按时间窗筛选即可定位,是终端侧最快能得到的一手证据。
基本信息
| 租约文件 | /var/lib/dhcp/dhcpd.leases(ISC dhcpd) |
|---|---|
| 服务日志 | dhcpd 自身日志或系统日志中的 DHCP 记录 |
| 关键字段 | 租约起止时间、绑定状态、hardware ethernet |
| 关联链 | MAC → 交换机 MAC 地址表 → 端口 |
典型使用场景
- 只知道事件时刻的源 IP,需要定位到具体终端
- 判断某 IP 在某时间窗内是否发生过设备变更
- 核对终端上报的主机名与实际网卡是否一致
- 排查地址冲突:同一地址被两台设备占用
- 为流量侧结论补充终端侧证据,形成完整链条
- 核查终端上报的主机名与网卡是否长期一致,辅助识别冒用
查租约与关联
查租约与关联
grep -n '203.0.113.10' /var/lib/dhcp/dhcpd.leases # 定位该地址的租约块
tail -30 /var/lib/dhcp/dhcpd.leases # 看最近写入的租约
grep -i 'DHCPACK' /var/log/syslog | tail -20 # 分配成功记录
# 拿到 MAC 后到交换机侧查 MAC 表
# show mac address-table address 0011.2233.4455租约字段读法
| 字段 | 含义 | 判读要点 |
|---|---|---|
| binding state | 租约状态,如 active / free / backup | active 才代表该时段地址被占用 |
| starts / ends | 租约生效与到期时间 | 续租会追加新记录,取覆盖事件时刻那条 |
| hardware ethernet | 客户端网卡 MAC | 定位设备的唯一稳定标识 |
| client-hostname | 客户端上报的主机名 | 由终端自行填写,可能被伪造 |
租约续约只更新时间不换地址时,文件中会出现多条 starts/ends 记录,判断归属要取覆盖事件时刻的那一条。
client-hostname 与设备型号由客户端上报,不能作为归属结论,只能作为辅助线索。
租约文件按时间顺序追加写入,末尾是最新记录;判断历史时刻归属应先把文件切分为按地址分组的租约块,再取覆盖事件时刻的一条。