У меня есть устройство на основе микроконтроллера с загрузчиком и приложением. Устройство имеет один адаптер Ethernet. Загрузчик использует IP/UDP для прошивки образа приложения. Приложение имеет полнофункциональный стек TCP/IP.

Оба компонента используют DHCP для получения IP-адреса. Странно то, что оба получают разные результаты в процессе DHCP. Оба клиента DHCP настроены на использование сообщения DHCPDISCOVER с одинаковым MAC-адресом.

Что должен отправить DHCP-сервер в DHCPOFFER? Должен ли он предлагать один и тот же IP-адрес для того же MAC-адреса, когда IP-адрес не назначен в другом месте? Изменить: последнее назначение адреса 10 секунд назад.

DHCP-сервер работает на хосте Linux. Как я могу настроить такое транспортное средство, чтобы я мог отслеживать и понимать это поведение?

Изменить: я не могу контролировать конфигурацию DHCP-сервера. Администратор хочет сохранить полный контроль.

Существуют ли другие параметры DHCP, которые могут быть в загрузчике или в приложении, которые могут повлиять на результат DHCP?

2 ответа2

1

Это зависит от вашего времени аренды. Если это достаточно долго, то ваше приложение получит тот же адрес.

Но если вы хотите уверенности, то объявите фиксированный адрес для вашего Mac на сервере.

Если вы используете dhcpd, то что-то вроде этого:

host foo {
  hardware ethernet 00:11:22:33:44:55;
  fixed-address 1.2.3.4;
}

На самом деле да, есть способ предложить IP в DHCPDISCOVERY, установив опцию (50) requested IP address . Но я не знаю, подтверждают ли это серверы.

Существует также опция (51) IP address lease time , которую можно использовать в загрузчике, чтобы предложить более длительный период, но я также не уверен в ответе сервера.

Больше информации rfc2131

0

Когда клиент DHCP отправляет DHCPDISCOVER, сервер должен отказаться от регистрации DHCP. Есть серверы, которые получат одинаковый IP-адрес. Это не так, но даже не обязательно.

Чтобы сохранить адрес DHCP, клиент должен отправить DHCPACQUIRE с кэшированной конфигурацией IP. DHCP-сервер подтвердит или отклонит. Отправка DHCPDISCOVER - просто плохая идея в этой ситуации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .