Estou tentando inicializar o PXE em uma máquina. No log do sistema, posso ver:
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
Eu não posso para a vida de mim resolver o problema. A sub-rede é válida e presente, a máquina tem uma concessão e esta máquina foi construída anteriormente muito bem!
Algumas pesquisas no Google indicam que 'host desconhecido' implica algo a ver com DNS: o servidor possui arquivos de zona para a zona direta e reversa em que esta caixa está.
Então eu encontrei esta página ( http://www.tldp.org/HOWTO/DHCP/x369.html ) que menciona a adição de uma entrada para
/etc/hosts
.Eu adicionei:
até o fim, e isso parece ter resolvido o problema. Não sei por que não precisei disso antes, pois parece bastante fundamental. Alguém sabe porque isto está acontecendo?
Os servidores DHCP devem ser capazes de enviar pacotes DHCPOFFER para clientes que não possuem um IP, então eles transmitem seus DHCPOFFERs com um endereço MAC de destino de broadcast (FF:FF:FF:FF:FF:FF) e também com um endereço IP de destino de broadcast ( 255.255.255.255). Infelizmente, o Linux insiste em mudar o IP de destino 255.255.255.255 para o endereço de broadcast da sub-rede local; isso leva a uma violação do protocolo DHCP.
Embora muitos clientes DHCP não percebam o problema, alguns (por exemplo, todos os clientes DHCP da Microsoft) perceberão. Os clientes que tiverem esse problema parecerão não ver as mensagens DHCPOFFER do servidor.
O que a página citada anteriormente faz é "enganar" o mecanismo de rede do Linux para poder usar o IP 255.255.255.255 como IP de destino do DHCPOFFER por vários métodos envolvendo a criação de rotas, ou adicionando nomes de host com o IP 255.255.255.255, etc.
EDIT: Não importa onde o cliente DHCP está localizado na rede; o problema é que alguns clientes DHCP exigentes irão ignorar uma oferta DHCP se seu IP de destino for diferente de 255.255.255.255. Por favor, considere se você, por exemplo, inicializar um PC PXE, o firmware PXE é o "primeiro" cliente DHCP, em seguida, se você carregar um kernel/initrd Linux, você terá uma "segunda" solicitação DHCP feita agora pelo kernel Linux inicializando. Nesse caso, em uma única sessão de inicialização PXE, você obteve 2 clientes DHCP completamente diferentes consecutivos e pode acontecer que, embora o primeiro possa tolerar a violação do protocolo DHCP descrito, o segundo provavelmente não. O mesmo PC de inicialização PXE poderia ter funcionado muito bem antes se você inicializasse apenas clientes DHCP "perdoadores".
Para "ver" o que está acontecendo, eu recomendaria obter algumas capturas de tráfego do Wireshark e ver o problema no nível do pacote.