У меня есть существующая локальная сеть с DHCP-сервером, уже выдающим IP-адреса.
По разным причинам я не могу заменить этот сервер, поэтому ему все равно нужно будет выдавать IP-адреса.
Я экспериментировал с Dnsmasq в режиме прокси, чтобы предоставить имена файлов загрузки PXE. Теперь у меня есть Dnsmasq, загружающий iPXE по цепочке, но я обнаружил, что проблема с Dnsmasq в том, что в режиме прокси он не отправляет параметры DHCP. Поэтому я не могу отправить вариант 17 для загрузки iSCSI SAN.
Я где-то читал, что это не включено в исходном коде. Ну что ж, я подумал, что, возможно, мне стоит попробовать ISC DHCPD (версия по умолчанию 4 с Ubuntu), но я не могу найти никаких примеров конфигурации, которые работают как прокси.
Вы можете посмотреть на создание пользовательского образа iPXE со встроенным скриптом ipxe, который загружает все, что вы хотите видеть после загрузки по сети (например, menu.c32, vesamenu.c32, pxelinux и т. Д.). Приятно то, что iPXE вообще не нужны никакие переданные параметры DHCP (например, параметры 66 и 67). Вместо этого будет использоваться то, что встроено в сценарий ipxe. Ему просто нужен DHCP для назначения IP.
Потенциальным недостатком этого подхода является то, что вам нужно либо загрузиться с компакт-диска (вы можете создать ISO-образ ipxe), смонтировать ISO-образ внутри виртуальной машины для загрузки с нее, либо, если у вас есть существующий загрузочный сервер PXE и используя что-то вроде pxelinux и menu.c32 / vesamenu.c32, вы можете поместить образ UNDI, который сгенерирует процесс сборки ipxe. UNDI-версию ipxe можно загружать по цепочке из pxelinux и, возможно, из других загрузчиков.
Я все еще пытаюсь понять, как использовать dnsmasq в качестве прокси-сервера DHCP. Я могу заставить его загружать образ ipxe через proxyDHCP, но не могу заставить ipxe получить IP-адрес DHCP после его загрузки. Насколько я могу судить, это связано с тем, что DHCP-клиент iPXE предпочитает proxyDHCP в качестве своего DHCP-сервера (если это имеет смысл), что кажется странным, учитывая, какова цель proxyDHCP-сервера, то есть НЕ нужен DHCP-сервер.
РЕДАКТИРОВАТЬ: Вот функциональная настройка proxydhcp для dnsmasq (наконец-то разобралась):
В файле /etc/dnsmasq.d/proxydhcp.conf, включенном из основной конфигурации /etc/dnsmasq.conf (например, в строке конфигурации conf-dir = / etc / dnsmasq.d):
port=0
log-dhcp
dhcp-match=ipxe,175
dhcp-option=175,8:1:1
dhcp-boot=net:ipxe,http://mynetbootserver.domain.com/boot/ipxeboot/${net0/mac}
dhcp-boot=tag:!Iipxe,ipxe.0
enable-tftp
tftp-root=/tftpboot
dhcp-range=192.168.0.0,proxy,255.255.0.0
dhcp-range=10.0.0.0,proxy,255.0.0.0
dhcp-range=172.16.0.0,proxy,255.255.0.0
pxe-service=net:#ipxe,x86PC,"My Cool Netboot Processes",ipxe-native
Хорошо работает с другим DHCP-сервером в сети. Мои виртуальные машины загружаются, выбирая параметры proxyDHCP, переданные DHCP-клиенту, однако я предполагаю (возможно, неправильно?), Что клиент БУДЕТ выбирать любые параметры загрузки, связанные с PXE (например, 66, 67) с DHCP-сервера, если он уже настроен на предоставьте эти варианты.
Обратите внимание на использование всего IP-пространства RFC1918 в операторах прокси. Похоже, что в этом нет никаких проблем, т. Е. Нет видимого вмешательства в существующий DHCP-сервер, потому что, конечно, это всего лишь прокси, а не полномочный DHCP-сервер для подсети. Кроме того, параметры ipxe не требуются специально для поддержки proxydhcp, это просто пример, основанный на том, как я его использую; то есть использовать proxydhcp для передачи информации о загрузке ipxe.
Короче говоря, proxyDHCP - это очень хороший способ неинвазивной реализации сетевой загрузки PXE в средах, в которых вы технически или административно не способны изменять сервер (ы) DHCP, работающий в вашей среде.
Ты можешь использовать dnsmasq
(версии> = 2.48) для этой цели.
Подробнее здесь: https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP
Нет, сервер DHCPD ISC не поддерживает режим ProxyDHCP. Некоторое время у нас была идея проекта GSoC в сообществе iPXE для ее реализации, но ни один студент еще не захотел взяться за эту задачу. С другой стороны, dnsmasq можно настроить для работы в режиме ProxyDHCP, но его конфигурация является чисто статической. У нас есть идея для GSoC этого года расширить dnsmasq, чтобы он мог отправлять DHCP-запросы на веб-сервер, который может позаботиться о логике и отправить ответ на dnsmasq, который затем должен передать его клиенту ProxyDHCP. Подробнее об этом можно прочитать на этой странице: http://ipxe.org/gsoc