在 Ubuntu 20.04 桌面中确定 DHCP 租约源

在 Ubuntu 20.04 桌面中确定 DHCP 租约源

我有一台主机正在获取 DHCP 分配的地址,该地址错误的具体来说,MAC 地址被保留给 DHCP 服务器中的特定地址,并且客户端不会获取该地址,而是被其他程序接收,从而获取另一个随机地址。

我正在尝试弄清楚网络上是否有其他东西提供 DHCP 租约(这将非常具体地解释这一切),但不幸的是,随着从旧的 dhcp 客户端切换到网络管理器,不再可能做到这一点这边走因为没有 dhclient.leases 文件。DHCPOFFER 也没有日志条目,/var/lib/NetworkManager/*.lease 中也没有 dhcp-server-identifier

tcpdump这看起来像是有价值的调试信息,所以如果它存在于系统的某个地方而不是被简单地丢弃,那就太好了;如果在启动过程中已经分配了地址,那么检查数据包就不那么简单了……

答案1

A) DHCP客户端诊断

这很简单,但有时还不够。“多个 DHCP 服务器问题”有时需要更高级的分析。

IP地址释放与续费:

sudo dhclient -v -r
sudo dhclient -v

命令响应的简化示例为:

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0xc4b0e053)
DHCPACK of 10.1.1.110 from 10.1.1.1 (xid=0xeb675d5d)

搜索列表中的子句,例如... from 10.1.1.1 ...。这是您的客户端从中获取 IP 地址的 DHCP 服务器地址。

B) 网络数据包诊断

这是一种非常有用且可靠的诊断方法。安装 Wireshark 并捕获 DHCP 数据包。

sudo apt-get install wireshark

在 Wireshark 安装过程中确认选项全部用户可以捕获数据。

添加wireshark群组到您的用户:

sudo usermod -aG wireshark <your_user_name>
groups <your_user_name>

上面的第二个命令验证 wireshark 组是否已添加到您。

注销并登录或重启 PC。然后启动 Wireshark。从接口列表中选择您的 LAN 接口并开始捕获。

在Wireshark窗口的捕获过滤器字段中输入bootpudp.port==67 or udp.port==68字符串。该字段位于顶部。您可以很容易地找到它,里面是文本:“应用显示过滤器”。输入过滤子句文本后按回车键。

在终端中输入命令来强制 DHCP 活动:

sudo dhclient -v -r
sudo dhclient -v

在 Wireshark 主字段中查看数据包。您将看到发送 DHCP 提供的远程设备的 IP 地址。

解压“动态主机配置协议”行并检查详细信息。

相关内容