Muitas vezes é necessário saber quais os dispositivos que estão ligados à sua rede. É o caso se quiser ligar a um dos seus PCs e não tiver uma ideia clara do seu endereço, ou se quiser apenas certificar-se de que a sua rede é segura ou não, ou se quiser encontrar todos os dispositivos ocultos. Pode encontrar todos os dispositivos ligados, incluindo os ocultos, utilizando a pesquisa ARP.
O ARP (Protocolo de Resolução de Endereços) é um protocolo utilizado em redes informáticas para a comunicação entre nós da rede. É utilizado para mapear os endereços IP dos dispositivos de rede para os seus endereços MAC físicos. Quando um nó de uma rede pretende enviar dados para outro nó, utiliza o ARP para determinar o endereço MAC do destinatário com base no seu endereço IP.
No Linux, a tabela ARP é armazenada na RAM e contém correspondências entre os endereços IP e os endereços MAC de outros dispositivos na rede. Pode ver o conteúdo da tabela ARP em Linux utilizando o comando arp -a. O Linux fornece ferramentas para executar operações ARP, como adicionar entradas ARP estáticas ou limpar a cache ARP. O ARP é um elemento importante na operação de redes TCP/IP e desempenha um papel crucial na comunicação entre dispositivos numa rede local.
Todas as redes de computadores têm um endereço IP - toda a gente sabe isso. Já alguma vez se perguntou a que computador é atribuído um endereço específico? Sabe-se que existem diferentes redes - com fios, sem fios, ppp. Em cada rede, o endereço de hardware da máquina de computação tem um formato diferente, que depende das caraterísticas de conceção da rede local.
Vamos explicar, tudo é de facto muito simples. Para converter o endereço físico em IP é fornecido o ARP, ou seja, é um protocolo de resolução de endereços. Quando um computador entra na rede, faz um pedido aos outros PCs e coloca a questão - "Quem tem o endereço IP XXX.XXX.X.X.X
". A sua resposta não é ignorada, mas tem um aspeto um pouco diferente - "Eu tenho, o meu endereço é xx:xx:xx:xx:xx:xx:xx:xx
". Ou seja, um endereço físico é enviado em resposta. Este endereço é introduzido numa tabela especial.
Deve dizer-se que o formato das mensagens ARP é extremamente simples. A mensagem esconde ou um pedido com um endereço IP ou uma resposta. O tamanho da mensagem depende do protocolo - IPv4 ou IPv6 - e do tipo de equipamento de rede. O cabeçalho da mensagem especifica os tipos e as dimensões destas mensagens. O cabeçalho termina com um código de mensagem. Para um pedido, o código é 1, e para uma resposta, o código é 2. O corpo da mensagem contém os quatro endereços, endereços de hardware e de rede, pertencentes ao emissor e ao recetor.
O utilitário ARP Scan, também chamado de MAC Scanner, é uma ferramenta útil e funcional para analisar uma rede local Linux usando ARP. O programa mostra os endereços Pv4 dos dispositivos de rede. A peculiaridade do ARP é que não envolve encaminhamento. Este tipo de análise é adequado apenas para redes locais. O programa detecta dispositivos activos, os computadores não se podem esconder do ARP. Se for necessário detetar um computador fora da rede local, é utilizado o rastreio por ping.
O Network Scanner está disponível para os seguintes sistemas operativos:
Para instalar, vamos executar:
$ sudo apt install arp-scan
Com a ajuda do programa, será possível encontrar todos os computadores activos tanto em redes ethernet com fios como em redes Wifi sem fios. As ligações PPP e SLIP não são fornecidas, uma vez que não existe ARP nas mesmas. Deve trabalhar com o utilitário com direitos de superutilizador.
No início, descobrimos a interface de rede utilizando o programa ip
:
$ ip addr list
Vemos aqui enp24s0
. A forma mais fácil de o fazer com o ARP, analisando e saindo de todos os computadores ligados à rede, é executar o programa definindo os parâmetros:
$ sudo arp-scan --interface=enp24s0 --localnet
Vemos o parâmetro --interface
, que especifica a interface de scanning, e --localnet
, que indica a aplicação de todos os endereços IP possíveis para a rede atual.
Se omitirmos o primeiro parâmetro, o programa procurará todos os nós para a interface com o número mais baixo no sistema. No nosso caso é enp24s0
.
Em vez do parâmetro --localnet, pode especificar a máscara de rede:
$ sudo arp-scan --interface=enp24s0 10.0.1.0/24
O ARP também é adequado se a interface não tiver o seu próprio endereço IP. Neste caso, o endereço de saída é 0.0.0.0.0.0. Mas nem todos os sistemas responderão a este pedido.
Existem várias razões pelas quais o ARP pode não funcionar corretamente numa rede. Alguns dos problemas mais comuns incluem:
Para diagnosticar e resolver problemas de ARP, recomenda-se que verifique as definições de hardware da rede, analise a configuração do endereçamento IP e utilize ferramentas para monitorizar e analisar o tráfego da rede.