Я работаю со встроенными системами Linux, которые иногда хотят получить свой IP-адрес с DHCP-сервера. Клиент клиента DHCP, который мы используем (dhcpcd), имеет ограниченную логику повтора. Если наше устройство запускается без наличия DHCP-сервера и истечет время ожидания, dhcpcd выйдет, и устройство никогда не получит IP-адрес, пока он не перезагрузится при наличии видимого/подключенного сервера DHCP. Я не могу быть единственным, у кого есть эта проблема. Проблема даже не кажется специфичной для встроенных систем (хотя это еще хуже). Как вы справляетесь с этим? Существует ли более надежный клиент?Как вы надежно получаете IP-адрес через DHCP?
1
A
ответ
3
Справочный djclient из ISC должен запускаться вечно в конфигурации по умолчанию, и он должен получить аренду позже, если он не получит его при запуске.
Я использую клиента dhcp без коробки из FreeBSD, который является производным от OpenBSD и основан на dcl-клиенте ISC, и это нестандартное поведение.
2
У вас есть несколько вариантов:
- Пока вы не имеют IP-адрес, перезапустите DHCPcd, чтобы получить больше повторных попыток.
- Имейте резервный статический IP-адрес. Это было довольно успешно в embedded devices I've made.
- Используйте auto-IP в качестве резервной копии. Windows делает это.
1
Добавить в rc.local
чек, чтобы узнать, был ли получен IP-адрес. Если в ближайшем будущем установка не будет выполнена, попробуйте снова. Продолжайте планирование заданий «на» до получения IP-адреса.
Это хороший ответ. Ответчик должен помнить о том, что передача клиентом DHCP навсегда может быть плохим поведением в некоторых средах. – benc 2009-07-17 10:58:16