Address Resolution Protocol

Address Resolution Protocol (zkratka ARP) označuje v informatice název služebního protokolu v počítačových sítích. Protokol ARP slouží v rodině TCP/IP k získání linkové adresy síťového rozhraní protistrany ve stejné podsíti pomocí známé IP adresy (např. v Ethernetu je získána tzv. MAC adresa). Protokol ARP je pro IPv4 definován v RFC 826. Novější protokol IPv6 používá místo ARP podobný protokol NDP (anglicky Neighbor Discovery Protocol).

Charakteristika

ARP je používán v situaci, kdy je třeba odeslat IP datagram na adresu ležící ve stejné podsíti jako odesílatel. Data se tedy mají poslat přímo adresátovi, u něhož však odesílatel zná pouze IP adresu. Pro odeslání prostřednictvím např. Ethernetu ale potřebuje znát cílovou ethernetovou adresu.

Proto vysílající odešle ARP dotaz (ARP request) obsahující hledanou IP adresu a údaje o sobě (vlastní IP adresu a MAC adresu). Tento dotaz se posílá linkovým broadcastem – na MAC adresu identifikující všechny účastníky dané lokální sítě (v případě Ethernetu na ff:ff:ff:ff:ff:ff). ARP dotaz nepřekročí hranice dané podsítě, ale všechna k ní připojená zařízení dotaz obdrží a jako optimalizační krok si zapíší údaje o jeho odesilateli (IP adresu a odpovídající MAC adresu) do své ARP cache. Vlastník hledané IP adresy pak odešle tazateli ARP odpověď (ARP reply) obsahující vlastní IP adresu a MAC adresu. Tu si tazatel zapíše do ARP cache a může odeslat datagram.

Informace o MAC adresách odpovídajících jednotlivým IP adresám se ukládají do ARP cache, kde jsou uloženy do vypršení své platnosti. Není tedy třeba hledat MAC adresu před odesláním každého datagramu – jednou získaná informace se využívá opakovaně. V řadě operačních systémů (Linux, Windows) lze obsah ARP cache zobrazit a ovlivňovat příkazem arp.

Alternativou pro počítač bez ARP protokolu je používat tabulku přiřazení MAC adres IP adresám definovanou jiným způsobem, například pevně konfigurovanou. Tento přístup se používá především v prostředí se zvýšenými nároky na bezpečnost, protože v ARP se dá podvádět – místo skutečného vlastníka hledané IP adresy může odpovědět někdo jiný a stáhnout tak k sobě data pro něj určená.

Ačkoliv se ARP v praxi používá téměř výhradně pro překlad IP adres na MAC adresy, nebyl původně vytvořen pouze pro IP sítě. ARP se může použít pro překlad MAC adres mnoha různých protokolů na síťové vrstvě. ARP byl také uzpůsoben tak, aby vyhodnocoval jiné typy adres fyzické vrstvy: například ATMARP se používá k vyhodnocení ATM NSAP adres v protokolu Classical IP over ATM.

Přiřazování MAC adresy k IP adrese

  • ARP
    • známe cílovou IP adresu, zjišťujeme MAC, abychom mohli IP paket umístit do ethernetového rámce (linková vrstva) a odeslat
    • vytváří ARP tabulku, MAC↔IP
    • 1 MAC může mít více IP adres
    • vytváří dynamický záznam (dynamické záznamy mají omezenou životnost – sekundy až desítky minut)
  • Proxy ARP
    • router se při ARP odpovědích vydává za PC, které leží za ním
    • vytvoření 1 logickou podsíť z více fyzických sítí
  • RARP (Reverzní ARP)
    • známe svoji MAC, ale neznáme svoji IP adresu
    • pro konfiguraci bezdiskových stanic → dnes DHCP (Dynamic Host Configuration Protocol)
    • umí předat jen IP → omezené možnosti
    • v síti je server se statickou ARP tabulkou
    • následník BootP, zpětně nekompatibilní
    • dynamické konfigurace stanic pro TCP/IP
    • server přiděluje:
      • a) staticky - dle MAC přidělí IP
      • b) dynamicky - stanice dostanou volnou IP z definovaného rozsahu
    • stanice si „pronájem“ obnovují podle požadovaného serveru → evidence aktivních stanic
    • stanice požádá pomocí broadcastu (se svojí MAC), server odpoví

Operační rámec

ARP je protokol se systémem dotaz–odpověď, který je zapouzdřen linkovým protokolem. Jde tedy o komunikaci uvnitř hranic jednotlivých podsítí (síťových systémů) a nikdy nepřekračuje hranice podsítě (tj. standardně není předáván skrze router). Tato vlastnost umísťuje ARP do linkové vrstvy v Internet Protocolu, zatímco v otevřeném propojeném OSI modelu je často charakterizován jako část mezi vrstvami 2 a 3, která je zapouzdřena ve druhé vrstvě OSI. Protokol ARP nebyl v rámcovém modelu OSI zpracován.

Struktura paketu

ARP používá jednoduše formátované zprávy, které obsahují jeden dotaz nebo jednu odpověď. Velikost ARP zpráv závisí na vyšších a nižších vrstvách konkrétně použité infrastruktury a odpovídá typu použitého síťového protokolu (což je obvykle IPv4 nebo IPv6) spolu s použitým typem hardwaru či virtuální linkové vrstvy. Hlavička zpráv určuje tyto typy a formát jednotlivých adres. Hlavička zpráv je pak kompletní díky kódu operace pro dotaz (1) a odpověď (2). Nosnost tohoto paketu se skládá ze čtyř adres, hardwaru a protokolu a adres odesílatele a příjemce. 

Struktura ARP datagramu je naznačena v následující tabulce spolu s ilustracemi pro případ IPv4, které používá Ethernet. V tomto případě má paket 48bitových polí pro odesílatele hardwarové adresy (SHA) a cílové hardwarové adresy (THA), 32bitové pole pro korespondenci mezi odesílatelem a cílovou protokolovou adresou (SPA a TPA). V tomto případě je ARP paket ve formátu 28 bitů. Ethernetový typ pro ARP je 0x0806.

Internet Protocol (IPv4) over Ethernet ARP packet
octet offset01
0Hardwarový typ (HTYPE)
2Protokolový typ (PTYPE)
4Hardwarová délka

(HLEN)

Protokolová délka

(PLEN)

6Operace(OPER)
8Odesílatel hardwarové adresy (SHA) (první 2 byty)
10(další 2 byty)
12(poslední 2 byty)
14Odesílatel protokolové adresy (SPA) (první 2 byty)
16(poslední 2 byty)
18Cílová hardwarová adresa (THA) (první 2 byty)
20(další 2 byty)
22(poslední 2 byty)
24Cílová protokolová adresa (TPA) (první 2 byty)
26(poslední 2 byty)


Hardwarový typ (HTYPE)

Tato oblast specifikuje systémový protokolový typ. Příklad: Ethernet je 1.

Protokolový typ (PTYPE)

Tato oblast specifikuje vnitřní systémový protokol, na který je žádost ARP zaměřena. Pro IPv4 to má hodnotu 0x0800. Povolený PTYPE hodnot sdílí číselný úsek s těmi pro typ Ether.[1][2][3]

Hardwarová délka (HLEN)

Délka hardwarové adresy Ethernetových adres je 6.

Protokolová délka (PLEN)

Délka adres užívaných v horních vrstvách protokolu. (Horní vrstva protokolu je specifikována  v PTYPE.) IPv4 adresový formát je 4.

Operace

Specifikuje operaci, kterou odesílatel provádí: 1 pro žádost, 2 pro odpověď.

Odesílatel hardwarové adresy (SHA)

Mediální adresa odesílatele. V ARP je žádost tohoto paketu užita pro značení adresy zaslané žádosti hostitelem. V ARP odpovědi je tento paket užit k označení adresy hostitele, kterou žádost hledala. (Ne vždy adresa hostitele odpovídá jako v tomto případě virtuálních medií.) Přepínače v učení MAC adres neberou zřetel na tuto oblast.

Odesílatel protokolové adresy (SPA)

Vnitřní síťové adresy odesílatele.

Cílová hardwarová adresa (THA)

Mediální adresa požadovaného přijímače. V ARP je žádost této adresy ignorována. V ARP je odpověď této oblasti užita k označení adresy hostitele, kterou vyvolala žádost ARP.

Cílová protokolová adresa (TPA)

Vnitřní adresa požadovaného přijímače. ARP protokolové parametrové hodnoty byly standardizovány a jsou udržovány autority pro přidělování čísel na internetu.

Příklad

Na příklad počítače Matterhorn a Washington jsou navzájem propojeny v LAN pomocí Ethernetových kabelů a switchem, není zde žádná gateway nebo router. Když chce uživatel poslat z počítače Matterhorn paket do počítače Washington, použije doménové jméno (tj. např. ping washington). Nejprve je nutné zjistit IP adresu počítače Washington pomocí DNS (což je řekněme 192.168.0.55). Aby dotaz na DNS server odeslal, potřebuje znát MAC adresu počítače Washington. Počítač Matterhorn použije MAC adresu z ARP tabulky (ARP cache), kde vyhledá existující záznam s MAC adresou pro IP adresu 192.168.0.55 pomocí které zjistí Washingtonovu MAC adresu (00:eb:24:b2:05:ac). Když je MAC adresa nalezena, pošle zabalený IP paket v linkovém rámci (2. vrstva) na adresu 00.eb:24:b2:05.ac. Pokud se v ARP tabulce nenachází MAC adresa pro 192.168.0.55, musí Matterhorn vyslat linkový broadcast (cíl FF:FF:FF:FF:FF:FF MAC adresa, která je akceptována všemi počítači) požadující odpověď pro 192.168.0.55. Washington odpoví linkovým datagramem (2. vrstva), ale už ne broadcastem ale na konkrétní MAC adresu, kterou obdržel v předchozím broadcastu. Washington si může záznam pro Matterhorn uložit do jeho vlastní ARP tabulky pro budoucí použití. Odpověď je uložena ve vyrovnávací paměti (cache) v ARP tabulce počítače Matterhorn a zpráva tak může být odeslána.[4]

Související články

Externí odkazy

Reference

  1. IANA ARP - "Protocol Type"
  2. IANA - Ethertype values. www.iana.org [online]. [cit. 2014-09-11]. Dostupné v archivu pořízeném dne 2012-06-15. 
  3. RFC 5342
  4. Chappell, Laura A. and Tittel, Ed. Guide to TCP/IP, Third Edition. Thomson Course Technology, 2007, pp. 115-116.