В соответствии с Википедия и миллиард других страниц, у вас может быть:
Прокси DHCP
Если служба перенаправления PXE (прокси DHCP) получает расширенный DHCPDISCOVER, она отвечает расширенным DHCPOFFER на порт клиента 68 / UDP (порт клиента DHCP).
Расширенный DHCPOFFER содержит в основном:
- поле управления обнаружением PXE, чтобы рекомендовать многоадресную, широковещательную или одноадресную рассылку для связи с серверами загрузки PXE
- список IP-адресов каждого доступного типа загрузочного сервера PXE
- меню загрузки PXE, в котором каждая запись представляет тип сервера загрузки PXE
- подсказка загрузки PXE, сообщающая пользователю, что нужно нажать определенную клавишу, чтобы увидеть меню загрузки
- тайм-аут для запуска первой записи меню загрузки, если он истекает
Прокси-служба DHCP также может работать на том же хосте, что и стандартная служба DHCP. Поскольку две службы не могут совместно использовать порт 67 / UDP, прокси DHCP работает на порту 4011 / UDP и ожидает, что расширенные пакеты DHCPDISCOVER от клиентов PXE будут запросами DHCPREQUEST. Стандартная служба DHCP должна отправлять специальную комбинацию параметров PXE в своем DHCPOFFER, чтобы клиент PXE знал, что нужно искать прокси-сервер DHCP на том же хосте, порт 4011 / UDP.
Я хочу реализовать такой сервер, который отправляет эти расширенные ответы. Я не против настроить другой демон только для этой цели, но если я могу просто настроить isc-dhcp-server для отправки ответа, это было бы идеально.
(прежде чем вы предложите это, нет, я не могу использовать syslinux. Это обман, и я делаю это на платформе EFI и, следовательно, имею встроенную поддержку PXE)
ISC DHCP можно настроить так, чтобы он отвечал всем, что вам нужно для загрузки PXE, не прибегая к настройке прокси-сервера DHCP. Единственная причина, по которой вам действительно нужен прокси-сервер DHCP, заключается в том, что вы не хотите или не можете иметь контроль над конфигурацией отвечающего DHCP-сервера.
Прокси-сервер DHCP был настроен явно, чтобы обеспечить возможность использования другой службы, даже на другом компьютере, полностью отделенной от любого контроля или манипуляций с DHCP-сервером. Спецификация PXE позволяет клиенту в основном прослушивать два ответа - один от DHCP-сервера и один от прокси, чтобы собрать все, что ему нужно для начальной загрузки NBP (программы сетевой загрузки).
Спецификация от Intel в http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf чрезвычайно подробно в этом отношении и очень ясно освещает последовательности. Подробности см. На страницах с 15 по 19. RFC включает ту же информацию, но для меня это было не так ясно.
В настоящее время мне неизвестны какие-либо реализации службы DHCP Proxy с открытым исходным кодом, но, честно говоря, код для этой части протокола невероятно прост.
Речь идет о протоколе конфигурации удаленной загрузки (который основан на DHCP, отсюда и расширенная номенклатура DHCP). К сожалению, черновик умер в 1999 году, и большинство клиентов PXE не очень хорошо его поддерживают. Я никогда не видел для него OSS-сервера (хотя некоторые проприетарные программы для развертывания поддерживают его на разных уровнях). Для получения дополнительной информации вы можете проверить Проект RFC (В Разделе 3.3 конкретно говорится о RBCP).
dsnmasq может это сделать. Это 5 лайнеров. http://etherboot.org/wiki/proxydhcp?sinent=dhcp&sinent=proxy
Так что для меня непонятно, зачем нужен собственный сервер. DHCP и PXEBOOT - штука очень хитрая. С DHCP Proxy вы добавляете кучу дополнительных проблем. Потому что документы расплывчаты, а реализация на стороне клиента ужасна, что подразумевает длительное тестирование и проверку байтов по сети.
Цитируемый вами текст из Википедии старый и неточный. Он сочетает в себе две разные концепции:
Я думаю, вас интересует 2) тогда, если вы хотите создать свое собственное меню на основе стандарта PXE (без pxelinux), просто получите стандарт PXE http://www.pix.net/software/pxeboot/archive/pxespec.pdf (стр. 19) и узнайте, как заполнить инкапсулированную опцию DHCP, зависящую от поставщика (43), используя следующие «Опции PXE»
PXE_BOOT_SERVERS
PXE_BOOT_MENU
PXE_MENU_PROMPT
PXE_BOOT_ITEM
Непросто, как-то ограничено размером DHCP-пакета, не очень гибко.