Я пытаюсь загрузить машину с помощью PXE. В системном журнале я вижу:
dhcpd[28030]: DHCPDISCOVER from 98:90:96:bc:fc:e3 via 10.65.240.2
dhcpd[28030]: none: host unknown.
dhcpd[28030]: DHCPOFFER on 10.65.240.111 to 98:90:96:bc:fc:e3 via 10.65.240.2
Я хоть убей не могу решить эту проблему. Подсеть действительна и присутствует, машина сдана в аренду, и эта машина ранее была построена отлично!
Некоторые поисковые запросы указывают на то, что «хост неизвестен» подразумевает какое-то отношение к DNS: на сервере есть файлы зоны для прямой и обратной зоны, в которой находится это поле.
Итак, я нашел эту страницу (http://www.tldp.org/HOWTO/DHCP/x369.html), в котором упоминается добавление записи в /etc/hosts
.
Я добавил:
255.255.255.255 none
до конца, и это, похоже, устранило проблему. Не уверен, почему мне это не нужно раньше, так как это кажется довольно фундаментальным. Кто-нибудь знает, почему это происходит?
DHCP-серверы должны иметь возможность отправлять пакеты DHCPOFFER клиентам, у которых нет IP-адреса, тогда они транслируют свои DHCPOFFER с MAC-адресом широковещательного назначения (FF: FF: FF: FF: FF: FF), а также с IP-адресом широковещательного назначения ( 255.255.255.255). К сожалению, Linux настаивает на замене целевого IP 255.255.255.255 на широковещательный адрес локальной подсети; это приводит к нарушению протокола DHCP.
Хотя многие клиенты DHCP не заметят проблемы, некоторые (например, все клиенты Microsoft DHCP) заметят. Клиенты, у которых есть эта проблема, не будут видеть сообщения DHCPOFFER с сервера.
Цитированная ранее страница «обманывает» сетевой движок Linux, чтобы он мог использовать IP 255.255.255.255 в качестве IP-адреса назначения DHCPOFFER несколькими методами, включая создание маршрутов или добавление имен хостов с IP 255.255.255.255, и т.п.
РЕДАКТИРОВАТЬ: не имеет значения, где находится клиент DHCP в сети; проблема в том, что некоторые придирчивые клиенты DHCP будут игнорировать предложение DHCP, если его IP-адрес назначения отличается от 255.255.255.255. Учтите, что если вы, например, загружаете ПК с помощью PXE, прошивка PXE является «первым» DHCP-клиентом, затем, если вы, например, загружаете ядро Linux / initrd, у вас будет «второй» запрос DHCP, сделанный сейчас загружающимся ядром Linux. В этом случае в одном сеансе загрузки PXE у вас есть 2 последовательных совершенно разных DHCP-клиента, и может случиться так, что, хотя первый может терпеть описанное нарушение протокола DHCP, второй, вероятно, не может. Тот же компьютер с загрузкой PXE мог бы очень хорошо работать и раньше, если бы вы загружали только «прощающие» DHCP-клиенты.
Чтобы «увидеть», что происходит, я бы порекомендовал получить несколько перехватов трафика Wireshark и увидеть проблему на уровне пакетов.