Address Resolution Protocol

Address Resolution Protocol (ARP) se vpočítačových sítích s IP protokolem používá 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é ARPcache. 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ů (LinuxWindows) 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ů nasíťové vrstvě. ARP byl také uzpůsoben tak, aby vyhodnocoval jiné typy adres fyzické vrstvy: například ATMARP se používá k vyhodnocení ATMNSAP adres v protokolu Classical IP over ATM.

·         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í