Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 11 - Sítě - Address Resolution Protocol

V minulé lekci, Sítě - Ethernet a rozbočovače, jsme se dozvěděli, jak spolu mohou komunikovat zařízení v lokální síti (LAN). Podívali se blíže na strukturu rámce a vybrané síťové prvky.

Dosud jsem nezmínil, že pro komunikaci přes internet potřebujete kromě MAC adresy také přidělenou IP adresu. Dále řeknu něco o ARP protokolu, pomocí něhož si PC může podle IP adresy vyžádat MAC adresu daného zařízení. Ale nejprve - co jsou to ty IP adresy:

IP adresa

IP adresa je 32-bitové číslo, které slouží jako adresa (identifikátor) pro dané zařízení. Pěkné přirovnání je číslo popisné a orientační. MAC adresa je popisné číslo, IP adresa orientační. Kromě toho můžeme mít ještě jméno zařízení (hostname), o tom ale až v budoucnu, když budeme řešit DNS.

IP adresa se zapisuje jako čtyři osmibitové bloky (oktety) oddělené tečkou – binární zápis se převádí na decimální čísla. Příklady: 192.168.20.3 nebo 10.211.6.90.

Od MAC adresy se liší tím, že ji můžeme snadno přiřadit nebo odebrat jakékoliv NIC. Možná zní ta definice zmateně – vždyť už máme MAC adresu, která identifikuje daný stroj. Na co tedy IP adresy?

Zaprvé – pokud má zařízení IP adresu, může procházet přes router – a připojit se tedy na internet.

Zadruhé – jak jsem říkal, IP adresy můžeme snadno přiřazovat a odebírat. Představte si, že doma vyměníte tiskárnu. Kdyby PC komunikovaly pouze přes MAC adresy, tak musíte každý s PC na síti překonfigurovat, že MAC adresa tiskárny už není ABCD, ale EFGH. Protože komunikujeme pomocí IP adres, tak stačí připojit novou tiskárnu, a dát jí stejnou IP adresu, jako měla stará. Novou MAC adresu si počítače automaticky zjistí právě pomocí ARP.

Už jsem zmínil, že ke spojení zařízení ve skutečnosti potřebujeme MAC adresu i IP adresu. MAC adresu proto, že všechna data nese Ethernetový rámec, a pomocí MAC adres switch rámce přesměrovává na správná zařízení.

A IP adresu proto, že zařízení vysílají pomocí IP adres (tzn. PC dokáže formovat příkaz pro NIC tak, aby poslala data na IP adresu). Jenomže NIC potřebuje MAC adresu cílového zařízení, aby mohla sestavit samotný Ethernetový rámec a poslat jej. Jak se tedy provádí tento překlad IP adresy na MAC adresu?

Address Resolution Protocol – ARP

Protokol ARP specifikuje věci týkající překladu IP adres na MAC adresy. Základem je ARP cache:

ARP cache

Každé zařízení má v paměti své NIC tabulku s IP adresami přiřazeným k MAC adresám.

192.168.2.1 --> E5:25:35:AD:C6:78
192.168.2.18 --> 3D:45:11:FE:F4:09
192.168.2.9 --> 90:01:23:E4:A2:47
192.168.2.3 --> 10:12:AC:C4:67:2E

Poslat něco na adresu 192.168.2.18 tedy znamená seskládat Ethernetový rámec s cílovou MAC 3D:45:11:FE:F4:09. Podle této MAC adresy je rámec ve Switchi přesměrován na správný PC.

Představme si, že jsme administrátor sítě se dvěma počítači, jednou tiskárnou, a jedním routerem. Aby PC spolu mohli např. sdílet soubory, nebo tisknout a připojit se na internet, musíme všechny 4 zařízení obejít, a dát jim IP adresy (v realitě je tohle automatizované, dělá to DHCP server, tohle jen pro jednoduchost). Naše síť bude tedy vypadat takto:

ARP network - Základy sítí

Pokud vidíte v IP adresách nějakou pravidelnost, vidíte správně – IP adresy nejsou přidělovány jen tak náhodně, a můžete z nich vyčíst spoustu informací. Jinak, diagram i s IP adresami je reálný příklad (konkrétně mojí) sítě. Switch IP adresu nedostane, protože jenom přeposílá rámce – pro komunikující zařízení je de facto transparentní (nevědí, že mezi nimi nějaký switch je).

ARP cache všech zařízení je na začátku prázdná (buď mohou být nová, nebo je cache resetovaná). Nyní nastane případ, že z PC1 potřebujeme tisknout – takže budeme posílat pakety na 192.168.4.3. Na to potřebujeme zjistit MAC adresu tiskárny. Pošleme tedy dotaz všem zařízením na síti: „Jaká NIC má IP adresu 192.168.4.3 ?“ Odpoví nám tiskárna – pošle svoji MAC adresu. PC1 si ji zapíše do ARP cache, a poté může posílat rámce s příkazy k tisku.

Rámec pro všechna zařízení na síti – ethernetový broadcast

Odpovědí na otázku „Jak pošleme rámec všem zařízením na síti?“ je broadcast – to znamená rozeslání informace všem dostupným zařízením. V Ethernetu je pro tento účel vyhrazená broadcastová MAC adresa, jejíž všechny bity mají hodnotu jedna. Hexadecimální zápis je tedy ff:ff:ff:ff:f­f:ff.

Pokud tedy chceme poslat něco všem na síti, musí NIC sestavit rámec s touto cílovou MAC adresou. Rámec odešleme na switch, ten jej proskenuje a zjistí, že rámec je broadcastový a rozešle jej na všechny aktivní porty (porty, kde jsou připojena nějaká zařízení). Každé zařízení, co obdrží takový rámec, jej přijme a zpracuje dále -> v tomto případě zjistí, že je to rámec s ARP dotazem na IP adresu 192.168.4.3. Takže router a PC2 rámec po tomto kroku zahodí, tiskárna sestaví ARP odpověď, přiloží svou MAC adresu, a pošle rámec na PC1.

ARP paket

Asi vám už došlo, že ARP dotaz a ARP odpověď je pouze balík dat (neboli přesně proud bitů), který v Ethernetovém rámci přijde do pole Data. Pro označení takového balíku dat (ať už request nebo response) máme termín ARP paket.

A zde se také vracíme k poli Ether type (viz minulý díl). Pokud je hodnota v tomto poli menší než 1500, pak určuje délku pole Data v bytech (poněvadž toto pole nemá být delší než 1500 bytů). Pokud je větší, pak se jedná o označení typu paketu, který je nesen rámcem – např. IP paket nebo právě ARP paket. Které hodnoty přísluší kterým typům (protokolům) spravuje opět IETF. ARP protokol má přiřazenou hodnotu 2054 (další hodnoty najdete třeba na Wikipedii).

V tomto případě tedy bude hodnota Ether type sloužit jako informace pro NIC, že má poslat data v rámci pro další zpracování jako ARP paket.

Struktura ARP paketu

ARP struktura paketu - Základy sítí

Použil jsem celkem nesrozumitelné jména polí, která však vystihují jejich význam - inženýři v IETF nevymysleli ARP protokol jenom pro překlad MAC na IP – dá se použít pro překlad jakékoliv „HW adresy“ (pevně zakódovaná v NIC) na nějakou jinou adresu než je IP.

Význam jednotlivých polí polopaticky:

Protokol linkové vrstvy [2 byty]

Říká nám typ rámce (jakým protokolem sestavuje NIC rámce), a tím pádem i adresu (která se označuje jako Hardwarová adresa), na kterou se ptáme – v našem případě to bude MAC adresa a Ethernet, pro který je tato hodnota 1.

Protokol síťové vrstvy [2 byty]

Typ adresy (jejího protokolu), podle které nám má její vlastník sdělit svou HW adresu. Náš případ: Cílové zařízení nám má poslat MAC adresu podle svojí IP adresy – tedy IP protokol. Mimochodem, hodnoty se berou ze seznamu pro pole Ether type. Hodnota pro IP protokol je 2048.

Délka adresy protokolu linkové vrstvy [1 bajt]

Specifikuje délku HW adresy v bytech (ta je v šestém poli ARP paketu). Ethernetová MAC adresa je 6 bytů dlouhá => hodnota bude 6.

Délka adresy protokolu síťové vrstvy [1 bajt]

Specifikuje délku adresy (opět v bytech), pomocí které se tážeme (viz sedmé pole ARP paketu) – my se tážeme IP adresou, v poli tedy bude 4.

Operace [2 byty]

Odtud se dozvíme, zda se jedná o request (hodnota 1) nebo o reply (hodnota 2).

HW adresa odesílatele & Protokolová adresa odesílatele

V těchto polích bude MAC a IP adresa odesílajícího zařízení (v případě requestu toho PC, který se dotazuje; v případě response toho PC, který odpovídá). Důvodem je optimalizace – jakmile PC obdrží ARP request, zapíše si IP a MAC z těchto polí do vlastní ARP cache.

HW adresa příjemce

V ARP requestu je toto pole vynechané – protože na tuto adresu se teprve ptáme (ARP request je tedy kratší než response). V ARP response je zde MAC toho zařízení, které posílalo ARP request.

Protokolová adresa příjemce

V requestu je to IP adresa, ke které chceme získat MAC. V response je to opět IP adresa toho, kdo poslal ARP request.

Na závěr by neuškodila simulace

Máme PC a router propojené pomocí switche. MAC adresy jsou pro jednoduchost zkrácené.

Simulace ARP - Základy sítí

PC se potřebuje připojit k internetu – potřebuje tedy MAC adresu routeru. PC tedy vysílá ARP request do sítě, a ptá se na MAC adresu zařízení 192.168.2.1 (tato adresa je v PC nastavená jako default gateway):

ARP request - Základy sítí

Router přijme rámec a podívá se do Ether type. Vidí, že rámec nese ARP paket. Podívá se tedy do něj a zjistí, že je to request žádající jeho adresu. Nyní si jako optimalizační krok zapíše do své ARP cache údaje o PC (XYC --- > 192.168.2.3). Poté odešle ARP response:

ARP response - Základy sítí

PC response přijme, a do své ARP cache si zapíše údaje o routeru (ABZ --- > 192.168.2.1). Nyní může posílat rámce s dotazy na webové stránky přímo na router.

To je k ARP protokolu vše.

V příští lekci, Sítě - Internet a směrování dat, si povíme co je to Internet a jaká je jeho struktura. Dále se podíváme na přidělování IP adres a routování.


 

Předchozí článek
Sítě - Ethernet a rozbočovače
Všechny články v sekci
Základy sítí
Přeskočit článek
(nedoporučujeme)
Sítě - Internet a směrování dat
Článek pro vás napsal Neaktivní uživatel
Avatar
Uživatelské hodnocení:
253 hlasů
Tento uživatelský účet již není aktivní na základě žádosti jeho majitele.
Aktivity