isc-dhcpd-server - 正确的子网和网络掩码设置但分配的 IP 和网络掩码(ifconfig)不同

isc-dhcpd-server - 正确的子网和网络掩码设置但分配的 IP 和网络掩码(ifconfig)不同

我的一位同事目前正在尝试修复 Raspberry Pi 3 机器(最新版 Rasbian)的问题。isc-dhcpd-server在另一个类似的设置上运行没有任何问题。在/etc/dhcp/dhcpd.conf两个系统内都可以找到相同的内容,包括配置,其中明确指出必须使用subnet192.168.100.x 和255.255.255.0:netmask

# example.org domain and domain name servers configuration
# ...
ddns-update style none;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.100.255;
option domain-name "project.test";

subnet 192.168.100.0 netmask 255.255.255.0 {
    range 192.168.100.2 192.168.100.253;
}

由于某种原因,dhcp 服务器会自动从完全不同的网络分配一个 IP 地址(请注意,Raspberry Pi 未连接到任何路由器等,并且环境没有连接到其他设备或互联网:

root@rpi:~$ ifconfig
eth0 169.254.221.127 netmask 255.255.0.0 broadcast 169.254.255.255
lo ...

我不熟悉 dhcp 服务器以及使其正常工作所涉及的所有配置,所以我可能遗漏了一些显而易见的东西。是否还有其他位置需要更改此配置?

递归内部搜索/etc

grep -rnw * -e "169.254.*"

返回(在两台机器上)两个匹配项 - 一个在配置文件一个网络。 这配置文件这是我从未听说过的。至于网络- 这是link-local设置,而且看起来这是许多系统上的默认值(包括运行 Xubuntu 16.04 的我自己的虚拟机)。

答案1

此地址不是由 DHCP 分配的。该169.254.0.0/16范围适用于“zeroconf”地址 - 系统自行挑选的本地链路地址,最常用作为 DHCP 不可用时的后备。如果你看到这个地址但不是常规地址,它可能意味着几件事:

  • 您的 DHCP 客户端无法获取租约并放弃。

  • 或者您的网络配置文件实际上设置为“仅本地”(在 NetworkManager 或类似工具中)。

与往常一样,如果你的 DHCP 客户端和服务器没有做它们应该做的事情,调查他们正在做– 检查系统日志,使用数据包捕获工具(Wireshark/tcpdump)等等。

  1. dhcpd 守护进程是否正在运行?
  2. rpi 使用什么 DHCP 客户端?它正在运行吗?您可以在详细模式或调试模式下运行它吗?
  3. 客户端是否发送 DHCPDISCOVER,而服务器是否以 DHCPOFFER 应答?
  4. 客户端是否发送了 DHCPREQUEST,而服务器是否以 DHCPACK 应答?

/etc/networks文件并不重要。它的唯一用途(类似于 /etc/hosts)是为网络前缀分配显示名称,例如在运行命令时route。同样,/etc/gai.conf仅包含对 DNS 查找结果进行排序的优先级 - 与 DHCP 无关。

相关内容