Podcast 21T37 ARP w Wireshark’u [Tego Nie Wiesz]

Wi臋cej miejsc do pos艂uchania:

Spotify

WERSJA TEKSTOWA:

Cze艣膰, witam Ci臋 w dzisiejszym odcinku mojego podcastu. Dzisiejszy temat to Protok贸艂 ARP.

Zacznijmy od powodu stosowania tego protoko艂u. Po co si臋 go w og贸le stosuje? Jak zapewne wiesz komunikacja IP i komunikacja MAC s膮 ze sob膮 powi膮zane. S膮 to dwie odr臋bne warstwy, ale musz膮 ze sob膮 jako艣 wsp贸艂pracowa膰. Je偶eli chodzi o adresacj臋 to najcz臋艣ciej, jak parzysz na stron臋 komputera, to dostaje on adres z DHCP. Nie ma to akurat wi臋kszego znaczenia czy jest to adres z DHCP czy adres IP jest statyczny. Dostaje adres IP. Je偶eli adres IP innego urz膮dzenia w sieci jest lokalny, z tego samego zakresu maski adresowej i sieci, to jest potrzebna informacja na poziomie adresu MAC. Pytanie jest takie: Ja mam adres x.x.x.1, Ty masz adres x.x.x.2, jeste艣 w mojej sieci, ale jak mam si臋 do Ciebie odezwa膰 buduj膮c ramk臋 na poziomie warstwy drugiej, czyli na poziomie Ethernetu.

Nasz komputer wie, 偶e adres IP jest z tej samej lokalnej sieci. Z punktu widzenia mechanizmu L2 wie, 偶e trzeba odpyta膰 broadcastem czy w og贸le jeste艣 w tej sieci. Je艣li chodzi o Ethernet za艂o偶enie jest takie, 偶e je艣li czego艣 nie wiemy, to odpytujemy wszystkich w naszej sieci lokalnej. Je偶eli chodzi o adresacje IP, koncepcja jest zupe艂nie inna – jest to koncepcja maski i informacji na poziomie naszego lokalnego komputera, i偶 jeste艣my w tej samej sieci, lub odpytujemy jak膮艣 sie膰 zdaln膮, gdzie艣 poza nasz膮 lokaln膮 sieci膮.

Skupmy si臋 na razie na naszej lokalnej sieci. Wi臋c je偶eli chodzi o adres IP, to nasz komputer szukaj膮c s膮siada, wie, 偶e jest on w naszej lokalnej sieci. Je偶eli chodzi natomiast o adres MAC, to my tego nie wiemy. Wiemy jaki my mamy adres MAC jako komputer, ale nie wiemy jaki adres MAC ma s膮siad. Jak si臋 o tym dowiedzie膰? Tak jak ju偶 wspomnia艂em broadcastem. Musi on by膰 w jaki艣 ustrukturalizowany spos贸b wys艂any. Do tego w艂a艣nie s艂u偶y protok贸艂 ARP. Jest on protoko艂em warstwy drugiej, w zwi膮zku z tym mamy ramk臋 Ethernetow膮 a w niej 藕r贸d艂owy adres MAC (sMAC) i docelowy adres MAC (dMAC). Je偶eli nie znamy adresu MAC s膮siada, to wpisujemy w polu adres dMAC, adres broadcastowy i wtedy to zapytanie idzie do wszystkich.

Wyobra藕my sobie, 偶e jeste艣my s膮siadem i przychodzi do nas takie zapytanie. Najpierw sprawdzamy, czy ono jest do nas. Je偶eli jest w adresie dMAC, jest broadcast to oczywi艣cie ka偶de urz膮dzenie go sprawdzi. Je偶eli jest tam konkretny adres MAC, to nasze urz膮dzenie odpowie, tylko je偶eli tam b臋dzie nasz adres MAC.

Koncentrujemy si臋 nadal na protokole ARP. Mamy wi臋c broadcast w zapytaniu. Przyjmujemy jako zdalna maszyna to zapytanie ARP i pytanie jest o adres IP. Tzn, 偶e ka偶da maszyna w ramach tego protoko艂u ARP i analizy, odczytuje sobie o jaki adres IP jest zapytanie. Je偶eli to jest m贸j adres IP, to ja wtedy ARP-em, ju偶 unicastem odpowiadam, na poziomie ramki drugiej L2 adresu MAC i Ethernetu, jaki jest m贸j MAC, bo ja jestem tym s膮siadem, kt贸ry ma adres IP, o kt贸ry pytasz. Czyli broadcastem w jedn膮 stron臋, unicastem z powrotem, jest odpytywany ka偶dy s膮siad, przy pierwszym nawi膮zaniu komunikacji. Poniewa偶 przy odpowiedzi i powi膮zaniu tej informacji na stacji ko艅cowej jest realizowany dynamiczny wpis do tablicy ARP i on w tej tablicy pozostaje, dop贸ki nie minie time out – nie wy艂膮czymy urz膮dzenia lub nie b臋dzie ponownej komunikacji z danym hostem, wtedy ten licznik czasu jest restartowany.

ARP nam pomaga w naszej sieci lokalnej dowiedzie膰 si臋, jaki jest adres MAC dla szukanego adresu IP. Jest to powi膮zane z faktem, 偶e kiedy艣, co dzi艣 jest rzadko spotykane, sie膰 lokalna nie musia艂a by膰 w oparciu o IP, m贸g艂 to by膰 inny protok贸艂. Nie by艂 potrzebny protok贸艂 ARP.

Co ciekawe, je偶eli patrzysz na IPv6 to za艂o偶enie jest takie, 偶e IP jest tak powszechne, 偶e t膮 funkcjonalno艣膰 dowiadywania si臋 o adresie MAC wbudowano ju偶 bezpo艣rednio w IPv6 i nie ma ju偶 przy wykorzystywaniu tego protoko艂u takiego mechanizmu jak ARP. W og贸le zosta艂o to zintegrowane w standardzie komunikacji IPv6. Idea odpytywania o adres MAC jest oczywi艣cie podobna, ale nie jest to ju偶 zewn臋trznym protoko艂em typu ARP, tylko jest to jeden z element贸w IPv6.

Wracaj膮c jeszcze do scenariusza ARP. Potrzebujemy odpytywa膰 ARP o adresy MAC nie tylko wtedy, kiedy szukamy s膮siada lokalnego, czyli mamy adres IP w naszej sieci lokalnej, ale r贸wnie偶 w przypadku, kiedy chcemy si臋 odnie艣膰 do Internetu lub innej sieci, kt贸ra jest ju偶 poza nasz膮 sieci膮 lokaln膮. Wtedy te偶 potrzebujemy si臋 dowiedzie膰, jaki jest adres MAC, ale nie adres MAC tamtego zdalnego komputera, tylko adres MAC routera, kt贸ry jest wskazany jako gateway. Dlatego, 偶e jak widzimy adres IP, na naszym ko艅cowym ho艣cie, czyli na naszym komputerze, chcemy si臋 odnie艣膰 za艂贸偶my do Google, to oczywi艣cie ta nazwa domenowa jest rozwi膮zywana na adres IP, nasz komputer widzi, 偶e ten adres IP jest spoza naszej sieci lokalnej, wi臋c chce wys艂a膰 pakiet do routera, kt贸ry jest nasz膮 bram膮. Mamy w naszej konfiguracji IP informacj臋, jaki adres IP jest gateway-em czyli bram膮. Teraz je偶eli mamy ten adres IP, to nasz komputer potrzebuje si臋 dowiedzie膰 (je偶eli u偶ywamy Ethernetu, a dzi艣 praktycznie wsz臋dzie tak jest) jaki jest adres MAC interfejsu naszego routera, po to, aby m贸c stworzy膰 odpowiedni膮 ramk臋 Ethernetow膮 na poziomie L2, do tego routera. W tej ramce b臋dzie oczywi艣cie adres sMAC naszego komputera, adres dMAC gateway-a. Na poziomie IP, b臋dzie 藕r贸d艂owy IP (sIP) naszego komputera i docelowy IP (dIP) systemu Google. Wi臋c mamy tutaj r贸偶nice pomi臋dzy powi膮zaniem dIP i dMAC w przypadku odnoszenia si臋 do sieci WAN, czyli jakiej艣 sieci, poza nasz膮 lokaln膮 adresacj膮.

Mam nadziej臋, 偶e jest to wystarczaj膮co jasno opowiedziane. Je偶eli masz jakie艣 pytania, zadaj je w komentarzu. Je艣li chcia艂by艣 zobaczy膰, jak wygl膮da szczeg贸艂owo parametr sMAC, dMAC przy odpowiedzi ARP-owej to zapraszam Ci臋 do poniedzia艂kowego odcinka, gdzie pokazuje w Wireshark konkretne parametry komunikacji ARP-owej.

To tyle na dzi艣, dzi臋kuj臋 Ci za uwag臋 i do us艂yszenia ju偶 za tydzie艅.

Autor: Darek Koralewski

Od pocz膮tku swojej kariery, czyli od 2004 roku, zajmuj臋 si臋 sieciami komputerowymi ze szczeg贸lnym uwzgl臋dnieniem ich bezpiecze艅stwa oraz sieciami programowalnymi. Mam na swoim koncie ca艂膮 list臋 certyfikat贸w r贸偶nych producent贸w, dwa najwa偶niejsze to te po艣wiadczaj膮ce najwy偶szy poziom wiedzy eksperckiej z zakresu rozwi膮za艅 Aruba ClearPass ACCX#901 oraz z projektowania sieci opartych o rozwi膮zania Aruba ACDX#1255. Wi臋cej informacji mo偶esz znale藕膰 na moich portalach spo艂eczno艣ciowych.