為什麼每次刷新新 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 位址。

相關內容