Os Protocolos de resolução de endereços (ARP) tratam da maneira como os endereços IP locais são resolvidos entre computadores em uma rede.
Em sua forma mais simples, imagine que você tenha um computador, como um laptop, e queira se comunicar com seu PI de framboesa, que é conectado como parte de sua conexão de banda larga local.
Geralmente, você pode ver se o PI do Raspberry está disponível na rede fazendo ping dele. Assim que você fizer o ping no PI de framboesa ou tentar qualquer outra conexão com o PI de framboesa, estará eliminando a necessidade de resolução de endereço. Pense nisso como uma forma de aperto de mão.
O ARP compara o endereço e as máscaras de sub-rede do host e do computador de destino. Se estes corresponderem, o endereço foi efetivamente resolvido para a rede local.
Então, como esse processo realmente funciona?
Seu computador terá um cache ARP que é acessado primeiro para tentar resolver o endereço.
Se o cache não contiver as informações necessárias para resolver o endereço, uma solicitação será enviada para cada máquina na rede.
Se uma máquina na rede não tiver o endereço IP sendo pesquisado, ela simplesmente ignorará a solicitação, mas se a máquina tiver uma correspondência, ela adicionará as informações do computador de chamada ao seu próprio cache de ARP. Em seguida, ele enviará uma resposta de volta ao computador de chamada original.
Ao receber a confirmação do endereço do computador de destino, a conexão é feita e, assim, um ping ou outra solicitação de rede pode ser processada.
A informação real que o computador de origem está procurando no computador de destino é seu endereço MAC ou, como às vezes é chamado de Endereço HW.
Um exemplo trabalhado usando o comando ARP
Para tornar isso mais fácil de entender, você precisará ter dois computadores conectados à sua rede.
Certifique-se de que ambos os computadores estejam ligados e possam se conectar à Internet.
Agora abra uma janela de terminal usando o Linux e digite o seguinte comando:
arp
As informações exibidas são as informações atualmente armazenadas no cache ARP do seu computador.
Os resultados podem apenas mostrar sua máquina, você pode não ver nada ou os resultados podem incluir o nome do outro computador se você tiver se conectado a ele anteriormente.
As informações fornecidas pelo comando arp são as seguintes:
- Endereço
- Tipo HW
- Endereço HW
- Bandeiras
- mascarar
- IFace
Se você não tem nada exibido, não se preocupe, pois isso mudará em breve. Se você puder ver o outro computador, provavelmente verá que o endereço HW está definido como "(incompleto)".
Você precisa saber o nome do computador ao qual está se conectando. No meu caso, estou conectando ao meu PI zero de framboesa.
Dentro do terminal, execute o seguinte comando substituindo as palavras raspberrypizero pelo nome do computador ao qual você está se conectando.
ping raspberrypizero
O que aconteceu é que o computador que você está usando olhou em seu cache ARP e percebeu que não tem informações ou não tem informações suficientes sobre a máquina que você está tentando fazer ping. Por isso, enviou uma solicitação através da rede perguntando a todas as outras máquinas da rede se elas são realmente o computador que você está procurando.
Cada computador na rede examinará o endereço IP e a máscara solicitados e todos, exceto o que tiver esse endereço IP, descartarão a solicitação.
O computador que tem o endereço IP e a máscara solicitados gritará: "Ei, sou eu!" e enviará seu endereço HW de volta ao computador solicitante. Isso será então adicionado ao cache ARP do computador de chamada.
Não acredita em mim? Execute o comando arp novamente.
arp
Desta vez você deve ver o nome do computador que você pingou e você também verá o endereço HW.
Mostrar os endereços IP em vez do nome do host do computador
Por padrão, o comando arp mostrará o nome do host dos itens dentro do cache do ARP, mas você poderá forçá-lo a exibir endereços IP usando a seguinte opção:
arp -n
Alternativamente, você pode querer usar o seguinte switch que exibirá a saída de uma maneira diferente:
arp -a
A saída do comando acima será algo ao longo das linhas deste:
raspberrypi (172.16.15.254) em d4: ca: 6d: 0e: d6: 19 éter em wlp2s0
Desta vez, você obtém o nome do computador, o endereço IP, o endereço HW, o tipo HW e a rede.
Como excluir entradas do cache ARP
O cache ARP não mantém seus dados por muito tempo, mas se você estiver tendo problemas para se conectar a um computador específico e suspeitar que seja porque os dados de endereço contidos estão incorretos, você pode excluir uma entrada do cache da seguinte maneira.
Primeiro, execute o comando arp para obter o endereço HW da entrada que você deseja remover.
Agora, execute o seguinte comando:
arp -d HWADDR
Substitua HWADDR com o endereço de HW para a entrada que você deseja remover.
Resumo
O comando arp não é comumente usado pelo usuário médio do computador e só será relevante para a maioria das pessoas ao solucionar problemas de rede.