为什么每次刷新新 rootfs 时我的 IP 地址都会改变?

为什么每次刷新新 rootfs 时我的 IP 地址都会改变?

我正在开发 Raspberry Pi 3 系统并使用 Buildroot 构建我自己的 rootfs。起初,我使用 BusyBox 作为 init 系统,当使用 wpa_supplicant 配置板载 wifi 卡时,路由器总是为板分配相同的 IP 地址,即使我使用新的 rootfs 重建/重新刷新 SD 卡。然后我转而使用 systemd。现在,每当我重建/刷新 SD 卡时,路由器似乎认为设备不同,并在每次刷新 rootfs 时为其分配不同的 IP 地址,即使 MAC 地址保持不变。什么可能导致此问题?

答案1

通过检查路由器比检查系统更有可能找到答案。通过查看路由器的网络界面,您可能会发现:

  • DHCP 租约时间如何。您可以确认您的 DHCP 租约是否即将到期,从而导致分配新的 IP。
  • 查看路由器看到的 Raspberry Pi 的 MAC 地址。您可以确认您的 Pi 是否只显示一个 MAC 地址,或者路由器是否每次都看到不同的 MAC 地址,并且那是为什么要分配新的 IP 地址。

答案2

路由器不太可能长期记住 MAC 地址和 IP 地址之间的关联。 MAC 地址比 IP 地址多得多,因此 DHCP 服务器必须准备好连续向不同的客户端分配相同的 IP 地址。一旦租约到期,典型的服务器就会忘记 MAC-IP 关联。

然而,客户可能会更长时间地记住这种关联。 DHCP 客户端可以请求特定的 IP 地址。服务器可以随意忽略此请求;通常,当 IP 地址位于正确范围内且当前未分配时,它会尊重该请求。我怀疑您的客户端正在将租约信息保存在某个地方(这/var/lib/dhcp将是一个很好的查看位置),并且您的路由器通常会尊重该请求。当您刷新一个新的 rootfs 时,它没有保存的租约,因此路由器会选择此时它喜欢的任何 IP 地址。

相关内容