Descubra o que é e para que serve o serviço DHCP, qual a sua importância e porque é tão utilizado por empresas e fornecedores de serviços em todo o mundo.
O que é o serviço DHCP e para que serve?
O que é o DHCP?
O serviço DHCP (Dynamic Host Configuration Protocol) ou Protocolo de Configuração Dinâmica de Hosts é um dos serviços fundamentais das redes empresariais e domésticas, e por isso tem importância suficiente para merecer um artigo dedicado a compreendê-lo.
Normalmente, os administradores de redes do tipo TCP/IP precisam de fornecer pelo menos um endereço IP para cada um dos elementos conectados a uma rede. A configuração era feita, inicialmente, de forma manual, cabendo ao administrador planear a distribuição dos endereços IP e configurá-los manualmente em cada um dos dispositivos.
Esta forma de trabalhar pode ser sustentável quando temos poucos elementos conectados à rede, ou quando os elementos que se conectam não mudam, mas o que acontece quando temos centenas de máquinas conectadas? E o que acontece quando as máquinas conectadas variam continuamente? Nesses casos, a manutenção desse modelo dificilmente pode ser sustentável, pois implica um grande esforço administrativo e, portanto, pouquíssima eficiência.
Também devemos ter em conta que as operações diárias de um trabalhador humano podem levar a problemas como erros de atribuição, sobreposição de endereços (como a atribuição de um endereço que já está em uso), erros de configuração, etc. Cuidado, porque até agora falamos sobre a atribuição de endereços IP, mas um dispositivo precisa de mais informações para poder conectar-se a uma rede, como:
- Endereço IP.
- Máscara de sub-rede.
- Gateway Padrão.
- Servidores DNS.
- E outras informações sobre as quais não vamos falar agora, mas abordaremos mais adiante, juntamente com informação detalhada sobre cada um dos pontos indicados.
Agora, vamos pensar brevemente no que acontecerá se o técnico que está a fazer a configuração cometer um erro ao definir qualquer um destes dados? Ocorrerá um erro de sobreposição, com a típica mensagem de IP duplicado, ou haverá problemas de funcionamento porque o dispositivo não é capaz de alcançar o gateway, ou não é capaz de fazer a tradução do endereço IP, etc.
O pior de tudo é que, afinal, no caso de um erro, este devia acontecer apenas numa máquina. Mas imaginemos um cenário mais dramático: vamos supor que um servidor DNS é alterado e é necessário configurá-lo em todas as máquinas. Isto significa que é necessário trabalhar em todas as máquinas para alterar esse parâmetro. Isto pode ser mais ou menos fácil se tivermos 10 máquinas, mas torna-se uma loucura no caso de serem 100 ou 1000…
Como surgiu o DHCP?
Para resolver o problema que a alocação, configuração, administração e manutenção do espaço de endereços IP podem causar, principalmente em grandes empresas, um grupo de empresas e especialistas trabalhou para definir um protocolo que permitisse realizar essas tarefas de forma dinâmica, o que acabou por ser o padrão aberto definido no RFC 2132 da associação IETF (Internet Engineering Task Force) que define os fundamentos do serviço DHCP.
Como mencionamos, o DHCP resolve o problema de atribuir e gerir endereços IP, atribuindo-os automaticamente e mantendo a sua atribuição, sendo responsável pelos registos, cancelamentos e atualizações sem que o administrador tenha de envolver-se nas operações do dia a dia.
Na verdade, como pode ser visto no RFC 2132, o protocolo DHCP tem origem no BOOTP. O BOOTP foi um protocolo desenvolvido para funcionar em máquinas diskless que enviavam configurações para os computadores com base no seu endereço físico (endereço MAC), que é um endereço único para cada elemento de rede existente no mundo.
O BOOTP enviava a configuração para os clientes que a solicitavam através de um servidor TFTP (Trivial File Transfer Protocol). Após receber essa informação, os clientes estavam preparados para operar normalmente.
Como podemos constatar pelo que acabamos de referir, o serviço BOOTP permitiu colmatar a necessidade de configuração manual do computador cliente, o que se traduziu em menores custos administrativos.
Mas isto era apenas uma parte da solução, porque as informações eram enviadas automaticamente, mas as atribuições de endereço IP realmente tinham de ser feitas pelo administrador, que tinha de armazenar a configuração de cada máquina no servidor TFTP.
Outro dos problemas que o BOOTP apresentava é que não era capaz de detetar erros, como endereços IP duplicados, portanto o mesmo IP poderia ser configurado por engano para dois clientes e o servidor não fazia nada para resolver esse problema.
Para resolver estes problemas surgiu o protocolo DHCP, que além de fazer essas configurações, é capaz de distribuir IPs automaticamente, sem que o administrador precise de fazer nada mais do que atribuir uma faixa de endereços IPs válidos. Além disso, é o próprio DHCP que se encarrega de evitar sobreposições, que só ocorrerão se o administrador cometer um erro na configuração manual de uma conta.
O que é que o DHCP pode fazer?
Até agora, só dissemos coisas boas sobre o DHCP, mas também só falamos da parte de configuração automática de alguns parâmetros. Vamos aprofundar um pouco mais.
Para começar, temos de dizer que quando falamos em configurar IPs automaticamente, não estamos a ser totalmente honestos, ou melhor, não estamos a ser completamente fiéis à realidade. O DHCP é capaz de atribuir endereços IP de três maneiras diferentes:
- Atribuição Manual: Este método consiste em vincular um IP do pool de endereços que o servidor possui ao endereço MAC do cliente. Está disponível apenas para um computador e não pode ser usado por nenhum outro cliente. Funciona de maneira semelhante ao que o BOOTP fazia.
- Atribuição Dinâmica: Este é o método através do qual um servidor atribui um IP a um cliente e este IP permanece atribuído a este cliente durante um período de tempo determinado. Após esse tempo, se o cliente ainda estiver conectado, a concessão do IP é renovada por outro período de tempo equivalente. Se o cliente permanecer conectado indefinidamente, é como se esse IP fosse fixo, pois não mudará em nenhum momento a não ser que o administrador assim o deseje.
- Atribuição Automática: Este é o método através do qual um servidor atribui um IP a um cliente de forma indefinida, tornando-se valores permanentes.
Agora, a dúvida que pode surgir ao leitor é: tenho de escolher um destes três modos para o meu servidor? A resposta é não, não é necessário escolher um deles, mas estes três modelos geralmente coexistem no ecossistema de DHCP de uma empresa.
Como exemplo, podemos usar a atribuição manual para os computadores dos técnicos, a atribuição dinâmica para os clientes que ocasionalmente visitam as instalações e a atribuição automática para os computadores dos funcionários que trabalham sempre na empresa.
A próxima pergunta que o leitor pode ter é: Que informações é que o DHCP configura? Bem, no início deste artigo falamos de alguns pontos, mas queríamos explicar primeiro o que é o DHCP e as suas funções. Agora sim, podemos falar com mais detalhe sobre esta questão.
Os dados fornecidos por um servidor DHCP são basicamente os seguintes:
- Endereço IP: Endereço que identifica exclusivamente a máquina.
- Máscara de sub-rede: Usada em operações de rede para identificar a rede a que o dispositivo pertence.
- Gateway Padrão: esta é a “porta de saída” através da qual o computador enviará pacotes para fora da rede.
- Servidores DNS: São os servidores do Sistema de Nomes de Domínio (Domain Name System) que a máquina irá consultar para saber a que IP corresponde um servidor ou a que servidor corresponde um IP.
- Nome de domínio: É basicamente o nome de domínio totalmente qualificado da organização onde está inserido. Normalmente é o FQDN (Fully Qualified Domain Name), ou seja, o nome mais a extensão, como “jotelulu.com”.
- Endereço WINS: Endereço IP dos servidores WINS que o cliente consultará para resolução de nome NetBIOS.
Além disso, pode haver outros parâmetros menos comuns que não abordaremos nesta ocasião.
Como funciona a atribuição de um endereço IP?
A seguir, veremos de forma resumida como um pedido é realizado por uma máquina cliente e como a atribuição é feita pelo servidor.
Em primeiro lugar, um cliente que se conecta a uma rede e precisa de receber um endereço IP via DHCP lança um pedido do tipo DHCPDISCOVER, ou seja, uma solicitação de descoberta de servidor DHCP, pois o cliente não sabe quem pode fornecer-lhe este IP. Cria o pedido para o endereço 255.255.255.255, ou seja, faz um pedido do tipo broadcast (para todos os endereços IP da rede), definindo o endereço 0.0.0.0 como endereço de origem. Embora este pedido seja feito sem ter um IP associado, é identificado pelo endereço físico do seu cartão (MAC).
Neste ponto, o servidor DHCP responde com o envio de uma mensagem DHCPOFFER. Desta forma, o servidor mostra-se disponível para oferecer um endereço IP e outras configurações à máquina cliente. Além disso, curiosamente, é possível que mais de um servidor responda com uma oferta, cada um lançando o seu próprio DHCPOFFER.
Neste momento, tanto o cliente como o servidor já se identificaram e o cliente responde com uma mensagem DHCPREQUEST. Neste momento, o endereço do cliente ainda é 0.0.0.0 porque ainda não possui uma atribuição do servidor. Quando esta solicitação é lançada, ela já está “marcada” para um dos servidores, portanto os restantes abandonam a comunicação e o endereço que teriam reservado para este cliente.
O servidor responde ao DHCPREQUEST com uma mensagem DHCPACK (Acknowledgement), fechando assim o ciclo de inicialização e fornecendo as informações solicitadas. Ou seja: IP, máscara, gateway padrão, servidores DNS, etc., para que o cliente possa operar na rede sem problemas.
Abaixo, podemos ver o processo numa única imagem com os fluxos de comunicação completos.
Quando o cliente quiser desconectar, libertar o IP, recusar a atribuição, etc., fará uso das mensagens DHCPDECLINE ou DHCPRELEASE.
Além disso, devemos lembrar-nos de que as atribuições têm, normalmente, um tempo determinado e, após esse período, o cliente deverá solicitar a renovação da atribuição. Normalmente, quando 50% do tempo estipulado tiver passado, o processo de renovação começa.
Por este motivo, quando o cliente deteta que o tempo de atribuição está a terminar, lança a mensagem DHCPREQUEST, para informar o servidor de que está pronto para a renovação. Em princípio, o servidor deve responder com uma mensagem DHCPACK, mas se a atribuição não for renovada, o cliente voltará a fazer um pedido quando se atingir 87,5% da duração da atribuição. Se mesmo assim não obtiver uma resposta, iniciará um DHCPDISCOVER para procurar outro servidor DHCP que possa responder.
Para mais informação sobre este tema e conhecer detalhas sobre as comunicações ocorridas durante este período, pode consultar este link: Noções básicas do DHCP (Dynamic Host Configuration Protocol) no Microsoft Learn.
Problemas comuns do serviço DHCP
O serviço DHCP não está isento de problemas, naturalmente. Mesmo se operarmos o serviço corretamente, podemos encontrar algum problema específico ou alguma configuração que exija modificações no servidor.
Problemas comuns do serviço DHCP no lado do cliente
Por um lado, do lado do cliente, é possível que ocorra um erro de registo. Será necessário pedir uma alteração de configuração, o que implica lançar novamente os comandos que permitem o registo da máquina cliente no servidor.
Os comandos usados para executar a solução de problemas são:
- ipconfig /release: este comando liberta manualmente a atribuição de IP do protocolo IPv4 da placa na qual a operação é realizada, ou de todas se nada for especificado. Isto é feito com o envio de uma mensagem DHCPRELEASE para o servidor que fornece o DHCP. No caso de trabalhar em IPv6, o comando a executar será “ipconfig /release6”.
- ipconfig /renew: este é o comando para fazer uma solicitação de renovação de atribuição de IP para o protocolo IPv4. Todas as interfaces são afetadas caso não seja indicada uma interface específica. No caso de trabalhar em IPv6, o comando a executar será “ipconfig /renew6”.
Libertamos a atribuição de IP do cliente Windows
Outro problema típico dos clientes surge quando é feita uma solicitação de DHCP mas, por qualquer motivo, não se recebe uma atribuição. Nesses casos, o sistema atribui o que se designa como endereço Automatic Private Internet Protocol Addressing (APIPA), um endereço reservado do espaço de endereços 169.254.x.x (169.254.0.0 – 169.254.255.255).
A solução típica para este problema é reiniciar os comandos vistos no caso anterior, para forçar um novo pedido. Isto costuma funcionar, mas é melhor verificar se o equipamento está conectado corretamente (verifique o cabo de rede) antes de executar os comandos.
Problemas comuns do serviço DHCP no lado do servidor
Do outro lado estão os problemas que podem surgir no lado do servidor. Geralmente, são causados por pequenos problemas de configuração ou uptime (tempo de atividade) do servidor.
A maioria dos problemas causados por um servidor DHCP no mundo Microsoft são devido ao tempo de operação, já que o serviço pode ficar inativo e será necessário reiniciá-lo.
O mesmo pode acontecer com o serviço DHCP, que pode precisar de reboot ou de reiniciar um intervalo de atribuição, etc.
Outra questão importante que é uma boa prática é ter mais que um servidor DHCP, pois se o servidor DHCP cair, não será possível atribuir novos endereços IP durante o tempo de inatividade. Isto pode ser um problema maior ou menor dependendo da infraestrutura.
Por exemplo, vamos supor que temos um servidor DHCP a atribuir IPs num hotel. Se o servidor DHCP estiver fora de serviço, os clientes que tentarem autenticar-se no Wi-Fi do hotel não conseguirão receber um IP e, portanto, não poderão conectar-se à Internet, verificar o e-mail, conversar com familiares por videochamada, etc.
Posto isto, podemos dizer que um servidor DHCP nunca deve estar sozinho, mas deve fazer parte de um cluster DHCP com mais de um servidor DHCP; todos os clientes devem apontar para um endereço VIP (endereço único para o cluster); e, em caso de falha do servidor que está a prestar o serviço, um segundo servidor deve assumir a responsabilidade.
Outro problema típico está relacionado com o tempo de concessão dos endereços IP aos clientes que se conectam. Isto geralmente acontece porque em servidores DHCP da Microsoft, o tempo de concessão é de 8 dias por padrão, o que não é ideal para todas as utilizações. Temos de pensar que o espaço de atribuição de IPs é finito, podendo existir, por exemplo, 254 atribuições para serem distribuídas entre todos os clientes. E quando uma concessão é atribuída a um cliente, esta não se liberta até que o tempo destinado a esta concessão expire, a menos que o cliente a liberte manualmente.
Se olharmos, por exemplo, para uma empresa que presta serviço a estações de trabalho, o horário que está configurado por defeito pode estar correto, pois não haverá alterações substanciais; mas se pensarmos no hotel que mencionámos antes, atribuir um IP durante 8 dias é uma péssima ideia, pois de certeza que os clientes não ficarão tantas noites, e os IPs ficariam bloqueados durante os 8 dias.
Conclusão:
Como referido neste artigo, o serviço DHCP (Dynamic Host Configuration Protocol) ou Protocolo de Configuração Dinâmica de Hosts é um dos serviços fundamentais de qualquer rede empresarial ou doméstica que possua um grande número de hosts ou na qual se queira promover uma gestão fluida de equipas conectadas.
O seu funcionamento é relativamente fácil de entender, a configuração nos clientes é extremamente simples e a configuração nos servidores é bastante fácil de realizar. Isto, sem contar que o custo administrativo é irrisório face ao custo de manutenção de uma infraestrutura com endereços IP fixos.
Por fim, vimos que o serviço não está isento de avarias ou problemas, mas estes são, por norma, facilmente solucionáveis.
Esperamos que tenha gostado deste artigo e que aproveite para ler outros artigos deste blog, como: O que fazer quando o servidor DNS não responde.
Obrigado por estar connosco!