01 - Mapeamento IP para MAC
video: https://youtu.be/... no frontmatter da nota.Mapeamento IP para MAC
1. O Conflito de Camadas
Para que um dado saia do seu computador e chegue ao vizinho, ele precisa atravessar duas camadas do modelo OSI:
- Camada 3 (Rede): Trabalha com o Endereço IP. É a inteligência que sabe "para qual rede" o dado vai.
- Camada 2 (Enlace): Trabalha com o Endereço MAC. É a força bruta que sabe "para qual cabo/porta" o dado vai.
O Problema: Um switch de rede comum (L2) não lê endereços IP. Ele só entende endereços MAC. Se o seu computador enviar um pacote apenas com o IP de destino, o switch não saberá o que fazer com ele. O Mapeamento ARP resolve isso criando uma "ponte" entre esses dois mundos.
O mapeamento entre endereços lógicos (IP) e físicos (MAC) é definido pela RFC 826 (1982), "An Ethernet Address Resolution Protocol". O protocolo ARP opera diretamente sobre a camada de enlace (EtherType 0x0806) e não tem cabeçalho IP próprio — ele é encapsulado em um quadro Ethernet.
2. O Processo de Encapsulamento
Quando você envia um dado, o sistema operacional realiza os seguintes passos:
- Criação do Pacote (L3): O sistema coloca o IP de Origem e o IP de Destino.
- Consulta à Tabela ARP: O PC olha na memória: "Eu já sei qual é o MAC do dono deste IP?".
- A Descoberta: Se não souber, ele pausa o envio e inicia a descoberta via ARP (conforme veremos adiante).
- Montagem do Quadro (L2): Assim que recebe o MAC de destino, o PC "embrulha" o pacote IP dentro de um Quadro Ethernet.
- MAC de Origem: O seu.
- MAC de Destino: O endereço físico que o ARP acabou de descobrir.
3. Estrutura do Pacote ARP
O pacote ARP tem 28 bytes (em redes Ethernet/IPv4) e a seguinte estrutura:
| Campo | Tamanho | Descrição |
|---|---|---|
| Hardware Type | 2 bytes | 0x0001 = Ethernet |
| Protocol Type | 2 bytes | 0x0800 = IPv4 |
| Hardware Address Length | 1 byte | 6 (MAC) |
| Protocol Address Length | 1 byte | 4 (IPv4) |
| Opcode | 2 bytes | 1 = Request, 2 = Reply |
| Sender MAC | 6 bytes | MAC do emissor |
| Sender IP | 4 bytes | IP do emissor |
| Target MAC | 6 bytes | MAC do alvo (0 no request) |
| Target IP | 4 bytes | IP do alvo |
O Fluxo de Descoberta ARP
- ARP Request (Broadcast): O emissor constrói um quadro Ethernet com MAC destino
FF:FF:FF:FF:FF:FFcontendo o pacote ARP request. Todos os hosts da VLAN recebem e processam o quadro. - Verificação Local: Cada host compara o campo Target IP com seu próprio IP. Apenas o dono do IP responde.
- ARP Reply (Unicast): O host dono do IP envia um quadro Ethernet unicast de volta ao emissor original com o campo Sender MAC preenchido com seu MAC real e o Opcode = 2.
- Cache: O emissor armazena o mapeamento IP→MAC na sua tabela ARP e prossegue com o envio dos dados.
4. O Mapeamento em Redes Locais vs. Remotas
O mapeamento físico muda drasticamente dependendo de onde o destino está:
A. Destino na Mesma Rede
O mapeamento é direto.
- IP de Destino:
192.168.1.50 - MAC de Destino:
AA:BB:CC:DD:EE:FF(O MAC do próprio computador de destino).
B. Destino em Outra Rede (Internet)
Aqui está o segredo: O seu computador não mapeia o MAC do servidor do Google.
- IP de Destino:
8.8.8.8(Google) - MAC de Destino:
11:22:33:44:55:66(O MAC do seu Roteador/Gateway).
Pense nisso como um Estafeta: Você coloca o nome do destinatário final na carta (IP), mas entrega a carta fisicamente nas mãos do carteiro (MAC do Roteador). O roteador, por sua vez, fará um novo mapeamento para o próximo salto.
A decisão "mesma rede ou rede remota" é feita pela tabela de rotas e pela máscara de sub-rede. Se o IP destino estiver dentro do prefixo da interface local, o ARP consulta diretamente o destino; caso contrário, o ARP consulta o MAC do next-hop (gateway padrão).
5. Tabela ARP Cache
Para evitar o overhead de broadcast a cada pacote, o sistema operacional mantém um cache temporário dos mapeamentos aprendidos.
- Entradas Dinâmicas: Aprendidas automaticamente, expiram após um tempo (Linux: ~1 min a 60 min conforme uso; Windows: 2-10 min). O tempo é controlado pelos parâmetros
gc_stale_timeegc_timeoutno Linux. - Entradas Estáticas: Configuradas manualmente pelo administrador, não expiram. Úteis para servidores críticos ou como defesa contra ARP spoofing.
Comandos de Inspeção
# Linux/macOS — Ver cache ARP
arp -n
ip neigh show
# Linux — Adicionar entrada estática
ip neigh add 192.168.1.10 lladdr aa:bb:cc:dd:ee:ff dev eth0 nud permanent
# Linux — Limpar cache ARP
ip neigh flush all
# Windows
arp -a
arp -s 192.168.1.10 aa-bb-cc-dd-ee-ff
Cisco IOS
R1# show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.1.1 - 0050.56ab.cdef ARPA GigabitEthernet0/0
Internet 192.168.1.50 3 aabb.ccdd.eeff ARPA GigabitEthernet0/0
R1# clear ip arp 192.168.1.50
6. Por que o MAC é necessário?
Endereços IP são lógicos e podem mudar (via DHCP). O endereço MAC é globalmente único e fixo na peça de hardware. Se comunicássemos apenas por IP, teríamos que atualizar a "vizinhança" toda vez que alguém reiniciasse o roteador. O mapeamento ARP garante que, não importa qual IP o dispositivo tenha hoje, o sinal chegará à placa de rede correta.
Adicionalmente, a separação IP/MAC permite mobilidade: um laptop pode mudar de rede (e de IP) sem trocar de placa de rede (e de MAC). O ARP reconcilia as duas identidades a cada nova associação.
7. Variações do Protocolo ARP
A. Gratuitous ARP
Um host envia um ARP request com Sender IP = Target IP = seu próprio IP. Objetivos:
- Anunciar seu MAC para atualizar caches de vizinhos (útil após failover de cluster ou troca de placa).
- Detectar conflito de IP (se alguém responder, o IP já está em uso — usado em DHCP conflict detection).
B. Proxy ARP
Um roteador responde a ARP requests em nome de hosts em outra sub-rede. Útil quando hosts não sabem configurar gateway padrão, mas abre vetor de ataque (ARP spoofing intermediário). Definido na RFC 1027.
C. RARP (Reverse ARP)
O inverso do ARP: dado um MAC, descobre o IP. Definido na RFC 903. Foi usado por estações diskless (sem disco) para obter IP na inicialização. Hoje está obsoleto, substituído por BOOTP e DHCP, que são mais robustos.
D. InARP (Inverse ARP)
Usado em redes NBMA (Frame Relay, ATM) para descobrir o IP do lado remoto a partir do identificador de circuito virtual (DLCI). Definido na RFC 2390.
8. Equivalente em IPv6: NDP
O IPv6 não usa ARP. Em seu lugar, o Neighbor Discovery Protocol (NDP), definido na RFC 4861, usa mensagens ICMPv6:
- Neighbor Solicitation (Type 135): equivalente ao ARP request, enviado para multicast
ff02::1:ffXX:XXXX(Solicited-Node) em vez de broadcast. - Neighbor Advertisement (Type 136): equivalente ao ARP reply.
Vantagens do NDP sobre ARP: usa multicast scoped (não interrompe todos os hosts), integra detecção de duplicidade (DAD), descoberta de roteador (RA/RS) e redirecionamento.
9. Segurança: ARP Spoofing e Defesas
O ARP original não tem autenticação: qualquer host pode anunciar qualquer MAC. Isso viabiliza o ARP Spoofing (ou ARP Cache Poisoning):
- Atacante envia ARP reply forjado alegando ser o gateway (
192.168.1.1 → MAC do atacante). - Vítimas atualizam seu cache e passam a enviar todo tráfego para o atacante.
- Atacante intercepta (Man-in-the-Middle) ou descarta (DoS) o tráfego.
Defesas
| Defesa | Como Funciona | Limitação |
|---|---|---|
| Entradas ARP estáticas | MAC do gateway fixado no cache | Não escala; quebra com troca de equipamento |
| Dynamic ARP Inspection (DAI) | Switch valida ARP com base em tabela DHCP snooping | Requer switch gerenciável L2 |
| Port Security | Limita MACs por porta do switch | Não previne spoofing dentro do limite |
| 802.1X + MACsec | Autentica host e criptografa quadros L2 | Requer infraestrutura RADIUS/certificados |
| ARP Watch / ArpON | Monitora e detecta mudanças suspeitas | Reage, não previne |
Cisco IOS — DAI
! Habilitar DHCP snooping (pré-requisito)
ip dhcp snooping
ip dhcp snooping vlan 10
!
interface range Gi0/1-24
ip dhcp snooping trust
ip arp inspection trust
!
vlan 10
ip arp inspection limit rate 15
10. Resumo Técnico
- Entrada: Endereço IPv4 (Lógico).
- Saída: Endereço MAC (Físico).
- Ferramenta: Protocolo ARP (RFC 826).
- Local de Armazenamento: Cache ARP do Sistema Operacional.
- Encapsulamento: Quadro Ethernet, EtherType 0x0806.
- Modo: Broadcast (request) + Unicast (reply).
- Equivalente IPv6: NDP (ICMPv6 Type 135/136, RFC 4861).
11. Conclusão
O mapeamento IP para MAC é a ponte que permite que duas camadas abstratas distintas (Rede e Enlace) cooperem. Sem o ARP, o IP seria apenas uma abstração inútil sobre Ethernet. Apesar de sua simplicidade — um simples par IP/MAC aprendido por broadcast —, o ARP carrega problemas de segurança sérios por não possuir autenticação, exigindo mecanismos complementares como DAI, 802.1X e MACsec em ambientes críticos. Em IPv6, o protocolo foi substituído pelo NDP, mais seguro e eficiente, mas o ARP continuará presente em redes IPv4 por muitos anos, tornando seu domínio obrigatório para qualquer profissional de redes.