O servidor DHCP está dizendo 'host desconhecido' antes de enviar o DHCPOFFER

1

Estou tentando inicializar uma máquina PXE. 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 já foi construída bem!

Alguns googling indicam que 'host desconhecido' implica em alguma coisa relacionada ao DNS: o servidor tem arquivos de zona para as zonas direta e reversa em que esta caixa se encontra.

    
por shearn89 04.07.2017 / 12:49

2 respostas

1

Os servidores DHCP devem poder 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) e também com um destino de broadcast Endereço IP (255.255.255.255). Infelizmente, o Linux insiste em alterar o IP de destino 255.255.255.255 para o endereço de broadcast de sub-rede local; isso leva a uma violação do protocolo DHCP.

Embora muitos clientes DHCP não notem o problema, alguns (por exemplo, todos os clientes DHCP da Microsoft). Os clientes que tiverem este problema aparecerão para não ver as mensagens DHCPOFFER do servidor.

O que a página citada anteriormente faz é "enganar" o Linux net engine para poder usar o IP 255.255.255.255 como o IP de destino do DHCPOFFER por vários métodos envolvendo a criação de rotas, ou adicionando nomes de host com ele 255.255. 255,255 IP, etc.

EDITAR: 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 o seu IP de destino for diferente de 255.255.255.255. Por favor considere se, por exemplo, o PXE inicializa um PC, o firmware PXE é o "primeiro" cliente DHCP; em seguida, se você carregar um kernel / initrd Linux, terá uma "segunda" solicitação DHCP feita pelo kernel Linux de inicialização. Neste caso, em uma única sessão de inicialização PXE, você tem 2 clientes DHCP consecutivos completamente diferentes e pode acontecer que, enquanto o primeiro pode tolerar a violação do protocolo DHCP descrito, o segundo provavelmente não pode. 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, recomendo pegar algumas capturas de tráfego do Wireshark e ver o problema no nível do pacote.

    
por 04.07.2017 / 18:41
1

Então eu encontrei esta página ( link ) que menciona a inclusão de uma entrada em /etc/hosts .

Eu adicionei:

255.255.255.255 none

até o final, e isso parece ter resolvido o problema. Não tenho certeza porque eu não precisava disso antes, como parece bastante fundamental. Alguém sabe por que isso está acontecendo?

    
por 04.07.2017 / 14:06