Deci, așa cum se spune, cum ar fi fluxul de trafic dacă dispozitivul A trimite traficul către dispozitivul C?
Să spunem, de exemplu, că dispozitivul A pings device C.
Deci, pe gazda A sau dispozitivul A comanda ping 10. 1. 1. 2 este utilizat.
Cum ar fi fluxul de trafic, acum este important să
ne amintim că IP este o tehnologie cu strat 3.
Adresele MAC sunt utilizate la
nivelul 2, astfel încât PC A trebuie să aibă o mapare între adresa
IP a stratului 3 și
adresa MAC a stratului 2, deoarece Ethernet este utilizat în
acest mediu și pachetul trebuie să fie încapsulat la stratul 2 și trimis la fir .
Deci, în Ethernet, trebuie adăugată o adresă MAC la nivelul 2.
Deci acest punct PC A nu cunoaște adresele MAC asociate cu adresa
IP 10. 1. 1. 2.
Ethernet este încă o dată o tehnologie a stratului 2
și necesită utilizarea adreselor MAC atunci când traficul este trimis către segmentul Ethernet, astfel încât A poate
trimite traficul pe segmentul de rețea pe care trebuie să îl cunoască pe adresa MAC asociată cu
adresa IP 10. 1. 1. 2 Îmi
amintesc că în modelul OSI, fiecare strat este independent de alte straturi,
iar straturile inferioare încapsulează straturile superioare.
Deci, cum este PC-ul să învețe adresa MAC a PC-ului C?
face acest lucru folosind un protocol numit Address Resolution Protocol sau ARP, primul lucru pe care PC-ul
îl face este să verifice cache-ul ARP local pentru a
vedea dacă există deja o adresă IP care înregistrează intrarea
existentă10. 1. 1. 2 la o adresă MAC.
Dacă nu există o intrare existentă în cache-ul mașinilor locale, acesta va
trimite o emisiune pentru a încerca să afle cine
are adresa IP 10. 1. 1. 2 și acest mesaj este numit un mesaj de solicitare ARP.
În acest exemplu, PC A și PC C se află în aceeași
subrețea, astfel încât PC A va trimite o emisie către subrețeaua locală,
solicitând adresa MAC a PC C utilizând o solicitare ARP.
O cerere ARP arata dupa cum
urmeaza: Adresa MAC sursa in acest exemplu este A
deoarece rama a
fost trimisa de catre A adresa de destinatie Mac este o emisiune.
Acest lucru se datorează faptului că A nu știe cine are adresa IP 10. 1. 1. 2 Deci,
o cerere ARP este în esență un mesaj care întreabă cine are această adresă IP?
astfel încât adresa IP la care se face referire în pachet este de 10. 1. 1. 2 adresa IP sursă
este 10. 1. 1. 1 adresa MAC a
sursei este A și adresa MAC destinație este o difuzare la nivelul 2.
Doar pentru a reitera, aceasta este partea 2
a mesajului și aceasta este porțiunea de strat 3 a mesajului conform modelului OSI.
Acum, înainte de a continua cu exemplul nostru,
vreau să vă arăt un exemplar real al ARP sau al Protocolului de soluționare a adreselor.
așa că pe PC-ul meu, pot tasta comanda arp-a și voi vedea cache-ul local ARP adresa mea de IP
este de 10. 0. 0. 3 și după cum puteți vedea aici
am învățat o adresă IP de 10. 0. 0. 254 în mod dinamic.
există și câteva intrări statice în memoria cache
ARP, ca exemplu adresa de difuzare la nivelul
3 care este de 255. 255. 255. 255 și adresa stratului 2 este de 8Fs, deci pentru
un strat de transmisie de 255. 255. 255. 255 adresa
echivalentă a stratului 2 este 8Fs în acest exemplu
avem doar o adresă MAC dinamică în cache-ul ARP
local al calculatorului meu,
astfel încât comanda ip ip command să-mi arate adresele mele IP.
În acest exemplu, putem vedea adresa mea IPv6 care este 2001: 20 :: 2 și adresa mea IPv4
de 10. 0. 0. 3
momentan ne concentrăm doar pe adresele IPv4.
Deci, puteți vedea și porta mea implicită, care va fi setată la 10. 0. 0. 254, astfel încât
memoria cache ARP îmi arată cartografia adresei IP a gateway-ului
meu implicit la adresa MAC corespunzătoare.
Deci, comanda arp-d îmi va permite să șterg înregistrările ARP în cache-ul ARP local.
arp - a arată o singură intrare dinamică, așa că voi șterge din nou arhiva ARP.
Acum puteți vedea că nu există intrări în cache-ul ARP.
Voi face din nou și văd că intrarea a apărut
din nou și asta pentru că trimit trafic de la PC-ul meu local la gateway-ul meu implicit.
Voi face asta din nou, deci arp - a, arată adresa de difuzare direcționată pentru această subrețea, care este
de 10. 0. 0. Acum voi pinge
o altă adresă IP de 10. 0. 0. 123, astfel
încât nu a fost introdusă o intrare ARP pentru această adresă IP.
Dar am observat când ping, ping-ul reușește și dacă mă uit din nou
la cache-ul ARP, veți observa că o intrare ARP
a fost adăugată pentru IP-ul adăugat 10. 0. 0. 123 Acum aceasta
este o altă adresă IP configurată pe ruterul meu local.
Deci, adresa MAC rezolvată este aceeași adresă MAC ca și adresa
IP 10. 0. 0. Dacă șterg
din nou memoria cache ARP, arp - d nu observă că nu
se găsesc intrări în memoria cache ARP, dar nu există nicio intrare.
Să pingem 10. 0. 0. 123 ping-ul reușește și dacă ne
uităm la cache-ul ARP din nou observați că există o intrare și cache-ul ARP
acum pentru adresa IP 10. 0. 0. 123 dacă acum îmi ping
gateway-ul implicit de 10. 0. 0. 254 care
anterior nu aveau intrare în memoria cache ARP, pot vedea acum folosind
comanda arp - a că a fost creată o
adresă IP la intrarea în adresa MAC.
Deci, care e moralul istoriei?
Înainte ca traficul să poată fi trimis la o adresă IP pe segmentul local,
ARP trebuie să creeze o mapare între adresa IP a stratului
3 și adresa MAC a stratului 2.
Wireshark este un instrument de sniffing care vă permite să capturați traficul
firului local pentru a vedea ce se întâmplă.
Este un instrument neprețuit pentru Network Engineer Să folosim Wireshark pentru a
vedea ce are loc în acest exemplu Deci, ce voi face în primul rând este
să încep capturarea în Wireshark Deci, pe interfața mea Ethernet, voi începe
să surprind rame Acum voi șterge memoria cache ARP astfel încât acum
nu se găsesc intrări în cache-ul
ARP voi pinge 10. 0. 0. 254 și să aruncăm
o privire la cache-ul ARP din nou după ce
ne uităm la cache-ul ARP, vedem
că a fost adăugată o intrare pentru acea adresă și acum voi
ping 10. 0. 0. 123
asa ca acum arp - a arata cele doua intrari in cache-ul ARP Sa oprim
captura si sa cautam intrarile ARP Asa cum puteti vedea aici
este o transmisie care a fost trimisa de la aparatul meu local Protocolul folosit este ARP si eu
întrebând cine are adresa IP 10. 0. 0. 254 spune
10. 0. 0. 3 PC-ul
meu local Deci, la nivelul 2 puteți vedea că adresa de destinație este o
transmisie adresa sursă este mașina mea locală este o cerere ARP.
Acesta este tipul Ether pentru ARP 0x0806 și uita-te la
protocolul de rezoluție a adreselor pentru informațiile ARP.
Observați că căutăm o adresă IP 10. 0. 0. 254 adresa
MAC a expeditorului este mașina mea locală adresa
MAC țintă nu este cunoscută și căutăm adresa
IP 10. 0. 0. 254 Odată
ce dispozitivul a răspuns înapoi utilizând un mesaj de răspuns ARP,
voi putea să ping acel dispozitiv.
Deci, în captura Wireshark puteți vedea că trimit un ecou pentru a putea
vedea solicitarea ICMP echo ping și aici am
primit răspunsul sau răspunsul.
Mergând mai departe, voi putea vedea solicitarea ARP pentru adresa IP
10. 0. 0. 123
destinația stratului 2 este o transmisie, sursa este o adresă MAC locală
și solicităm adresa MAC țintă cu alte cuvinte care are
adresa IP 10. 0. 0. 123 răspunsul
este unicast deoarece dispozitivul este trimis cererii arp pentru
a știe cine a venit cererea arp.
Deci, destinația de la nivelul 2 este mașina mea locală.
Sursa este expeditorul meu local de router adresa
IP a expeditorului de adrese MAC, adresa MAC tinta, adresa IP tinta.
În acest caz, comunic direct cu routerul meu local, în
loc să trimit trafic prin router. Deci,
adresa MAC și adresa IP folosită în acest exemplu sunt
mașina mea locală și ruterul local.
În ieșirea aici puteți vedea că adresa MAC a expeditorului este un router Cisco.
Adresa IP este 10. 0. 0. 123
adresă MAC țintă este laptopul meu local cu adresa
IP țintă de 10. 0. 0. 3