Por que demora alguns segundos para obter o endereço IP via DHCP?

24

Por curiosidade, por que geralmente leva alguns segundos para obter a configuração de rede via DHCP quando a CPU é capaz de processar milhões de operações por segundo e o ping no roteador leva alguns milissegundos?

No meu ambiente doméstico, com um roteador WiFi e cerca de 5 dispositivos, não é raro ver tempos como 5 a 10 segundos.

Borek Bernard
fonte

Respostas:

22

Além da aquisição real da concessão de DHCP do servidor DHCP (que normalmente não leva muito tempo), alguns servidores efetuam ping primeiro no endereço IP que ele está prestes a distribuir antes de entregá-lo para verificar se ele ainda não está disponível. em uso na rede - isso leva alguns segundos para atingir o tempo limite. Às vezes, o cliente faz o mesmo (novamente, para evitar conflitos de endereço IP), o que adiciona mais tempo. Além disso, alguns clientes também registram suas entradas DNS etc.

Dan
fonte
3
O servidor dhcp no meu trabalho usa solicitações ARP para detectar conflitos de IP.
Erichui
9

O DHCP pode demorar um pouco mais porque envolve uma série de transações, não com um único servidor, mas com todos os dispositivos da rede durante a solicitação inicial, pois envia uma mensagem de difusão.

Se você verificar o RFC para DHCP,

http://www.faqs.org/rfcs/rfc2131.html

você pode ver claramente a série de negociações envolvida. No início, o cliente envia DHCPDISCOVER para todos os dispositivos na LAN, e os servidores executando o serviço dhcp retornam a mensagem DHCPOFFER. O cliente também pode esperar para obter respostas de todos os servidores dhcp disponíveis antes de escolher um. Em seguida, ele envia um DHCPREQUEST com um identificador que indica qual servidor ele escolheu como seu provedor de IP. Finalmente, ele obtém o DHCPACK com todos os parâmetros de configuração. Este é apenas um resumo da "3.1 interação cliente-servidor - alocando um endereço de rede" da RFC.

Pela minha experiência, o dhcp leva muito tempo, principalmente em grandes configurações de LAN com muitos nós conectados. Em uma rede doméstica com apenas um servidor dhcp (roteador WIFI, por exemplo) e um ou dois computadores, é bastante rápido.

Daniel t.
fonte
Na minha rede doméstica com um roteador WiFi e cerca de 5 dispositivos, leva de 5 a 10 segundos, o que considero bastante lento. Mas obrigado pela explicação.
Borek Bernard
verifique se você possui um único servidor dhcp. Se forem apenas 5 dispositivos, convém reservar IPs para cada dispositivo no servidor dhcp. Mas se você estiver curioso o suficiente, poderá usar o tcpdump para examinar a negociação real e ver o que está causando o atraso.
Daniel t.
Dependendo do servidor dhcp, pode levar alguns segundos, independentemente da atividade da rede ou da velocidade da CPU. Isso ocorre porque o servidor consulta primeiro a rede para verificar se um endereço está em uso antes de oferecê-lo a um cliente e precisa aguardar pelo menos um pouco para que as respostas cheguem. Esse tempo limite faz parte do atraso que você percebe e existirá mesmo na rede mais silenciosa.
ʇsәɹoɈ 13/06
2

Encontrei duas razões (e soluções) quando queria respostas rápidas do meu servidor DHCP.

1) Meu DHCP efetuou um ping no endereço que queria alocar. Isso adicionou 3 segundos de atraso. Eu removi isso alterando a configuração do DHCP para ter um mapeamento do endereço MAC para o endereço IP. Isso é basicamente usando o DHCP para alocar um endereço estático. Isso removeu o atraso de 3 segundos para mim.

2) Eu tenho uma rede isolada, no entanto, você pode conseguir isso às vezes. Havia uma pesquisa de DNS sendo feita, o que para mim resultou em muitos segundos de atraso na obtenção de um endereço IP do DHCP. Na configuração do servidor DHCP, havia opções para nossos servidores DNS e domínio. Depois de remover as opções de DNS e as alterações acima, recebi respostas instantâneas do servidor DHCP. (**)

Esses problemas foram os que encontrei na minha configuração. Sua milhagem pode variar.

Felicidades

LIBRA

(**) Se eu tivesse um centavo por cada vez que uma falha na pesquisa de DNS causasse um atraso que resultasse em uma estranha batida no efeito, o que resultaria em eu coçando minha cabeça, eu teria muitos centavos.

LazyBrush
fonte
1

Eu não sei qual cenário você tem, mas no mundo real você obtém o endereço IP ... etc de um servidor antigo (o servidor dhcp é sempre aquele com o hardware mais antigo :)) com muitas solicitações, atrás de um firewall , um ou vários roteadores / switches ... Latência, potência da CPU ... e no mundo Windows, a implementação dhcp não é tão eficiente quanto gostaríamos !.

C_Sense
fonte
1
"em um mundo windows, a implementação dhcp não é tão eficiente quanto gostaríamos!" Você tem alguma documentação ou fonte para fazer backup do que disse aqui?
mfinni
Não, mas por exemplo ... O Linux fornece opções DHCP de failover de uma maneira muito fácil. Além da funcionalidade interna do Active Directory no Windows, existem outros pontos a serem considerados como possíveis problemas de segurança.
#Sense
2
Eu acha que você está regurgitando a hipérbole adquirida após anos lendo muitas postagens na Internet. "A Microsoft é ruim." "Por quê?" "Porque todo mundo diz isso."
joeqwerty
Você pode sobrepor escopos DHCP nos servidores DHCP do Windows. Com o win2k8 R2, aparentemente, também há uma nova opção de failover. Talvez o Linux seja melhor que isso. Nada disso tem a ver com "eficiência". E a que "problemas de segurança" no Windows DHCP você se refere? Pedi fontes e, em vez disso, você lança mais reclamações.
mfinni
0

Se você estiver tendo problemas de desempenho com o dhcp;

  1. Verifique a latência da rede
  2. Veja a negociação do pacote DHCP do DHCP. Você poderá ver que ação está demorando muito. (o problema pode não estar no servidor dhcp, quem está esperando quem?)
  3. Examine a carga e os logs do servidor DHCP.
Um azul
fonte
É um cenário de rede doméstica, atualizei a pergunta.
Borek Bernard
NO_ಠ VOCÊ NÃO PERGUNTA AO SUPERUSER ENTÃO?
ablue
Talvez por estar relacionado a redes e aqui seja o melhor lugar para isso?
Kedare