Cum să utilizați comanda arping pe Linux

Publicat: 2022-07-28
Laptop Linux afișează un prompt bash
fatmawati achmad zaenuri/Shutterstock.com

Comanda Linux arping este ca ping , dar numai pentru rețelele locale. Avantajul său este că funcționează la un nivel inferior de rețea, uneori obținând răspunsuri atunci când ping -ul nu poate. Iată cum să-l folosești.

Protocolul ARP

O adresă IP este o etichetă numerică pentru un dispozitiv în rețea. Este folosit ca adresă, astfel încât traficul de rețea corespunzător să ajungă la dispozitivul corect. Dar majoritatea dispozitivelor din rețelele locale au adrese IP dinamice . Adică, adresa lor IP s-ar putea schimba la următoarea pornire.

Pentru a putea direcționa corect traficul de rețea către dispozitivul corespunzător, trebuie utilizată o schemă care mapează adresele IP la adresele Media Access Control (MAC). Adresa MAC este o identitate unică stabilită la punctul de fabricație a unui dispozitiv. O adresă IP este o adresă logică . Adresa MAC este o adresă fizică .

Ce este un pachet de date?
LEGATE Ce este un pachet de date?

Protocolul de rezoluție a adreselor este intermediarul care mapează adresele IP la adresele MAC. Dispozitivul responsabil pentru distribuirea și direcționarea pachetelor de rețea în rețeaua dvs. - de obicei, routerul - creează și menține un tabel ARP care leagă adresele IP de adresele MAC.

Dacă routerul trebuie să direcționeze date către un dispozitiv despre care nu știe, face o solicitare ARP pentru a obține adresa MAC pentru noul dispozitiv.

Când un dispozitiv nou este conectat la rețeaua dvs., i se atribuie o adresă IP, dar aceasta nu este suficientă pentru a direcționa traficul către acesta. Routerul trebuie să obțină adresa MAC care este piesa lipsă a puzzle-ului. Dar, deoarece adresa IP în sine nu este suficientă informație pentru a direcționa pachetele către dispozitiv, Catch-22 nu poate folosi adresa IP pentru a interoga hardware-ul pentru a obține adresa MAC.

Modelul de interconectare a sistemelor deschise grupează tehnologiile care alcătuiesc o rețea de lucru ca o serie de straturi. Straturile superioare nu pot funcționa fără straturile inferioare. Există șapte straturi în modelul OSI.

  • Stratul 7 este cel mai de sus, stratul de aplicare . Furnizează informații utilizatorului computerului și primește informații înapoi de la acesta.
  • Stratul 6 este stratul de prezentare . Acest lucru asigură că datele sunt în formatul sau starea corectă pe măsură ce se deplasează în și din formatul de rețea. Criptarea și decriptarea au loc la acest nivel.
  • Stratul 5 este stratul de sesiune . O sesiune este o conexiune de rețea între două sau mai multe dispozitive. Acest strat implică chestiuni precum inițierea unei conexiuni, strângere de mână, timeout-uri și întreruperea conexiunilor care nu mai sunt necesare.
  • Stratul 4 este stratul de transport . Acesta este stratul care mută datele în rețea într-un mod coordonat. Acest nivel este preocupat de lucruri precum ratele de transfer și volumele de date. Protocolul de control al transmisiei – TCP în TCP/IP – operează la acest nivel.
  • Nivelul 3 este stratul de rețea . Aici are loc rutarea și redirecționarea pachetelor. Este nivelul la care funcționează Protocolul Internet - IP-ul în TCP/IP.
  • Stratul 2 este stratul de legătură de date . Este folosit pentru a trimite pachete între dispozitive direct adresabile folosind transmisii către fiecare dispozitiv sau unicast către anumite adrese MAC.
  • Stratul 1 este stratul fizic . Aceasta se referă la infrastructura fizică, inclusiv cablarea, routerele și comutatoarele de rețea. Undele radio utilizate în Wi-Fi ar intra și ele în această categorie.

Când routerul primește un pachet pentru o adresă IP care nu este în tabelul său, trimite un pachet de difuzare către întreaga rețea. Întreabă efectiv „Cine are această adresă IP?” Acesta este un mesaj de nivel doi, așa că nu se bazează pe rutarea IP.

Dispozitivul cu adresa potrivită răspunde trimițând înapoi adresa MAC. Adresa IP și adresa MAC a dispozitivului respectiv pot fi adăugate la tabelul de mapare. Traficul IP obișnuit poate fi acum direcționat către dispozitiv, deoarece relația dintre adresa sa IP și adresa sa MAC a fost stabilită și înregistrată.

RELATE: Fundația Internetului: TCP/IP împlinește 40 de ani

Comandamentul arping

Toate lucrurile inteligente ARP merg automat în fundal, construind și menținând tabelul ARP. Comanda arping aduce o parte din funcționalitatea interogării ARP în fereastra terminalului. Funcționează la nivelul doi OSI și poate solicita un răspuns de la un dispozitiv atunci când nu face ping .

Pe Fedora 36, arping era deja instalat, dar trebuia să-l instalăm pe Manjaro 21 și Ubuntu 22.04.

Pe Ubuntu comanda este:

 sudo apt install arping 

Instalarea arping pe Ubuntu

Pe Manjaro trebuie să tastați:

 sudo pacman -Sy arping 

Instalarea arping pe Manjaro

Cel mai simplu mod de a utiliza arping este cu o adresă IP. Aceasta trebuie să fie adresa unui dispozitiv direct adresabil, conectat la rețeaua locală. Deoarece arping funcționează la nivelul doi, nu este posibilă nicio rutare. Va trebui să utilizați sudo cu arping .

 sudo arping 192.168.1.17 

Utilizarea arping-ului cu o adresă IP

Apăsați Ctrl+C pentru a opri. Informațiile returnate sunt adresa MAC a dispozitivului care răspunde, numărul de index al solicitării de arping și timpul de călătorie dus-întors pentru ca cererea de arping să fie finalizată.

Comparați rezultatul cu cel din comanda ping , mai jos. Comanda ping returnează mai multe informații despre sincronizarea pachetului de rețea dus-întors. Comanda arping vă oferă mai puține statistici de sincronizare, dar include adresa MAC a dispozitivului.

 ping 192.168.1.17 

Folosind ping cu o adresă IP

De asemenea, puteți utiliza numele de rețea al dispozitivului cu arping .

 sudo arping fedora-36.local 

Utilizarea arping-ului cu o adresă IP

Puteți folosi opțiunea -c (numărare) pentru a spune arping -ului să se oprească după un număr stabilit de solicitări. Această comandă îi spune arping să încerce de două ori și apoi să se oprească.

 sudo arping -c 2 192.168.1.18 

Folosind opțiunea -c pentru a spune arping-ului să se oprească după ce face două solicitări

Dacă aveți mai multe interfețe de rețea în computer, puteți utiliza opțiunea -I (interfață) pentru a spune arping ce interfață să folosească.

Puteți utiliza comanda ip link pentru a lista interfețele de rețea.

 link ip 

Folosind ip link pentru a lista interfețele de rețea

Acest computer are trei interfețe. Interfața virtuală lo este folosită ca loopback pentru conexiunile interne între software-ul de pe același computer. Nu ne este de folos aici. Putem folosi fie conexiunea ethernet enp3s0 , fie interfața wireless wlan0 .

Această comandă îi spune arping să folosească interfața pe care o alegem și să nu facă propria selecție.

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

Folosind opțiunea -I pentru a spune arping să folosească o interfață de rețea specifică

Utilizarea arpingului în scripturi

Prin arping -ului într-o buclă într-un script, îl putem face să funcționeze pe o serie de adrese IP. Copiați textul din acest script și salvați-l într-un fișier numit „scan-range.sh”.

Va trebui să editați scriptul și să înlocuiți toate aparițiile 192.168.1 cu adresa IP a rețelei dvs.

 #!/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

Scriptul acceptă doi parametri de linie de comandă. Acestea sunt folosite ca ultimul octet al adreselor IP ale intervalului pe care doriți să utilizați arping . Deci, dacă treceți 20 și 30 la script, bucla ar începe la 192.168.1. 20 și se va încheia după utilizarea adresei IP 192.168.1. 30 .

Parametrii sunt accesați în interiorul scriptului ca $1 și $2 . Acestea sunt folosite într-o buclă for stil C. La fiecare rotire a buclei for , $device este setat la următoarea adresă IP din interval.

Scriptul folosește același format arping -c pe care l-am văzut deja, dar de data aceasta solicităm doar trimiterea unei singure cereri ARP către fiecare dispozitiv din gamă.

Ieșirea de la comanda arping este transmisă prin grep .

Sintaxa grep poate fi simplificată în scriptul dumneavoastră. grep caută unul dintre cele două șiruri de caractere, fie „1 răspuns” fie „1 pachete primite”. Acest lucru se datorează faptului că computerele de testare aveau versiuni diferite de arping pe ele și folosesc o terminologie diferită. Dacă grep găsește oricare dintre aceste expresii, valoarea sa de ieșire va fi zero.

Când știți care dintre frazele folosește versiunea dvs. de arping , puteți simplifica sintaxa grep eliminând cealaltă frază.

Declarația if testează $? — o variabilă care conține codul de ieșire al ultimului proces care s-a încheiat — pentru a vedea dacă este zero. Dacă este, folosește echo pentru a imprima un mesaj de succes în fereastra terminalului. Dacă testul eșuează, grep nu a găsit niciunul dintre șiruri, ceea ce înseamnă că solicitarea ARP a eșuat.

Faceți scriptul executabil folosind comanda chmod și opțiunea +x .

 chmod +x scan-range.sh 

Folosind opțiunea chmod +x pentru a face scriptul executabil

Îl vom rula și vom scana intervalul IP de la 15 la 20. Unele dintre aceste adrese nu au dispozitive atașate, așa că ar trebui să vedem unele erori. Nu uitați să utilizați sudo . De asemenea, vom încerca să facem ping dispozitivului la 192.168.1.15.

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

Rularea scriptului și rularea ping

Obținem un amestec de succese și eșecuri, așa cum ați face în orice rețea. Dar observați că, deși dispozitivul de la 192.168.1.15 răspunde la cererea ARP de nivel doi, nu răspunde la cererea de ping de nivel trei.

Dacă ați da ping dispozitivului și ați observat defecțiunea, probabil ați fi înclinat să verificați dacă a fost conectat, online și dacă ați putea face ping din dispozitivul 192.168.1.15.

Dar cu arping puteți verifica dacă este conectat, online și accesibil în rețea. Acest lucru v-ar ghida depanarea pentru a începe să cercetați problemele de rutare și tabelul ARP.

O perspectivă mai profundă

Există multe straturi pentru ceapa de rețea. Dacă ping -ul nu vă duce nicăieri, aruncați un strat și vedeți ce vă poate spune arping -ul.

LEGATE: Cum să gestionați rețelele Wi-Fi Linux cu Nmtui