
O ARP (Address Resolution Protocol) resolve um problema específico: na camada IP você trabalha com endereços IP, mas na camada de enlace (ethernet) você precisa do endereço MAC físico da placa de rede. O ARP faz esse mapeamento entre IP e MAC.
Opera na camada 2 do modelo OSI e existe desde 1982 (RFC 826). É stateless – processa cada requisição independentemente, sem guardar histórico de transações anteriores.
Na prática: quando um host precisa enviar um pacote para outro host na mesma rede local, ele usa ARP para descobrir o MAC de destino. Redes IPv4 dependem disso para funcionar.
Como Funciona o ARP
O processo é direto mas acontece milhares de vezes por segundo em qualquer rede ativa:
1. Consulta ao Cache ARP
Primeiro o host verifica o cache ARP local – uma tabela que armazena mapeamentos IP→MAC recentes. Se o MAC do IP de destino estiver lá, o pacote segue direto. Sem broadcast, sem latência adicional.
2. ARP Request em Broadcast
Não encontrou no cache? O host envia um ARP Request em broadcast (destino FF:FF:FF:FF:FF:FF). Esse pacote contém:
- MAC e IP do remetente
- IP do host que está sendo procurado
Todos os hosts da rede recebem, mas só quem possui aquele IP específico responde.
3. ARP Reply (Unicast)
O host que possui o IP solicitado envia um ARP Reply – mas dessa vez em unicast, direto para o MAC do solicitante. Resposta contém o MAC procurado.
4. Atualização do Cache e Transmissão
O host original atualiza seu cache ARP com o novo mapeamento. Essa entrada fica válida por um timeout configurável (geralmente 2-20 minutos, dependendo do sistema operacional).
Com o MAC resolvido, a transmissão procede normalmente na camada 2.
Esse processo roda de forma transparente sempre que há comunicação entre hosts na mesma VLAN ou segmento de rede.
Cache ARP: Entradas Dinâmicas e Estáticas
Cada host mantém uma tabela ARP local com dois tipos de entrada:
Dinâmicas: Adicionadas automaticamente via ARP Reply. Expiram após timeout (2-20 min dependendo do OS). A maioria das entradas em produção são dinâmicas.
Estáticas: Configuradas manualmente via comando (ex: arp -s). Não expiram. Úteis para equipamentos críticos (gateways, servidores) ou para mitigar ARP poisoning em ambientes pequenos.
O tamanho do cache é limitado. Entradas antigas são removidas por algoritmo LRU (Least Recently Used) quando o limite é atingido.
Tipos de Mensagens ARP
ARP Request: Broadcast solicitando MAC de um IP específico.
ARP Reply: Unicast respondendo com o MAC solicitado.
Gratuitous ARP (GARP): Host anuncia seu próprio IP e MAC para atualizar caches na rede. Usado em inicialização ou mudança de IP/MAC. Também funciona para detectar conflito de IP (se outro host responder ao GARP, há duplicate IP na rede).
RARP (Reverse ARP): Host solicita IP usando seu MAC. Obsoleto – substituído por BOOTP/DHCP.
ARP Spoofing e ARP Poisoning
ARP não possui autenticação. Qualquer host pode enviar ARP Reply – mesmo sem ter recebido Request. Isso abre brecha para ARP poisoning.
Cenário típico de ataque:
- Atacante envia ARP Reply falso para Host A, associando IP do gateway ao MAC do atacante
- Host A atualiza cache ARP com informação falsa
- Todo tráfego que Host A envia para o gateway passa pelo atacante
- Atacante pode sniffar, modificar ou dropar pacotes antes de encaminhar (ou não) ao gateway real
Isso habilita:
- Man-in-the-middle (MITM)
- Session hijacking
- Denial of service (DoS)
Mitigações comuns:
- Dynamic ARP Inspection (DAI): Switch valida ARP Replies contra DHCP snooping binding table
- Entradas ARP estáticas: Funciona em redes pequenas, inviável em larga escala
- Monitoramento: Ferramentas como arpwatch/XArp detectam mudanças suspeitas no cache
- Port security: Limita MACs por porta do switch
- Segmentação de rede: VLANs reduzem superfície de ataque
Proxy ARP
Roteador responde ARP Request em nome de hosts em outras redes. Isso permite comunicação entre hosts em sub-redes diferentes sem configurar rotas explícitas nos hosts.
Cenário comum:
- Host A (192.168.1.10/24) quer falar com Host B (192.168.2.20/24)
- Host A envia ARP Request para 192.168.2.20 (acha que está na mesma rede)
- Roteador com Proxy ARP habilitado responde com seu próprio MAC
- Host A envia pacotes para o roteador, que roteia para Host B
Usado em:
- Redes antigas mal segmentadas
- Facilitação de migração de rede
- Alguns provedores de internet (carrier-grade NAT)
Desvantagens:
- Aumenta broadcast (roteador responde a mais ARPs)
- Pode mascarar problemas de configuração de rede
- Dificulta troubleshooting
- Potencial brecha de segurança
Gratuitous ARP (GARP)
ARP Request onde source IP = target IP, enviado para broadcast. Principais usos:
Detecção de IP duplicado: Se outro host responder ao GARP, há conflito de IP na rede.
Atualização de cache: Quando um host muda de interface/MAC mas mantém o IP (comum em failover).
Failover de alta disponibilidade:
- Servidor primário cai
- Servidor secundário assume o IP
- Envia GARP para atualizar caches de toda a rede
- Tráfego é redirecionado automaticamente
Inicialização de host: Anuncia presença na rede e força atualização de caches.
Risco: Atacante pode enviar GARPs maliciosos para reivindicar IPs alheios (variante de ARP poisoning).
ARP vs ICMP
Protocolos diferentes, propósitos diferentes:
ARP (Layer 2): Resolve IP→MAC na rede local. Sem ARP, não há comunicação ethernet em IPv4.
ICMP (Layer 3): Mensagens de controle e diagnóstico de rede. Exemplos: ping (Echo Request/Reply), traceroute (Time Exceeded), unreachable (Destination Unreachable).
ARP é pré-requisito para comunicação. ICMP é ferramenta de diagnóstico e feedback.
ARP no IPv6
IPv6 não usa ARP. Funcionalidade equivalente está no Neighbor Discovery Protocol (NDP), parte do ICMPv6.
Principais diferenças:
Neighbor Solicitation (NS): Equivalente a ARP Request, mas usa multicast ao invés de broadcast.
Neighbor Advertisement (NA): Equivalente a ARP Reply.
Router Discovery (RS/RA): Hosts descobrem roteadores automaticamente.
SEND (Secure Neighbor Discovery): Adiciona autenticação criptográfica via certificados, eliminando vulnerabilidade equivalente ao ARP poisoning.
NDP é mais eficiente (usa multicast) e mais seguro (SEND opcional) que ARP.
Limitações do ARP
Sem autenticação: Qualquer host pode enviar ARP Reply. Zero validação de origem.
Broadcast em excesso: Em redes grandes (500+ hosts), volume de ARP broadcast impacta performance. Cada host processa cada broadcast, mesmo que não seja o destino.
Cache poisoning trivial: Basta enviar ARP Reply não solicitado. Cache atualiza automaticamente. Sem logs, sem alertas por padrão.
Sem criptografia: Tráfego ARP é plaintext. Sniffing revela topologia completa da rede.
Não escala: Projetado para LANs pequenas. Em redes corporativas modernas com múltiplas VLANs e milhares de endpoints, gera overhead significativo.
Essas limitações não são "bugs" – são consequência do design original de 1982, quando redes eram pequenas e confiáveis.
Mitigações e Alternativas
Em IPv4:
Dynamic ARP Inspection (DAI) – implementado em switches gerenciáveis. Valida ARPs contra DHCP snooping database. Efetivo mas requer infraestrutura gerenciada.
ARP estático – funciona em ambientes pequenos (<50 hosts). Inviável em escala.
Em IPv6:
NDP substitui ARP completamente. SEND adiciona autenticação criptográfica (pouco usado na prática por overhead de PKI).
Monitoramento:
Ferramentas como arpwatch (Linux) ou XArp (Windows) detectam mudanças anormais no cache e alertam administradores.
Conclusão
ARP resolve um problema fundamental: mapear endereços lógicos (IP) para endereços físicos (MAC) em redes IPv4. Sem ele, comunicação ethernet não funciona.
O protocolo é simples, eficiente, mas inseguro por design. Foi criado em 1982 para redes pequenas e confiáveis – realidade bem diferente de hoje.
Em ambientes corporativos modernos:
- Use DAI em switches gerenciáveis
- Monitore mudanças suspeitas no cache ARP
- Segmente redes com VLANs para reduzir broadcast domain
- Considere migração gradual para IPv6 (onde NDP substitui ARP com melhorias de segurança)
Para troubleshooting, comandos essenciais:
- arp -a (Windows/Linux) – visualiza cache local
- arp -d – limpa cache (força nova resolução)
- tcpdump arp ou Wireshark – captura tráfego ARP para análise
ARP vai continuar relevante enquanto IPv4 for dominante. Entender como funciona é fundamental para diagnosticar problemas de conectividade e implementar segurança de rede adequada.
