如何调试 DHCP?

彼得

更新:摄像机中的 DHCP 无法按预期工作,需要静态 IP。但是,这tcpdump是您的第一道防线,请参阅下面的检查答案。

我有以下设置:

  • 运行 Ubuntu 16.04 的 NVidia Xavier
  • NetworkManager 管理 wlan0,连接到我的家庭路由器
  • /etc/network/interfaces 定义 eth0,连接到 PoE 交换机
  • 在 eth0 上运行的 isc-dhcp-server
  • 以太网交换机上的互联网闭路电视摄像机

我通过 WiFi 登录到 Xavier,所以一切都很好。

但是,当我将任何东西插入交换机时(包括测试树莓派),nmap 不显示任何连接,/var/lib/dh​​cp/dhcpd.leases 也不显示任何连接。

journalctl 中没有错误。

在我开始转储所有配置文件之前,我可以执行哪些日志文件查看和查询的标准过程来检查系统并查看哪里出了问题?

我可以看到 ifconfig 显示 eth0 已按预期配置。所以界面很好。当交换机上的某些东西要求 DHCP 配置时,我如何探测发生了什么?

道格·史密斯

首先,如果您愿意,可以运行 tcpdump 或 wireshark 来监控数据包级别的内容。在此示例中,由 DHCP 服务器提供服务的内部 NICenp2s0位于192.168.111.1

doug@DOUG-64:~$ sudo tcpdump -n -tttt -i enp2s0 port 67 and port 68
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
2020-05-18 14:42:30.656940 IP 192.168.111.122.68 > 192.168.111.1.67: BOOTP/DHCP, Request from 04:d4:c4:93:f4:55, length 265
2020-05-18 14:43:07.473233 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 04:d4:c4:93:f4:55, length 287
2020-05-18 14:43:07.473493 IP 192.168.111.1.67 > 192.168.111.122.68: BOOTP/DHCP, Reply, length 300
2020-05-18 14:43:07.473766 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 04:d4:c4:93:f4:55, length 299
2020-05-18 14:43:07.475214 IP 192.168.111.1.67 > 192.168.111.122.68: BOOTP/DHCP, Reply, length 300

好的,所以我在 192.168.111.122 重新启动了计算机以创建一些 DHCP 流量。数据包级别的事情看起来没问题,如果事情不正常,至少我们会知道请求数据包是否到达。

现在,让我们检查此事务的日志:

doug@DOUG-64:~$ grep dhcpd /var/log/syslog | tail -10
May 18 11:34:12 DOUG-64 dhcpd[1141]: DHCPACK on 192.168.111.122 to 04:d4:c4:93:f4:55 via enp2s0
May 18 14:25:29 DOUG-64 dhcpd[1141]: DHCPREQUEST for 192.168.111.110 from a4:ee:57:e6:d0:0b via enp2s0
May 18 14:25:29 DOUG-64 dhcpd[1141]: DHCPACK on 192.168.111.110 to a4:ee:57:e6:d0:0b via enp2s0
May 18 14:28:07 DOUG-64 dhcpd[1141]: DHCPREQUEST for 192.168.111.112 from f4:6d:04:65:2d:8e via enp2s0
May 18 14:28:07 DOUG-64 dhcpd[1141]: DHCPACK on 192.168.111.112 to f4:6d:04:65:2d:8e via enp2s0
May 18 14:42:30 DOUG-64 dhcpd[1141]: DHCPRELEASE of 192.168.111.122 from 04:d4:c4:93:f4:55 via enp2s0 (not found)
May 18 14:43:07 DOUG-64 dhcpd[1141]: DHCPDISCOVER from 04:d4:c4:93:f4:55 via enp2s0
May 18 14:43:07 DOUG-64 dhcpd[1141]: DHCPOFFER on 192.168.111.122 to 04:d4:c4:93:f4:55 via enp2s0
May 18 14:43:07 DOUG-64 dhcpd[1141]: DHCPREQUEST for 192.168.111.122 (192.168.111.1) from 04:d4:c4:93:f4:55 via enp2s0
May 18 14:43:07 DOUG-64 dhcpd[1141]: DHCPACK on 192.168.111.122 to 04:d4:c4:93:f4:55 via enp2s0

所以交易看起来一切正常,我们知道 DHCP 服务器得到并处理了流量。这个示例租约是基于 MAC 的,并且没有出现在 中/var/lib/dhcp/dhcpd.leases,但这将是检查基于池的租约的下一个地方。例子:

lease 192.168.111.46 {
  starts 1 2020/05/18 01:53:46;
  ends 2 2020/05/19 01:53:46;
  cltt 1 2020/05/18 02:21:41;
  binding state active;
  next binding state free;
  rewind binding state free;
  hardware ethernet e4:e4:ab:08:6a:6b;
  uid "\001\344\344\253\010jk";
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章