Protokół rozwiązywania adresów — Address Resolution Protocol

Address Resolution Protocol ( ARP ) to protokół komunikacyjny używany do odkrywania warstwie łącza adres, takie jak adres MAC , związane z danym warstwy www adres, typowo adres IPv4 . To mapowanie jest kluczową funkcją w zestawie protokołów internetowych . ARP został zdefiniowany w 1982 r. przez RFC  826 , który jest standardem internetowym STD 37.

ARP został wdrożony z wieloma kombinacjami technologii warstwy sieci i łącza danych, takich jak IPv4 , Chaosnet , DECnet i Xerox PARC Universal Packet (PUP) przy użyciu standardów IEEE 802 , FDDI , X.25 , Frame Relay i Asynchronous Transfer Mode (ATM) .

W sieciach protokołu internetowego w wersji 6 (IPv6) funkcjonalność ARP zapewnia protokół Neighbor Discovery Protocol (NDP).

Zakres operacyjny

Address Resolution Protocol to protokół żądanie-odpowiedź , którego komunikaty są enkapsulowane przez protokół warstwy łącza. Jest komunikowany w granicach jednej sieci, nigdy nie jest kierowany przez węzły intersieci. Ta właściwość miejsca ARP w warstwie łącza z zestawu protokołów Internetu .

Struktura pakietów

Protokół rozpoznawania adresów wykorzystuje prosty format wiadomości zawierający jedno żądanie lub odpowiedź rozwiązania adresu. Rozmiar komunikatu ARP zależy od rozmiaru adresu warstwy łącza i warstwy sieci. Nagłówek wiadomości określa typy sieci używanej w każdej warstwie, a także rozmiar adresów każdej z nich. Nagłówek wiadomości jest uzupełniany kodem operacji dla żądania (1) i odpowiedzi (2). Ładunek pakietu składa się z czterech adresów, adresu sprzętowego i protokołu hostów nadawcy i odbiorcy.

Główną strukturę pakietów ARP przedstawiono w poniższej tabeli, która ilustruje przypadek sieci IPv4 działających w sieci Ethernet. W tym scenariuszu pakiet zawiera 48-bitowe pola dla adresu sprzętowego nadawcy (SHA) i docelowego adresu sprzętowego (THA) oraz 32-bitowe pola dla odpowiednich adresów protokołu nadawcy i docelowego (SPA i TPA). Rozmiar pakietu ARP w tym przypadku wynosi 28 bajtów.

Protokół internetowy (IPv4) przez pakiet ARP Ethernet
Przesunięcie oktetu 0 1
0 Typ sprzętu (HTYPE)
2 Typ protokołu (PTYPE)
4 Długość adresu sprzętowego (HLEN) Długość adresu protokołu (PLEN)
6 Operacja (OPER)
8 Adres sprzętowy nadawcy (SHA) (pierwsze 2 bajty)
10 (następne 2 bajty)
12 (ostatnie 2 bajty)
14 Adres protokołu nadawcy (SPA) (pierwsze 2 bajty)
16 (ostatnie 2 bajty)
18 Docelowy adres sprzętowy (THA) (pierwsze 2 bajty)
20 (następne 2 bajty)
22 (ostatnie 2 bajty)
24 Adres protokołu docelowego (TPA) (pierwsze 2 bajty)
26 (ostatnie 2 bajty)
Typ sprzętu (HTYPE)
To pole określa typ protokołu łącza sieciowego. Przykład: Ethernet to 1.
Typ protokołu (PTYPE)
To pole określa protokół sieciowy, dla którego przeznaczone jest żądanie ARP. W przypadku IPv4 ma to wartość 0x0800. Dozwolone wartości PTYPE współdzielą przestrzeń numeracyjną z wartościami dla EtherType .
Długość sprzętu (HLEN)
Długość (w oktetach ) adresu sprzętowego. Długość adresu Ethernet wynosi 6.
Długość protokołu (PLEN)
Długość (w oktetach) adresów intersieci. Protokół intersieci jest określony w PTYPE. Przykład: długość adresu IPv4 to 4.
Operacja
Określa operację, którą wykonuje nadawca: 1 dla żądania, 2 dla odpowiedzi.
Adres sprzętowy nadawcy (SHA)
Adres medialny nadawcy. W żądaniu ARP to pole służy do wskazania adresu hosta wysyłającego żądanie. W odpowiedzi ARP to pole jest używane do wskazania adresu hosta, którego szukało żądanie.
Adres protokołu nadawcy (SPA)
Adres internetowy nadawcy.
Docelowy adres sprzętowy (THA)
Adres medialny zamierzonego odbiorcy. W żądaniu ARP to pole jest ignorowane. W odpowiedzi ARP to pole jest używane do wskazania adresu hosta, który wysłał żądanie ARP.
Adres protokołu docelowego (TPA)
Adres sieciowy docelowego odbiorcy.

Wartości parametrów protokołu ARP zostały ustandaryzowane i są utrzymywane przez Internet Assigned Numbers Authority (IANA).

EtherType dla ARP jest 0x0806. Pojawia się w nagłówku ramki Ethernet, gdy ładunek jest pakietem ARP i nie należy go mylić z PTYPE, który pojawia się w tym hermetyzowanym pakiecie ARP.

Przykład

Dwa komputery w biurze (Komputer 1 i Komputer 2) są połączone ze sobą w sieci lokalnej za pomocą kabli Ethernet i przełączników sieciowych , bez pośredniczących bram i routerów . Komputer 1 ma pakiet do wysłania do komputera 2. Poprzez DNS ustala, że ​​komputer 2 ma adres IP 192.168.0.55.

Do wysłania wiadomości potrzebny jest również adres MAC komputera 2 . Po pierwsze, komputer 1 używa buforowanej tabeli ARP do wyszukania 192.168.0.55 wszelkich istniejących rekordów adresu MAC komputera 2 (00:eb:24:b2:05:ac). Jeśli adres MAC zostanie znaleziony, wysyła ramkę Ethernet z adresem docelowym 00:eb:24:b2:05:ac, zawierającą pakiet IP na łącze. Jeśli pamięć podręczna nie dała wyniku dla 192.168.0.55, komputer 1 musi wysłać rozgłoszeniowy komunikat żądania ARP (docelowy adres MAC FF:FF:FF:FF:FF:FF), który jest akceptowany przez wszystkie komputery w sieci lokalnej , prosząc o odpowiedź za 192.168.0.55.

Komputer 2 odpowiada wiadomością odpowiedzi ARP zawierającą jego adresy MAC i IP. W ramach realizacji żądania, komputer 2 może wstawić wpis dla komputera 1 do swojej tablicy ARP do wykorzystania w przyszłości.

Komputer 1 odbiera i buforuje informacje odpowiedzi w swojej tabeli ARP i może teraz wysłać pakiet.

Sonda ARP

Sonda ARP jest żądanie ARP skonstruowany, wszystkie zera SPA. Przed rozpoczęciem używania adresu IPv4 (otrzymanego z ręcznej konfiguracji, DHCP lub w inny sposób), host implementujący tę specyfikację musi sprawdzić, czy adres jest już używany, rozgłaszając pakiety sondujące ARP.

Zapowiedzi ARP

ARP może być również używany jako prosty protokół ogłoszeniowy. Jest to przydatne do aktualizowania mapowań adresów sprzętowych innych hostów, gdy zmienia się adres IP lub adres MAC nadawcy. Takie ogłoszenie, zwane również komunikatem nieuzasadnionym ARP (GARP), jest zwykle emitowane jako żądanie ARP zawierające SPA w polu docelowym (TPA=SPA), z THA ustawionym na zero. Alternatywnym sposobem jest rozesłanie odpowiedzi ARP ze zduplikowanymi SHA i SPA nadawcy w polach docelowych (TPA=SPA, THA=SHA).

Zarówno żądanie ARP, jak i anonse odpowiedzi ARP są metodami opartymi na standardach, ale preferowana jest metoda żądania ARP . Niektóre urządzenia mogą być skonfigurowane do korzystania z jednego z tych dwóch typów ogłoszeń.

Ogłoszenie ARP nie ma na celu uzyskania odpowiedzi; zamiast tego aktualizuje wszystkie buforowane wpisy w tabelach ARP innych hostów, które odbierają pakiet. Kod operacji w ogłoszeniu może być żądaniem lub odpowiedzią; standard ARP określa, że ​​kod operacyjny jest przetwarzany dopiero po zaktualizowaniu tabeli ARP z pól adresu.

Wiele systemów operacyjnych wyświetla komunikaty ARP podczas uruchamiania. Pomaga to rozwiązać problemy, które w przeciwnym razie wystąpiłyby, gdyby na przykład karta sieciowa została niedawno zmieniona (zmiana mapowania adresu IP na adres MAC), a inne hosty nadal mają stare mapowanie w swoich pamięciach podręcznych ARP.

Anonse ARP są również używane przez niektóre interfejsy sieciowe w celu zapewnienia równoważenia obciążenia dla ruchu przychodzącego. W zespole kart sieciowych służy do ogłaszania innego adresu MAC w zespole, który powinien odbierać przychodzące pakiety.

Zapowiedzi ARP mogą być używane w protokole Zeroconf , aby umożliwić automatyczne przypisanie lokalnych adresów IP do interfejsu, w którym nie jest dostępna żadna inna konfiguracja adresu IP. Ogłoszenia służą do upewnienia się, że adres wybrany przez hosta nie jest używany przez inne hosty w łączu sieciowym.

Ta funkcja może być niebezpieczna z punktu widzenia cyberbezpieczeństwa, ponieważ atakujący może uzyskać informacje o innych hostach swojej podsieci, aby zapisać w swojej pamięci podręcznej ARP ( ARP spoofing ) wpis, w którym adres MAC atakującego jest powiązany, na przykład z domyślnym adresem IP Gateway , dzięki czemu może przechwycić cały ruch do sieci zewnętrznych.

Mediacja ARP

Mediacja ARP odnosi się do procesu rozwiązywania adresów warstwy 2 za pośrednictwem wirtualnej prywatnej usługi przewodowej (VPWS), gdy w połączonych obwodach używane są różne protokoły rozdzielczości, np. Ethernet z jednej strony i Frame Relay z drugiej. W IPv4 każde urządzenie brzegowe dostawcy (PE) wykrywa adres IP lokalnie podłączonego urządzenia brzegowego klienta (CE) i dystrybuuje ten adres IP do odpowiedniego zdalnego urządzenia PE. Następnie każde urządzenie PE odpowiada na lokalne żądania ARP, używając adresu IP zdalnego urządzenia CE i adresu sprzętowego lokalnego urządzenia PE. W IPv6 każde urządzenie PE wykrywa adres IP zarówno lokalnych, jak i zdalnych urządzeń CE, a następnie przechwytuje lokalne pakiety Neighbor Discovery (ND) i Inverse Neighbor Discovery (IND) oraz przekazuje je do zdalnego urządzenia PE.

Odwrotny ARP i Odwrócony ARP

Inverse Address Resolution Protocol ( Inverse ARP lub InARP ) jest używany do uzyskiwania adresów warstwy sieci (na przykład adresów IP ) innych węzłów z adresów warstwy łącza danych (warstwa 2). Ponieważ ARP tłumaczy adresy warstwy 3 na adresy warstwy 2, InARP można opisać jako jego odwrotność. Ponadto InARP jest zaimplementowany jako rozszerzenie protokołu ARP: wykorzystuje ten sam format pakietu co ARP, ale inne kody operacyjne.

InARP jest używany głównie w sieciach Frame Relay ( DLCI ) i ATM, w których adresy obwodów wirtualnych warstwy 2 są czasami uzyskiwane z sygnalizacji warstwy 2, a odpowiednie adresy warstwy 3 muszą być dostępne przed użyciem tych obwodów wirtualnych.

Protokół Reverse Address Resolution Protocol (Reverse ARP lub RARP), podobnie jak InARP, tłumaczy adresy warstwy 2 na adresy warstwy 3. Jednak w InARP stacja żądająca pyta o adres warstwy 3 innego węzła, podczas gdy RARP jest używany do uzyskania adresu warstwy 3 samej stacji żądającej dla celów konfiguracji adresu. RARP jest przestarzały; został zastąpiony przez BOOTP , który później został zastąpiony przez protokół dynamicznej konfiguracji hosta (DHCP).

Spoofing ARP i proxy ARP

Udany atak typu ARP spoofing umożliwia atakującemu przeprowadzenie ataku typu man-in-the-middle .

Ponieważ ARP nie zapewnia metod uwierzytelniania odpowiedzi ARP w sieci, odpowiedzi ARP mogą pochodzić z systemów innych niż ten z wymaganym adresem warstwy 2. Proxy ARP to system, który odpowiada na żądanie ARP w imieniu innego systemu, dla którego będzie przekazywał ruch, zwykle jako część projektu sieci, na przykład w przypadku usługi internetowej dialup. W przeciwieństwie do tego, w ARP spoofing system zgłoszeniowy lub spoofer odpowiada na żądanie adresu innego systemu w celu przechwycenia danych związanych z tym systemem. Złośliwy użytkownik może użyć spoofingu ARP, aby przeprowadzić atak typu „ man-in-the-middle” lub atak typu „odmowa usługi” na innych użytkowników w sieci. Istnieje wiele programów służących zarówno do wykrywania, jak i przeprowadzania ataków typu ARP spoofing, chociaż sam ARP nie zapewnia żadnych metod ochrony przed takimi atakami.

Alternatywy

IPv6 używa protokołu Neighbor Discovery Protocol i jego rozszerzeń, takich jak Secure Neighbor Discovery , a nie ARP.

Komputery mogą utrzymywać listy znanych adresów, zamiast używać aktywnego protokołu. W tym modelu każdy komputer utrzymuje bazę danych mapowania adresów warstwy 3 (np. adresów IP ) na adresy warstwy 2 (np. adresy MAC w sieci Ethernet ). Dane te są utrzymywane głównie poprzez interpretację pakietów ARP z łącza sieci lokalnej. Dlatego często nazywa się to pamięcią podręczną ARP . Co najmniej od lat 80. komputery w sieci mają narzędzie o nazwie arp do odpytywania lub manipulowania tą bazą danych.

W przeszłości do obsługi mapowania adresów stosowano inne metody, takie jak statyczne pliki konfiguracyjne lub centralnie utrzymywane listy.

Farsz ARP

Systemy wbudowane, takie jak kamery sieciowe i sieciowe urządzenia dystrybucji zasilania, które nie mają interfejsu użytkownika, mogą używać tak zwanego wypełniania ARP do nawiązania początkowego połączenia sieciowego, chociaż jest to myląca nazwa, ponieważ ARP nie jest zaangażowany.

Farsz ARP wykonuje się w następujący sposób:

  1. Komputer użytkownika ma adres IP wpisany ręcznie do swojej tabeli adresów (zwykle za pomocą polecenia arp z adresem MAC pobranym z etykiety na urządzeniu)
  2. Komputer wysyła do urządzenia specjalne pakiety, zazwyczaj pakiet ping o rozmiarze innym niż domyślny.
  3. Urządzenie następnie przyjmuje ten adres IP
  4. Następnie użytkownik komunikuje się z nim przez telnet lub protokoły sieciowe , aby zakończyć konfigurację.

Takie urządzenia zazwyczaj mają metodę wyłączania tego procesu, gdy urządzenie działa normalnie, ponieważ ta możliwość może narazić je na atak.

Dokumenty normatywne

  • RFC  826 — protokół rozpoznawania adresów Ethernet, standard internetowy STD 37.
  • RFC  903 — protokół odwrotnego rozpoznawania adresów, standard internetowy STD 38.
  • RFC  2390 — Inverse Address Resolution Protocol, projekt standardu
  • RFC  5227 — wykrywanie konfliktów adresów IPv4, proponowany standard

Zobacz też

Bibliografia

Zewnętrzne linki