Como configurar o Cobbler com PXE se você não pode alterar o servidor dhcp?

16

No passado, eu configurei um servidor PXE várias vezes, fazendo com que o servidor dhcp normal retornasse tudo o que era necessário para a inicialização pela rede: tanto a configuração regular do ip quanto as informações de inicialização em uma única configuração dhcp. Dessa forma, é fácil de fazer .

De acordo com a documentação que eu li (a wikipedia possui um bom resumo ), deve ser possível ter um servidor dhcp não modificado (por exemplo, se o administrador do seu local negar acesso) e um servidor separado que apenas retorne as informações de inicialização. Isso geralmente é chamado de servidor "PXE" ou "Proxy DHCP". No passado, eu vi (não usei) esse servidor pxe (a última versão foi há 5 anos).

Ontem instalei o Cobbler para ver o que ele realmente faz. Agora eu gostaria de usá-lo (adoro a facilidade de uso), mas modificar o servidor dhcpd 'main' para obter o PXE não é uma opção.

Não consegui encontrar nenhuma documentação sobre como executar o sapateiro usando um servidor PXE (== proxy dhcp) real.

Isso pode ser feito com sapateiro?

Posso configurar o servidor isc dhcp para se comportar como um servidor PXE (por exemplo, NO ip info, only boot info)?

Ou devo optar por uma abordagem completamente diferente (se sim, qual é a sua sugestão)?

obrigado


Nova descoberta que acabei de fazer: o changelog para dnsmasq versão 2.4.8 diz:

"Proxy-DHCP, onde o dnsmasq apenas fornece as informações PXE e outro servidor DHCP faz a alocação de endereços, também é permitido."

MUITO INTERESSANTE. Especialmente porque o sapateiro já pode controlar o dnsmasq.


Atualizar:

O dnsmasq 2.51 suportará essa configuração que executa totalmente o truque que eu queria.

Meu /etc/cobbler/dnsmasq.template agora fica assim:

# Cobbler generated configuration file for dnsmasq
# $date
#

# resolve.conf .. ?
#no-poll
#enable-dbus
read-ethers
addn-hosts = /var/lib/cobbler/cobbler_hosts

# Be a proxyDHCP server
dhcp-range=10.10.0.0,proxy

# Only respond to clients that are known (i.e present in /etc/ethers)
dhcp-ignore=#known

# Set this (and domain: see below) if you want to have a domain
# automatically added to simple names in a hosts-file.
expand-hosts
domain=test.basjes.nl,10.10.15.0

# Loads <tftp-root>/pxelinux.0 from dnsmasq TFTP server.
pxe-service=x86PC, "Boot PXELinux (=Cobbler controlled)", pxelinux ,$next_server

$insert_cobbler_system_definitions

Atualização: 30-04-2012

Alguns meses atrás, recebi um e-mail de alguém informando que ele não conseguia fazer o trabalho acima. Acontece que eu havia reparado e trocado meu sapateiro de que havia esquecido. Então, eu forneci a correção crucial para o sapateiro principal, que acaba de se tornar parte do tronco. Eu também criei alguma documentação de suporte adicional .

Niels Basjes
fonte
1
A julgar pelo site - suspeito que o Cobbler tenha uma implementação de DHCP incluída. Provavelmente faria uma instalação USB se estiver trabalhando em uma rede restrita. :)
Lester Cheung
não, mas pode ajudá-lo a gerenciar um.
monomyth

Respostas:

3

O que fazemos é montar um arquivo ISO que criamos, inicializar um kernel e initrd a partir dele e carregar um kickstart a partir de um local central. Esse arquivo kickstart aponta para um repositório com arquivos RPM, que pode ser o seu servidor de sapateiro.

Não tenho muita experiência com o Sapateiro (infelizmente), mas talvez essa seja uma opção para você?

wzzrd
fonte
Eu fiz a instalação usando um CDROM (imagem iso gerada pelo Cobbler!), Como você sugeriu e funcionou muito bem. Agora tenho a configuração em uma área quase isolada, onde posso desconectá-lo da LAN, ativar o DHCP, implantar via PXE, desativar o DHCP e conectar novamente. Dado o fato de que este é um ambiente de teste / experimento, isso terá que ser feito por enquanto. Eu também olhei para outras opções "proxydhcp", mas nenhuma parecia ter código além de 2004 ... ou seja, código morto e não mantido. Obrigado pelo feedback.
Niels Basjes
5

A ROM do PXE precisa de uma diretiva "próximo servidor" do servidor DHCP para encontrar e carregar o gerenciador de inicialização (seja grub, pxelinux ou qualquer outro gerenciador de inicialização). Se um "próximo servidor" não for fornecido, cabe à ROM do PXE decidir o que fazer. Você precisará examinar a configuração da BIOS da placa de rede e verificar se existe uma opção para talvez especificar o servidor manualmente.

Conforme observado pela resposta acima, usar um ISO ou USB Stick personalizado para inicializar a máquina, com todas as informações já fornecidas na linha de comando do kernel é provavelmente o melhor caminho a percorrer. Se você não tem acesso à configuração do servidor DHCP.

katriel
fonte
1

se você quiser apenas executar alguns testes, poderá ter vários servidores dhcp na mesma rede. você pode fazer com que o sapateiro crie uma configuração dhcpd que instrua o servidor apenas a responder quando um determinado MAC estiver fazendo uma solicitação ARP. e se você simplesmente comentar / desativar qualquer intervalo nesse servidor (e eu estou falando sobre o isc-dhcpd aqui), não será invasivo. Você pode obter algumas caixas de janelas reclamando (em transmissões) sobre esse servidor dhcp não ser autoritário se você estiver usando o AD e tal, mas, além disso, acho que não há muito perigo.

Mas a melhor maneira é ter o sapateiro / dhcp e os servidores que você está tentando provisionar em uma VLAN separada do restante da sua rede. Dessa forma, você limita seu domínio de transmissão e nenhuma outra caixa verá seus anúncios dhcp.

monomito
fonte