Często musisz wiedzieć, które urządzenia są podłączone do Twojej sieci. Dzieje się tak w przypadku, gdy chcesz połączyć się z jednym z komputerów i nie masz jasnego pojęcia o jego adresie, lub jeśli chcesz po prostu upewnić się, że Twoja sieć jest bezpieczna lub nie, lub jeśli chcesz znaleźć wszystkie ukryte urządzenia. Możesz znaleźć wszystkie podłączone urządzenia, w tym urządzenia ukryte, za pomocą skanowania ARP.
ARP (Address Resolution Protocol) to protokół używany w sieciach komputerowych do komunikacji między węzłami sieci. Służy on do mapowania adresów IP urządzeń sieciowych na ich fizyczne adresy MAC. Gdy węzeł w sieci chce wysłać dane do innego węzła, używa ARP do określenia adresu MAC odbiorcy na podstawie jego adresu IP.
W systemie Linux tabela ARP jest przechowywana w pamięci RAM i zawiera dopasowania między adresami IP i adresami MAC innych urządzeń w sieci. Zawartość tablicy ARP w systemie Linux można wyświetlić za pomocą polecenia arp -a. Linux zapewnia narzędzia do wykonywania operacji ARP, takich jak dodawanie statycznych wpisów ARP lub czyszczenie pamięci podręcznej ARP. ARP jest ważnym elementem działania sieci TCP/IP i odgrywa kluczową rolę w komunikacji między urządzeniami w sieci lokalnej.
Każda sieć komputerowa posiada adres IP - każdy o tym wie. Czy zastanawiałeś się kiedyś, który komputer ma przypisany konkretny adres? Wiadomo, że istnieją różne sieci - przewodowe, bezprzewodowe, ppp. W każdej sieci adres sprzętowy komputera ma inny format, który zależy od cech konstrukcyjnych sieci lokalnej.
Wyjaśnijmy, że w rzeczywistości wszystko jest bardzo proste. Do konwersji adresu fizycznego na IP służy ARP, mówiąc najprościej, jest to protokół rozpoznawania adresów. Kiedy komputer wchodzi do sieci, wysyła żądanie do innych komputerów i zadaje pytanie - "Kto ma adres IP XXX.XXX.X.X.X
". Jego odpowiedź nie jest ignorowana, ale wygląda nieco inaczej - "Mam, mój adres to xx:xx:xx:xx:xx
". Oznacza to, że w odpowiedzi wysyłany jest adres fizyczny. Adres ten jest wprowadzany do specjalnej tabeli.
Należy powiedzieć, że format wiadomości ARP jest niezwykle prosty. Wiadomość zawiera albo żądanie z adresem IP, albo odpowiedź. Rozmiar wiadomości zależy od protokołu - IPv4 lub IPv6, rodzaju sprzętu sieciowego. Nagłówek wiadomości określa typy i rozmiary tych wiadomości. Nagłówek kończy się kodem wiadomości. W przypadku żądania kod wynosi 1, a w przypadku odpowiedzi kod wynosi 2. Treść wiadomości zawiera cztery adresy, sprzętowe i sieciowe, należące do nadawcy i odbiorcy.
Narzędzie ARP Scan, zwane również MAC Scanner, jest poręcznym, funkcjonalnym narzędziem do skanowania sieci lokalnej Linux za pomocą ARP. Program wyświetla adresy Pv4 urządzeń sieciowych. Osobliwością ARP jest to, że nie obejmuje routingu. Ten typ skanowania jest odpowiedni tylko dla sieci lokalnych. Program wykrywa aktywne urządzenia, komputery nie mogą ukryć się przed ARP. Jeśli komputer ma zostać wykryty poza siecią lokalną, używane jest skanowanie ping.
Network Scanner jest dostępny dla następujących systemów operacyjnych:
Aby zainstalować, wykonamy:
$ sudo apt install arp-scan
Za pomocą programu będzie można znaleźć wszystkie aktywne komputery zarówno w przewodowych sieciach ethernet, jak i w bezprzewodowych sieciach Wifi. Połączenia PPP i SLIP nie są dostarczane, ponieważ nie ma w nich ARP. Z programem należy pracować na prawach superużytkownika.
Na początku sprawdzamy interfejs sieciowy za pomocą programu ip
:
$ ip addr list
Widzimy tutaj enp24s0
. Najłatwiej zrobić to za pomocą ARP, skanując i wychodząc z każdego komputera podłączonego do sieci - uruchamiamy program ustawiając parametry:
$ sudo arp-scan --interface=enp24s0 --localnet
Widzimy parametr --interface
, określający interfejs skanowania, oraz --localnet
, wskazujący na zastosowanie wszystkich możliwych adresów IP dla bieżącej sieci.
Jeśli pominiemy pierwszy parametr, program wyszuka wszystkie węzły dla interfejsu o niższym numerze w systemie. W naszym przypadku jest to enp24s0
.
Zamiast parametru --localnet można podać maskę sieci:
$ sudo arp-scan --interface=enp24s0 10.0.1.0/24
ARP jest również odpowiedni, jeśli interfejs nie ma własnego adresu IP. W tym przypadku adres wychodzący to 0.0.0.0. Ale nie wszystkie systemy odpowiedzą na takie żądanie Dlatego w tej sytuacji skaner będzie nieskuteczny.
Istnieje kilka powodów, dla których ARP może nie działać poprawnie w sieci. Niektóre z najczęstszych problemów obejmują
Aby zdiagnozować i rozwiązać problemy z ARP, zaleca się sprawdzenie ustawień sprzętu sieciowego, przeanalizowanie konfiguracji adresacji IP oraz użycie narzędzi do monitorowania i analizowania ruchu sieciowego.