我正在使用 tcpdump 捕获 DHCP 数据包。客户端发送请求 DHCP 配置的 DHCP 请求,其中包含对 NTP 服务器的请求,但在路由器发送的 DHCP ACK 消息中没有 NTP 服务器信息。服务器不应该像域名服务器一样使用 NTP 服务器的 IP 进行应答吗?我缺少什么?
如果设备无法通过 DHCP 获取 NTP 服务器地址,因为我的家庭路由器不支持它,那么它可以从哪里获取它正在使用的 NTP 服务器?这不是手动配置的参数,是否有其他自动获取NTP服务器的服务?
系统使用connman作为连接管理器
我附上请求和确认消息的屏幕截图
使用的 tcpdump 命令:
tcpdump -i eth0 -n port 67 and port 68 -w capture.pcap -v
DHCP请求
DHCP 确认
答案1
1) DHCP 服务器仅在配置为这样做时才会使用 NTP 服务器字段进行应答。从你的转储来看,看起来并非如此,所以这是一个死胡同。
2) 设备将使用任何它喜欢的 NTP 服务器 - 没有一般规则。设备上的某个位置很可能有一个配置文件,其中包含它使用的 NTP 服务器。
3) 如果您对设备有足够的了解,可以说它使用 connman:您是否可以以 root 身份访问该设备?或者你能看到文件系统吗?如果是,请查看所有可以找到的配置文件。
4) 如果该设备是一些您无权访问的封闭式嵌入式设备,另一种选择是监视来自该设备的所有流量,直到它联系 NTP 服务器,然后您就会知道。具有适当规则的 Wireshark/tcpdump 可以过滤 NTP 流量。如果您可以将设备连接到单个自定义 AP 或 LAN 端口(例如在某些 Linux PC 上),这将使监控变得更加容易;但由于您已经能够转储 DHCP 请求 + 响应,因此它也应该以这种方式工作。