Você pode analisar a criação de uma imagem iPXE personalizada com um script ipxe incorporado que encadeie tudo o que você deseja ver após a inicialização pela rede (por exemplo, menu.c32, vesamenu.c32, pxelinux etc.). O bom é que o iPXE não precisa de nenhuma opção DHCP aprovada (por exemplo, opções 66 e 67). O que está incorporado no script ipxe será usado em seu lugar. Só precisa de DHCP para atribuir um IP.
A possível desvantagem dessa abordagem é que você precisa inicializar um CD (é possível criar uma imagem ISO do ipxe), montar o ISO dentro de uma VM para inicializar a partir dele ou, se tiver uma inicialização PXE existente servidor e estão usando algo como pxelinux e menu.c32 / vesamenu.c32 você pode colocar uma imagem UNDI que o processo de compilação do ipxe irá gerar. A versão do ipxe do UNDI pode ser inicializada a partir do pxelinux e talvez de outros gerenciadores de inicialização.
Ainda estou tentando descobrir como usar o dnsmasq como um servidor proxyDHCP. Eu posso obtê-lo para inicializar a imagem ipxe via proxyDHCP, mas não consigo obter ipxe para obter um endereço IP DHCP depois que ele carrega. De eu posso dizer que é porque o cliente DHCP iPXE está preferindo o proxyDHCP como seu servidor DHCP (se isso faz sentido), o que parece estranho, dada a finalidade do servidor proxyDHCP - ou seja, para não precisar de um servidor DHCP.
EDIT: Aqui está uma configuração proxydhcp funcional para dnsmasq (finalmente descobri):
No arquivo /etc/dnsmasq.d/proxydhcp.conf incluído na configuração principal do /etc/dnsmasq.conf (por exemplo, linha de configuração 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
Funciona muito bem com outro servidor DHCP na rede. Minhas VMs inicializam pegando as opções proxyDHCP passadas para o cliente DHCP; no entanto, eu suponho (talvez incorretamente?) Que o cliente selecionará quaisquer opções de inicialização relacionadas a PXE (por exemplo, 66, 67) a partir de um servidor DHCP se já estiver configurado para fornecer essas opções.
Observe o uso de todo o espaço IP RFC1918 nas declarações de proxy. Não parece haver nenhum problema ao fazer isso - ou seja, nenhuma interferência visível em um servidor DHCP existente, porque, obviamente, isso é apenas um proxy e não um servidor DHCP autoritativo para uma sub-rede. Além disso, as opções do ipxe não são especificamente necessárias para suportar o proxydhcp, mas apenas um exemplo baseado em como eu escolho usá-lo; isto é, use proxydhcp para passar as informações do bootstrap do ipxe.
Em suma, proxyDHCP é uma maneira muito agradável de implementar de forma não invasiva a inicialização de rede PXE em ambientes onde você não é tecnicamente ou administrativamente capaz de modificar o (s) servidor (es) DHCP em execução em seu ambiente.