DHCP 服务端与 67 端口
67 是 DHCP 服务端的默认端口(UDP),客户端侧使用 68。二者的交互分四步:客户端广播寻找服务器、服务器给出候选地址、客户端确认选择、服务器最终确认租约,这套流程通常称为 DORA。DHCP 本身没有认证机制,客户端无法分辨应答来自哪台服务器,因此接入层的防护与控制网段内的非法服务器是必要手段。
基本信息
| 服务 | DHCP 服务端(ISC dhcpd、Windows DHCP、dnsmasq) |
|---|---|
| 协议 | UDP 67(客户端为 68) |
| 规范 | RFC 2131(DHCPv4);RFC 951 为 BOOTP |
| 配置文件 | /etc/dhcp/dhcpd.conf 或产品自带管理界面 |
| 日志入口 | systemd 日志或 /var/log/messages 中的 DHCP 记录 |
| 安全等级 | 仅服务网段可达,接入层需防伪造 |
典型使用场景
- 办公网与生产网自动分配地址,减少手工维护
- 按部门或设备类型划分地址池,配合保留地址固定关键设备
- 下发网关、DNS 与域名等参数,统一终端网络配置
- 无线接入场景为终端分配地址并控制租期
- 跨网段服务由中继转发请求,实现集中管理
抓包观察地址获取过程
抓包观察地址获取过程
sudo tcpdump -ni eth0 'udp port 67 or udp port 68' -vv # 观察 DORA 四步
sudo journalctl -u isc-dhcp-server -n 50 --no-pager # 服务端日志(RHEL 系服务名为 dhcpd)
sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf # 配置语法检查DORA 四步与端口对照
| 步骤 | 方向 | 源与目的 |
|---|---|---|
| Discover | 客户端找服务器 | 0.0.0.0:68 到广播 255.255.255.255:67 |
| Offer | 服务器给候选地址 | 服务器:67 到客户端:68 |
| Request | 客户端确认选择 | 客户端:68 到广播:67,续租时为单播 |
| Ack | 服务器确认租约 | 服务器:67 到客户端:68 |
最小可用配置(dhcpd.conf)
最小可用配置(dhcpd.conf)
subnet 192.0.2.0 netmask 255.255.255.0 {
range 192.0.2.100 192.0.2.200; # 地址池范围
option routers 192.0.2.1; # 下发网关
option domain-name-servers 192.0.2.53, 198.51.100.53; # 下发 DNS
default-lease-time 3600; # 默认租期
max-lease-time 7200; # 最长租期
}接入层应启用 DHCP 监听或端口安全,防止私接设备发出伪造应答;一旦假服务器先应答,整个网段的流量走向都可能被改写。
跨网段必须配中继:路由器上用地址助手指向 DHCP 服务器,Linux 侧可用中继服务;缺少中继时广播止步于本网段,客户端表现为一直重试却始终拿不到地址。
日志判读要点:请求与应答成对出现表示分配成功;出现无可用租约说明地址池耗尽,需要扩容或缩短租期;出现未知网段请求说明收到了未在配置中定义的网段报文,通常是中继配置或 VLAN 划分有偏差。