Protokoly ARP, RARP, IP, ICMP. K čemu se ARP používá? ARP: Address Resolution Protocol

Úvod

Problém, který v této kapitole probereme, je ten, že IP adresy mají jakýkoli význam pouze v rodině protokolů TCP/IP. Vrstvy datových spojů jako Ethernet nebo Token ring mají své vlastní schéma adresování (většinou 48bitové adresy); síťové vrstvy zase používají tyto spojové vrstvy. Síť Ethernet může být používána různými vrstvami sítě současně. Počítače používající různé síťové protokoly mohou být na stejném fyzickém kabelu.

Když je ethernetový rámec odeslán z jednoho hostitele v síti LAN do druhého, jeho 48bitová ethernetová adresa určuje, na jaké rozhraní má být doručen. Ovladač síťové karty se nikdy nepodívá na cílovou adresu IP v datagramu IP.

Jinými slovy, existuje potřeba vytvořit korespondenci mezi dvěma různými formami adres: 32bitovými IP adresami a nějakým typem adresy spojové vrstvy. RFC 826 [Plummer 1982] je oficiální specifikace ARP.

Obrázek 4.1 ukazuje dva protokoly, na které se podíváme v této a následující kapitole: protokol pro rozlišení adres (ARP) a protokol pro reverzní rozlišení adres (RARP).

Obrázek 4.1 Protokoly pro určení adresy: ARP a RARP.

ARP poskytuje dynamické mapování mezi IP adresami a odpovídajícími hardwarovými adresami. Termín dynamický používáme proto, že se tak děje automaticky a většinou nezávisí na použitých aplikačních programech ani na vůli správce systému.

RARP je primárně používán systémy bez pevných disků (bezdiskové pracovní stanice nebo X terminály), ale vyžaduje manuální konfiguraci správcem systému. Na RARP se podíváme v .

Zadáme-li příkaz

% ftp bsdi

bude provedena následující sekvence akcí. (Viz obrázek 4.2.)

  1. Aplikace, klient FTP, volá funkci gethostbyname(3), aby převedla název hostitele (bsdi) na 32bitovou IP adresu. Tato funkce v DNS (Domain Name System) se nazývá resolver, podrobně ji popíšeme v. Tato konverze se provádí pomocí DNS nebo, pokud existuje malá síť, pomocí statického souboru hostitelů ( /etc/hosts).
  2. FTP klient vyžaduje navázání TCP spojení se zadanou IP adresou.
  3. TCP odešle požadavek na připojení vzdálenému hostiteli odesláním IP datagramů na zadanou IP adresu. (Podrobněji se podíváme na to, jak se to dělá.)
  4. Pokud je cílový hostitel připojen k síti (Ethernet, Token ring nebo jiný konec spojení typu point-to-point), lze datagram IP odeslat přímo hostiteli. Pokud je cílový hostitel ve vzdálené síti, IP router určí internetovou adresu přímo připojeného dalšího směrovače, na který se má odeslat datagram IP. V obou případech je IP datagram odeslán buď hostiteli nebo routeru připojenému přímo k dané síti.
  5. Pokud je použit Ethernet, musí odesílající hostitel převést 32bitovou adresu na 48bitovou adresu Ethernet. Nebo jinými slovy převést z logické internetové adresy na odpovídající fyzickou hardwarovou adresu. To je to, co dělá ARP. ARP funguje ve vysílacích sítích, kde je ke stejné síti připojeno mnoho hostitelů nebo směrovačů.
  6. ARP odešle ethernetový rámec, nazývaný požadavek ARP, každému hostiteli v síti. Tato distribuční metoda se nazývá požadavek na vysílání. Na obrázku 4.2 je žádost o vysílání zobrazena tečkovanými čarami. Požadavek ARP obsahuje IP adresu cílového hostitele (jehož jméno je bsdi) a požadavek "jste-li vlastníkem této IP adresy, řekněte mi prosím svou hardwarovou adresu."

Obrázek 4.2 Odpověď ARP na uživatelský vstup: název hostitele ftp.

  • Cílový hostitel na úrovni ARP přijme tento požadavek na vysílání, určí, že odesílatel žádá o jeho IP adresu, a odpoví na něj odpovědí ARP. Tato odpověď obsahuje IP adresu a odpovídající hardwarovou adresu.
  • Odpověď ARP je přijata a lze odeslat datagram IP, který inicioval výměnu požadavku ARP a odpovědi ARP.
  • IP datagram je odeslán do cílového hostitele.
  • Základní koncept ARP je následující. Síťové rozhraní má hardwarovou adresu (48bitová hodnota pro Ethernet nebo Token ring). Rámce vyměňované v hardwaru musí být adresovány do správného rozhraní. TCP/IP však používá své vlastní schéma adresování: 32bitové adresy IP. Znalost IP adresy hostitele zabraňuje jádru odeslat datagram tomuto hostiteli. Ethernetový ovladač musí znát hardwarovou adresu cíle, aby tam mohl odesílat data. Úkolem ARP je poskytovat dynamické mapování mezi 32bitovými IP adresami a hardwarovými adresami používanými různými síťovými technologiemi.

    Point-to-point spojení nepoužívají ARP. Když jsou tyto kanály nakonfigurovány (obvykle při bootování), je třeba jádru sdělit IP adresu každého konce kanálu. Hardwarové adresy, jako jsou ethernetové adresy, se v tomto případě nepoužívají.

    Účinnost ARP do značné míry závisí na mezipaměti ARP, která je přítomna na každém hostiteli. Mezipaměť obsahuje internetové adresy a jejich odpovídající hardwarové adresy. Standardní životnost každého záznamu v cache je 20 minut od okamžiku vytvoření záznamu.

    Obsah mezipaměti ARP lze zobrazit pomocí příkazu arp(8). Volba -a zobrazí všechny položky obsažené v mezipaměti:

    bsdi % arp -a
    slunce (140.252.13.33) v 8:0:20:3:f6:42
    svr4 (140.252.13.34) v 0:0:c0:c2:9b:26

    48bitové ethernetové adresy jsou uvedeny jako šest hexadecimálních čísel oddělených dvojtečkami. Další funkce příkazu arp jsou popsány v části Kapitola 4.

    Formát paketů ARP

    Obrázek 4.3 ukazuje formát požadavku ARP a formát odpovědi ARP při použití ethernetových a IP adres. (ARP lze použít v jiných sítích a je schopen porovnat více než jen IP adresy. První čtyři pole za polem typu rámce označují typy a velikosti posledních čtyř polí.)

    Obrázek 4.3 Formát požadavku nebo odpovědi ARP při práci s Ethernetem.

    První dvě pole v hlavičce Ethernetu jsou pole Zdroj a Cíl Ethernetu. Speciální ethernetová cílová adresa sestávající ze všech jedniček znamená broadcast adresu. Rámce s touto adresou budou přijímány všemi ethernetovými rozhraními na kabelu.

    Dvoubajtový typ rámce Ethernet určuje, jaký typ dat bude následovat. U požadavku ARP nebo odpovědi ARP toto pole obsahuje 0x0806.

    Výrazy hardware a protokol se používají k popisu polí v paketech ARP. Například požadavek ARP požaduje hardwarovou adresu (v tomto případě ethernetovou adresu) odpovídající adrese protokolu (v tomto případě IP adrese).

    Pole hard type označuje typ hardwarové adresy. Pro Ethernet je tato hodnota jedna. Typ ochrany určuje typ adresy protokolu, se kterou bude provedena shoda. Pro IP adresy se používá hodnota 0x0800. V zamýšleném účelu tato hodnota odpovídá poli typu v rámci Ethernet, který obsahuje datagram IP. (Viz obrázek 2.1.)

    Další dvě jednobajtová pole, hard size a prot size, udávají velikosti bajtů hardwarové adresy a adresy protokolu. V požadavcích a odpovědích ARP je jich 6 pro Ethernet a 4 pro IP adresy.

    Pole op udává typ operace: požadavek ARP (nastavený na 1), odpověď ARP (2), požadavek RARP (3) a odpověď RARP (4). (O RARP budeme hovořit v .) Toto pole je povinné, protože pole typu rámce jsou stejná pro ARP požadavku a ARP odpovědi.

    Další čtyři pole jsou: zdrojová hardwarová adresa (v tomto příkladu ethernetová adresa), protokolová adresa (IP adresa), cílová hardwarová adresa a cílová adresa protokolu. Upozorňujeme, že v tomto případě dochází k určité duplicitě informací: zdrojovou hardwarovou adresu lze získat jak z ethernetové hlavičky, tak z požadavku ARP.

    U požadavku ARP jsou vyplněna všechna pole kromě cílové hardwarové adresy. Když systém obdrží požadavek ARP, který je pro něj určen, vloží svou hardwarovou adresu, prohodí zdrojovou a cílovou adresu, nastaví pole op na 2 a odešle odpověď.

    Příklady ARP

    V této části použijeme příkaz tcpdump, abychom viděli, jak ARP skutečně funguje při spuštění běžné TCP aplikace, jako je Telnet. Obsahuje další informace o tom, jak tcpdump funguje.

    Typický příklad

    Abychom viděli, jak ARP funguje, spustíme příkaz telnet a připojíme se k zahazovacímu serveru.

    bsdi % arp -a zkontrolujte, zda je mezipaměť ARP prázdná
    bsdi % telnet svr4 zahodit připojit k serveru
    Pokus o 140.252.13.34 ...
    Připojeno k svr4.
    Escape znak je "^]" .
    ^] stiskněte Control a pravou hranatou závorku,
    telnet> přestat obdržíte výzvu Telnet a zavřete relaci
    Připojení uzavřeno.

    Zatímco tyto kroky probíhají, spustíme příkaz tcpdump s volbou -e na jiném hostiteli (sun). To nám umožní podívat se na hardwarové adresy (48bitové ethernetové adresy).


    arp who-has svr4 tell bsdi
    2 0,002174 (0,0022) 0:0:c0:c2:9b:26 0:0:c0:6f:2d:40 arp 60:
    arp reply svr4 is-at 0:0:c0:c2:9b:26
    3 0,002831 (0,0007) 0:0:c0:6f:2d:40 0:0:c0:c2:9b:26 ip 60:
    bsdi.1030>svr4.discard: S 596459521:596459521 (0)
    výhra 4096
    4 0,007834 (0,0050) 0:0:c0:c2:9b:26 0:0:c0:6f:2d:40 ip 60:
    svr4.discard>bsdi.1030: S 3562228252:3562228252 (0)
    ack 596459522 win 4096
    5 0,009615 (0,0018) 0:0:c0:6f:2d:40 0:0:c0:c2:9b:26 ip 60:
    bsdi.1030>svr4.discard: . ack 1 win 4096

    Obrázek 4.4 Požadavek ARP a odpověď ARP generovaná při požadavku na připojení Telnet.

    %D0%A7%D0%B8%D1%81%D0%BB%D0%BE,%20%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D0%BE%D0% B5%20%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%B2% 20%D0%BA%D0%B0%D0%B6%D0%B4%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0% B5,%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%B0 %20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8%20-%20%D1%8D%D1%82%D0%BE%0A%D0%B2% D1%80%D0%B5%D0%BC%D1%8F%20(%D0%B2%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%D0 %B0%D1%85)%20%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0%20%D0%BF%D0%B0%D0%BA%D0%B5%D1% 82%20%D0%B1%D1%8B%D0%BB%20%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82%20%D0%BF%D1% 80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BE%D0%B9%20tcpdump.%20%D0%92%20%D0%BA%D0 %B0%D0%B6%D0%B4%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5%0A%D0%BF %D0%BE%D1%81%D0%BB%D0%B5%20%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%B9%20%D1%81%D0 %BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D1%82%D1%81%D1%8F%20%D1%80%D0%B0%D0%B7%D0 %BD%D0%B8%D1%86%D0%B0%20%D0%B2%D0%BE%20%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD %D0%B8%20(%D0%B2%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%D0%B0%D1%85)%20%D1 %81%20%D0%BF%D1%80%D0%B5%D0%B4%D1%8B%D0%B4%D1%83%D1%89%D0%B5%D0%B9%20%D1%81 %D1%82%D1%80%D0%BE%D0%BA%D0%BE%D0%B9.%0A%D0%AD%D1%82%D0%BE%20%D0%B7%D0%BD% D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D1%80%D0%B8%D0%B2%D0%BE%D0%B4% D0%B8%D1%82%D1%81%D1%8F%20%D0%B2%20%D1%81%D0%BA%D0%BE%D0%B1%D0%BA%D0%B0%D1% 85.%20%D0%9A%D0%B0%D0%BA%20%D0%B2%D0%B8%D0%B4%D0%BD%D0%BE%20%D0%B8%D0%B7%20 %D1%80%D0%B8%D1%81%D1%83%D0%BD%D0%BA%D0%B0,%20%D0%B2%D1%80%D0%B5%D0%BC%D1% 8F%20%D0%BC%D0%B5%D0%B6%D0%B4%D1%83%20%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2% D0%BA%D0%BE%D0%B9%0AARP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%20%D0%B8% 20%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20ARP%20%D0%BE% D1%82%D0%BA%D0%BB%D0%B8%D0%BA%D0%B0%20%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2% D0%BB%D1%8F%D0%B5%D1%82%202,2%20%D0%BC%D1%81.%20%D0%9F%D0%B5%D1%80%D0%B2%D1 %8B %D0%B9%20TCP%20%D1%81%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%0A%D0%BF%D0%BE%D1 %81 %D0%BB%D0%B0%D0%BD%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%200,7%20%D0%BC%D1%81 %20%D0 %BF%D0%BE%D1%81%D0%BB%D0%B5%20%D1%8D%D1%82%D0%BE%D0%B3%D0%BE.%20%D0% A2%D0% B0%D0%BA%D0%B8%D0%BC%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%BC,%20 %D0%B4 %D0%BB%D1%8F%20%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81 %D0%BA %D0%BE%D0%B3%D0%BE%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5 %D0%BD %D0%B8%D1%8F%0A%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0%20%D1%81%20%D0%B8 %D1%81 %D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0 %BC%20ARP ,%20%D0%B2%20%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%20%D0%BF%D1%80%D0% B8%D0% BC%D0%B5%D1%80%D0%B5,%20%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0 %B2%D0 %B0%D0%BB%D0%BE%D1%81%D1%8C%20%D0%BC%D0%B5%D0%BD%D0%B5%D0%B5%20%D1%87 %D0%B5 %D0%BC%203%20%D0%BC%D1%81.

    %D0%98%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%BD%D0 %B0%20%D1%87%D1%82%D0%BE%20%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82%20%D0 %BE%D0%B1%D1%80%D0%B0%D1%82%D0%B8%D1%82%D1%8C%20%D0%B2%D0%BD%D0%B8%D0%BC%D0 %B0%D0%BD%D0%B8%D0%B5%20%D0%B2%20%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B5%20tcpdump:% 20%D0%BC%D1%8B%20%D0%BD%D0%B5%0A%D1%83%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%20ARP%20% D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%20%D0%BE%D1%82%20svr4,%20%D0%BA%D0%BE%D0%B3 %D0%B4%D0%B0%20%D0%BE%D0%BD%20%D0%BF%D0%BE%D1%81%D1%8B%D0%BB%D0%B0%D0%B5%D1 %82%20%D1%81%D0%B2%D0%BE%D0%B9%20%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9%20TCP%20 %D1%81%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%20(%D1%81%D1%82%D1%80%D0%BE%D0% BA%D0%B0%204).%0A%D0%94%D0%B5%D0%BB%D0%BE%20%D0%B2%20%D1%82%D0%BE%D0%BC,%20 %D1%87%D1%82%D0%BE%20svr4%20%D1%83%D0%B6%D0%B5%20%D0%B8%D0%BC%D0%B5%D0%B5%D1%82 %20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BE%20bsdi%20%D0%B2%20%D1%81%D0%B2 %D0%BE%D0%B5%D0%BC%20ARP%20%D0%BA%D1%8D%D1%88%D0%B5,%20%D1%82%D0%B0%D0%BA%20% D0%BA%D0%B0%D0%BA,%20%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0%0A%D1%81%D0%B8%D1%81%D1 %82%D0%B5%D0%BC%D0%B0%20%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D0%B5%D1%82%20ARP %20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81,%20%D0%BF%D0%BE%D0%BC%D0%B8%D0%BC% D0%BE%20%D1%82%D0%BE%D0%B3%D0%BE%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0% 20%D0%BF%D0%BE%D1%81%D1%8B%D0%BB%D0%B0%D0%B5%D1%82%20ARP%20%D0%BE%D1%82%D0%BA% D0%BB%D0%B8%D0%BA,%20%D0%BE%D0%BD%D0%B0%20%D1%82%D0%B0%D0%BA%D0%B6%D0%B5%0A %D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D0%B5%D1%82%20%D0%B0%D0%BF%D0%BF %D0%B0%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D0%B9%20%D0%B0%D0%B4%D1%80%D0%B5%D1%81 %20%D0%B8%20IP%20%D0%B0%D0%B4%D1%80%D0%B5%D1%81%20%D0%B7%D0%B0%D0%BF%D1%80%D0 %BE%D1%81%D0%B8%D0%B2%D1%88%D0%B5%D0%B3%D0%BE%20%D0%B2%20%D1%81%D0%B2%D0%BE %D0%B5%D0%BC%20ARP%20%D0%BA%D1%8D%D1%88%D0%B5.%20%D0%AD%D1%82%D0%BE%0A%D0%BB% D0%BE%D0%B3%D0%B8%D1%87%D0%BD%D0%BE,%20%D1%82%D0%B0%D0%BA%20%D0%BA%D0%B0%D0 %BA%20%D0%B5%D1%81%D0%BB%D0%B8%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B8 %D0%B2%D1%88%D0%B8%D0%B9%20%D1%81%D0%BE%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D1%82 %D1%81%D1%8F%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B0%D1%82%D1%8C%20IP%20%D0%B4%D0%B0 %D1%82%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%83,%20%D1%82%D0%BE%0A%D0%BF% D0%BE%D0%BB%D1%83%D1%87%D0%B8%D0%B2%D1%88%D0%B5%D0%BC%D1%83%20%D1%81%D0%BA% D0%BE%D1%80%D0%B5%D0%B5%20%D0%B2%D1%81%D0%B5%D0%B3%D0%BE%20%D0%BF%D1%80%D0% B8%D0%B4%D0%B5%D1%82%D1%81%D1%8F%20%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0% B8%D1%82%D1%8C%20%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%8D%D1% 82%D1%83%0A%D0%B4%D0%B0%D1%82%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%83.

    %0A%0A

    tentokrát telnet na IP adresu, nikoli na název hostitele
    bsdi % datum ; telnet 140.252.13.36; datum
    So 30. ledna 06:46:33 MST 1993
    Pokus o 140.252.13.36 ...
    telnet: Nelze se připojit ke vzdálenému hostiteli: Časový limit připojení vypršel
    So 30. ledna 06:47:49 MST 1993 Uplynulo 76 sekund

    bsdi % arp -a kontrola mezipaměti ARP
    ? (140.252.13.36) at (neúplné)

    Na obrázku 4.5 vidíme výstup tcpdump.

    1 0,0 arp kdo-má 140.252.13.36 tell bsdi
    2 5.509069 (5.5091) arp kdo-má 140.252.13.36 tell bsdi
    3 29.509745 (24.0007) arp kdo-má 140.252.13.36 tell bsdi

    Obrázek 4.5 Požadavek ARP na neexistujícího hostitele.

    Prozatím neuvádíme volbu -e, protože již víme, že požadavek ARP je požadavek na vysílání.

    Zde je zajímavé vidět, jak často jsou ARP požadavky odesílány: 5,5 sekundy po prvním požadavku a znovu po 24 sekundách. (Na časové limity TCP a algoritmus opakovaného přenosu se podíváme podrobněji v .) Celkový čas zobrazený ve výstupu tcpdump je 29,5 sekund. Výstup z příkazu date před a za příkazem telnet však ukazuje, že požadavek na připojení od klienta Telnet trval 75 sekund. Později uvidíme, že většina implementací BSD nastavuje limit 75 sekund pro dokončení požadavku na připojení TCP.

    Autorizovaný agent ARP

    Agent proxy ARP umožňuje směrovači reagovat na požadavky ARP v jedné síti, zatímco požadovaný hostitel je v jiné síti. Tato technika přiměje odesílatele požadavku ARP, aby si myslel, že směrovač je cílovým hostitelem, i když ve skutečnosti je cílový hostitel „na druhé straně“ směrovače. Směrovač funguje jako autorizovaný agent pro cílového hostitele a přeposílá pakety z jiného hostitele.

    Abychom lépe popsali, jak ARP Authorized Agents fungují, podíváme se na příklad. Z obrázku 3.10 můžete vidět, že sluneční systém je připojen ke dvěma ethernetovým sítím. Ve skutečnosti tomu tak ale není, jak lze vidět, porovnáte-li tento nákres s nákresem na vnitřní straně obálky. Mezi sun a podsítí 140.252.1 je router, který funguje jako autorizovaný agent ARP, ale vypadalo to, jako by sun byl v podsíti 140.252.1. Obrázek 4.6 ukazuje, že Telebit NetBlazer, pojmenovaný netb, se nachází mezi podsítí a hostitelským sluncem.

    Obrázek 4.6 Příklad proxy ARP.

    Když chce nějaký jiný hostitel v podsíti 140.252.1 (řekněme gemini) odeslat IP datagram hostiteli sun na 140.252.1.29, gemini porovná ID sítě (140.252) a ID podsítě (1), a pokud jsou totožné, odešle požadavek ARP na horní Ethernet (na obrázku 4.6) na IP adresu 140.252.1.29. Netb router rozpozná tuto IP adresu jako patřící jednomu z hostitelů vytáčeného připojení a odpoví odesláním hardwarové adresy tohoto ethernetového rozhraní do kabelu 140.252.1. Hostitel gemini odešle IP datagram do netb přes Ethernet a netb odešle datagram do sunu přes vytáčené kanály SLIP. Díky tomu je transparentní pro všechny hostitele v podsíti 140.252.1, protože hostitelské slunce je ve skutečnosti „za“ netb routerem.

    Pokud po komunikaci s hostitelem sun spustíme příkaz arp na hostiteli gemini, uvidíme, že obě tyto adresy patří do podsítě 140.252.1 (netb a sun) a že mají stejnou hardwarovou adresu. Toto je obvykle hlavní důvod, proč se používá proxy ARP agent.

    Blíženci % arp -a
    objeví se mnoho řádků o hostitelích z podsítě 140.252.1
    netb (140.252.1.183) v 0:80:ad:3:6a:80
    slunce (140.252.1.29) v 0:80:ad:3:6a:80

    Dalším detailem na obrázku 4.6, který je třeba vysvětlit, je absence IP adresy pod rámečkem, který představuje netb router (SLIP kanál). Proč na obou koncích kanálu SLIP není žádná IP adresa, jako je tomu mezi bsdi a slip? V části Kapitola 3 jsme z výstupu příkazu ifconfig zjistili, že cílová adresa kanálu SLIP je 140.252.1.183. NetBlazer nevyžaduje adresy IP na každém konci kanálu SLIP. (Tím se ušetří několik aktuálně cenných IP adres.) Určuje, který hostitel odešle paket v závislosti na tom, na jakém sériovém rozhraní paket dorazil, takže není nutné, aby každý hostitel na lince SLIP používal jedinečnou IP adresu pro svůj odkaz na router. Všichni hostitelé vytáčeného připojení používají 140.252.1.183 jako cílovou adresu pro své kanály SLIP.

    Autoritativní agent ARP doručuje datagramy směrovači sun, ale jak totéž dělají ostatní hostitelé v podsíti 140.252.13? Směrování musí být použito pro směrování datagramů na jiné hostitele. Záznamy ve směrovací tabulce musí být provedeny někde v síti 140.252, takže všechny datagramy určené pro podsíť 140.252.13 nebo určené hostitele v této podsíti budou směrovány do směrovače netb. Tento router ví, jak doručit datagramy na jejich konečné místo odesláním přes router sun.

    Promiskuitní ARP agent se také nazývá promiskuitní ARP nebo ARP hack. Tyto názvy pocházejí z jiného použití ARP proxy agentů: byly použity ke skrytí dvou fyzických sítí, mezi nimiž byl umístěn router od sebe navzájem. V tomto případě obě fyzické sítě používaly stejné ID sítě, protože směrovač mezi nimi byl nakonfigurován jako agent autorizovaný ARP, aby odpovídal na požadavky ARP z jedné sítě hostitelům ve druhé síti. Tato technika se v minulosti používala ke skrytí skupiny hostitelů se starší verzí TCP/IP na samostatném fyzickém kabelu. Dva důvody, proč museli být tito "starší" hostitelé odděleni, byly jednak to, že nepodporovaly podsítě, a jednak používaly staré vysílací adresy (ID hostitele bylo pouze nula bitů namísto moderního standardu, ve kterém se skládá identifikátor hostitele. jednotlivých bitů).

    "Ghostless" ARP

    Další charakteristikou ARP, která stojí za zvážení, je bezplatné ARP. Dochází k němu, když hostitel odešle požadavek ARP na základě své vlastní IP adresy. To se obvykle provádí, když je rozhraní nakonfigurováno při spouštění.

    Pokud spustíme tcpdump na hostiteli sun při zavádění hostitele bsdi, uvidíme paket zobrazený na obrázku 4.7.

    1 0,0 0:0:c0:6f:2d:40 ff:ff:ff:ff:ff:ff arp 60:
    arp kdo-má 140.252.13.35 tell 140.252.13.35

    Obrázek 4.7 Příklad „bezúplatného“ ARP.

    (Použili jsme příznak -n tcpdump pro tisk adres v digitální desítkové soustavě místo názvů hostitelů.) Pokud jde o pole ARP požadavku, adresa zdrojového protokolu a adresa cílového protokolu jsou totožné: 140.252.13.35 (což odpovídá hostiteli bsdi). Zdrojová adresa v ethernetové hlavičce, 0:0:c0:6f:2d:40, jak ukazuje tcpdump, je ekvivalentní zdrojové hardwarové adrese (z obrázku 4.4).

    Bezplatná ARP poskytuje dvě vlastnosti.

    1. Umožňuje hostiteli určit, zda existuje jiný hostitel se stejnou IP adresou. Hostitel bsdi neočekává odpověď na svůj požadavek, ale pokud je odpověď přijata, na konzole se objeví chybová zpráva „zjištěna duplicitní IP adresa s ethernetovou adresou: a:b:c:d:e:f“. Toto je varování pro správce systému, že jeden ze systémů není správně nakonfigurován.
    2. Pokud hostitel odesílající „bezplatný“ ARP právě změnil svou hardwarovou adresu (možná proto, že hostitel byl vypnut, karta rozhraní byla odstraněna a hostitel byl restartován), tento paket způsobí, že další hostitel na kabelu bude mít záznam. v jeho mezipaměti pro starou hardwarovou adresu aktualizujte mezipaměť ARP odpovídajícím způsobem. Málo známým faktem o ARP je, že pokud hostitel obdrží požadavek ARP na IP adresu, kterou již má ve své mezipaměti, obsah mezipaměti se aktualizuje o hardwarovou adresu odesílatele (ethernetovou adresu) z požadavku ARP. To se provádí pro jakýkoli požadavek ARP přijatý hostitelem. (Opakuji, požadavky ARP se vysílají, takže takové akce provádějí všichni hostitelé v síti, kdykoli je vydán požadavek ARP.) popisuje aplikace, které používají tuto charakteristiku ARP. Umožňuje záložnímu souborovému serveru nahradit neúspěšný server pomocí „bezplatného“ požadavku ARP se záložní hardwarovou adresou, ale se stejnou IP adresou, jakou měl neúspěšný hostitel. V tomto případě budou všechny pakety odeslané na neúspěšný server odeslány na záložní server a uživatelské aplikace nebudou vědět, že hlavní server selhal.
    Bohužel pak autoři od tohoto přístupu upustili, protože závisí na správné implementaci ARP na všech typech klientů. Existují různé typy ARP, které tuto specifikaci nepodporují.

    Pozorování všech systémů v podsíti použité v této knize ukazuje, že SunOS 4.1.3 a 4.4BSD používají „bezplatné“ ARP při spouštění a SVR4 tuto vlastnost nepodporuje.

    příkaz arp

    Tento příkaz jsme použili s parametrem -a k zobrazení všech položek mezipaměti ARP. Existují další možnosti.

    Superuživatel může použít volbu -d k odstranění položky z mezipaměti ARP. (To bylo provedeno před spuštěním některých příkladů pro zobrazení změn ARP.)

    Záznamy lze přidat pomocí volby -s. Při použití této volby musíte zadat název hostitele a ethernetovou adresu, IP adresa odpovídající jménu hostitele a ethernetová adresa jsou přidány do mezipaměti. Tento záznam je proveden trvale (nebude odstraněn z mezipaměti kvůli vypršení časového limitu), pokud není na konci příkazového řádku použito klíčové slovo temp.

    Klíčové slovo pub na konci příkazového řádku s volbou -s způsobí, že systém bude pro daného hostitele fungovat jako agent ARP. Systém bude reagovat na požadavky ARP na IP adresy odpovídající názvu hostitele a odpověď bude obsahovat zadanou ethernetovou adresu. Pokud je inzerovaná adresa adresou samotného odpovídajícího systému, znamená to, že systém vystupuje jako autorizovaný agent ARP pro zadaný název hostitele.

    Stručné závěry

    ARP je primární protokol používaný téměř všemi implementacemi TCP/IP. Jeho fungování zpravidla nezávisí na používaných aplikacích nebo vůli správce systému. ARP cache je základem této práce. K zobrazení nebo úpravě mezipaměti jsme použili příkaz arp. Každý záznam v mezipaměti má časovač, který se používá k odstranění neúplných nebo dokončených záznamů. Příkaz arp zobrazí upravené položky v mezipaměti ARP.

    Podívali jsme se na běžný provoz ARP a specializované verze: autorizovaný agent ARP (kde router odpovídá na požadavky ARP pro hostitele na jiném rozhraní routeru) a „bezplatné“ ARP (zasílání ARP požadavků na vlastní IP adresu, obvykle na adrese doba potřebná ke spuštění).

    Cvičení

    1. Vraťme se k příkazu, který jsme spustili, abychom získali výstup zobrazený na obrázku 4.4. Co se stane, když poté, co jsme zkontrolovali místní mezipaměť ARP a ta je prázdná, zadáme příkaz

      bsdi % rsh svr4 arp -a

      zkontrolovat, zda je mezipaměť ARP prázdná i na cílovém hostiteli? (Tento příkaz spustí příkaz arp -a na hostiteli svr4.)

    2. Popište test, který určí, zda konkrétní hostitel správně zpracovává „bezplatné“ požadavky ARP.
    3. Krok číslo 7 v sekci může nějakou dobu trvat (milisekundy), protože paket je odeslán a ARP čeká na odpověď. Myslíte si, že ARP zpracuje během tohoto časového období více datagramů, které dorazily z IP na stejnou cílovou adresu?
    4. Na konci této části jsme zmínili, že požadavky na hostitele RFC a implementace Berkeley se liší z hlediska zpracování časových limitů pro aktivní položky ARP. Co se stane, když se klient Berkeley pokusí kontaktovat server, který byl vypnutý a jeho ethernetová karta byla odebrána? Změní se něco, pokud server při spouštění vydá "bezplatný" požadavek ARP?

    Nástroj příkazového řádku ARP.EXE je k dispozici ve všech verzích systému Windows a má stejnou syntaxi. Navrženo pro zobrazení a změnu položek v mezipaměti ARP (Address Resolution Protocol), což je tabulka shody mezi IP adresami a hardwarovými adresami síťových zařízení. Hardwarová adresa je jedinečná, výrobcem přiřazená 6bajtová adresa pro síťové zařízení, jako je síťová karta. Tato adresa se také často nazývá MAC adresa (Media Access Control) nebo ethernetová adresa. V sítích Ethernet obsahují přenášená a přijímaná data vždy zdrojovou MAC adresu (Source MAC) a cílovou MAC adresu (Destination MAC).

    K identifikaci typu se používají dva nejvýznamnější bity hardwarové adresy:

    První bit je jedna (0) nebo skupinová (1) adresa.

    Druhý bit je znakem univerzální (0) nebo místně spravované (1) adresy.

    Následujících 22 bitů adresy obsahuje speciální kód výrobce, označený jako M.F.G. nebo OUI- univerzální kód organizace.

    V ethernetových sítích má tedy jakékoli síťové zařízení hardwarovou adresu sestávající ze dvou částí, jejichž význam závisí na výrobci zařízení a konkrétní instanci zařízení. Nadřazená část MAC adresy je centrálně přidělena na základě licence každému výrobci síťového zařízení. Například 00:E0:4C – pro síťová zařízení REALTEK SEMICONDUCTOR CORP. Velcí výrobci síťových zařízení obvykle vlastní několik řad OUI. Nízká část MAC adresy se tvoří během výroby síťového zařízení a je jedinečná pro každou instanci.

    Mapování IP adres (generovaných softwarem) na hardwarové adresy se provádí pomocí následujících kroků:

    Požadavek na vysílání (požadavek ARP) je odeslán do sítě a akceptován všemi síťovými zařízeními. Obsahuje zdrojovou IP a Ethernetovou adresu a také cílovou IP adresu, pro kterou je MAC adresa určena.

    Každé zařízení, které obdrží požadavek, zkontroluje, zda cílová IP adresa uvedená v požadavku odpovídá jeho vlastní IP adrese. Pokud existuje shoda, je odesílateli zaslána odpověď ARP, která obsahuje IP a MAC adresy odpovídajícího uzlu. Rámec odpovědi ARP obsahuje adresy IP a MAC odesílatele i příjemce požadavku.

    Informace přijaté v odpovědi ARP jsou uloženy v mezipaměti ARP a lze je použít pro IP komunikaci pro daného hostitele. ARP cache je tabulka v RAM, kde každý záznam obsahuje IP, MAC a jejich stáří platnosti (od několika sekund do několika hodin). Stáří položky se bere v úvahu, aby bylo zajištěno, že procedura ARP může být znovu provedena, pokud dojde k jakékoli změně v mapování adresy.

    Formát příkazového řádku ARP:

    ARP -s inet_addr eth_addr

    ARP -d inet_addr

    ARP -a [-N if_addr] [-v]

    Možnosti příkazového řádku ARP:

    -A-Zobrazí aktuální položky ARP dotazem na aktuální data protokolu. Pokud je parametr zadán inet_addr, pak se zobrazí IP a fyzická adresa pouze pro zadaný počítač. Pokud se ARP používají na více než jednom síťovém rozhraní, zobrazí se položky pro každou tabulku.

    -G- stejné jako parametr -A.

    -proti- zobrazuje aktuální položky ARP v režimu podrobného protokolování. Zobrazí se všechny neplatné položky a položky v rozhraní zpětné vazby.

    inet_addr- určuje IP adresu.

    -N if_addr- zobrazí položky ARP pro zadané if_addr síťové rozhraní.

    -d- odstraní zadaný uzel inet_addr. Parametr inet_addr může obsahovat zástupný znak * smazat všechny uzly.

    -s- přidá uzel a propojí internetovou adresu inet_addr s fyzickou adresou eth_addr. Fyzická adresa je specifikována 6 bajty (v hexadecimální soustavě), oddělených pomlčkou. Toto spojení je trvalé

    eth_addr- definuje fyzickou adresu.

    if_addr- pokud je zadán, udává adresu internetového rozhraní, jehož tabulka překladu adres se má změnit. Pokud parametr není zadán, použije se první dostupné rozhraní.

    V sítích IP existují tři způsoby odesílání paketů ze zdroje do cíle:

    Unicast přenos ( Unicast);

    Vysílat ( Přenos);

    Při unicastovém přenosu je datový tok přenášen z odesílajícího uzlu na individuální IP adresu přijímacího uzlu.

    Vysílání zahrnuje doručování proudu dat ze zdrojového uzlu do více přijímacích uzlů připojených k danému segmentu místní sítě pomocí broadcast IP adresy.

    Multicast doručuje tok dat do skupiny uzlů na IP adrese skupiny multicast. Uzly skupiny mohou být umístěny v této lokální síti nebo v jakékoli jiné. Uzly pro multicastovou distribuci jsou sloučeny do skupin pomocí protokolu IGMP(Internet Group Management Protocol, Internet Group Management Protocol). Pakety obsahující skupinovou adresu v poli cílové hlavičky dorazí do skupinových uzlů a budou zpracovány. Zdroj vícesměrového provozu směruje pakety vícesměrového vysílání nikoli na jednotlivé adresy IP každého z přijímajících uzlů, ale na adresu IP vícesměrového vysílání.

    Multicastové adresy definují libovolnou skupinu IP uzlů, které se připojily k této skupině a chtějí přijímat provoz adresovaný jí. Internet Assigned Numbers Authority (IANA), který řídí přidělování multicastových adres, přidělil IPv4 adresy třídy D v rozsahu 224.0.0.0 až 239.255.255.255 pro multicast.

    Příklady použití ARP:

    arp -a- zobrazit tabulku shody mezi IP a MAC adresami pro tento počítač.

    arp -a | více- stejné jako v předchozím případě, ale s informacemi zobrazenými v režimu po jednotlivých stránkách.

    arp -a > macaddr.txt- zobrazit tabulku shody mezi IP a MAC adresami pro daný počítač s výstupem výsledků do textového souboru macaddr.txt.

    Příklad obsahu tabulky ARP:

    Rozhraní: 127.0.0.1 --- 0x1

    224.0.0.22                                                
    224.0.0.251                                            
    239.255.255.250                                        

    Rozhraní: 192.168.1.133 --- 0x1c

    Internetová adresa Typ fyzické adresy

    192.168.1.1                c8-2b-35-9a-a6-1e   dynamické
    192.168.1.132            00-11-92-b3-a8-0d   dynamické
    192.168.1.255            ff-ff-ff-ff-ff-ff            statický
    224.0.0.22                  01-00-5e-00-00-16   statický
    224.0.0.251                01-00-5e-00-00-fb   statický
    224.0.0.252                01-00-5e-00-00-fc   statický
    239.255.255.250        01-00-5e-7f-ff-fa     statické

    Tento příklad obsahuje položky ARP pro rozhraní zpětné smyčky 127.0.0.1 a skutečné 192.168.1.133 . Rozhraní zpětné smyčky se nepoužívá pro skutečný přenos dat a není vázáno na hardwarovou adresu. ARP tabulka skutečného rozhraní obsahuje položky pro hostitele s adresami 192.168.1.1 A 192.168.1.132 , stejně jako záznamy pro broadcast (MAC adresa je ff-ff-ff-ff-ff-ff) a multicast (MAC adresa začíná 01-00-5e). MAC adresa multicast vždy začíná 24bitovou předponou - 01-00-5E. Další, 25. bit je 0. Posledních 23 bitů MAC adresy je tvořeno 23 nejméně významnými bity multicastové IP adresy.

    arp -s 192.168.1.1 00-08-00-62-F6-19- přidejte položku do tabulky ARP, která odpovídá IP adrese 192.168.1.1 a fyzické adrese 00-08-00-62-F6-19

    arp -d 192.168.1.1- odebrat záznam z tabulky ARP pro IP adresu 192.168.1.1

    arp -d 192.168.1.*- odstranit položky z tabulky ARP pro rozsah IP adres 192.168.1.1 - 192.168.1.254

    Několik poznámek k praktickému použití příkazu ARP:

    Rozlišení adresy ARP se provádí pouze během operací převody data přes IP protokol.
    - životnost položek v tabulce ARP je omezená, proto před zobrazením jejího obsahu pro konkrétní adresu musíte tuto adresu pingnout.
    - pokud odpověď na ping nepřijde a v ARP tabulce je uvedena položka pro danou IP adresu, pak lze tuto skutečnost interpretovat jako blokování ICMP paketů firewallem pingovaného hostitele.
    - nemožnost připojení ke vzdálenému hostiteli přes protokoly TCP nebo UDP, pokud jsou v ARP tabulce záznamy pro cílovou IP, může být známkou absence služeb zpracovávajících příchozí spojení, nebo jejich blokování firewallem (uzavřené porty) .
    - Protokol ARP funguje v rámci segmentu lokální sítě. Pokud tedy pingnete externího hostitele (například ping yandex.ru), bude tabulka ARP obsahovat záznam pro IP adresu routeru, přes který je paket odeslán do externí sítě.

    TCP/IP nebere v úvahu technologie linky a fyzické vrstvy během skutečného přenosu dat, stále musíte mapovat adresu IP na adresu vrstvy linky.

    Síť Ethernet používá adresy IP a MAC k identifikaci zdroje a cíle informací. Informace odesílané z jednoho počítače do druhého přes síť obsahují fyzickou adresu odesílatele, adresu IP odesílatele, fyzickou adresu příjemce a adresu IP příjemce. Protokol ARP umožňuje komunikaci mezi těmito dvěma adresami, protože tyto dvě adresy spolu nejsou nijak spojeny.

    ARP- Address Resolution Protocol je protokol třetí (síťové) vrstvy modelu OSI, používaný pro převod IP adres na MAC adresy, hraje důležitou funkci v sítích s více přístupem. ARP byl definován RFC 826 v roce 1982.

    Přímá komunikace mezi IP adresou a MAC adresou probíhá pomocí tzv. ARP tabulek, kde každý řádek označuje shodu IP adresy s MAC adresou.

    Příklad ARP tabulky v OS Windows je znázorněn na obrázku.

    V tabulce ARP je kromě adresy IP a MAC uveden také typ připojení:

    • Statické záznamy jsou vytvářeny ručně a trvají tak dlouho, dokud je počítač nebo router zapnutý.
    • Dynamické záznamy musí být pravidelně aktualizovány. Pokud záznam nebyl aktualizován do určité doby (přibližně 2 minuty), je z tabulky vyloučen. Tabulka ARP neobsahuje záznamy o všech uzlech sítě. Ale pouze ti, kteří se aktivně podílejí na provozu sítě. Tato metoda ukládání se nazývá mezipaměť ARP.

    V IPv6 je funkce ARP zajišťována protokolem NDP(Neighbor Discovery Protocol).

    RARP(anglicky: Reverse Address Resolution Protocol) je protokol třetí (síťové) vrstvy modelu OSI, provádí reverzní mapování adres, tedy převádí hardwarovou adresu na IP adresu.

    Existují čtyři typy zpráv ARP:

    • požadavek ARP(ARPrequest);
    • odpověď ARP;
    • RARP-žádost;
    • RARP-odpověď.

    Struktura hlavičky ARP

    • Typ hardwaru (HTYPE) Každý kanálový protokol přenosu dat 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 se bude psát 0x0800
    • Hardwarová délka (HLEN) Délka fyzické adresy v bajtech. Ethernetové adresy jsou dlouhé 6 bajtů.
    • Délka protokolu (PLEN) Délka logické adresy v bajtech. IPv4 adresy jsou dlouhé 4 bajty.
    • Operace Kód operace odesílatele: 1 v případě požadavku a 2 v případě odpovědi.
    • Hardwarová adresa odesílatele (SHA) Fyzická adresa odesílatele.
    • Sender protocol address (SPA) Logická adresa odesílatele.
    • Targethardwareaddress (THA) Fyzická adresa příjemce. Pole je na požádání prázdné.
    • Cílová adresa protokolu (TPA) Logická cílová adresa.

    Podívejme se na strukturu hlavičky požadavku ARP na příkladu zachyceného paketu pomocí síťového analyzátoru Wireshark

    Podívejme se na strukturu hlavičky odpovědi ARP (odpověď) na příkladu zachyceného paketu pomocí síťového analyzátoru Wireshark

    Protokol ARP funguje odlišně v závislosti na tom, který protokol linkové vrstvy v dané síti běží – protokol místní sítě (Ethernet, Token Ring, FDDI) s možností vysílat přístup současně všem síťovým uzlům, nebo protokol rozlehlé sítě ( X.25, frame relay), zpravidla nepodporuje všesměrový přístup.

    V místních sítích používá ARP k vyhledání hostitele s danou IP adresou v síti vysílané rámce protokolu linkové vrstvy.

    Princip fungování:

      Uzel, který potřebuje namapovat IP adresu na lokální adresu, vygeneruje požadavek ARP, vloží jej do rámce protokolu linkové vrstvy, označí v něm známou IP adresu, a požadavek rozešle.

      Všichni hostitelé v místní síti obdrží požadavek ARP a porovnají tam uvedenou IP adresu se svou vlastní.

      Pokud se shodují, uzel vygeneruje odpověď ARP, ve které uvede svou IP adresu a svou lokální adresu a odešle ji již směrovanou, protože v požadavku ARP uvede odesílatel svou lokální adresu.

    Arp tabulka pro překlad adres

    Překlad adres se provádí prohledáváním tabulky. Tato tabulka, nazývaná ARP tabulka, je uložena v paměti a obsahuje řádky pro každého hostitele v síti.

    ARP tabulky jsou sestaveny podle RFC-1213 a pro každou IP adresu obsahuje čtyři kódy:

      Ifindex - Fyzický port (rozhraní) odpovídající této adrese;

      Fyzická adresa - MAC adresa, například ethernetová adresa;

      IP adresa - IP adresa odpovídající fyzické adrese;

      typ shody adresy - toto pole může mít 4 hodnoty: 1 - volba není standardní a nezapadá do žádného z níže popsaných typů; 2 - tento záznam již není pravdivý; 3 - trvalá vazba; 4 - dynamická vazba;

    Znaky tabulky pro technologii Ethernet:

    Ethernetová adresa

    08:00:39:00:2F:C3

    08:00:5A:21:A7:22

    08:00:10:99:AC:5

    Je obvyklé zapisovat všechny bajty 4bajtové IP adresy jako desetinná čísla oddělená tečkami. Při zápisu 6bajtové ethernetové adresy je každý bajt zadán v šestnáctkové soustavě a je oddělen dvojtečkou.

    Tabulka ARP je nezbytná, protože IP adresy a ethernetové adresy jsou vybírány nezávisle a neexistuje žádný algoritmus pro převod jedné na druhou.

    IP adresu vybírá správce sítě. Ethernetová adresa je vybrána výrobcem zařízení síťového rozhraní z adresního prostoru přiděleného pro ni v rámci licence. Při výměně karty síťového adaptéru stroje se změní také jeho ethernetová adresa.

    Arp cache.

      Účinnost ARP do značné míry závisí na mezipaměti ARP, která je přítomna na každém hostiteli.

      Standardní životnost každého záznamu v cache je 20 minut od okamžiku vytvoření záznamu.

    Objednávka překladu adresy

    Během normálního provozu odesílá síťový program, jako je TELNET, aplikační zprávu pomocí transportních služeb TCP. TCP modul odešle odpovídající transportní zprávu přes IP modul. Výsledkem je paket IP, který musí být odeslán do ovladače Ethernet. Cílovou IP adresu zná aplikační program, modul TCP a modul IP. Na základě toho musíte zjistit ethernetovou adresu cíle. K určení požadované ethernetové adresy se používá tabulka ARP.

    Jak se plní tabulka ARP? Podle potřeby jej automaticky vyplní modul ARP. Když existující tabulka ARP nedokáže přeložit IP adresu, dojde k následujícímu:

      Požadavek ARP je vysílán po síti.

      Odchozí IP paket je zařazen do fronty.

    Každý síťový adaptér přijímá vysílání. Všechny ovladače Ethernet kontrolují pole typu v přijatém rámci Ethernet a předávají pakety ARP modulu ARP. Požadavek ARP lze interpretovat následovně: "Pokud se vaše IP adresa shoduje s uvedenou, sdělte mi prosím svou ethernetovou adresu." Paket požadavku ARP vypadá asi takto:

    Příklad požadavku ARP

    Každý modul ARP zkontroluje pole hledané IP adresy v přijatém ARP paketu a pokud se adresa shoduje s vlastní IP adresou, odešle odpověď přímo na ethernetovou adresu žadatele. Odpověď ARP lze interpretovat následovně: „Ano, toto je moje IP adresa a ta a ta ethernetová adresa jí odpovídá.“ Paket odpovědi ARP vypadá asi takto:

    Příklad odpovědi ARP

    Tuto odpověď obdrží počítač, který provedl požadavek ARP. Ovladač tohoto stroje zkontroluje typové pole v rámci Ethernetu a předá paket ARP modulu ARP. Modul ARP analyzuje paket ARP a přidá položku do své tabulky ARP.

    Aktualizovaná tabulka vypadá takto:

    Pokud zařízení komunikuje s jiným peer zařízením ve stejné síti, připojení vyžaduje fyzickou nebo MAC adresu. Aplikace zodpovědná za komunikaci však vyžaduje použití nějakého mechanismu, který dokáže přiřadit IP adresu k MAC adrese.

    Tento mechanismus je implementován pomocí protokolů pro rozlišení adres (ARP). Díky nim je přeložena IP adresa cílového hostitele, která informuje zdrojovou MAC adresu. Protokoly ARP tedy usnadňují komunikaci mezi dvěma zařízeními, když jsou připojena k síti současně.

    Jak to funguje?

    To znamená, že pokaždé, když chce stroj A odeslat datové pakety do stroje B, musí A odeslat paket ARP, aby si vyžádal MAC adresu B. To však nevyhnutelně zvýší zatížení sítě a ztíží provoz.

    Aby se snížil provoz a náklady na připojení k síti, počítače používající protokol ARP uchovávají mezipaměť nedávno získaných vazebných adres IP_to_MAC, což znamená, že nemusí znovu používat ARP.

    Jsou však možná některá upřesnění ARP: když chce stroj A odeslat data do stroje B, je možné, že B v blízké budoucnosti odešle data odezvy do A. Proto, aby se zabránilo ARP pro počítač B, musí A uložit svou vazebnou adresu IP_to_MAC do speciálního paketu, když požaduje MAC adresu B. Protože A předá svůj počáteční požadavek na MAC adresu B, každý stroj v síti musí načíst a uložit do IP_to_MAC adresy. vaší mezipaměti.

    Když je zařízení online (například pokud je restartován operační systém), může vysílat adresu vazby, aby ji všechny ostatní počítače mohly uložit do svých nastavení. Vyhnete se tak opětovnému použití protokolů ARP, které mohou být potřeba při připojování dalších nových zařízení.

    Příklad zobrazení použití protokolu Address Resolution Protocol

    Můžete zvážit scénář, kdy se počítač pokouší komunikovat s některými vzdálenými zařízeními a předtím mezi nimi neproběhla žádná IP výměna. Proto je nutné použít protokol ARP - pro určení MAC adresy vzdáleného stroje.

    Zpráva požadavku ARP (která jde z IP adresy A.A.A.A do B.B.B.B) je vysílána přes místní síť s typem protokolu Ethernet. Protokoly ARP pocházejí ze všech počítačů kromě cílového počítače, který odešle zprávu s odpovědí na požadavek. Tato odpověď obsahuje IP adresu B.B.B.B, tzn. Hardwarová adresa zdroje Ethernet, po které bude navázána komunikace mezi zařízeními.

    ARP protokol a jeho účel - závěry

    Jak můžete vidět z výše uvedeného popisu, protokol pro rozlišení adres se používá k navázání komunikace mezi různými zařízeními v síti. Jinými slovy jde o technologii, bez které není možné běžné připojení. Je ale možné provozovat protokol ARP bez dalších síťových parametrů? Rozhodně nemožné. Proto by měly být zváženy další protokoly, které hrají důležitou roli.

    Protokol pro obnovu zpáteční adresy

    RARP je protokol, pomocí kterého si fyzický počítač v místní síti může vyžádat svou IP adresu z tabulky Address Resolution Protocol nebo mezipaměti brány. vytvoří v bráně LAN nebo routeru tabulku, která mapuje fyzickou adresu stroje (nebo řízení přístupu k médiím - MAC adresu) vzhledem k odpovídajícímu protokolu. Když se nové zařízení dostane do režimu online, jeho klient RARP vytvoří požadavek na server o zaslání jeho IP adresy. Za předpokladu, že byla vytvořena položka v tabulce směrovače, server RARP vrátí IP adresu do stroje, který ji může uložit pro pozdější použití. Proto je protokol pro rozlišení adres ARP nepřetržitě propojen s protokolem RARP.

    Detailní mechanismus

    Stroj, který požadavek vydává, i server, který na něj odpovídá, používají fyzické síťové adresy během komunikační relace. Žádající strana obvykle nezná fyzickou adresu. Požadavek je tedy vysílán všem počítačům v síti. Žadatel se pak musí na serveru identifikovat. K tomu lze použít sériové číslo CPU nebo fyzickou adresu síťového stroje. Použití fyzické adresy jako jedinečného identifikátoru má však dvě výhody.

    Tyto adresy jsou vždy dostupné a nemusí být vázány v kódu bootstrap.
    Vzhledem k tomu, že identifikační informace závisí na síti a ne na dodavateli CPU, budou mít všechny stroje v dané síti jedinečné ID.

    Působení RARP v průběhu času

    Protože protokol RARP používá přímo fyzickou síť, žádný jiný protokolový software na požadavek neodpoví ani jej nepřenese. Software RARP musí tyto úkoly zvládnout sám. Některé pracovní stanice, které při zavádění spoléhají na protokol RARP, se mohou opakovat opakovaně, dokud neobdrží odpověď. Jiné implementace selžou po několika pokusech, aby nedošlo k přetížení sítě zbytečným vysíláním.

    Protokoly IP/ICMP/ARP

    Protokol ICMP propojuje mechanismus, brány a hostitele, které se používají k řízení připojení nebo přijímání chybových zpráv. Internetový protokol zajišťuje, že signál prochází od brány k bráně, dokud nedosáhne bodu, který jej může doručit přímo do jeho konečného cíle. Pokud brána není schopna směrovat nebo doručovat data nebo pokud zjistí neobvyklý stav, jako je přetížení sítě, musí to nahlásit, aby bylo možné podniknout kroky k zamezení nebo nápravě problému.

    Messaging (ICMP) umožňuje bránám hlásit chyby nebo spravovat zprávy pro jiné brány nebo hostitele. ICMP tedy zajišťuje komunikaci mezi internetovými protokoly na obou připojených počítačích.

    Tento speciální mechanismus přidali vývojáři k protokolům TCP/IP. Umožňuje vám používat brány na internetu k hlášení chyb nebo poskytování nouzových informací. Samotný IP protokol neobsahuje nic, co by mohlo pomoci ověřit komunikaci s odesílatelem nebo se dozvědět o poruchách.

    TCP/IP protokoly

    Protokoly TCP/IP poskytují nástroje, které mohou správcům sítě nebo uživatelům pomoci identifikovat problémy se sítí. Jeden z nejčastěji používaných ladicích nástrojů zavolá požadavek ICMP a obdrží zprávu s odpovědí. Současně hostitel nebo brána odešle echo zprávu s požadavkem ICMP na zadanou adresu. Každý počítač, který přijme ping, zformuluje odpověď a vrátí ji původnímu odesílateli. V tomto případě odpověď obsahuje kopii dat přenesených v požadavku, stejně jako odpověď s ní související.

    Tento protokol lze použít ke kontrole, zda je cíl dosažitelný a lze jej kontaktovat. ARP protokoly se zase používají navíc k TCP/IP a jsou nezbytné pro správnou komunikaci mezi zařízeními v síti.



    
    Horní