Temos salas de treinamento em que normalmente o Windows XP está instalado (via PXE). A infraestrutura DNS / DHCP "normal" é Windows-Servers. A sala de treinamento possui sua própria VLAN (diferente dos servidores Windows), portanto, é mais provável que haja um auxiliar de IP para solicitações DHCP ativas no roteador Cisco em que todos os PCs dessa sala estejam conectados.
Agora, queríamos converter alguns dos PCs para Linux. A idéia era: Coloque nosso próprio laptop com um servidor DHCP na VLAN da sala e substitua a resposta DHCP "normal". A idéia era que isso funcionasse, pois um servidor DHCP conectado diretamente na VLAN deveria ter um tempo de resposta mais rápido que o servidor DHCP "normal" localizado a alguns saltos da VLAN.
Acabou que isso não funcionou. Tivemos que liberar manualmente a concessão no servidor DHCP original para fazê-lo funcionar.
No laptop, vimos o cliente solicitando o IP e o "nosso" dhcp estava enviando NACKs para a solicitação de IP do Windows, antes disso oferecemos nossa própria resposta.
Pergunta antiga: Por que isso não funcionou como esperado? O que está fazendo com que o PC recupere seu antigo contrato?
Atualização 2012-08-08:
O problema de recuperação foi explicado no DHCP-RFC. Agora, isso explica por que o PC recupera sua antiga concessão.
Agora, liberamos o IP do servidor DHCP do Windows antes de tentar novamente.
Mais uma vez - o Windows-DHCP-server vence.
Suspeito que exista algum algoritmo para o dhcp-client que determine a "melhor" resposta dhcp para o cliente. A nova pergunta é:
Como o cliente escolhe a resposta "melhor"?
fonte
Respostas:
É do fornecedor, mesmo do firmware específico, como um cliente reage a várias respostas DHCP.
As variantes que eu vi ao longo dos anos são:
1) Aceite o primeiro, independentemente de ser um ACK ou NACK.
2) Pegue o primeiro ACK, ignore completamente o NACK.
3) Faça o último ACK recebido dentro de um intervalo de tempo definido (geralmente de 5 a 10 segundos).
Exemplo: Alguns anos atrás, tivemos problemas com as MFPs da Ricoh.
Nós tínhamos 2 servidores DHCP. Um forneceu os endereços, o outro apenas opções adicionais de DHCP. O segundo servidor sempre respondeu primeiro.
A variante usada 1 da Ricoh) mesmo que a primeira oferta contenha apenas opções DHCP. A Ricoh mudou para a variante 2) com uma atualização de firmware depois de explicarmos o problema.
fonte
OFFER
pacotes são o que o sistema do cliente precisa decidir entre.ACK
e osNACK
pacotes são enviados apenas em resposta a aREQUEST
, o que ocorre somente depois que o cliente "decide" qual oferta deve ser seguida. Esse é um bug muito legal com as impressoras!Supondo que o roteador ainda esteja atuando como uma retransmissão DHCP e encaminhando a solicitação para o servidor original, a razão pela qual ele fez isso é simplesmente porque o servidor DHCP do Windows disse para ele prosseguir e usar o IP. Nesse caso, o DHCPNACK do novo servidor é irrelevante, pois um cliente DHCP considerará todas as respostas e, como recebeu uma oferta da caixa DHCP do Windows, é perfeitamente prazer em usá-lo.
fonte
Se nada mais ajudar - RTFM (leia o manual). Nesse caso, o primeiro foi o sucesso.
O RFC 2131 descreve as operações de DHCP.
A seção 1.6 declara que o DHCP deve :
Agora, a questão interessante é como esse objetivo de design está sendo alcançado em um cliente que não tem conhecimento de seu passado. A seção 3.2 descreve:
Portanto, um servidor DHCP com concessão ativa obtém precedência usando um atalho no protocolo.
A partir de então, o Laptop-DHCP-Server está sendo ignorado pelo Cliente.
Portanto, a solução em nosso caso provavelmente será (atualizarei isso quando realmente a testarmos):
fonte
A nova pergunta provavelmente deve estar em uma pergunta diferente - o título da pergunta não se encaixa na maior parte do corpo da pergunta.
De qualquer forma, no que diz respeito à maneira como um cliente escolhe qual oferta seguir, no caso em que não há concessão atual: depende do cliente, mas em toda implementação de cliente DHCP que eu conheço, é uma corrida simples .
A RFC 2131 cobre isso:
Existe um rascunho da IETF por aí que parece morto, o que teria acrescentado configurabilidade ao processo de seleção e também menciona as implementações de clientes sem brilho (de mais de uma década atrás, mas pouco mudou):
Ter dois servidores DHCP que prestam serviço à mesma rede com configuração diferente resulta em corridas, o que não é desejável do ponto de vista de confiabilidade ou previsibilidade. Não há realmente nenhuma razão para você não conseguir que seu único servidor DHCP forneça o que você precisa.
fonte