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

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-time e max-lease-time adequados 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-address em routers entre VLANs quando o servidor está centralizado.
  • ✓ Testar o processo DORA com tcpdump ou dhcpdump na interface do cliente.
  • ✓ Monitorizar o ficheiro dhcpd.leases e os registos do syslog.
  • ✓ Para PXE, validar next-server, filename e 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: