06 - Protocolo ARP
video: https://youtu.be/... no frontmatter da nota.Protocolo ARP (Address Resolution Protocol)
1. Definição e Contexto
Imagine que você está em uma sala cheia de pessoas. Você tem o nome de alguém (Endereço IP), mas não sabe qual é a aparência física dessa pessoa (Endereço MAC). Para entregar uma carta em mãos, você precisa associar o nome ao corpo físico.
- O IP (L3): É o endereço lógico, mutável e hierárquico. Identifica um host numa rede.
- O MAC (L2): É o endereço físico, "queimado" no hardware da placa de rede. Identifica uma interface de rede no mundo físico.
O ARP é o protocolo que resolve esse dilema, mapeando endereços de protocolo de rede (IPv4) para endereços de hardware (Ethernet). Sem ele, o IPv4 seria incapaz de entregar pacotes em uma rede local.
Características Formais
- RFC de referência: RFC 826 (David C. Plummer, 1982)
- Camada OSI: Atua entre L2 e L3 (frequentemente chamado de "2.5")
- Endereçamento: Apenas para IPv4 (no IPv6, usa-se NDP)
- Tipo de protocolo: Sem conexão, sem confirmação confiável
2. Como o ARP Funciona (O Diálogo)
O funcionamento do ARP é baseado em um ciclo simples de "Pergunta e Resposta":
A. ARP Request (A Pergunta)
Quando o Host A quer falar com o Host B na mesma rede local, mas só conhece o IP de B, ele envia um ARP Request.
- Tipo de Transmissão: Broadcast. O pacote é enviado para o endereço MAC
FF:FF:FF:FF:FF:FF. - Mensagem: "Atenção todos! Quem possui o IP
192.168.1.10? Por favor, responda para o192.168.1.5." - Estrutura do pacote ARP Request:
| Campo | Valor |
|---|---|
| Hardware Type | 1 (Ethernet) |
| Protocol Type | 0x0800 (IPv4) |
| Hardware Addr Length | 6 (MAC = 48 bits) |
| Protocol Addr Length | 4 (IPv4 = 32 bits) |
| Operation | 1 (Request) |
| Sender Hardware Address | MAC do Host A |
| Sender Protocol Address | IP do Host A |
| Target Hardware Address | 00:00:00:00:00:00 (desconhecido) |
| Target Protocol Address | IP do Host B |
B. ARP Reply (A Resposta)
Todos na rede recebem o broadcast, mas apenas o Host B (que possui o IP solicitado) responde.
- Tipo de Transmissão: Unicast. Ele responde diretamente para o Host A.
- Mensagem: "Eu sou o
192.168.1.10e meu endereço físico é00:0C:29:4F:8B:35." - Operation Field: Valor 2 (Reply).
C. Atualização Caches
Tanto o Host A quanto o Host B aproveitam a oportunidade para atualizar suas tabelas ARP. Mesmo o Host B aprende o MAC do Host A (que estava no campo Sender Hardware Address do Request).
3. A Tabela ARP (ARP Cache)
Para não ter que "gritar" na rede toda vez que quiser enviar um pacote, cada dispositivo mantém uma Tabela ARP na memória RAM.
- Ela armazena temporariamente as associações IP-MAC recém-descobertas.
- Cada entrada tem um tempo de vida (TTL) tipicamente entre 60 segundos e 4 horas, dependendo do sistema operacional.
- Entradas podem ser estáticas (configuradas manualmente) ou dinâmicas (aprendidas via ARP).
Comandos Úteis
# Linux/macOS: ver tabela ARP
arp -a
# Linux moderno: alternativa via iproute2
ip neigh show
# Windows: ver tabela ARP
arp -a
# Adicionar entrada estática (Linux)
arp -s 192.168.1.10 00:0c:29:4f:8b:35
# Limpar cache ARP (Linux)
ip neigh flush all
Exemplo de Saída do Comando arp -a
Address HWtype HWaddress Flags Mask Iface
192.168.1.1 ether 00:1a:2b:3c:4d:5e C eth0
192.168.1.10 ether 00:0c:29:4f:8b:35 C eth0
192.168.1.100 ether 30:5a:3a:1c:11:ff C eth0
_gateway (192.168.1.1) ether 00:1a:2b:3c:4d:5e C eth0
4. O Limite do ARP: O Domínio de Broadcast
O ARP é um protocolo de rede local. Ele não atravessa roteadores, pois roteadores não encaminham broadcasts L2 entre interfaces.
- Se você quer falar com um IP na Internet, seu computador não faz um ARP para o IP do Google (ex:
142.250.189.4). - Ele faz um ARP para descobrir o MAC do seu Gateway Padrão (Roteador).
- O roteador, então, assume a responsabilidade de encaminhar o pacote para frente, fazendo seu próprio ARP no próximo salto.
Fluxo de Resolução Inter-Rede
- Host origem consulta tabela de rotas → destino está fora da rede local.
- Host origem faz ARP Request para o IP do gateway.
- Gateway responde com seu MAC.
- Host origem envia pacote IP (com IP destino = Google) dentro de quadro Ethernet (com MAC destino = gateway).
- Gateway recebe, decapsula, consulta sua tabela de rotas e repete o processo na próxima interface.
5. Estrutura do Pacote ARP
O ARP não é um protocolo "puro" da camada 3 nem da camada 2 — ele é encapsulado diretamente em quadros Ethernet usando o EtherType 0x0806.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hardware Type | Protocol Type |
+-------------------------------+-------------------------------+
| HW Addr Len | Proto Addr Len | Operation |
+-------------------------------+-------------------------------+
| Sender Hardware Address |
+-------------------------------+-------------------------------+
| Sender Hardware Address | Sender Protocol Address |
+-------------------------------+-------------------------------+
| Sender Protocol Address | Target Hardware Address |
+-------------------------------+-------------------------------+
| Target Hardware Address |
+-------------------------------+-------------------------------+
| Target Protocol Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6. Variantes e Tipos de Mensagens ARP
| Tipo | Valor | Função |
|---|---|---|
| ARP Request | 1 | Pergunta quem tem o IP X |
| ARP Reply | 2 | Resposta: "Eu tenho o IP X, meu MAC é Y" |
| RARP Request | 3 | Reverso: "Eu tenho MAC Y, qual meu IP?" |
| RARP Reply | 4 | Resposta do RARP |
| InARP Request | 5 | Inverse ARP (Frame Relay, ATM) |
| InARP Reply | 6 | Resposta do InARP |
| ARP NAK | 7 | Negação (apenas ATM) |
7. ARP Gratuíto (Gratuitous ARP)
Um caso especial é o ARP Gratuíto, enviado por um host não para perguntar algo, mas para anunciar seu próprio IP-MAC. Ocorre tipicamente:
- Ao configurar uma interface pela primeira vez.
- Após um failover de HA (cluster de alta disponibilidade).
- Após troca de placa de rede.
O pacote é um ARP Request onde o Sender IP = Target IP. Todos os hosts na rede atualizam suas tabelas ARP automaticamente ao recebê-lo, evitando cache obsoleto.
8. Vulnerabilidade: ARP Spoofing (O Lado Obscuro)
Como o ARP foi criado em uma época de "confiança", ele não possui mecanismos de autenticação. Um atacante pode enviar mensagens de ARP Reply falsas, dizendo: "Eu sou o roteador, envie seus dados para o meu MAC". Isso é a base do ataque Man-in-the-Middle (MitM).
Como Funciona o ARP Spoofing
- Atacante envia ARP Reply falsificado para a vítima: "IP do gateway = MAC do atacante".
- Atacante envia ARP Reply falsificado para o gateway: "IP da vítima = MAC do atacante".
- Tráfego entre vítima e gateway passa pelo atacante, que pode sniffar, modificar ou bloquear.
Mitigação
- DAI (Dynamic ARP Inspection): Switches validam ARP replies contra tabela DHCP Snooping.
- Port Security: Limita MACs por porta do switch.
- ARP Static Entries: Entradas estáticas em servidores críticos (imutáveis).
- 802.1X: Autenticação na porta do switch antes de aceitar tráfego.
9. ARP no IPv6: Substituído por NDP
No IPv6, o ARP foi totalmente substituído pelo NDP (Neighbor Discovery Protocol), definido na RFC 4861. O NDP usa ICMPv6 ao invés de um protocolo separado, trazendo vantagens:
- Multicast ao invés de broadcast (menos ruído na rede).
- Autenticação via IPsec possível.
- Detecção de endereços duplicados (DAD).
10. Resumo Técnico
| Atributo | Valor |
|---|---|
| RFC | 826 (1982) |
| Camada | Entre L2 e L3 |
| Tipo | Sem conexão |
| Encapsulamento | Ethernet com EtherType 0x0806 |
| Escopo | Apenas rede local (broadcast domain) |
| Substituto no IPv6 | NDP (ICMPv6) |
| Tamanho do pacote | 28 bytes (sem contar Ethernet) |
11. Conclusão
O ARP é um protocolo aparentemente simples, mas fundamental para o funcionamento de qualquer rede IPv4. Sem ele, a comunicação entre IP e Ethernet seria impossível. Apesar de sua simplicidade, o ARP introduz vulnerabilidades que exigem mitigação em ambientes corporativos. Para engenheiros de rede, dominar o ARP é pré-requisito para troubleshooting básico, configuração de switches e proteção contra ataques MitM. Compreender suas limitações também explica por que o IPv6 evoluiu para o NDP.