poniedziałek,
Komenda arp
Komenda arp
w systemach operacyjnych typu Unix, w tym Linux i Unix, oraz Windows jest używana do wyświetlania i modyfikowania tabeli ARP (Address Resolution Protocol) w pamięci lokalnego komputera. W wersjach dla różnych systemów istnieją pewne drobne różnice, ale wynikają głównie głównie z odmiennych konwencji stosowanych w różnych systemach operacyjnych. ARP jest protokołem sieciowym używanym do mapowania adresów IP na adresy fizyczne (MAC) w sieciach lokalnych. Modyfikacje tabeli ARP za pomocą komendy arp
są zazwyczaj tymczasowe i zostaną usunięte po restarcie systemu lub odnowieniu połączenia sieciowego. Ponadto, niewłaściwe użycie tej komendy może prowadzić do problemów w komunikacji sieciowej.
Przykłady użycia komendy arp
Prezentowane przykłady koncentrują się na systemach Linux/Unix, ale w większości przypadków będą zgodne także z Windows. Jedną z ważniejszych różnic jest aposób zapisu adresu MAC – w Windows przyjęto konwencję 00-aa-00-62-c6-09, w Linux/Unix 00:AA:00:62:C6:09.
Nektóre systemy mogą wymagać uprawnień administratora do dodawania lub usuwania wpisów z tabeli ARP. Użycie komendy arp może być szczególnie przydatne w diagnozowaniu i rozwiązywaniu problemów sieciowych, takich jak konflikty adresów IP czy kwestie związane z mapowaniem IP na adresy MAC.
Wyświetlenie pomocy dla komendy arp
W Linux/Unix komenda arp --help
lub man arp
wyświetla pomoc dotyczącą komendy arp, pokazując różne opcje i ich użycie.
arp --help
W systemie Windows pomoc uzyskasz w ten sposób:
arp /?
Wyświetlenie tabeli ARP
Ta komenda wyświetla wszystkie wpisy w tabeli ARP. Pokazuje ona adresy IP i odpowiadające im adresy MAC, a także typ interfejsu, do którego są przypisane"
arp -a
Dodanie statycznego wpisu do tabeli ARP
arp -s 192.168.1.5 00:1A:2B:3C:4D:5E
Komenda umożliwia dodanie statycznego wpisu do tabeli ARP. Jest to przydatne, gdy chcesz, aby twój system zawsze przypisywał określony adres MAC do określonego adresu IP.
Usunięcie wpisu z tabeli ARP
arp -d 192.168.1.5
Ta komenda pozwala usunąć wpis z tabeli ARP. Jest to przydatne w przypadku rozwiązywania problemów sieciowych lub gdy chcesz, aby twój system na nowo odkrył adres MAC dla danego adresu IP.
Wyświetlenie wpisu dla konkretnego adresu IP
arp -a 192.168.1.5
Ta komenda pozwala zobaczyć wpis ARP dla konkretnego adresu IP.
Usuwanie wszystkich wpisów
W systemach Unix/Linux, aby usunąć wszystkie wpisy z tabeli ARP, musisz to zrobić dla każdego wpisu indywidualnie. W Windows istnieje wygodniejsza opcja:
arp -d *
W systemach Linux/Unix alternatywnym rozwiązaniem może być napisanie prostego skryptu, który automatyzuje ten proces. Przykładowy skrypt bash do usunięcia wszystkich wpisów z tabeli ARP:
#!/bin/bash
# Pobierz listę adresów IP z tabeli ARP
ip_list=$(arp -a | awk '{print $2}' | tr -d '()')
# Usuń każdy wpis ARP
for ip in $ip_list; do
sudo arp -d $ip
done
echo "Wszystkie wpisy ARP zostały usunięte."
Aby użyć tego skryptu:
- Skopiuj powyższy skrypt do pliku, na przykład
clear_arp.sh
. - Nadaj plikowi uprawnienia do wykonania za pomocą komendy
chmod +x clear_arp.sh
. - Uruchom skrypt jako superużytkownik (root), ponieważ zmiana tabeli ARP wymaga uprawnień administratora.
Pamiętaj, że modyfikowanie tabeli ARP może wpływać na działanie sieci, więc wykonuj te operacje ostrożnie.
Wyjście komendy arp -a
W przypadku braku aktywnego połączenia sieciowego zachowanie komendy arp będzie zależeć od systemu operacyjnego, jednak należy oczekiwać jednago z dwóch wyników, możesz otrzymać komunikat informujący o braku wpisów lub nie zobaczyć żadnych wyników. Warto zauważyć, że wyjście komendy arp może się różnić w zależności od konfiguracji sieci, liczby podłączonych urządzeń oraz specyfiki systemu operacyjnego.
Przykładowe wyjście komendy arp -a w Linux/Unix
arp -a
? (192.168.1.1) at 00:1C:B3:09:85:15 [ether] on wlan0
? (192.168.1.2) at 00:0C:29:36:BC:8E [ether] on wlan0
? (192.168.1.3) at 18:65:90:c6:ca:8e [ether] on wlan0
192.168.1.1, 192.168.1.2, 192.168.1.3 to adresy IP urządzeń w sieci lokalnej. Adresy takie jak 00:1C:B3:09:85:15 są adresami MAC tych urządzeń. [ether] wskazuje na typ połączenia (Ethernet), a wlan0 jest nazwą interfejsu sieciowego.
Przykładowe wyjście komendy arp -a w Windows
Interface: 192.168.1.4 --- 0x3
Internet Address Physical Address Type
192.168.1.1 00-1c-b3-09-85-15 dynamic
192.168.1.2 00-0c-29-36-bc-8e dynamic
192.168.1.255 ff-ff-ff-ff-ff-ff static
Podobnie jak w Unix/Linux, widzimy tutaj adresy IP (192.168.1.1, 192.168.1.2, 192.168.1.255) i odpowiadające im adresy MAC (00-1c-b3-09-85-15, 00-0c-29-36-bc-8e, ff-ff-ff-ff-ff-ff). Type wskazuje, czy wpis jest dynamiczny (automatycznie dodany przez ARP) czy statyczny (dodany ręcznie). Adres 192.168.1.255 z adresem MAC ff-ff-ff-ff-ff-ff jest adresem rozgłoszeniowym.
Inne opcje wyjścia komendy arp -a
Wyjście komendy arp -a
może zawierać jeszcze inne terminy, takie jak nnp. ifscope
, permanent
, czy incomplete
, odnoszą się one do specyficznych stanów lub typów wpisów w tablicy ARP.
- ifscope – odnosi się do zakresu interfejsu, co oznacza, że dany wpis ARP jest związany z konkretnym interfejsem sieciowym. W systemach, które obsługują wiele interfejsów sieciowych, taki wpis ARP jest stosowany tylko w kontekście określonego interfejsu, a nie globalnie dla całego systemu.
- permanent – wpis oznaczony jako
permanent
w tablicy ARP to statyczny wpis, który został ręcznie dodany do tablicy ARP i nie wygasa. W przeciwieństwie do wpisów dynamicznych, które są automatycznie tworzone i usuwane przez system, wpisy permanentne pozostają w tablicy ARP do momentu ich ręcznego usunięcia lub restartu systemu. - incomplete – stan
incomplete
oznacza, że system próbował rozwiązać adres IP na adres MAC, ale proces ten nie został jeszcze ukończony. Może to być spowodowane tym, że urządzenie o danym adresie IP nie odpowiedziało na zapytanie ARP lub nie jest obecnie dostępne w sieci. Wpis w stanieincomplete
może wskazywać na problem z łącznością lub tymczasowe opóźnienie w odpowiedzi sieciowej.
Przykładowe wyjście arp -a
uwzględniające te terminy mogłoby wyglądać następująco:
? (192.168.1.2) at <incomplete> on en0 ifscope [ethernet]
? (192.168.1.3) at 00:1c:b3:09:85:15 on en0 ifscope [ethernet]
? (192.168.1.4) at 00:0c:29:36:bc:8e permanent on en0 ifscope [ethernet]
W tym przykładzie, pierwszy wpis dla 192.168.1.2
jest w stanie incomplete
, drugi wpis dla 192.168.1.3
jest normalnym, dynamicznym wpisem ARP, a trzeci wpis dla 192.168.1.4
jest wpisem statycznym (permanent
) powiązanym z interfejsem en0
.