分拣中控台掉线问题
# DHCP 服务器 MAC 24:5a:5f:be:45:98 的 DHCPACK
# 租约获取正常, 说明路由器分配了 7200 秒(2 小时)的租约
09-05 09:37:59.521 529 900 D DhcpClient: Received packet: 24:5a:5f:be:45:98 ACK: your new IP /192.168.1.64, netmask /255.255.255.0, gateways [/192.168.1.1] DNS servers: /192.168.1.1 , lease time 7200
# 5 分钟后,客户端向网关 192.168.1.1(端口 67)发送 DHCPREQUEST,请求的 ciaddr 是 192.168.1.14,而不是之前的 192.168.1.64
# serverid=null 表示客户端没有指定特定 DHCP 服务器,而是直接发给网关
# 这说明客户端主动尝试切换到另一个 IP(192.168.1.14)
09-05 09:42:17.031 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
# 这次是 另一个 DHCP 服务器 (MAC 4e:04:f0:56:4d:99) 回复的 DHCPACK
# 分配了新的 IP 192.168.1.14,租约同样是 7200 秒 (2 小时)
09-05 09:42:17.078 529 900 D DhcpClient: Received packet: 4e:04:f0:56:4d:99 ACK: your new IP /192.168.1.14, netmask /255.255.255.0, gateways [/192.168.1.1] DNS servers: /192.168.1.1 , lease time 7200
# 客户端最终确认使用 192.168.1.14
# 默认网关和 DNS 依然是 192.168.1.1
# 租约周期 7200 秒
09-05 09:42:17.079 529 897 D DhcpClient: Renewed lease: IP address 192.168.1.14/24 Gateway 192.168.1.1 DNS servers: [ 192.168.1.1 ] Domains DHCP server /192.168.1.1 Vendor info null lease 7200 seconds
# 续租流程
# 1. 租约的一半(T1 ≈ 3600s)时尝试 续租(Renew)。
# 2. 租约 7/8(T2 ≈ 6300s)时尝试 重绑定(Rebind)。
# 3. 到 7200s 没成功就 Lease Expired。
09-05 09:42:17.092 529 897 D DhcpClient: Scheduling renewal in 3599s
09-05 09:42:17.092 529 897 D DhcpClient: Scheduling rebind in 6299s
09-05 09:42:17.092 529 897 D DhcpClient: Scheduling expiry in 7199s
# 服务器 40:b0:76:5c:d3:1b 先 OFFER 60 秒 → ACK 改成 7200 秒。
09-05 10:01:34.998 529 900 D DhcpClient: Received packet: 40:b0:76:5c:d3:1b OFFER, ip /192.168.1.12, mask /255.255.255.0, DNS servers: /192.168.1.1 , gateways [/192.168.1.1] lease time 60, domain null
09-05 10:01:35.077 529 900 D DhcpClient: Received packet: 40:b0:76:5c:d3:1b ACK: your new IP /192.168.1.12, netmask /255.255.255.0, gateways [/192.168.1.1] DNS servers: /192.168.1.1 , lease time 7200
# 服务器 24:5a:5f:be:45:98 直接 OFFER 7200 秒
09-05 10:31:44.119 529 900 D DhcpClient: Received packet: 24:5a:5f:be:45:98 OFFER, ip /192.168.1.64, mask /255.255.255.0, DNS servers: /192.168.1.1 , gateways [/192.168.1.1] lease time 7200, domain null
09-05 10:31:44.120 529 900 D DhcpClient: Received packet: 24:5a:5f:be:45:98 OFFER, ip /192.168.1.64, mask /255.255.255.0, DNS servers: /192.168.1.1 , gateways [/192.168.1.1] lease time 7200, domain null
# 时间过半,开始续租
09-05 10:42:17.097 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:42:22.107 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:42:27.116 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:42:35.586 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:42:52.883 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:43:21.755 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:44:20.572 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:46:34.788 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:48:45.522 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:51:02.339 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:53:08.362 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:55:21.963 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:57:37.514 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 10:59:39.446 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:01:42.816 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:03:49.674 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:06:00.573 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:08:01.306 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:10:01.990 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:12:01.040 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:13:58.688 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:15:57.222 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:18:05.852 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:20:08.971 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:22:14.656 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:24:33.799 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:26:30.609 529 897 D DhcpClient: Unicasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null to /192.168.1.1:67
09-05 11:27:17.080 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:27:22.080 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:27:27.084 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:27:34.316 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:27:51.645 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:28:26.386 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:29:25.701 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:31:46.092 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:33:47.989 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:36:04.933 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:38:19.620 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
09-05 11:40:16.324 529 897 D DhcpClient: Broadcasting DHCPREQUEST ciaddr=192.168.1.14 request=0.0.0.0 serverid=null
# 租约过期, 设备掉线了
09-05 11:42:17.077 529 897 D DhcpClient: Lease expired!
09-05 11:42:17.079 529 897 D DhcpClient: Broadcasting DHCPDISCOVER
09-05 11:42:17.101 529 895 D DhcpClient: doQuit
09-05 11:42:17.106 529 900 D DhcpClient: Receive thread stopped
09-05 11:42:17.128 529 897 D DhcpClient: onQuitting
根据日志猜测错误的 DHCP 环境拓扑图
互联网
│
[ 光猫/Modem ]
│
┌────┴────┐
│ 路由器A │ ← 主路由/网关
│ LAN: 192.168.1.1
│ DHCP: 开启 192.168.1.x
│ MAC: 24:5a:5f:be:45:98
└────┬────┘
┌───────────────┼─────────────────┐
│ │
(LAN ↔ LAN) (LAN ↔ LAN)
│ │
┌────┴────┐ ┌────┴────┐
│ 路由器B │ │ 路由器C │
│ LAN:192.168.1.2 │ LAN:192.168.1.3
│ DHCP: 开启 192.168.1.x │ DHCP: 开启 192.168.1.x
│ MAC: 4e:04:f0:56:4d:99 │ MAC: 40:b0:76:5c:d3:1b
└─────────┘ └─────────┘
│ │
Wi-Fi/有线设备 Wi-Fi/有线设备
(Android DHCP请求/续租混乱) (Android DHCP请求/续租混乱)
可能获得 IP: 192.168.1.14/64/12 可能获得 IP: 192.168.1.14/64/12
分析结论
- 环境里有三个 DHCP 服务端(A/B/C)。
- 设备一会儿收到 Server A 的 .64,过几分钟又收到 Server B 的 .14,最后又被 Server C 确认。
- 这就是 IP 地址来回切换的原因,哪怕租约时间设置成 7200 秒,还是会抖动。
多路由设备的正确配置方式
单个网段配置
互联网
│
[ 光猫/Modem ]
│
┌────┴────┐
│ 路由器A │ ← 主路由/网关
│ LAN: 192.168.1.1
│ DHCP: 192.168.1.100-199
└────┬────┘
┌───────────────┼────────────────┐
│ │
(WAN↔LAN) (WAN↔LAN)
│ │
┌────┴────┐ ┌────┴────┐
│ 路由器B │ │ 路由器C │
│ LAN:192.168.2.1 │ LAN:192.168.3.1
│ DHCP:192.168.2.x │ DHCP:192.168.3.x
│ WAN: 192.168.1.2 │ WAN: 192.168.1.3
└─────────┘ └─────────┘
Wi-Fi/有线设备 Wi-Fi/有线设备
(IP: 192.168.2.x) (IP: 192.168.3.x)
多个网段配置
互联网
│
[ 光猫/Modem ]
│
┌────┴────┐
│ 路由器A │ ← 主路由/网关
│ LAN: 192.168.1.1
│ DHCP: 192.168.1.x
└────┬────┘
┌───────────────┼─────────────────┐
│ │
WAN ↔ LAN WAN ↔ LAN
│ │
┌────┴────┐ ┌────┴────┐
│ 路由器B │ │ 路由器C │
│ LAN:192.168.2.1 │ LAN:192.168.3.1
│ DHCP:192.168.2.x │ DHCP:192.168.3.x
│ WAN: 192.168.1.2 │ WAN: 192.168.1.3
└─────────┘ └─────────┘
Wi-Fi/有线设备 Wi-Fi/有线设备
(IP: 192.168.2.x) (IP: 192.168.3.x)
命令查看三个设备的制造商
$ curl -k https://api.macvendors.com/40:b0:76:5c:d3:1b
ASUSTek COMPUTER INC.
$ curl -k https://api.macvendors.com/4e:04:f0:56:4d:99
{"errors":{"detail":"Not Found"}}
$ curl -k https://api.macvendors.com/24:5a:5f:be:45:98
TP-LINK TECHNOLOGIES CO.,LTD.
查找网络内有多少个DHCP
$ sudo dhclient -v -r enp6s0
Killed old client process
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/enp6s0/58:11:22:b7:90:07
Sending on LPF/enp6s0/58:11:22:b7:90:07
Sending on Socket/fallback
DHCPRELEASE of 192.168.1.11 on enp6s0 to 192.168.1.1 port 67 (xid=0x112dd846)
$ sudo dhclient -v -1 enp6s0
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/enp6s0/58:11:22:b7:90:07
Sending on LPF/enp6s0/58:11:22:b7:90:07
Sending on Socket/fallback
DHCPDISCOVER on enp6s0 to 255.255.255.255 port 67 interval 3 (xid=0xf496ac72)
DHCPOFFER of 192.168.1.11 from 192.168.1.1
DHCPREQUEST for 192.168.1.11 on enp6s0 to 255.255.255.255 port 67 (xid=0x72ac96f4)
DHCPACK of 192.168.1.11 from 192.168.1.1 (xid=0xf496ac72)
bound to 192.168.1.11 -- renewal in 147723311 seconds.