Buscar

Protocolo ARP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Protocolo ARP: Address Resolution Protocol
Quando um quadro Ethernet é enviado de um host para outro em uma rede, é o endereço físico de 48 bits (MAC Address) que determina para qual interface o quadro é destinado. O software do driver de dispositivo não verifica o endereço IP dentro do datagrama.
Como, então, podemos realizar a conexão entre dois hosts se no pacote temos endereços IP de origem e destino, mas precisamos dos endereços físicos das interfaces de rede envolvidas?
O protocolo ARP fornece resolução dinâmica de endereços, que é um mapeamento entre as duas firmas de endereçamento distintas: endereços IP, e qualquer outro tipo de endereço usado na camada de enlace. No caso dos quadros Ethernet, a camada de enlace usa o MAC Address (Media Access Control), endereço físico da interface.
O ARP, portanto, é um protocolo que permite obter o MAC Address de uma interface a partir de seu endereço IP. Existe também um outro protocolo que permite realizar o mapeamento inverso, ou seja, obter o endereço IP a partir de um MAC Address. Esse protocolo é conhecido por RARP (Reverse Address Resolution Protocol).
A idéia principal do protocolo ARP é que a interface de rede possui um endereço de hardware (endereço físico de 48 bits). Quando quadros são trocados entre duas interfaces de rede, eles devem ser endereçados às interfaces físicas corretas. Porém, a pilha TCP/IP possui seu próprio esquema de endereçamento, que consiste em endereços IP de 32 bits (IPv6 utiliza endereços de 128 bits).
Portanto, saber apenas o endereço IP de um host não é suficiente para que seja possível enviar um quadro ao host. O driver Ethernet precisa conhecer o endereço físico de destino para que seja possível enviar os dados. É aí que entra o protocolo ARP - fornecer um mapeamento dinâmico entre os endereços IP e os endereços físicos (MAC) utilizados na transmissão de dados.
Tipos de Mensagens ARP
Há dois tipos diferentes de mensagens enviadas pelo protocolo ARP, uma da origem ao destino, e outra do destino à origem. Para cada mensagem ARP, definimos como remetente quem transmite a mensagem e alvo quem deve recebê-la. As mensagens são:
 ARP Request (Requisição ARP): Mensagem enviada requisitando a resolução de um endereço IP em endereço físico.
 ARP Reply (Resposta ARP): Mensagem de resposta ao ARP Request, contendo o endereço físico resolvido.
Cache ARP
Para que o protocolo ARP possa operar de forma eficiente é necessária a manutenção de um cache ARP em cada host. Esse cache mantém os mapeamentos de endereços mais recentes de IPs para endereços MAC na memória do host, possuindo um tempo de expiração para cada entrada no cache de 20 minutos a partir do momento em que a entrada foi adicionada.
Podemos examinar o cache ARP usando o comando arp -a em um prompt. A opção -a é utilizada para mostrar todas as entradas presentes no cache:
arp -a
Note que a saída gerada pelo comando nos mostra três colunas de informações, contendo os endereços IPs de vários hosts, seus endereços físicos em notação hexadecimal, e o tipo da entrada, que pode ser dinâmica ou estática:
- Entradas de Cache ARP Estáticas: Resoluções de endereços que são adicionadas manualmente à tabela de cache, e mantidas de forma permanente
- Entradas de Cache ARP Dinâmicas: Resoluções de endereços que são adicionadas de forma dinâmica à tabela de cache, como resultado de resoluções ARP completadas com sucesso. São transitórias, e removidas após um período de tempo.
Captura de Pacotes ARP
Para demonstrar o funcionamento do protocolo ARP, podemos efetuar a captura de pacotes trocados entre dois hosts por meio do comando ping, usando o software analisador de pacotes Wireshark. No exemplo foram utilizadas duas máquinas Windows cujos IPs são 10.24.67.21 (remetente) e 10.24.67.20 (destinatário). Após a troca de pacotes ICMP com o ping, paramos a captura dos pacotes e aplicamos um filtro para exibição apenas dos pacotes ARP. Veja o resultado:
Captura de pacotes ARP com Wireshark
Note que o primeiro pacote ARP transmitido (ARP Request) foi enviado em broadcast, e na coluna Info do Wireshark pode-se ler a informação "Who has 10.24.67.20? Tell 10.24.67.21", que significa que o host 10.24.67.21 está tentando descobrir quem é a máquina 10.24.67.20.
O segundo pacote mostra a resposta do host 10.24.67.20 contendo a informação desejada - no caso, o endereço MAC da interface, que é 70:71:bc:58:de:7c.
Os dois pacotes seguintes mostram o processo inverso, onde a máquina 10.24.67.20 usa o ARP para descobrir o MAC Address do primeiro host.
Podemos também abrir um desses pacotes para analisar o conteúdo da mensagem ARP trocada. Vamos analisar o conteúdo do primeiro pacote, que foi um ARP Request entre os hosts:
Captura de pacote ARP com Wireshark e análise do protocolo
Vamos analisar as informações contidas nesse pacote:
 Tipo de mensagem: Request
 Tipo de Hardware: Ethernet (1)
 Tipo de Protocolo: IP (0x0800)
 Tamanho do Endereço de Hardware: 6 octetos (48 bits)
 Tamanho do Endereço do Protocolo: 4 octetos (32 bits)
 Operação (Opcode): Request (1)
 MAC Address do remetente: 08:00:27:66:ca:2e
 Endereço IP do remetente: 10.24.67.21
 MAC Address do alvo: 00:00:00:00:00:00
 Endereço IP do alvo: 10.24.67.20
Note o endereço MAC do host alvo: 00:00:00:00:00:00. O valor é todo em zeros pois esta é justamente a informação que o pacote ARP deve descobrir, realizando a resolução do IP-alvo para o MAC Address solicitado.
Proxy ARP
O protocolo ARP não fornece nenhum tipo de método de autenticação dos pacotes ARP Reply recebidos em uma rede, e por conta disso as respostas do ARP podem vir de outra rede distinta da rede onde a solicitação ARP é originada. 
Desta forma, um roteador pode responder às requisições ARP em uma das redes conectadas a ele feitas por um host em outra rede. Desta forma, o remetente das mensagens ARP pode "pensar" que o roteador é o host de destino, quando na verdade o host de destino está em outra rede conectada a outra interface do roteador.
Desta forma, o roteador funciona como um agente de proxy para o host de destino, retransmitindo pacotes dele para outros hosts.
Alguns dos usos mais comuns para a técnica de Proxy ARP são a conexão a redes dialup ou VPN, usar múltiplos IPs em um mesmo host, e em gateways de subrede transparentes.
ARP Probe
ARP Probe ("Sonda ARP") são pacotes especiais ARP Request transmitidos em broadcast com o campo SPA (Endereço IP do remetente) contendo o valor 0.0.0.0. Esse pacote é utilizado por um host que solicitou um endereço IPv4 de um servidor DHCP, ou após a configuração manual de IP no host, para verificar se o IP atribuído já está em uso na rede.
Vamos ver esse pacote em serviço. Primeiramente, vou liberar a configuração de IP de minha máquina Windows com o comando ipconfig /release:
ipconfig /release
Agora a máquina exemplo está sem IP:
Ao renovar o IP da máquina (requisitar nova configuração do servidor DHCP) e devemos fazer a captura de pacotes com o Wireshark:
ipconfig /renew
Abaixo temos a captura dos pacotes ARP Probe realizada com o Wireshark:
Vamos analisar alguns dos pacotes:
Pacote No. 15: A máquina manda um ARP Request na rede para descobrir quem é o host 10.24.67.1 - que é o servidor DHCP da minha rede.
Pacote No. 16: O servidor DHCP responde com seu MAC Address por meio de um ARP Reply.
Pacote No. 35: Após a troca de vários pacotes DHCP, o host cliente envia o pacote ARP Probe para a rede a fim de verificar se alguém já está usando o endereço 10.24.67.21, que foi oferecido pelo servidor DHCP.
Os pacotes foram filtrados por protocolo ARP, por isso aparecem apenas alguns na captura mostrada.

Continue navegando