Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

06 - Protocolo ARP

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione 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

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 o 192.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.10 e 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

  1. Host origem consulta tabela de rotas → destino está fora da rede local.
  2. Host origem faz ARP Request para o IP do gateway.
  3. Gateway responde com seu MAC.
  4. Host origem envia pacote IP (com IP destino = Google) dentro de quadro Ethernet (com MAC destino = gateway).
  5. 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

  1. Atacante envia ARP Reply falsificado para a vítima: "IP do gateway = MAC do atacante".
  2. Atacante envia ARP Reply falsificado para o gateway: "IP da vítima = MAC do atacante".
  3. 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.