Dia 9: DHCP — Scopes, Reservas, Relay Agent e Opções Personalizadas
No Dia 2 falámos de endereçamento IPv4, máscaras e sub-redes. Mas como é que cada dispositivo recebe o seu IP sem que um administrador tenha de o configurar à mão? A resposta é DHCP — o protocolo que automatiza a atribuição de endereços e torna as redes modernas geríveis em escala.
Neste nono dia do curso de redes cobrimos o processo DORA, configuração de scopes e reservas em ISC DHCP Server, DHCP Relay Agent, opções personalizadas (PXE, VoIP) e a transição para DHCPv6 e SLAAC.
Neste artigo
- 1. Introdução ao DHCP
- 2. Processo DORA — Como Funciona
- 3. Scopes e Reservas
- 4. DHCP Relay Agent
- 5. Opções Personalizadas (PXE, VoIP)
- 6. DHCPv6 e SLAAC
- 7. Erros Comuns e Lista de Verificação
1. Introdução ao DHCP
O DHCP (Dynamic Host Configuration Protocol), definido na RFC 2131, é um protocolo cliente-servidor que atribui automaticamente endereços IP e parâmetros de configuração de rede a dispositivos. Em vez de configurar manualmente cada máquina, o DHCP centraliza essa tarefa num servidor.
ℹ O DHCP atribui automaticamente endereços IP, máscaras, gateways e servidores DNS — sem DHCP, cada dispositivo teria de ser configurado manualmente.
Um servidor DHCP pode fornecer diversos parâmetros para além do IP:
| Opção DHCP | Código | Descrição |
|---|---|---|
| Subnet Mask | 1 | Máscara de sub-rede |
| Router (Gateway) | 3 | Gateway padrão |
| DNS Servers | 6 | Servidores DNS |
| Domain Name | 15 | Nome do domínio |
| Broadcast Address | 28 | Endereço de broadcast |
| Lease Time | 51/58 | Tempo de concessão (predefinido/máx) |
No Dia 4 abordámos ARP e endereçamento MAC; hoje veremos como esses mesmos endereços MAC são usados pelo DHCP para reservar IPs fixos.
2. Processo DORA — Como Funciona
O DHCP usa um processo de quatro passos conhecido pela sigla DORA: Discover, Offer, Request, Acknowledge. Tudo começa quando um cliente liga na rede e ainda não tem IP.
| Fase | Origem | Destino | Conteúdo |
|---|---|---|---|
| Discover | Cliente (0.0.0.0) | Broadcast (255.255.255.255) | “Há algum servidor DHCP?” |
| Offer | Servidor DHCP | Broadcast ou Unicast | Proposta de IP + parâmetros |
| Request | Cliente | Broadcast | “Aceito a oferta do servidor X” |
| Acknowledge | Servidor DHCP | Unicast | Confirmação final com o lease |
O processo DORA é stateful — o servidor mantém uma tabela de concessões (leases) com o IP atribuído, o MAC do cliente e o tempo restante. Quando o lease expira, o cliente tem de o renovar. Se o servidor não responder, o cliente tenta reutilizar o IP até atingir o limite (T1 e T2 timers).
O cliente envia o Request em broadcast (não em unicast para o servidor escolhido) porque pode haver múltiplos servidores DHCP na rede. Ao enviar em broadcast, todos os servidores ficam a saber qual foi a oferta aceite — e os que não foram escolhidos podem libertar o IP reservado provisoriamente.
3. Scopes e Reservas
Um scope (âmbito) é um intervalo de endereços IP que o servidor DHCP pode atribuir numa determinada sub-rede. Dentro de um scope, podem existir:
- Pool dinâmico — intervalo de IPs atribuídos temporariamente (com lease time).
- Reservas — IPs fixos associados a um MAC específico (útil para impressoras, servidores, APs).
- Exclusões — IPs dentro do scope que nunca devem ser atribuídos (ex: IPs de equipamentos de rede).
⚠ Dois servidores DHCP na mesma rede sem exclusão de intervalos causa atribuição de IPs duplicados e conflitos.
A configuração abaixo mostra o ISC DHCP Server com um scope dinâmico e uma reserva por MAC:
# Instalar e configurar ISC DHCP Server
apt install isc-dhcp-server
# /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.10, 8.8.8.8;
option domain-name "exemplo.pt";
default-lease-time 600;
max-lease-time 7200;
}
# Reserva por MAC
host servidor-impressao {
hardware ethernet 00:1a:2b:3c:4d:5e;
fixed-address 192.168.1.50;
}
O default-lease-time define o tempo padrão da concessão (600 segundos = 10 minutos). O max-lease-time é o máximo que um cliente pode pedir (7200 segundos = 2 horas). Em redes com muitos dispositivos móveis, leases curtos permitem reciclar IPs rapidamente; em redes estáveis com servidores, leases longos reduzem tráfego de renovação.
Para consultar as concessões activas:
# Verificar concessões
cat /var/lib/dhcp/dhcpd.leases
# Liberta concessão
dhcp-release eth0 192.168.1.150
O ficheiro dhcpd.leases regista cada concessão com o IP, MAC, hostname, timestamps de início e fim. É a fonte de verdade para saber quais IPs estão em uso.
4. DHCP Relay Agent
O DHCP Discover é enviado em broadcast (255.255.255.255). Os broadcasts não atravessam routers — não saem da sub-rede local. Se o servidor DHCP está noutra VLAN ou sub-rede, os clientes nunca chegam a contactá-lo.
A solução é o DHCP Relay Agent — um serviço no router que intercepta os broadcasts DHCP e reencaminha-os em unicast para o servidor DHCP configurado. O relay insere a informação da sub-rede de origem (opção giaddr — Gateway IP Address) para que o servidor saiba qual o scope a usar na resposta.
# DHCP Relay (no router)
ip helper-address 192.168.1.10
| Comparação | DHCP Local | DHCP com Relay |
|---|---|---|
| Servidor na mesma sub-rede | Sim | Não (noutra VLAN) |
| Broadcast atravessa router | Não necessário | Não — relay converte em unicast |
| Complexidade | Baixa | Média (configurar helper) |
| Ideal para | Redes pequenas / planas | Redes segmentadas em VLANs |
A opção Option 82 (Relay Agent Information) é uma extensão do relay que acrescenta informação sobre a porta física do switch donde veio o pedido. Permite ao servidor DHCP aplicar políticas por porta (ex: atribuir IPs diferentes consoante a sala ou o andar). É muito usado em ISPs e redes empresariais para identificar a localização física do cliente.
5. Opções Personalizadas (PXE, VoIP)
Para além das opções padrão (IP, máscara, gateway, DNS), o DHCP suporta opções personalizadas que permitem fornecer parâmetros específicos a tipos de clientes distintos. Os casos mais comuns são PXE boot e telefones VoIP.
PXE Boot
O PXE (Preboot eXecution Environment) permite que máquinas arranquem pela rede, sem disco local. O DHCP fornece o endereço do servidor TFTP com a imagem de boot. As opções relevantes são:
- Option 66 — Endereço do servidor TFTP (next-server).
- Option 67 — Nome do ficheiro de boot (ex:
pxelinux.0). - Option 60 — Class Identifier: o cliente identifica-se como “PXEClient” para que só servidores PXE respondam.
VoIP
Telefones IP usam o DHCP para receber a configuração do servidor de voz. As opções típicas incluem:
- Option 150 — Endereço do servidor TFTP onde o telefone descarrega a configuração (usado pela Cisco).
- Option 66 — Alternativa ao Option 150 (usado por outras marcas como Grandstream).
- Option 42 (NTP) — Servidor de tempo para sincronização do telefone.
- Option 125 (VSI) — Vendor-Specific Information, usada para enviar parâmetros proprietários.
No ISC DHCP Server, a configuração de PXE seria:
# PXE Boot no dhcpd.conf
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
next-server 192.168.1.20;
filename "pxelinux.0";
# VoIP — Option 150 (Cisco)
option option-150 code 150 = ip-address;
option option-150 192.168.1.30;
6. DHCPv6 e SLAAC
No mundo IPv6, a atribuição de endereços segue dois caminhos distintos: SLAAC (StateLess Address AutoConfiguration) e DHCPv6. A escolha depende da flag no Router Advertisement (RA):
- SLAAC — O router envia o prefixo via RA e o cliente gera o seu próprio IP (com base no MAC ou aleatório). Sem estado, sem servidor DHCP.
- DHCPv6 stateful — O servidor DHCPv6 atribui o IP completo e mantém a tabela de concessões (como o DHCPv4 clássico).
- DHCPv6 stateless — O cliente gera o IP via SLAAC mas pede ao DHCPv6 apenas parâmetros extra (DNS, NTP, domínio).
| Método | IP gerado por | Parâmetros por | Servidor DHCPv6 |
|---|---|---|---|
| SLAAC puro | Cliente (via RA) | RA (DNS opcional via RDNSS) | Não necessário |
| DHCPv6 stateless | Cliente (via RA + SLAAC) | DHCPv6 (DNS, NTP) | Sim (só parâmetros) |
| DHCPv6 stateful | Servidor DHCPv6 | Servidor DHCPv6 | Sim (IP + parâmetros) |
O processo DORA é substituído no DHCPv6 por um processo de dois passos: Solicit (cliente pede) e Reply (servidor responde). Em redes IPv6 modernas, o SLAAC é o método dominante porque é mais simples e não requer manutenção de leases. O DHCPv6 stateful é usado quando se precisa de controlo rigoroso sobre os endereços atribuídos.
7. Erros Comuns e Lista de Verificação
Os problemas de DHCP são fáceis de diagnosticar quando se conhece o processo DORA. A maior parte das falhas resume-se a quatro categorias: servidor não responde, relay mal configurado, IPs duplicados ou conflito de scopes.
| Problema | Causa provável | Solução |
|---|---|---|
| Cliente não recebe IP | Servidor fora de alcance ou relay mal configurado | Verificar ip helper-address e conectividade L3 |
| IPs duplicados | Dois servidores DHCP sem exclusão de intervalos | Dividir scopes ou configurar exclusões |
| Reserva não funciona | MAC incorrecto ou fora do scope | Verificar MAC com ip link e ajustar fixed-address |
| PXE não arranca | next-server ou filename incorrectos | Verificar servidor TFTP e permissões do ficheiro |
| Lease expira e não renova | Servidor sobrecarregado ou indisponível | Verificar registos do dhcpd e capacidade do servidor |
Lista de verificação para implementação DHCP:
- ✓ Definir o scope com o intervalo correcto para a sub-rede (reservar IPs para equipamentos estáticos).
- ✓ Configurar
default-lease-timeemax-lease-timeadequados ao tipo de rede. - ✓ Criar exclusões para IPs de gateways, switches e servidores.
- ✓ Configurar reservas para impressoras, APs e servidores (por MAC).
- ✓ Verificar que não há dois servidores DHCP activos no mesmo broadcast domain sem divisão de scopes.
- ✓ Configurar
ip helper-addressem routers entre VLANs quando o servidor está centralizado. - ✓ Testar o processo DORA com
tcpdumpoudhcpdumpna interface do cliente. - ✓ Monitorizar o ficheiro
dhcpd.leasese os registos do syslog. - ✓ Para PXE, validar
next-server,filenamee acessibilidade do TFTP. - ✓ Em IPv6, decidir entre SLAAC e DHCPv6 consoante o nível de controlo necessário.
O DHCP é a espinha dorsal da configuração automática de redes. Bem configurado, torna a gestão de centenas de dispositivos trivial. Mal configurado, provoca interrupções difíceis de diagnosticar. No Dia 8 (DNS) vimos o outro lado da moeda — a resolução de nomes. No próximo dia continuamos com tópicos avançados de infraestrutura de rede.
Artigos relacionados: