K čemu je protokol arp? ARP: Address Resolution Protocol

ARP(Protokol pro rozlišení adres- protokol určování adresy) je protokol v počítačových sítích určený k určení MAC adresy ze známé IP adresy. Tento příklad ukazuje, jak získat tabulku ARP místního počítače. Chcete-li to provést, použijte vlastnost " Standardní výstup"ze třídy" Proces“, což vám umožní využít stream ke čtení výstupu aplikace. Příkazový řádek se používá jako zdroj výstupu dat spuštěním příkazu " arp -a", který zobrazí aktuální položky ARP dotazem na aktuální data protokolu. Pokud se ARP používají na více než jednom síťovém rozhraní, zobrazí se položky pro každou tabulku. public static StreamReader ExecuteCommandLine(String file, String arguments = "") ( ProcessStartInfo startInfo = new ProcessStartInfo(); //Nastavte hodnotu indikující nutnost spustit //proces v novém okně. startInfo.CreateNoWindow = true; // Nastavení stylu skrytého okna Okno může být viditelné nebo skryté //Systém zobrazí skryté okno, aniž by jej nakreslilo nebo //z jiných oken, ale nemůže zpracovat vstup od uživatele //nebo zobrazit výstup Často může aplikace ponechat nové okno //skryté, zatímco aplikace určuje vzhled okna, a poté //nastaví styl okna na. Normální, že // ke spuštění procesu nepotřebujete použít shell operačního systému startInfo.UseShellExecute = false // Nastavte hodnotu, zda má být // výstup zapsán do System.Diagnostics.Process. Standardní výstupní proud. startInfo.RedirectStandardOutput = true; //Nastaví spuštění aplikace. startInfo.FileName = soubor; //Nastaví sadu argumentů příkazového řádku používaných při //spouštění aplikace. startInfo.Arguments = argumenty; //Nastaví preferované kódování pro standardní výstup. startInfo.StandardOutputEncoding = Encoding.GetEncoding(866); //Spusťte prostředek procesu s výše uvedenými parametry a přidružte // prostředek k nové komponentě System.Diagnostics.Process. Proces procesu = Process.Start(startInfo); //Vrátí System.IO.StreamReader, který lze // použít ke čtení standardního výstupního proudu aplikace. návratový proces.Standardní výstup; ) Chcete-li použít výše uvedenou metodu a analyzovat výsledná data, přidejte níže uvedený výpis do " Form_Load"hlavní formulář nebo v metodě" Button_Click» ovládání « Knoflík».
//Inicializace nové tabulky DataTable dt = new DataTable(); //Vytvoří tři sloupce dt.Columns.Add("Internetová adresa"); dt.Columns.Add("Fyzická adresa"); dt.Columns.Add("Typ"); //Vložte datový proud z konzolové aplikace do proměnné var arpStream = WindowsFormsARPTable.Form1.ExecuteCommandLine("arp", "-a"); //Smažte první tři řádky, protože obsahují //prázdný řádek //název rozhraní //záhlaví sloupců pro (int i = 0; i< 3; i++) { arpStream.ReadLine(); } //Циклически проходим по входному потоку //Пока функция EndOfStream не вернет значение true //указывающая, что текущая позиция потока //находится в конце потока while (!arpStream.EndOfStream) { //Получаем одну строку из текущего потока var line = arpStream.ReadLine().Trim(); //Так как между столбцами есть несколько пробелов //их необходимо сократить до одного while (line.Contains(" ")) { line = line.Replace(" ", " "); } //Чтобы распределить полученные данные по столбцам таблицы их // необходимо разделить с помощью метода Split // который возвращает массив, элементы которого содержат //подстроки данного экземпляра, разделенные одним или более //знаками указанных в его значении. var parts = line.Split(" "); //Если значение первого столбца пустое, значит //данную строку необходимо пропустить if (parts.Trim() != string.Empty) { //Если первое значение не пустое //создаем строку с использованием трех параметров и //добавляем его в System.Data.DataRowCollection. dt.Rows.Add(new object { parts.Trim(), parts.Trim(), parts.Trim() }); } } Níže je uveden příklad, jak testovací program funguje.

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 položky 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ě.

Address Resolution Protocol (ARP) je standardní síťový protokol pro zjištění MAC adresy hostitele, když je známa pouze jeho IP adresa. V případě falšování adresy ARP útok negativně ovlivňuje celou síť, když k němu dojde.

Existují dva možné typy ARP útoků, některé se zaměřují na směrovače a jiné na počítače. Oba typy útoků mohou nastat současně. V každém případě, pokud je v síti ARP spoofing, data mezi počítači a routery budou odeslána na nesprávné místo určení (na špatnou MAC adresu) a síť nebude správně fungovat.

Vzhledem k tomu, že existují dva typy spoofingu, je třeba zabránit jejich výskytu jak na routeru, tak na počítači.

Co dělat, aby nedošlo k substituci ARP ?

Když na vašem routeru TP-Link povolíte funkci prevence spoofingu ARP (IP Address & MAC Address binding), musíte svému počítači přiřadit statickou IP adresu. V opačném případě nemusí funkce po navázání MAC a IP adres správně fungovat.

Krok 1

Krok 2

Vypněte DHCP server na routeru. K tomu se budete muset přihlásit do webového rozhraní pro správu.

(1) Klikněte na DHCP – DHCP Settings na levé straně stránky.

(2) Vyberte možnost Zakázat vedle pole Server DHCP.

ARP na routeru?

Krok 1

Otevřete prohlížeč a do adresního řádku zadejte síťovou IP adresu routeru; ve výchozím nastavení je to 192.168.1.1. Stiskněte Enter.

Krok 2

Pro přihlášení do webového rozhraní zadejte své uživatelské jméno a heslo. Ve výchozím nastavení jsou přihlašovací jméno i heslo admin.

Krok 3

Klikněte na IP & MAC Binding -> Binding setting na levé straně stránky.

Krok 4

Vyberte možnost Povolit vazbu ARP a poté klikněte na Uložit.

Krok 5

Klikněte na Seznam ARP na levé straně stránky a uvidíte tabulku ARP, kterou si router pamatuje.

Pokud jsou data tabulky ARP správná, klikněte na Načíst vše a Svázat vše, pak budou svázány všechny adresy IP a MAC vašich počítačů uvedených v seznamu ARP.

V opačném případě zadejte adresy ručně.

(1) Klepnutím na Přidat nový zadejte adresy vazby.

(2) Aktivujte možnost Bind a zadejte MAC a IP adresu vašeho počítače.

Musíte znát MAC adresy počítačů, pro které chcete otevřít přístup k internetu. MAC adresu zjistíte pomocí příkazového řádku.

(1) Klepněte na Start -> Spustit

(2) Do dialogového okna zadejte ipconfig /all, stiskněte Enter a uvidíte všechny informace o adrese počítače.

Jak nastavit varovnou funkci spoof ARP na počítači?

Nejprve musíte určit MAC adresu routeru, kterou najdete na stavové stránce LAN webového rozhraní pro správu.

Program ARP je vestavěný příkaz operačního systému od společnosti Microsoft, takže jej lze použít na příkazovém řádku.

Krok 1

Klikněte na Start -> Spustit, napište cmd a stiskněte Enter.

Krok 2

V dialogovém okně zadejte arp-s 192.168.1.1 00-19-e0-fa-5b-2b a stiskněte Enter. Poté zadejte arp-a . Tím se zkontroluje, zda je přidaný datový typ Statický.

Nyní, po přidání vazby arp položky na počítači, nebudou informace odeslané do routeru odeslány jiným směrem. Statická vazba ARP bude existovat, dokud nebude počítač restartován. Po restartu jej musíte znovu nastavit.

Jak mohu nastavit automatické spuštění vazby bez opakování celé výše uvedené operace znovu?

Krok 1

Musíte vytvořit dávkový soubor s příponou .bat, například static_arp.bat, a upravit jej. Napište do souboru příkaz ARP, který spojí IP a MAC adresu routeru, a poté jej uložte.


Krok 2

Klikněte na Start -> Všechny programy, poklepejte na Startup a zkopírujte dávkový soubor static_arp.bat do složky, která se otevře.

Poté bude příkaz ARP proveden automaticky při každém spuštění počítače.

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. ARP zajišťuje komunikaci mezi těmito dvěma adresami, protože tyto dvě adresy spolu nijak nesouvisí.

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 jsou kromě adresy IP a MAC také uvedeny dva typy záznamů:

  • 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 jen 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