Pentru ce este protocolul arp? ARP: Address Resolution Protocol

ARP(Protocolul de rezoluție a adresei- protocol de determinare a adresei) este un protocol în rețelele de calculatoare conceput pentru a determina adresa MAC de la o adresă IP cunoscută. Acest exemplu arată cum să obțineți tabelul ARP al unui computer local. Pentru a face acest lucru, utilizați proprietatea " Ieșire standard"din clasa" Proces", care vă permite să utilizați fluxul pentru a citi rezultatul aplicației. Linia de comandă este folosită ca sursă de ieșire a datelor prin rularea comenzii " arp -a", care afișează intrările ARP curente prin interogarea datelor de protocol curent. Dacă ARP-urile sunt utilizate pe mai multe interfețe de rețea, atunci vor fi afișate intrările pentru fiecare tabel. public static StreamReader ExecuteCommandLine(Fișier șir, argumente șir = "") ( ProcessStartInfo startInfo = new ProcessStartInfo(); //Setați o valoare care indică necesitatea de a începe //procesul într-o fereastră nouă. startInfo.CreateNoWindow = true; // Setați un stil de fereastră ascunsă. //Sistemul afișează fereastra ascunsă sau //din alte ferestre, dar nu poate procesa intrarea de la utilizator //sau afișa ieșirea Adesea, aplicația poate păstra noua fereastră //ascunsă în timp ce aplicația determină aspectul ferestrei și apoi //setează stilul ferestrei. Normal că //nu aveți nevoie să utilizați shell-ul sistemului de operare pentru a porni procesul startInfo.UseShellExecute = false //Setați o valoare care indică dacă datele de ieșire ale aplicației trebuie scrise în System.Diagnostics. .StandardOutput stream. startInfo.RedirectStandardOutput = adevărat; //Setați aplicația să se lanseze. startInfo.FileName = fișier; //Setați un set de argumente ale liniei de comandă utilizate la //lansarea aplicației. startInfo.Arguments = argumente; //Setați codificarea preferată pentru ieșirea standard.».
startInfo.StandardOutputEncoding = Encoding.GetEncoding(866);< 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() }); } } //Lansați resursa de proces cu parametrii de mai sus și asociați //resursa cu noua componentă System.Diagnostics.Process.

Utilitarul de linie de comandă ARP.EXE este prezent în toate versiunile de Windows și are aceeași sintaxă. Conceput pentru a vizualiza și modifica intrările din memoria cache ARP (Address Resolution Protocol), care este un tabel de corespondență între adresele IP și adresele hardware ale dispozitivelor de rețea. O adresă hardware este o adresă unică de 6 octeți, atribuită din fabrică, pentru un dispozitiv de rețea, cum ar fi o placă de rețea. Această adresă este adesea numită și adresă MAC (Media Access Control) sau adresă Ethernet. În rețelele Ethernet, datele transmise și primite conțin întotdeauna adresa MAC sursă (Source MAC) și adresa MAC destinație (Destination MAC).

Cei mai semnificativi doi biți ai adresei hardware sunt utilizați pentru a identifica tipul:

Primul bit este o adresă unică (0) sau de grup (1).

Al doilea bit este un semn al unei adrese universale (0) sau administrate local (1).

Următorii 22 de biți ai adresei conțin un cod special de producător, notat ca M.F.G. sau OUI- codul universal al organizaţiei.

Astfel, în rețelele Ethernet, orice dispozitiv de rețea are o adresă hardware formată din două părți, a cărei semnificație depinde de producătorul echipamentului și de instanța specifică a dispozitivului. Partea superioară a adresei MAC este alocată central sub licență fiecărui producător de echipamente de rețea. De exemplu, 00:E0:4C - pentru dispozitivele de rețea REALTEK SEMICONDUCTOR CORP. Producătorii mari de echipamente de rețea dețin de obicei mai multe game OUI. Partea inferioară a adresei MAC este formată în timpul producției dispozitivului de rețea și este unică pentru fiecare instanță.

Maparea adreselor IP (generate de software) la adresele hardware se face folosind următorii pași:

O cerere de difuzare (solicitare ARP) este trimisă în rețea și acceptată de toate dispozitivele din rețea. Conține adresele IP sursă și Ethernet, precum și adresa IP de destinație pentru care este determinată adresa MAC.

Fiecare dispozitiv care primește cererea verifică dacă adresa IP țintă specificată în cerere se potrivește cu propria sa adresă IP. Dacă există o potrivire, expeditorului i se trimite un ARP-Reply, care conține adresele IP și MAC ale nodului care răspunde. Cadrul de răspuns ARP conține adresele IP și MAC atât ale expeditorului, cât și ale destinatarului cererii.

Informațiile primite în răspunsul ARP sunt stocate în memoria cache ARP și pot fi utilizate pentru comunicații IP pentru gazda respectivă. Cache-ul ARP este un tabel în RAM, fiecare intrare în care conține IP, MAC și vârsta lor de valabilitate (de la câteva secunde la câteva ore). Vârsta intrării este luată în considerare pentru a se asigura că procedura ARP poate fi reexecută dacă există vreo modificare în maparea adresei.

Format de linie de comandă ARP:

ARP -s inet_addr eth_addr

ARP -d inet_addr

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

Opțiuni pentru linia de comandă ARP:

-A-Afișează intrările ARP curente prin interogarea datelor de protocol curent. Dacă parametrul este specificat inet_addr, atunci vor fi afișate adresele IP și fizice numai pentru computerul specificat. Dacă ARP-urile sunt utilizate pe mai multe interfețe de rețea, atunci vor fi afișate intrările pentru fiecare tabel.

-g- la fel ca parametrul -A.

-v- afișează intrările ARP curente în modul de înregistrare detaliată. Vor fi afișate toate intrările și intrările nevalide din interfața de feedback.

inet_addr- determină adresa IP.

-N if_addr- afișează intrările ARP pentru cele specificate if_addr interfata retea.

-d- șterge nodul specificat inet_addr. Parametru inet_addr poate conține wildcard * pentru a șterge toate nodurile.

-s- adaugă un nod și leagă o adresă de Internet inet_addr cu adresa fizica eth_addr. Adresa fizică este specificată de 6 octeți (în hexazecimal), despărțiți printr-o cratimă. Această conexiune este permanentă

eth_addr- definește adresa fizică.

if_addr- dacă se specifică, specifică adresa interfeței de Internet al cărei tabel de traducere a adreselor urmează să fie schimbat. Dacă parametrul nu este specificat, va fi utilizată prima interfață disponibilă.

În rețelele IP, există trei moduri de a trimite pachete de la o sursă la o destinație:

Transmisie unicast ( Unicast);

Difuzare ( Difuzare);

În transmisia unicast, fluxul de date este transferat de la nodul expeditor la adresa IP individuală a nodului receptor.

Difuzarea implică livrarea unui flux de date de la un nod sursă către mai multe noduri destinatare conectate la un anumit segment de rețea locală folosind o adresă IP de difuzare.

Multicast furnizează un flux de date unui grup de noduri la adresa IP a grupului de multicast. Nodurile grupului pot fi localizate în această rețea locală sau în oricare alta. Nodurile pentru distribuția multicast sunt combinate în grupuri folosind protocolul IGMP(Internet Group Management Protocol, Internet Group Management Protocol). Pachetele care conțin o adresă de grup în câmpul antet destinație vor ajunge la nodurile de grup și vor fi procesate. Sursa de trafic multicast direcționează pachetele multicast nu către adresele IP individuale ale fiecărui nod destinatar, ci către adresa IP multicast.

Adresele multicast definesc un grup arbitrar de noduri IP care s-au alăturat acestui grup și doresc să primească trafic adresat acestuia. Internet Assigned Numbers Authority (IANA), care guvernează atribuirea adreselor multicast, a alocat adrese IPv4 Clasa D în intervalul 224.0.0.0 până la 239.255.255.255 pentru multicast.

Exemple de utilizare ARP:

arp -a- afișați un tabel de corespondență între adresele IP și MAC pentru acest computer.

arp -a | Mai mult- la fel ca în cazul precedent, dar cu informații afișate în modul pagină cu pagină.

arp -a > macaddr.txt- afișați un tabel de corespondență între adresele IP și MAC pentru un computer dat, cu rezultatele rezultate în fișierul text macaddr.txt.

Exemplu de conținut al tabelului ARP:

Interfață: 127.0.0.1 --- 0x1

224.0.0.22 +nbsp bsp       static
224.0.0.251 +nbsp nbsp     static
239.255.255.250 & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP & NBSP STATIC STICIC

Interfață: 192.168.1.133 --- 0x1c

Adresă de internet Tip de adresă fizică

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

Acest exemplu conține intrări ARP pentru interfața loopback 127.0.0.1 si reale 192.168.1.133 . Interfața loopback nu este utilizată pentru transferul de date efectiv și nu este legată de o adresă hardware. Tabelul ARP cu interfață reală conține intrări pentru gazde cu adrese 192.168.1.1 Și 192.168.1.132 , precum și intrări pentru difuzare (adresa MAC este ff-ff-ff-ff-ff-ff) și multicast (adresa MAC începe cu 01-00-5e). Adresa MAC multicast începe întotdeauna cu un prefix de 24 de biți - 01-00-5E. Următorul, al 25-lea bit este 0. Ultimii 23 de biți ai adresei MAC sunt formați din cei 23 de biți cei mai puțin semnificativi ai adresei IP multicast.

arp -s 192.168.1.1 00-08-00-62-F6-19- adăugați o intrare în tabelul ARP care se potrivește cu adresa IP 192.168.1.1 și cu adresa fizică 00-08-00-62-F6-19

arp -d 192.168.1.1- eliminați o intrare din tabelul ARP pentru adresa IP 192.168.1.1

arp -d 192.168.1.*- eliminați intrările din tabelul ARP pentru intervalul de adrese IP 192.168.1.1 - 192.168.1.254

Câteva note despre utilizarea practică a comenzii ARP:

Rezolvarea adreselor ARP se realizează numai în timpul operațiunilor transferuri date prin protocolul IP.
- durata de viață a intrărilor din tabelul ARP este limitată, prin urmare, înainte de a vizualiza conținutul acestuia pentru o anumită adresă, trebuie să faceți ping la acea adresă.
- dacă nu vine un răspuns la ping și o intrare pentru o anumită adresă IP este prezentă în tabelul ARP, atunci acest fapt poate fi interpretat ca blocare a pachetelor ICMP de către firewall-ul gazdei ping.
- incapacitatea de a se conecta la o gazdă la distanță prin protocoale TCP sau UDP dacă există intrări în tabelul ARP pentru IP-ul țintă, poate fi un semn al absenței serviciilor de procesare a conexiunilor de intrare sau blocarea acestora de către un firewall (porturi închise) .
- Protocolul ARP funcționează în cadrul segmentului de rețea locală. Prin urmare, dacă dați ping la o gazdă externă (de exemplu, ping yandex.ru), atunci tabelul ARP va conține o intrare pentru adresa IP a routerului prin care pachetul este trimis la rețeaua externă.

Protocolul de rezoluție a adresei (ARP) este un protocol de rețea standard pentru găsirea adresei MAC a unei gazde atunci când este cunoscută numai adresa IP a acesteia. În cazul falsificării adresei, un atac ARP afectează negativ întreaga rețea atunci când are loc.

Există două tipuri posibile de atacuri ARP, unele vizează routere și altele vizează computere. Ambele tipuri de atacuri pot avea loc simultan. În orice caz, dacă există spoofing ARP în rețea, datele dintre computere și routere vor fi trimise către o destinație greșită (la adresa MAC greșită) și rețeaua nu va funcționa corect.

Deoarece există două tipuri de falsificare, trebuie să preveniți apariția lor atât pe router, cât și pe computer.

Ce trebuie făcut pentru a evita înlocuirea ARP ?

Când activați funcția de prevenire a falsificării ARP (adresă IP și legare la adresa MAC) pe routerul dvs. TP-Link, trebuie să atribuiți computerului o adresă IP statică. În caz contrar, este posibil ca funcția să nu funcționeze corect după legarea adreselor MAC și IP.

Pasul 1

Pasul 2

Dezactivați serverul DHCP de pe router. Pentru a face acest lucru, va trebui să vă conectați la interfața de administrare web.

(1) Faceți clic pe DHCP - Setări DHCP în partea stângă a paginii.

(2) Selectați Dezactivare lângă câmpul Server DHCP.

ARP pe router?

Pasul 1

Deschideți browserul și introduceți adresa IP de rețea a routerului în bara de adrese, în mod implicit, este 192.168.1.1. Apasa Enter.

Pasul 2

Introduceți numele de utilizator și parola pentru a vă conecta la interfața web. În mod implicit, atât login-ul, cât și parola sunt admin.

Pasul 3

Faceți clic pe IP & MAC Binding -> Binding setting în partea stângă a paginii.

Pasul 4

Selectați Enable ARP Binding, apoi faceți clic pe Salvare.

Pasul 5

Faceți clic pe Lista ARP din partea stângă a paginii și veți vedea tabelul ARP pe care îl amintește routerul.

Dacă datele din tabelul ARP sunt corecte, vă rugăm să faceți clic pe Încărcare tot și Legare toate, apoi toate adresele IP și MAC ale computerelor dvs. listate în lista ARP vor fi legate.

În caz contrar, introduceți adresele manual.

(1) Faceți clic pe Adăugare nou pentru a introduce adresele obligatorii.

(2) Activați opțiunea Bind și introduceți adresa MAC și IP a computerului dvs.

Trebuie să cunoașteți adresele MAC ale computerelor pentru care doriți să deschideți accesul la Internet. Puteți afla adresa MAC folosind linia de comandă.

(1) Faceți clic pe Start -> Run

(2) Tastați ipconfig /all în caseta de dialog, apăsați Enter și veți vedea toate informațiile despre adresa computerului.

Cum să configurați funcția de avertizare falsificare ARP pe computer?

Mai întâi, trebuie să determinați adresa MAC a routerului, care poate fi găsită pe pagina de stare LAN a interfeței de administrare web.

Programul ARP este o comandă încorporată a sistemului de operare de la Microsoft, deci poate fi folosit pe linia de comandă.

Pasul 1

Faceți clic pe Start -> Run, tastați cmd și apăsați Enter.

Pasul 2

Tastați arp-s 192.168.1.1 00-19-e0-fa-5b-2b în caseta de dialog, apăsați Enter. După aceea, introduceți arp-a . Aceasta verifică dacă tipul de date adăugat este Static.

Acum, după adăugarea intrării arp obligatorii pe computer, informațiile trimise către router nu vor fi trimise într-o altă direcție. Legarea ARP statică va exista până când computerul este repornit. După o repornire, trebuie să-l setați din nou.

Cum pot seta legarea să ruleze automat fără a repeta din nou întreaga operație de mai sus?

Pasul 1

Trebuie să creați un fișier batch cu o extensie .bat, de exemplu, static_arp.bat, și să îl editați. Scrieți o comandă ARP în fișier pentru a asocia adresa IP și MAC a routerului, apoi salvați-o.


Pasul 2

Faceți clic pe Start -> Toate programele, faceți dublu clic pe Start și copiați fișierul batch static_arp.bat în folderul care se deschide.

După aceasta, comanda ARP va fi executată automat de fiecare dată când computerul pornește.

TCP/IP nu ia în considerare tehnologiile de legătură și stratul fizic în timpul transferului de date efectiv, trebuie să mapați adresa IP la adresa stratului de legătură.

O rețea Ethernet utilizează adrese IP și MAC pentru a identifica sursa și destinația informațiilor. Informațiile trimise de la un computer la altul printr-o rețea conțin adresa fizică a expeditorului, adresa IP a expeditorului, adresa fizică a destinatarului și adresa IP a destinatarului. ARP asigură comunicarea între aceste două adrese, deoarece cele două adrese nu sunt legate între ele în niciun fel.

ARP- Address Resolution Protocol este un protocol al celui de-al treilea strat (de rețea) al modelului OSI, folosit pentru a converti adresele IP în adrese MAC, joacă o funcție importantă în rețelele de acces multiple. ARP a fost definit de RFC 826 în 1982.

Comunicarea directă între o adresă IP și o adresă MAC se realizează folosind așa-numitele tabele ARP, unde fiecare linie indică corespondența adresei IP cu adresa MAC.

Un exemplu de tabel ARP în sistemul de operare Windows este prezentat în figură.

În tabelul ARP, pe lângă adresa IP și MAC, este indicat și tipul de conexiune, există două tipuri de intrări:

  • Intrările statice sunt create manual și durează atâta timp cât computerul sau routerul rămâne pornit.
  • Înregistrările dinamice trebuie actualizate periodic. Dacă o înregistrare nu a fost actualizată într-un anumit timp (aproximativ 2 minute), atunci este exclusă din tabel. Tabelul ARP nu conține intrări despre toate nodurile de rețea. Dar numai cei care participă activ la operațiunile de rețea. Această metodă de stocare se numește cache ARP.

În IPv6, funcționalitatea ARP este furnizată de protocol NDP(Protocolul de descoperire a vecinilor).

RARP(Engleză: Reverse Address Resolution Protocol) este un protocol al celui de-al treilea strat (de rețea) al modelului OSI, efectuează maparea inversă a adresei, adică convertește o adresă hardware într-o adresă IP.

Există patru tipuri de mesaje ARP:

  • cerere ARP (ARPrequest);
  • răspuns ARP;
  • RARP-cerere;
  • RARP-răspuns.

Structura antetului ARP

  • Tip hardware (HTYPE) Fiecare protocol de transfer de date de canal are propriul său număr, care este stocat în acest câmp. De exemplu, Ethernet are numărul 0x0001
  • Tip protocol (PTYPE) Cod protocol de rețea. De exemplu, pentru IPv4 va fi scris 0x0800
  • Lungimea hardware (HLEN) Lungimea adresei fizice în octeți. Adresele Ethernet au o lungime de 6 octeți.
  • Lungimea protocolului (PLEN) Lungimea adresei logice în octeți. Adresele IPv4 au o lungime de 4 octeți.
  • Operațiunea Codul de operare al expeditorului: 1 în cazul solicitării și 2 în cazul răspunsului.
  • Adresa hardware a expeditorului (SHA) Adresa fizică a expeditorului.
  • Sender protocol address (SPA) Adresa logică a expeditorului.
  • Targethardwareaddress (THA) Adresa fizică a destinatarului. Câmpul este gol atunci când este solicitat.
  • Adresă de protocol țintă (TPA) Adresă de destinație logică.

Să ne uităm la structura antetului cererii ARP folosind exemplul unui pachet interceptat folosind analizatorul de rețea Wireshark

Să ne uităm la structura antetului de răspuns ARP (răspuns) folosind exemplul unui pachet interceptat folosind analizatorul de rețea Wireshark