ARP

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 10. února 2022; kontroly vyžadují 6 úprav .
ARP
název Protokol pro rozlišení adres
Úroveň (podle modelu OSI ) odvedeny
Rodina TCP/IP
Vytvořeno v 1982
Port/ID 0x0806/ Ethernet
Účel protokolu Převod síťových adres na adresy kanálů
Specifikace RFC 826
Hlavní implementace (klienti) implementace zásobníku TCP/IP v systémech Microsoft Windows , Linux a BSD
Implementace jádra ( servery ) implementace TCP/IP stacku ve Windows , Linuxu a BSD
 Mediální soubory na Wikimedia Commons

ARP ( Eng.  Address Resolution Protocol  - address Determination Protocol) je protokol v počítačových sítích určený k určení MAC adresy jiného počítače podle známé IP adresy .

Popis protokolu byl publikován v listopadu 1982 v RFC 826 . ARP byl navržen pro přenos IP paketů přes ethernetové pakety (rámce). Princip zjišťování hardwarové adresy cílového hostitele, používaný v ARP, byl pak využit i v jiných typech sítí.

ARP se nejvíce rozšířilo díky všudypřítomnosti IP sítí postavených na Ethernetu, protože téměř vždy používají ARP. ARP neexistuje v rodině protokolů IPv6 , jeho funkce jsou přiřazeny ICMPv6 .

Popis

Zvažte podstatu fungování ARP na jednoduchém příkladu. Počítač A (IP adresa 10.0.0.1) a počítač B (IP adresa 10.22.22.2) jsou propojeny sítí Ethernet . Počítač A chce poslat datový paket do počítače B, IP adresa počítače B je mu známa. Síť Ethernet, ke které jsou připojeni, však nefunguje s adresami IP. Počítač A proto potřebuje znát adresu počítače B v ethernetové síti ( MAC adresu v ethernetových termínech), aby mohl vysílat přes ethernet. Pro tento úkol se používá protokol ARP. V rámci tohoto protokolu odešle počítač A požadavek na vysílání adresovaný všem počítačům ve stejné doméně vysílání . Podstata požadavku: "počítač s IP adresou 10.22.22.2, sdělte svou MAC adresu počítači s MAC adresou (např. a0:ea:d1:11:f1:01)". Ethernetová síť doručí tento požadavek všem zařízením na stejném ethernetovém segmentu, včetně počítače B. Počítač B odpoví počítači A s požadavkem a oznámí svou MAC adresu (např. 00:ea:d1:11:f1:11). Po obdržení MAC adresy počítače B na něj počítač A může posílat jakákoli data prostřednictvím sítě Ethernet.

Existují následující typy ARP zpráv: ARP request ( ARP request ) a ARP response ( ARP response ). Odesílající systém pomocí požadavku ARP požaduje hardwarovou adresu přijímajícího systému, která je součástí odpovědi ARP.

Před předáním paketu síťové vrstvy přes segment Ethernet síťový zásobník zkontroluje mezipaměť ARP, aby zjistil, zda jsou požadované informace o cílovém uzlu již zaregistrovány v jeho tabulce. Pokud v mezipaměti ARP není žádná taková položka, je proveden požadavek na vysílání ARP. Tento požadavek na zařízení v síti má následující význam: "Zná někdo fyzickou adresu zařízení s takovou a takovou IP adresou?" Když hostitel s touto IP adresou obdrží takovýto paket požadavku, musí odpovědět: "Ano, toto je moje IP adresa a moje hardwarová adresa je taková a taková." Poté odesílatel požadavku uloží hardwarovou adresu příjemce do své mezipaměti ARP a bude moci adresovat informace příjemci.

Níže je uveden příklad požadavku a odpovědi ARP. < viz v dolní části stránky>

Záznamy v mezipaměti ARP mohou být statické nebo dynamické. Výše uvedený příklad popisuje záznam dynamické mezipaměti. V tabulce můžete také vytvořit statické položky. Ve většině operačních systémů to lze provést příkazem:

arp -s <IP-адрес> <MAC-адрес>

V systému Windows Server 2003 zůstávají dynamicky vytvořené položky tabulky ARP v mezipaměti po dobu 2 minut. Pokud během těchto dvou minut došlo k opětovnému přenosu dat na tuto adresu, pak se doba uložení záznamu do cache prodlužuje o další 2 minuty. Tento postup lze opakovat několikrát, ale maximální vstup do mezipaměti bude trvat až 10 minut. Poté bude záznam z cache odstraněn a v případě potřeby bude odeslán nový ARP požadavek [1] .

V novějších operačních systémech je doba uchování záznamů v tabulce ARP a způsob ukládání programově volitelný a lze je v případě potřeby změnit.

Varianty protokolu ARP

ARP byl původně vyvinut nejen pro IP, tento protokol lze také použít ke zjištění MAC adres v různých adresách protokolů vrstvy 3 .  ARP bylo také upraveno pro získání dalších (hardwarových) adres 2. vrstvy modelu OSI ( adresy 2. vrstvy ).

Protokoly InARP a ATM ARP se používají v různých zapouzdřeních IP přes ATM popsaných v RFC 1577 ( klasické IP a ARP přes ATM ) [2] .

V současné době se ARP používá hlavně ke spárování IP a MAC adres v ethernetových sítích.

Inverzní ARP

Inverse Address Resolution Protocol , Inverse ARP nebo InARP  je protokol pro získávání adres síťové vrstvy (například IP adres ) jiných pracovních stanic podle jejich adres spojové vrstvy (například DLCI v sítích Frame Relay ). InARP se běžně používá v sítích Frame Relay a ATM .

Srovnání ARP a InARP

ARP převádí adresy síťové vrstvy na adresy spojové vrstvy, zatímco InARP lze považovat za jeho inverzní. InARP je implementován jako rozšíření ARP. Formáty paketů těchto protokolů jsou stejné, liší se pouze operační kódy a pole, která je třeba vyplnit.

RARP

Reverse Address Resolution Protocol , Reverse ARP nebo RARP , podobně jako InARP , převádí adresy spojové vrstvy na adresy síťové vrstvy. Ale RARP se používá k získání logických adres samotných odesílacích stanic, zatímco v protokolu InARP odesílatel zná své vlastní adresy a požaduje logickou adresu jiné stanice. RARP byl opuštěn ve prospěch BOOTP , který byl nahrazen DHCP .

Jak to funguje

  1. Hostitel, který potřebuje namapovat IP adresu na hardwarovou adresu (ethernetová hardwarová adresa, MAC adresa ), vytvoří požadavek ARP s cílovou IP adresou, připojí jej k protokolovému rámci linkové vrstvy a rozešle jej.
  2. Všichni hostitelé v segmentu místní sítě obdrží požadavek ARP a porovnají IP adresu uvedenou v něm se svou vlastní.
  3. Pokud se jeho vlastní IP adresa shoduje s adresou přijatou v požadavku ARP, uzel vygeneruje odpověď ARP, ve které uvede jak svou IP adresu, tak svou hardwarovou adresu, a odešle ji adresovanou na hardwarovou adresu odesílatele požadavku ARP.

Překlad adres se provádí vyhledáním korespondenční tabulky mezi adresami IP a MAC. Tato tabulka, nazývaná ARP tabulka, je uložena v paměti operačního systému a obsahuje záznamy pro každého známého hostitele. Dva sloupce obsahují adresy IP a Ethernet (MAC). Pokud chcete převést IP adresu na MAC, pak ARP tabulka hledá záznam s odpovídající IP adresou.

Příklad zjednodušené tabulky ARP
223.1.2.1 08:00:39:00:2F:C3
223.1.2.3 08:00:5A:21:A7:22
223.1.2.4 08:00:10:99:AC:54

Struktura paketu ARP

Struktura paketů použitá v požadavcích a odpovědích ARP je znázorněna níže. V sítích Ethernet používají tyto pakety EtherType 0x0806 a požadavky se odesílají na vysílanou MAC adresu  - FF:FF:FF:FF:FF:FF. Všimněte si, že ve struktuře paketů zobrazené níže se 32bitová slova běžně používají jako SHA, SPA, THA a TPA – skutečná délka je určena fyzickým zařízením a protokolem.

+ bity 0-7 8-15 16-31
0 Typ hardwaru (HTYPE) Typ protokolu (PTYPE)
32 délka hardwaru (HLEN) Délka protokolu (PLEN) Operace (OPER)
64 Hardwarová adresa odesílatele (SHA)
? Adresa protokolu odesílatele (SPA)
? Cílová hardwarová adresa (THA)
? Cílová adresa protokolu (TPA)
Typ hardwaru (HTYPE) Každý protokol přenosu dat kanálu má své vlastní číslo, které je uloženo v tomto poli. Například Ethernet má číslo 0x0001. Typ protokolu (PTYPE) Kód síťového protokolu. Například pro IPv4 by bylo zapsáno 0x0800. délka hardwaru (HLEN) Délka fyzické adresy v bajtech. Ethernetové adresy jsou dlouhé 6 bajtů (0x06). Délka protokolu (PLEN) Délka logické adresy v bajtech. IPv4 adresy jsou dlouhé 4 bajty (0x04). úkon Operační kód odesílatele: 0x0001 pro požadavek a 0x0002 pro odpověď. Hardwarová adresa odesílatele (SHA) Fyzická adresa odesílatele. Adresa protokolu odesílatele (SPA) Logická adresa odesílatele. Cílová hardwarová adresa (THA) Fyzická adresa příjemce. Na vyžádání není vyžadováno. Cílová adresa protokolu (TPA) Logická adresa příjemce.

Příklad požadavku

Pokud chce hostitel s adresou IPv4 10.10.10.123 a MAC adresou 00:0D:9D:86:59:E2 odeslat paket jinému hostiteli s adresou 10.10.10.140, ale nezná jeho MAC adresu, musí odeslat ARP žádost o vyřešení adresy.

Níže uvedený paket představuje požadavek na vysílání. Pokud je hostitel s IP 10.10.10.140 přítomen v síti a je dosažitelný, přijme tento požadavek ARP a vrátí odpověď.

bity 0-7 8-15 16-31
0 typ hardwaru = 0x0001 typ protokolu = 0x0800
32 Délka hardwaru = 0x06 délka protokolu = 0x04 Operace = 0x0001
64 SHA (prvních 32 bitů) = 0x000D9D86
96 SHA (posledních 16 bitů) = 0x59E2 SPA (prvních 16 bitů) = 0x0A0A
128 SPA (posledních 16 bitů) = 0x0A7B THA (prvních 16 bitů) = 0x0000
160 THA (posledních 32 bitů) = 0x00000000
192 TPA=0x0A0A0A8C

Příklad odpovědi

Ve výše popsané situaci, pokud má uzel s adresou 10.10.10.140 MAC adresu 00:09:58:D8:33:AA, odešle zpět paket znázorněný níže. Všimněte si, že bloky adres odesílatele a příjemce mají nyní změněné hodnoty (odesílatel odpovědi je nyní příjemcem požadavku; příjemcem odpovědi je odesílatel požadavku). Odpověď má také hostitelskou MAC adresu 10.10.10.140 v poli zdrojové fyzické adresy (SHA) a pole THA není prázdné (odpověď jednosměrového vysílání).

Jakýkoli hostitel ve stejné síti jako odesílatel a příjemce také obdrží požadavek (protože se jedná o vysílání) a přidá tak informace o odesílateli do své mezipaměti. Odpověď ARP je směrována pouze na zdroj požadavku ARP, takže odpověď ARP není dostupná pro ostatní hostitele v síti.

+ bity 0-7 8-15 16-31
0 typ hardwaru = 0x0001 typ protokolu = 0x0800
32 Délka hardwaru = 0x06 délka protokolu = 0x04 Operace = 0x0002
64 SHA (prvních 32 bitů) = 0x000958D8
96 SHA (posledních 16 bitů) = 0x33AA SPA (prvních 16 bitů) = 0x0A0A
128 SPA (posledních 16 bitů) = 0x0A8C THA (prvních 16 bitů) = 0x000D
160 THA (posledních 32 bitů) = 0x9D8659E2
192 TPA=0x0A0A0A7B
  • Komentář. Délka polí SHA, SPA, THA, TPA závisí na parametrech Délka hardwaru a Délka protokolu.

ARP cache

Účinnost ARP do značné míry závisí na mezipaměti ARP ( ARP cache ), která je k dispozici na každém hostiteli. Mezipaměť obsahuje tabulku shody mezi adresami MAC a IP sestavenou operačním systémem.

Životnost záznamu mezipaměti je ponechána na uvážení vývojáře. Výchozí hodnota může být od desítek sekund (například 20 sekund) do čtyř hodin ( Cisco IOS ). [3]

Detekce konfliktu adres

ARP lze použít k detekci konfliktů IP adres v místní síti. RFC 5227 definuje formát požadavku sondy ARP s polem SPA s nulou (IP adresa 0.0.0.0). Před přiřazením adresy IP rozhraní MŮŽE hostitel ověřit, že adresu nepoužívá jiný hostitel v segmentu LAN.

Oznámení ARP

ARP Announcement je paket (obvykle požadavek ARP [4] ) obsahující správné SHA a SPA odesílajícího hostitele, přičemž TPA se rovná SPA. Toto není požadavek na povolení, ale požadavek na aktualizaci mezipaměti ARP ostatních hostitelů přijímajících paket.

Většina operačních systémů odesílá takový paket, když je hostitel online, což pomáhá předcházet řadě problémů. Například při výměně síťové karty (když je potřeba aktualizovat asociaci mezi IP a MAC adresami) takový požadavek opraví položky v ARP cache ostatních hostitelů v síti.

Výstrahy ARP se také používají k „zabezpečení“ IP adres v protokolu Zeroconf popsaném v RFC 3927 .

Dobrovolná žádost ARP (Bratuitous ARP)

Speciálním případem ARP požadavku je požadavek na vlastní IP adresu, nazývá se „ Bezúplatný ARP “ (dobrovolný ARP požadavek) [5] .

V takovém požadavku jsou IP adresy odesílatele a příjemce stejné.

Bezplatná ARP se používá pro dva účely [5] :

  1. upozornění sousedních zařízení, že se v segmentu sítě objevila nová IP adresa;
  2. kontrola bezplatnosti IP adresy (zda ji používá jiné zařízení).

Viz také

Poznámky

  1. Zobrazení mezipaměti protokolu ARP (Address Resolution Protocol)  : [ eng. ]  : [ arch. 25. února 2021 ] // MSDN. - 2009. - 8. října.
  2. TCP/IP přes ATM  : [ angl. ]  : [ arch. 9. února 2022 ]. — IBM .
  3. Blog o testování vestavěných systémů: Hodnota časového limitu ARP pro Linux, Windows, Cisco 2960 a DELL Switch . Získáno 8. listopadu 2013. Archivováno z originálu 21. září 2013.
  4. Re: [dhcwg] Bezúplatné ARP v DHCP vs. Koncept IPv4 ACD Archivováno z originálu 12. října 2007.
  5. 12 ZvonDozvon . _

Literatura

  •   RFC 826 :  Protokol pro rozlišení adres
  •   RFC 1577 :  Klasická IP a ARP přes ATM
  •   RFC 2390 :  Inverse Address Resolution Protocol
  •   RFC 5227 :  Detekce konfliktu adres IPv4

Odkazy