大家好,SF。我在 Cisco 路由器上创建了一个手动 DHCP 绑定条目,以便客户端始终可以租用它。客户端希望在他的两个双启动 Linux 系统上获得相同的地址。他尝试租用一个 IP 地址,并在其中一个双启动操作系统上成功。当他重新启动到另一个操作系统时,他获得了一个完全不同的租约。
我不明白。MAC 地址相同(我们检查过)ifconfig
,那么这里可能发生了什么?路由器为什么会混淆?还是有其他原因?
另外,我如何检查我从哪个 DHCP 服务器获取了 IP 地址(在 Linux 上)?
Cisco 上的配置:
ip dhcp pool MANUAL_BINDING0001
host 192.168.0.64 255.255.255.0
hardware-address dead.beef.1337
dns-server 192.168.8.11
default-router 192.168.0.254
domain-name verynicedomainigothere.cn
附言:是否必须使用client-name
配置线?
答案1
客户端将其拥有的租约信息存储在 dhclient.leases 文件中。
该文件可以位于/var/lib/dhclient
(对于 RHEL/CentOS 等),/var/liv/dhcp
对于 Ubuntu,其他发行版可能使用不同的位置。
租约文件本身可能不被称为 dhclient.leases,它通常被称为 dhclient.<if>.leases,例如 dhclient.etho.leases。
如果存在,option dhcp-server-identifier
将会告诉您客户端从哪里获取其 IP 地址。
客户端可能从与您正在查看的 DHCP 服务器不同的 DHCP 服务器获取其 IP 地址 - 请参阅上文。
客户端可能已经从您的 DHCP 服务器获得了一个有效的 IP 地址,因此它会通过租约重新分配而不是租约分配来获得它已经拥有的 IP 地址。
您可能需要使用 tcpdump wireshark 或类似工具在线上调试这个问题。
进一步阅读
- dh客户端手册页
- dhclient.conf 手册页
- dhclient.leases手册页
- tcpdump手册页