Cisco CCNAv7 - Funcionamento do ARP
Introdução
Section titled “Introdução”Para enviar um quadro Ethernet, o PC precisa do MAC de destino. Mas as aplicações só conhecem o IP. O ARP (Address Resolution Protocol, protocolo de resolução de endereços) faz a ponte: ele descobre o MAC correspondente a um IP na rede local. Sem ele, o IPv4 sobre Ethernet simplesmente não funcionaria.
O que o ARP faz
Section titled “O que o ARP faz”O ARP tem duas funções:
| Função | Descrição |
|---|---|
| Resolver endereços IPv4 em endereços MAC | Pergunta à rede quem tem determinado IP |
| Manter uma tabela (cache ARP) | Guarda as respostas para não precisar perguntar toda vez |
Como o ARP funciona
Section titled “Como o ARP funciona”Quando o PC1 quer falar com um host da mesma rede e não conhece o MAC dele, ele faz uma requisição ARP:
sequenceDiagram participant PC1 as PC1 192.168.1.10 participant Rede as Todos da rede participant PC2 as PC2 192.168.1.20 PC1->>Rede: ARP Request em broadcast. Quem tem 192.168.1.20? Rede->>PC2: O quadro chega a todos PC2-->>PC1: ARP Reply em unicast. 192.168.1.20 esta no MAC do PC2
Passo a passo:
- O PC1 consulta o cache ARP. Se o MAC do PC2 já estiver lá, usa-o e termina.
- Se não estiver, o PC1 envia uma requisição ARP (ARP Request) em broadcast: “Quem tem o IP
192.168.1.20? Responda ao IP192.168.1.10”. - Todos os dispositivos da rede recebem a mensagem, mas só o dono do IP responde.
- O PC2 envia uma resposta ARP (ARP Reply) em unicast ao PC1, informando o seu MAC.
- O PC1 guarda o par IP ⇄ MAC no cache e envia o quadro de dados.
Quando o destino é remoto
Section titled “Quando o destino é remoto”Se o destino estiver em outra rede, o PC1 não pergunta pelo IP do destino. Ele faz o ARP pelo IP do gateway padrão e envia o quadro ao roteador, como você viu no post anterior.
A mensagem ARP
Section titled “A mensagem ARP”A mensagem ARP é carregada em um quadro Ethernet com EtherType 0x0806. Ela não tem cabeçalho IP, pois só circula na rede local.
| Campo | Tamanho | Descrição |
|---|---|---|
| Tipo de hardware | 2 bytes | 1 = Ethernet |
| Tipo de protocolo | 2 bytes | 0x0800 = IPv4 |
| Tamanho do endereço de hardware | 1 byte | 6 (MAC) |
| Tamanho do endereço de protocolo | 1 byte | 4 (IPv4) |
| Operação | 2 bytes | 1 = requisição, 2 = resposta |
| MAC do remetente | 6 bytes | Quem envia |
| IP do remetente | 4 bytes | Quem envia |
| MAC do alvo | 6 bytes | Vazio (00:00:00:00:00:00) na requisição |
| IP do alvo | 4 bytes | O IP que se quer resolver |
Somando: 2 + 2 + 1 + 1 + 2 + 6 + 4 + 6 + 4 = 28 bytes.
Como é o quadro da requisição
Section titled “Como é o quadro da requisição”| Campo do quadro Ethernet | Valor na requisição |
|---|---|
| MAC de destino | FF:FF:FF:FF:FF:FF (broadcast) |
| MAC de origem | MAC de quem pergunta |
| EtherType | 0x0806 |
| Dados | Mensagem ARP (28 bytes) + enchimento |
Como os dados do Ethernet precisam ter no mínimo 46 bytes, o quadro recebe 18 bytes de enchimento (46 − 28). O quadro completo tem 14 (cabeçalho) + 28 + 18 + 4 (FCS) = 64 bytes, o mínimo do Ethernet.
Na resposta, o MAC de destino do quadro é o MAC de quem perguntou (unicast).
O cache ARP
Section titled “O cache ARP”Cada dispositivo guarda as respostas em uma tabela temporária, o cache ARP (ou tabela ARP). As entradas não duram para sempre: depois de um tempo sem uso, são removidas, e a próxima comunicação refaz a pergunta.
| Sistema | Tempo de vida típico das entradas |
|---|---|
| Roteadores e switches Cisco (IOS) | 4 horas (padrão) |
| Windows | Dezenas de segundos (valor variável, em torno de 15 a 45 s sem uso) |
| Linux | Dezenas de segundos até alguns minutos (entradas ficam “velhas” e são revalidadas) |
Por que o ARP gera broadcast?
Section titled “Por que o ARP gera broadcast?”A requisição precisa chegar a todos, pois o remetente não sabe quem é o dono do IP. Por isso, o ARP é um dos principais geradores de broadcast nas redes locais. Quanto maior a rede, mais broadcasts. É uma das razões para dividir redes grandes em redes menores, como você viu no post sobre domínios de broadcast.
Casos especiais
Section titled “Casos especiais”| Caso | O que é |
|---|---|
| ARP gratuito (gratuitous ARP) | O dispositivo anuncia o seu próprio IP e MAC, sem que ninguém tenha perguntado. Serve para atualizar caches e detectar IP duplicado (quando alguém responde, há conflito) |
| Proxy ARP | Um roteador responde ao ARP em nome de um host de outra rede, “enganando” o host que perguntou. Permite que hosts sem gateway configurado alcancem redes remotas. Hoje é pouco usado |
Mini laboratório: capturando o ARP
Section titled “Mini laboratório: capturando o ARP”Objetivo: ver a requisição e a resposta ARP reais.
Parte 1: limpe o cache e capture
Section titled “Parte 1: limpe o cache e capture”-
Limpe o cache ARP do seu computador.
No Linux (como root):
sudo ip neigh flush allNo Windows (Prompt de Comando como administrador):
arp -d *- Abra o Wireshark, escolha a interface em uso, aplique o filtro
arpe inicie a captura. - Em outro terminal, faça
pingpara o seu gateway (por exemplo,ping 192.168.1.1). - Pare a captura e observe os pacotes ARP.
Parte 2: analise
Section titled “Parte 2: analise”Clique na requisição ARP (mensagem “Who has …?”) e expanda Address Resolution Protocol. Preencha:
| Campo | Valor |
|---|---|
| MAC de destino do quadro | ? |
| Opcode (operação) | ? |
| IP do remetente (Sender IP) | ? |
| IP do alvo (Target IP) | ? |
| MAC do alvo (Target MAC) | ? |
Depois, clique na resposta (”… is at …”) e anote o Opcode e o MAC de destino do quadro.
Parte 3: no Packet Tracer
Section titled “Parte 3: no Packet Tracer”- Monte 2 PCs ligados a um switch (
192.168.1.10e192.168.1.20). - No Command Prompt do PC1, rode
arp -ae confirme que a tabela está vazia. - Mude para o modo Simulation, filtre ARP e ICMP e faça
ping 192.168.1.20. - Observe a requisição indo a todos os dispositivos e a resposta voltando só ao PC1.
- Depois do ping, rode
arp -ade novo.
Perguntas para fixar:
- Por que a requisição ARP é enviada em broadcast, e a resposta, em unicast?
- Qual é o EtherType das mensagens ARP?
- O que o PC1 faz ao enviar um pacote para um destino remoto: ARP pelo IP do destino ou do gateway?
Ver respostas
Parte 2: MAC de destino da requisição: ff:ff:ff:ff:ff:ff; Opcode: 1 (request); Target MAC: 00:00:00:00:00:00. Na resposta, Opcode 2 (reply) e o MAC de destino é o de quem perguntou.
- A requisição vai em broadcast porque o remetente não sabe quem tem o IP. A resposta vai em unicast porque o dono do IP já sabe o MAC de quem perguntou.
0x0806.- ARP pelo IP do gateway.
Resumo
Section titled “Resumo”- O ARP descobre o MAC de um IPv4 na rede local e guarda os resultados no cache ARP.
- A requisição (ARP Request) vai em broadcast (
FF:FF:FF:FF:FF:FF); a resposta (ARP Reply) vai em unicast. - A mensagem ARP tem 28 bytes e viaja em quadros com EtherType
0x0806. - Para destinos remotos, o ARP é feito pelo IP do gateway.
- O cache é dinâmico (4 horas no Cisco IOS; bem menos em Windows e Linux).
- ARP gratuito anuncia o próprio IP/MAC; Proxy ARP responde em nome de outro host.
