Como usar o comando arping no Linux

o comando linux arping é como ping , mas apenas para redes locais. Sua vantagem é que ele opera em um nível de rede mais baixo, às vezes obtendo respostas quando o ping falha. Aqui está como usá-lo.

índice

  1. O protocolo ARP
  2. O comando harpista
  3. Usando arping em scripts
  4. uma visão mais profunda

O protocolo ARP

Um endereço IP é um rótulo numérico para um dispositivo de rede. Ele é usado como um endereço para que o tráfego de rede apropriado chegue ao dispositivo correto. Mas a maioria dos dispositivos em redes locais tem endereços IP dinâmicos . Ou seja, seu endereço IP pode muito bem mudar na próxima vez que iniciar.

Para rotear corretamente o tráfego de rede para o dispositivo apropriado, deve ser empregado um esquema que mapeie endereços IP para endereços de controle de acesso de mídia (MAC). O endereço MAC é uma identidade única estabelecida no ponto de fabricação de um dispositivo. Um endereço IP é um endereço lógico . O endereço MAC é um endereço físico .

O Address Resolution Protocol é o intermediário que mapeia endereços IP para endereços MAC. O dispositivo responsável por classificar e direcionar os pacotes de rede em sua rede (geralmente o roteador) cria e mantém uma tabela ARP que vincula endereços IP a endereços MAC.

Se o roteador precisar rotear dados para um dispositivo que não conhece, ele fará uma solicitação ARP para obter o endereço MAC do novo dispositivo.

Quando um novo dispositivo se junta à sua rede, ele recebe um endereço IP, mas isso não é suficiente para rotear o tráfego para ele. O roteador precisa obter o endereço MAC, que é a peça que faltava no quebra-cabeça. Mas como o endereço IP sozinho não é informação suficiente para rotear pacotes para o dispositivo, o Catch-22 não pode usar o endereço IP para consultar o hardware em busca do endereço MAC.

O modelo de interconexão de sistemas abertos agrupa as tecnologias que compõem uma rede como uma série de camadas. As camadas superiores não podem operar sem as camadas inferiores. Existem sete camadas no modelo OSI.

  • A camada 7 é a camada superior, a camada de solicitação. Ele fornece informações ao usuário do computador e recebe informações dele.
  • A camada 6 é a camada de apresentação. Isso garante que os dados estejam no formato ou estado correto à medida que se movem de e para o formato de rede. A criptografia e a descriptografia ocorrem nesta camada.
  • A camada 5 é a camada de sessão. Uma sessão é uma conexão de rede entre dois ou mais dispositivos. Essa camada lida com problemas como iniciar uma conexão, apertar as mãos, tempos limite e interromper conexões que não são mais necessárias.
  • A camada 4 é a camada de transporte. Esta é a camada que move os dados pela rede de forma coordenada. Essa camada lida com coisas como taxas de transferência e volumes de dados. O Transmission Control Protocol, o TCP em TCP/IP, opera nesta camada.
  • A camada 3 é a camada de rede. É aqui que ocorre o roteamento e encaminhamento de pacotes. É a camada na qual opera o Protocolo de Internet, o IP no TCP/IP.
  • A camada 2 é a camada de enlace de dados. Ele é usado para enviar pacotes entre dispositivos endereçáveis ​​diretamente por broadcast para cada dispositivo ou unicast para endereços MAC específicos.
  • A camada 1 é a camada física. Isso se refere à infraestrutura física, incluindo cabeamento de rede, roteadores e switches. As ondas de rádio usadas no Wi-Fi também se enquadram nessa categoria.

Quando o roteador recebe um pacote para um endereço IP que não está em sua tabela, ele envia um pacote de broadcast para toda a rede. Ele efetivamente pergunta "Quem tem este endereço IP?" Esta é uma mensagem da camada dois, portanto, não depende do roteamento IP.

O dispositivo com o endereço correspondente responde retornando seu endereço MAC. O endereço IP e o endereço MAC desse dispositivo podem ser adicionados à tabela de mapeamento. O tráfego IP normal agora pode ser roteado para o dispositivo porque o relacionamento entre seu endereço IP e seu endereço MAC foi estabelecido e registrado.

O comando harpista

Todo o material ARP inteligente é ativado automaticamente em segundo plano, construindo e mantendo a tabela ARP. O comando arping traz algumas das funcionalidades da consulta ARP para a janela do terminal. Ele opera na camada OSI dois e pode solicitar uma resposta de um dispositivo quando o ping não é.

No Fedora 36, arping já estava instalado, mas precisávamos instalá-lo no Manjaro 21 e no Ubuntu 22.04.

No Ubuntu o comando é:

 sudo apt instalar arping

Em Manjaro você precisa escrever:

 sudo pacman -Sy arping

A maneira mais fácil de usar arping é com um endereço IP. Este deve ser o endereço de um dispositivo diretamente endereçável conectado à rede local. Como o arping opera na camada dois, o roteamento não é possível. Você terá que usar sudo com arping .

 sudo arping 192.168.1.17

Pressione Ctrl + C para parar. As informações retornadas são o endereço MAC do dispositivo de resposta, o número de índice da solicitação de arping e o tempo de ida e volta para que a solicitação de arping seja concluída.

Compare a saída com a do comando ping , abaixo. O comando ping retorna mais informações sobre o tempo de ida e volta do pacote de rede. O comando arping fornece menos estatísticas de tempo, mas inclui o endereço MAC do dispositivo.

 ping 192.168.1.17

Você também pode usar o nome de rede do dispositivo com arping .

 sudo arping fedora-36.local

Você pode usar a opção -c (count) para contar a parada do arping após um número especificado de solicitações. Este comando diz ao arping para tentar duas vezes e depois parar.

 sudo arping -c 2 192.168.1.18

Se você tiver várias interfaces de rede em seu computador, poderá usar a opção -I (interface) para informar ao arping qual interface usar.

Você pode usar o comando ip link para listar suas interfaces de rede.

 link de ip

Este computador tem três interfaces. A interface virtual lo é usada como um loopback para conexões internas entre softwares no mesmo computador. Aqui não nos serve. Podemos usar a conexão ethernet enp3s0 ou a interface sem fio wlan0 .

Este comando diz ao arping para usar a interface que escolhermos e não para fazer sua própria seleção.

 sudo arping -c 2 -I enp3s0 manjaro-21.local

Usando arping em scripts

arping em um loop de script, podemos fazê-lo funcionar em um intervalo de endereços IP. Copie o texto deste script e salve-o em um arquivo chamado "scan-range.sh".

Você precisará editar o script e substituir todas as ocorrências de 192.168.1 pelo endereço IP da sua rede.

 #!/bin/bash for (( device = $1 ; device <= $2 ; device ++ )) do arping -c 1 192.168.1. $device | grep -E "1 response|1 packets received" > /dev/null if [ $? == 0 ] ; then echo "192.168.1. $device responded." else echo "192.168.1. $device didn't respond." fi done

O script aceita dois parâmetros de linha de comando. Eles são usados ​​como o último octeto dos endereços IP no intervalo em que você deseja fazer o arping . Portanto, se você passar 20 e 30 para o script, o loop começará em 192.168.1. 20 e terminaria após usar o endereço IP 192.168.1. 30.

Os parâmetros são acessados ​​no script como $1 e $2 . Estes são usados ​​em um estilo C for círculo. A cada volta do círculo for , $device é definido para o próximo endereço IP no intervalo.

O script usa o mesmo formato arping -c que já vimos, mas desta vez solicitamos apenas que uma única solicitação ARP seja enviada para cada dispositivo no alcance.

A saída do comando arping é canalizada através de grep .

A sintaxe grep pode ser simplificada em seu script. grep está procurando por uma das duas strings, "1 resposta" ou "1 pacote recebido". Isso ocorre porque os computadores de teste tinham versões diferentes de arping e usavam terminologia diferente. Se o grep encontrar qualquer uma dessas frases, seu valor de saída será zero.

Quando você sabe qual das frases sua versão do arping usa, você pode simplificar a sintaxe do grep removendo a outra frase.

As if testam $? : uma variável que contém o código de saída do último processo que terminou, para ver se é zero. Se estiver, use echo para imprimir uma mensagem de sucesso na janela do terminal. Se o teste falhar, o grep não encontrou nenhuma das strings, o que significa que a solicitação ARP falhou.

Torne seu script executável usando o comando chmod e a opção +x .

 chmod +x scan-range.sh

Vamos executá-lo e verificar o intervalo de IP de 15 a 20. Alguns desses endereços não possuem dispositivos conectados, portanto, devemos ver algumas falhas. Lembre-se de usar sudo . Também tentaremos ping o dispositivo em 192.168.1.15.

 sudo ./scan-range.sh 15 20
 ping 192.168.1.15

Temos uma mistura de acertos e erros, assim como você faria em qualquer rede. Mas observe que, embora o dispositivo em 192.168.1.15 responda à solicitação ARP da camada dois, ele não responde à camada três. solicitação de ping .

Se você tivesse feito ping no dispositivo e notado a falha, provavelmente estaria inclinado a verificar se ele estava conectado, online, e se pudesse ping fora do dispositivo 192.168.1.15.

Mas com o arping você pode verificar se está conectado, online e acessível através da rede. Isso orientará sua solução de problemas para começar a procurar problemas de roteamento e tabela ARP.

uma visão mais profunda

Existem muitas camadas para a rede de cebola. Se o ping não chegar a lugar algum, desça uma camada e veja que arping posso lhe dizer.

  • Agora você pode voar em torno de pontos de referência famosos no Google Maps "Immersive View"
  • Os Chromebooks em breve terão um editor de filmes melhor (e gratuito)

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é uma carga fantasma?

O que o comando ARP* faz?

Exibe e modifica as entradas no cache do Address Resolution Protocol ( ARP ). O cache ARP contém uma ou mais tabelas usadas para armazenar endereços IP e seus endereços físicos Ethernet ou Token Ring resolvidos.

Como saber se um IP está duplicado na minha rede?

Verifique se o endereço MAC do dispositivo é o mesmo indicado no log de eventos; para fazer isso, digite ARP -a % IP Address % Recupere o nome NetBIOS do computador duplicado ; para fazer isso, digite NBTSTAT -a % Endereço IP %.

Ir arriba