Почему мой IP-адрес меняется каждый раз, когда я прошиваю новую rootfs?

Почему мой IP-адрес меняется каждый раз, когда я прошиваю новую rootfs?

Я работаю над системой Raspberry Pi 3 и создаю собственную rootfs с помощью Buildroot. Сначала я использовал BusyBox в качестве системы инициализации, и при настройке встроенной карты Wi-Fi с помощью wpa_supplicant маршрутизатор всегда назначал плате один и тот же IP-адрес, даже если я пересобирал/перепрошивал SD-карту с новой rootfs. Затем я перешел на использование systemd. Теперь, когда я пересобираю/перепрошиваю SD-карту, маршрутизатор, похоже, думает, что устройство другое, и назначает ему другой IP-адрес каждый раз, когда я перепрошиваю rootfs, хотя MAC-адрес остался прежним. Что может быть причиной этой проблемы?

решение1

Вы, скорее всего, найдете ответ, изучив свой маршрутизатор, а не систему. Изучив веб-интерфейс маршрутизатора, вы, возможно, сможете узнать:

  • Каково время аренды DHCP. Вы можете подтвердить, что ваши аренды DHCP просто истекают, способствуя назначению новых IP-адресов.
  • Посмотрите MAC-адрес вашего Raspberry Pi, как его видит маршрутизатор. Вы можете подтвердить, отображается ли только один MAC-адрес для вашего Pi или маршрутизатор видит каждый раз другой MAC-адрес иэтопочему назначается новый IP-адрес.

решение2

Маловероятно, что маршрутизатор будет помнить связь между MAC-адресом и IP-адресом в течение длительного времени. MAC-адресов гораздо больше, чем IP-адресов, поэтому DHCP-сервер должен быть готов выдавать один и тот же IP-адрес разным клиентам последовательно. Типичный сервер забудет о связи MAC-IP, как только истечет срок аренды.

Однако клиент может помнить эту ассоциацию дольше. Клиент DHCP может запросить определенный IP-адрес. Сервер может игнорировать этот запрос; обычно он удовлетворяет запрос, когда IP-адрес находится в правильном диапазоне и в настоящее время не назначен. Я подозреваю, что ваш клиент где-то сохраняет информацию об аренде ( /var/lib/dhcpбыло бы хорошим местом для поиска), и что ваш маршрутизатор обычно удовлетворяет запрос. Когда вы прошиваете новую rootfs, у нее нет этой сохраненной аренды, поэтому маршрутизатор выбирает любой IP-адрес, который он предпочитает в эту минуту.

Связанный контент