Address Resolution Protocol

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Address Resolution Protocol (zkratka ARP) je v počítačových sítích s IP protokolem používán k získání ethernetové MAC adresy sousedního stroje z jeho IP adresy. Používá se v situaci, kdy je třeba odeslat IP datagram na adresu ležící ve stejné podsíti jako odesilatel. Data se tedy mají poslat přímo adresátovi, u něhož však odesilatel 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á.

ARP je definováno v RFC 826. Používá se pouze pro IPv4, novější verze IP protokolu (IPv6) používá podobný mechanismus nazvaný Neighbor Discovery Protocol (NDP, „objevování sousedů“).

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.

Získávání MAC k IP adrese[editovat | editovat zdroj]

  • 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[editovat | editovat zdroj]

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é modelu OSI zpracován.

Struktura packetu[editovat | editovat zdroj]

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 48 bitový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.

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ý protokol adresy (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[editovat | editovat zdroj]

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 Washingtonova MAC adresy (00:eb:24:b2:05:ac). Když je MAC adresa nalezena, pošle zabalený IP paket v úrovňovém rámci 2 přes prostředníka vrstvy na adresu 00.eb:24:b2:05.ac po lokální síti. Pokud rychlá vyrovnávací paměť nevyprodukuje výsledek pro 192.168.0.55, musí Matterhorn poslat celoplošnou ARP zprávu (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í MAC adresou (a její IP). Washington může záznam pro Matterhorn uložit do jeho vlastní tabulky pro budoucí použití. Informační odpověď je uložena v rychlé vyrovnávací paměti (cached) v Matterhornově ARP tabulce a zpráva tak může být odeslána.[4]

ARP průzkum[editovat | editovat zdroj]

Průzkum ARP je sestavená žádost ze všech nulových odesílatelů IP adresy. Termín je použit v IPv4 adrese (Konfliktu Detekce specifikace) (5227). Na začátku, než použijeme IPv4 adresu (pokud byla doručena z ruční konfigurace DHCP). Hostitel, který realizuje tuto specifikaci, musí vše otestovat, aby viděl, zda je adresa použitá vysíláním ARP packetama.[5]

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

  1. IANA ARP - "Protocol Type"
  2. IANA - Ethertype values
  3. RFC 5342
  4. Chappell, Laura A. and Tittel, Ed. Guide to TCP/IP, Third Edition. Thomson Course Technology, 2007, pp. 115-116.
  5. Cheshire, S.. RFC 5227 - IPv4 Address Conflict Detection [online]. Internet Engineering Task Force, July 2008. Dostupné online. (anglicky)