Често се налага да знаете кои устройства са свързани към вашата мрежа. Това е така, ако искате да се свържете с някой от компютрите си и нямате ясна представа за неговия адрес, ако просто искате да се уверите, че мрежата ви е защитена или не, или ако искате да намерите всички скрити устройства. Можете да откриете всички свързани устройства, включително и скритите устройства, като използвате ARP сканиране.
ARP (Address Resolution Protocol) е протокол, който се използва в компютърните мрежи за комуникация между мрежовите възли. Той се използва за съпоставяне на IP адресите на мрежовите устройства с техните физически MAC адреси. Когато даден възел в мрежата иска да изпрати данни до друг възел, той използва ARP, за да определи MAC адреса на получателя въз основа на неговия IP адрес.
В Linux таблицата ARP се съхранява в RAM и съдържа съответствия между IP адресите и MAC адресите на други устройства в мрежата. Можете да видите съдържанието на ARP таблицата в Linux, като използвате командата arp -a. Linux предоставя инструменти за извършване на ARP операции, като например добавяне на статични ARP записи или изчистване на ARP кеша. ARP е важен елемент в работата на TCP/IP мрежите и играе решаваща роля в комуникацията между устройствата в локалната мрежа.
Всяка компютърна мрежа има IP адрес - това е известно на всички. Чудили ли сте се някога на кой компютър е присвоен определен адрес? Известно е, че съществуват различни мрежи - кабелни, безжични, ppp. Във всяка мрежа хардуерният адрес на изчислителната машина има различен формат, който зависи от конструктивните особености на локалната мрежа.
Нека да обясним, че всъщност всичко е много просто. За преобразуване на физическия адрес в IP се осигурява ARP, Казано по-просто, това е протокол за преобразуване на адреси. Когато даден компютър влезе в мрежата, той отправя заявка към другите компютри и задава въпроса - ""Кой има IP адрес XXX.XXX.X.X.X
"". Отговорът му не се пренебрегва, но изглежда малко по-различно - "Аз имам, моят адрес е xx:xx:xx:xx:xx:xx
". Това означава, че в отговор се изпраща физически адрес. Този адрес се въвежда в специална таблица.
Трябва да се каже, че форматът на ARP съобщенията е изключително прост. В съобщението се крие или заявка с IP адрес, или отговор. Размерът на съобщението зависи от протокола - IPv4 или IPv6, от вида на мрежовото оборудване. Заглавието на съобщението определя видовете и размерите на тези съобщения. Заглавието завършва с код на съобщението. За заявка кодът е 1, а за отговор кодът е 2. Тялото на съобщението съдържа четирите адреса, хардуерни и мрежови адреси, принадлежащи на изпращача и получателя.
Помощната програма ARP Scan, наричана още MAC Scanner, е удобен, функционален инструмент за сканиране на локална мрежа на Linux с помощта на ARP. Програмата показва Pv4 адресите на мрежовите устройства. Особеността на ARP е, че не включва маршрутизация. Този тип сканиране е подходящ само за локални мрежи. Програмата открива активни устройства, като компютрите не могат да се скрият от ARP. Ако трябва да се открие компютър извън локалната мрежа, се използва сканиране с ping.
Network Scanner е наличен за следните операционни системи:
За да инсталирате, ще извършим:
$ sudo apt install arp-scan
С помощта на програмата ще можете да откриете всички активни компютри както в кабелни етернет мрежи, така и в безжични Wifi мрежи. Не се предоставят PPP и SLIP връзки, тъй като в тях няма ARP. Трябва да работите с програмата под правата на суперпотребител.
В началото ще открием мрежовия интерфейс с помощта на програмата ip
:
$ ip addr list
Виждаме тук enp24s0
. Най-лесно е да направим това с ARP, като сканираме и излезем от всеки компютър, свързан към мрежата - стартираме програмата, като зададем параметрите:
$ sudo arp-scan --interface=enp24s0 --localnet
Виждаме параметъра --interface
, указващ сканиращия интерфейс, и --localnet
, указващ да се приложат всички възможни IP адреси за текущата мрежа.
Ако пропуснем първия параметър, тогава програмата ще търси всички възли за интерфейса с по-малък номер в системата. В нашия случай това е enp24s0
.
Вместо параметъра --localnet можете да посочите мрежовата маска:
$ sudo arp-scan --interface=enp24s0 10.0.1.0/24
ARP е подходящ и ако интерфейсът няма собствен IP адрес. В този случай изходящият адрес е 0.0.0.0.0.0. Но не всички системи ще отговорят на такава заявка Следователно в тази ситуация скенерът ще бъде неефективен.
Съществуват няколко причини, поради които ARP може да не работи правилно в дадена мрежа. Някои от най-често срещаните проблеми включват:
За диагностициране и отстраняване на проблеми с ARP се препоръчва да се проверят настройките на мрежовия хардуер, да се анализира конфигурацията на IP адресирането и да се използват инструменти за наблюдение и анализ на мрежовия трафик.