Я настраиваю виртуальную среду на сервере ESXi. У меня есть версия Ubuntu Server с isc dhcp.
Когда сервер загружается, я выдаю команду ifdown eth0
за которым следует ifup eth0
. На этом этапе сервер выдает DHCP-запрос, но сам не отвечает на этот запрос IP-адресом. Есть причина почему?
Я видел этот пост Может ли DHCP-сервер назначить себе IP-адрес через DHCP но я не уверен, что DHCP-сервер не может назначить себе адрес.
Как лучше узнать, правильно ли настроена ваша служба DHCP? Я следил за этим руководством https://help.ubuntu.com/lts/serverguide/dhcp.html и не смог назначить IP-адрес другому клиенту в сети.
Да, это возможно. Предполагая, что сервер ISC dhcp в dhcpd.conf установлен server-identifier
до 127.0.0.1. Это приведет к тому, что DHCPOFFER будет иметь параметр DHCP 54, установленный на 127.0.0.1, так что DHCPREQUEST достигнет сервера.
Обратите внимание: если вы хотите, чтобы этот DHCP-сервер был полезен (другие клиенты могут запрашивать у него IP-адреса), вам необходимо установить этот параметр в host
строфа, соответствующая MAC-адресу eth0 сервера.
Сложность в Ubuntu (по крайней мере, 12.04) заключается в том, что существует состояние гонки между запуском DHCP-сервера и вызываемым интерфейсом.
При загрузке, после того, как последняя файловая система смонтирована, mountall выдаст событие файловой системы. Задания выскочки по сети и rc-sysinit запускаются при этом событии (для rc-sysinit также требуется "net-device-up IFACE = lo").
Сетевое задание задействует все интерфейсы. Задание rc-sysinit вызовет событие уровня выполнения, которое приведет к запуску DHCP-сервера.
Все эти события происходят асинхронно: отсюда и состояние гонки.