-->

Anuncio!

Endereço MAC e Protocolo ARP

Hosts e roteadores possuem endereços. Assim como temos o endereço IP na camada de rede, temos o endereço MAC na camada de enlace. Um adaptador de rede, ou NIC(Network Interface Controller), não entende endereços IP, então surge o problema de como enviar um quadro da camada de enlace de um remetente à camada de enlace de um destinatário na mesma sub-rede. Aí que entra o endereço MAC.

Um endereço MAC é um endereço da camada de enlace no qual está associado ao seu adaptador de rede, ou seja, um endereço MAC não pertence à um computador e sim ao adaptador de rede que está naquele computador. Um endereço MAC é número de 6 Bytes, representado em hexadecimal. Um endereço da camada de enlace é como um CPF, por isso dizemos que o endereço MAC é linear, ele não muda. Já um endereço IP seria hierárquico, pois depende de dois fatores, do host e da rede. Se um host transita de uma rede para outra, seu endereço IP muda, já o endereço MAC permanece o mesmo. Contudo, um endereço MAC pode ser modificado por software. No nosso estudo, vamos considerar uma utopia onde o endereço MAC é fixo.

Com os comandos abaixo você pode consultar seu endereço MAC

Linux
ifconfig

Windows
ipconfig

[caption id="" align="aligncenter" width="637"] consulta de endereço MAC via terminal[/caption]

Ainda assim, não resolvemos o nosso problema de como enviar o nosso quadro ao destinatário. Já andamos meio caminho. Surge o nosso outro personagem, o protocolo ARP, Protocolo de Resolução de Endereços. Cabe ao ARP fazer a associação de um endereço IP à um endereço MAC. Vamos descrever o nosso primeiro cenário.

Quando um datagrama da camada de rede é enviado à camada inferior, ou seja, a camada de enlace de dados, envia consigo o endereço IP de destino(vamos considerar aqui como sendo o IP destino 222.222.222.223), então o protocolo ARP faz a associação daquele endereço IP com o endereço MAC de destino através do que é chamado de tabela ARP, no qual é consistida de três campos: endereço IP, endereço MAC e TTL(tempo de vida). O TTL corresponde ao tempo em que aquela informação sobre o respectivo host irá ficar guardada na tabela ARP do host 222.222.222.221. Assim é criado um modulo ARP com um endereço MAC e esse, junto com o datagrama da camada de rede é transformado em um quadro da camada de enlace(através do enquadramento) que por si só envia pelo meio de transmissão esse quadro, que chega ao adaptador de rede de endereço MAC 5C-66-AB-90-75-B1 e repassa o datagrama para a camada de rede.



Agora vamos considerar o nosso segundo cenário. E se o host de IP 222.222.222.221 não tiver o endereço MAC de destino do IP 222.222.222.223? ARP de novo! Quando um remetente não possui o endereço MAC de um IP destino em sua tabela ARP, é utilizado um pacote ARP para fazer a requisição na sub-rede, que contém um campo de endereço IP, um campo de endereço MAC entre outras informações. Leve em consideração que os pacotes ARP tanto pra requisição quanto pra resposta são os mesmos. Assim, o remetente envia o pacote ARP com o IP do destino e com um endereço MAC FF:FF:FF:FF:FF:FF, ou seja, por broadcasting. Isso quer dizer que o pacote será enviado à todos os nós(hosts) da sub-rede. O pacote de resposta é enviado pelo host da sub-rede que está associado aquele endereço IP, e junto ao pacote é retornado o endereço MAC correspondente ao seu IP. Dessa forma, voltamos ao processo comum de ter uma tabela ARP com os dados, assim podendo enviar os quadros normalmente. É o mesmo que chegar em uma sala e gritar "Quem é o dono deste CPF?".

Chegamos ao nosso terceiro, e último cenário deste artigo. Como enviar um quadro para um host de uma sub-rede para outra sub-rede se o protocolo ARP só funciona dentro da sub-rede? Outra situação ocasionaria um erro. Primeiro considere que um roteador possui uma porta de entrada e uma de saída, e que um roteador possui dois endereços IP e apenas um endereço MAC. Assim O host da sub-rede A envia o quadro contendo o IP destino de um host em uma sub-rede B, porém, o endereço MAC anexado ao quadro é o do roteador. Chegando o quadro no roteador, ele percebe que não pode repassar o quadro para a camada de rede pois o endereço IP do quadro não corresponde ao seu, e ele não sabe de quem pertence aquele IP. Como será que ele descobre de quem pertence aquele IP? Pacotes ARP de novo!  Dessa forma, o roteador envia um pacote ARP pelo seu endereço IP de saída(do ponto de vista da sub-rede A) e questiona a quem pertence aquele endereço IP na sub-rede B. Então algum host responde com um pacote ARP de resposta. Feito isso, o roteador cria uma pacote com o endereço IP e o endereço MAC destino do host na sub-rede B e lhe envia, assim chegando ao adaptador do destino e passando o datagrama para a camada de rede.

[caption id="" align="alignnone" width="1869"] cabeçalho de um pacote ARP[/caption]

Analisando um pacote ARP com Wireshark

Para analisar uma requisição ou resposta de um pacote ARP via Wireshark basta digitar no campo de filtro:
arp

[caption id="" align="alignnone" width="559"] pacote ARP no Wireshark[/caption]

Após isso clique em algum pacote ARP e vá em Address Resolution Protocol. Lá você irá se familiarizar com as abordagens que fizemos.

Mais detalhes sobre o protocolo ARP podem ser encontrados no RFC[1180].
Compartilhar:
← Anterior Proxima → Inicio

Um comentário:

Formulário de contato

Nome

E-mail *

Mensagem *

Sites Parceiros

Anuncio No Post

Anuncio No Post

Anuncio Aqui!