W jaki sposób adresy IP są mapowane na adresy MAC?

14

Czytałem o różnicach między adresami MAC i IP i dlaczego potrzebujemy obu z nich.

Podsumowując, adresy MAC są fizycznymi, niezmiennymi, niepowtarzalnymi identyfikatorami dla każdego urządzenia, podczas gdy adresy IP są przypisywane, zmienne i wirtualne. Analogicznie, adresy MAC są jak ludzie o stałych nazwach, a adresy IP są tam, gdzie obecnie mieszkają.

W prawdziwym świecie łączymy adresy i nazwiska za pomocą książki telefonicznej. Jaki mechanizm łączy adresy IP z adresami MAC i gdzie znajduje się ten mechanizm w sieci?

CodyBugstein
źródło
5
Po zapoznaniu się z Twoimi pytaniami myślę, że skorzystasz z dobrej książki. Zastanów się nad studiowaniem czegoś podobnego do TCP / IP Illustrated, t. 1: Protokoły Stevensa (FYI, wydanie z 1993 r. Jest ogólnie uważane za lepsze niż ponowne wydanie z 2011 r., Chociaż wydanie z 1993 r. Obejmuje tylko dogłębnie IPv4).
Mike Pennington
Warto również zapoznać się z „Ilustrowaną siecią: jak TCP / IP działa w nowoczesnej sieci” i / lub „Przewodnikiem TCP / IP: kompleksowe, ilustrowane odniesienie do protokołów internetowych”.
Jens Link
4
@MikePennington Dziękuję, to dobry sposób na wyrażenie tego, w przeciwieństwie do „RTFM” i -1. Czytam go teraz online :)
CodyBugstein
Powiązane: superuser.com/questions/623511/…
leonbloy
1
Adresy MAC nie są w rzeczywistości ani fizyczne, ani niezmienne, ani unikalne. Widziałem urządzenia, które losowo przydzielają MAC podczas każdego ponownego uruchomienia. Z pewnością istnieją narzędzia dla niemal każdej platformy do tymczasowej lub trwałej zmiany adresu MAC niemal każdego interfejsu. iOS 8 losowo nawet MAC MAC Wi-Fi do skanowania sieci.
MacLemon

Odpowiedzi:

19

Mechanizm nosi nazwę Address Resolution Protocol (ARP) . Każdy ARP urządzenia Ethernet IPv4 do rozwiązywania adresów MAC Ethernet dla docelowych adresów IP. Odwzorowania adresów IP na mac są przechowywane w tabeli ARP każdego urządzenia (książka telefoniczna w Twojej analogii).

Aby uprościć: W większości przypadków, aby rozwiązać adres MAC powiązany z adresem IP, wysyłasz pakiet emisji ARP (do wszystkich urządzeń w sieci), pytając, kto ma ten adres IP. Urządzenie z tym adresem IP odpowiada na ARP (z jego adresem MAC).

mulaz
źródło
myślę, że przez większość czasu po prostu spogląda z lokalnego stołu arp. Po raz pierwszy musi nadawać
Cruncher
^ tak, oczywiście, po znalezieniu MAC urządzenia, przechowuje przez pewien czas w tablicy ARP (kilka minut), więc nie musi powtarzać procesu zapytania ARP dla każdego pakietu.
mulaz
Och, nie zdawałem sobie sprawy, że upuściło stół po kilku minutach. Przez chwilę myślałem, że to trwa. Czy to znaczy, że trucizna ARP wymaga częstego wysyłania odpowiedzi ARP?
Cruncher
Tak, a „prawdziwy” host nie może wysyłać żadnych pakietów do zatrutej maszyny, inaczej maszyna zapisze „prawdziwy” MAC.
mulaz
1
W zależności od tego, co próbujesz osiągnąć.
mulaz
13

Ponieważ pytanie było oznaczone IPv6, odpowiem na to, ponieważ IPv6 różni się bardzo od IPv4.

Na początek nie ma czegoś takiego jak ARPv6. Mapowanie między adresami warstwy 2 a adresami IPv6 jest wykonywane przez protokół Neighbor Discovery Protocol (NDP), który jest przesyłany przez ICMPv6. Dlatego nie wolno ignorować ICMPv6 i filtrować go, podobnie jak w przypadku starszych adresów IP. NDP udostępnia dwa typy wiadomości, które są tutaj interesujące: Pozyskiwanie sąsiadów i Reklama sąsiadów. Węzeł, który chce nauczyć się adresu warstwy łącza dla określonego adresu IP, wysyła żądanie sąsiada na odpowiedni adres multiemisji łącza lokalnego - nie ma już emisji dla IPv6.

Na przykład, jeśli dany adres to 2001:db8::0011:2233:4455:6677, to odpowiedni adres multiemisji dla węzła zamówionego to ff02::1:ff55:6677odpowiedni adres multiemisji Ethernet 33:33:ff:55:66:77. Wszystkie węzły z adresem kończącym się *55:6677należą do tej grupy multiemisji i nasłuchują - najprawdopodobniej jest to tylko sam system docelowy. Pozyskiwanie sąsiadów zawiera także adresy IPv6 emisji pojedynczej i adres MAC systemu rejestrującego.

Po otrzymaniu węzeł docelowy odpowiada za pomocą swojej reklamy sąsiedzkiej, która jest wysyłana na adres emisji pojedynczej (warstwa łącza i IPv6) węzła odbiorczego. W ten sposób węzeł rejestrujący uczy się adresu MAC węzła docelowego.

I tak, fałszowanie NDP działa podobnie jak spoofowanie ARP. I nie, IPsec nie jest odpowiedzią.

przeciwdziałanie
źródło
Nie można użyć samego ARP, ponieważ został on stworzony dla 4-bajtowych adresów warstwy sieci (tj. IPv4). ” To nieprawda. ARP używa pól długości adresu, aby określić długość adresu (do 255 oktetów) zarówno dla adresów warstwy 2, jak i warstwy 3 (patrz RFC 826). Powodem, dla którego ARP nie można używać z IPv6, jest to, że IPv6 nie ma emisji.
Ron Maupin
1
ARP został zastąpiony NDP w wersji 6 ze względów bezpieczeństwa (a następnie, podobnie jak wszystkie dobre protokoły sąsiadujące z wersją v6, wystąpił znaczny pełzanie funkcji), nie dlatego, że wersja 6 nie ma emisji - ARP używa tylko transmisji L2 i można ją łatwo rozszerzyć, aby zapewnić adresy v6.
Nick Bastin
2
Nie wiem, czy ARP zostało zastąpione ze względów bezpieczeństwa. O ile mi wiadomo, istniała chęć objęcia wszystkich protokołów kontrolnych przez ICMPv6. Jako efekt uboczny, tak, możesz zabezpieczyć ICMPv6 przez IPsec. Jednak IPsec wymaga wymiany kluczy, a IKE działa przez UDP - co wymaga adresu IP. Jednym z zadań NDP jest negocjowanie adresu IP, a ręczna wymiana kluczy nie jest skalowana, więc pomysł NDP + IPsec = bezpieczny NDP nie działa w ten sposób. Alternatywy takie jak SeND nie odeszły (i prawdopodobnie nigdy nie będą). Ostatecznie nie widzę żadnej przewagi bezpieczeństwa NDP nad ARP.
przeciwdziałanie
4

Najlepsza odpowiedź jest dobra. Jeśli to pomoże, oto opis w kategoriach analogii do książki telefonicznej. Prawdziwe warunki pracy w sieci w nawiasach.

W oparciu o ich nazwę (adres IP) wiesz, że mieszkają w Twojej okolicy (domena rozgłoszeniowa). Najpierw zajrzyj do książki telefonicznej (pamięć podręczna ARP), aby sprawdzić, czy znasz już ich adres (adres MAC). Jeśli nie ma ich w książce telefonicznej, wychodzisz na zewnątrz i krzyczysz (transmitujesz): „Gdzie mieszka Steve?” wystarczająco głośny, aby wszyscy mogli go usłyszeć (żądanie ARP). Zakładając, że Steve faktycznie tam mieszka i nie śpi, odpowiada - tylko tobie, nie krzycząc - „Oto mój adres” (odpowiedź ARP). Zapisujesz to w książce telefonicznej do wykorzystania w przyszłości (buforowanie ARP).

Jacktose
źródło
Pewnie. To było dla mnie zabawne ćwiczenie. Rzeczy takie jak broadcast / unicast nie odwzorowują idealnie analogii (krzyczy / rozmawia / mail?), Więc weź trochę soli.
Jacktose
Do edytora: Użyłem adresu później w analogii, dla MAC.
Jacktose
2
  1. Adresy MAC można zmienić. W systemie Linux użyj ip lub ifconfig dla większości systemów Windows, sprawdź ustawienia sterownika interfejsu sieciowego.

  2. Niczego nie konwertujesz. Adresy MAC znajdują się w warstwie 2, a IP w warstwie 3 modelu OSI. W przypadku IPv4 ARP służy do ustalenia, który adres MAC (Layer-2) należy do określonego adresu IP (Layer-3). W przypadku IPv6 stosuje się ICMPv6 (Neighbor Discovery).

Jens Link
źródło
Przepraszam, powinienem był powiedzieć „tłumaczyć”, a nie „przekonwertować”
CodyBugstein,
0

Address Resolution Protocol (ARP)

Adres IP ---> ARP ---> Adres MAC

Adres MAC ---> RARP ---> Adres IP

Adres IP = adres logiczny [32 bity]

Adres MAC = adres fizyczny [48 bitów]

Warstwa sieci (IP) ----> ARP ---> Warstwa łącza danych (MAC)

Adres IP jest potrzebny w warstwie sieciowej do identyfikacji hosta źródłowego / docelowego.

Adres MAC jest potrzebny w warstwie łącza danych do identyfikacji hosta źródłowego / docelowego.

Dipankar Nalui
źródło
Mylisz się co do RARP (wiele osób ma ten błędny pomysł). Jest to coś, co było używane przez hosta do określania własnego adresu IP, a nie adresów IP innych hostów. Nie jest już używany.
Ron Maupin
0

Stos sieci najpierw sprawdza docelowy adres IP w swojej tabeli routingu, na podstawie której określa dwie rzeczy.

  1. Przez jaki interfejs pakiet powinien zostać wysłany.
  2. Jaki jest adres IP następnego skoku. Jeśli w tabeli routingu nie podano następnego przeskoku, adres IP miejsca docelowego jest używany jako następny przeskok.

Zauważ, że adres IP następnego przeskoku jest koncepcją czysto lokalną, nigdy nie staje się częścią pakietu wysyłanego przewodowo.

Jeśli pakiet ma zostać wysłany na wielopunktowej warstwie łącza (np. Ethernet itp.), System operacyjny następnie wyszukuje następny przeskok w swojej tabeli arp (ipv4) lub sąsiada (ipv6). Jeśli znajdzie tam nieświeży wpis, to ma adres MAC, którego potrzebuje i może wysłać pakiet.

Jeśli nie ma użytecznego wpisu, wstrzymuje pakiety przeznaczone do następnego przeskoku i wysyła żądanie znalezienia adresu MAC. Mechanizmy tutaj różnią się nieco między wersjami v4 i v6.

W v4 wysyłane są żądania arp. Zwykle jest to transmitowane, ale w niektórych przypadkach, jeśli host ma nieaktualny wpis, może najpierw wypróbować żądanie emisji pojedynczej, a jeśli nie powiedzie się, wróci do emisji. Odpowiedź jest zwykle emisji pojedynczej.

W v6 neigbour żądania pozyskiwania są wysyłane na adres multiemisji wygenerowany z adresu następnego przeskoku. Cel odpowiada reklamą sąsiada emisji pojedynczej. Gospodarze mogą również wysyłać reklamy sąsiadów do grupy „wszystkie węzły multiemisji” (inaczej skutecznie nadawane) w celu odświeżenia wpisów w pamięci podręcznej odnajdywania sąsiadów.

Peter Green
źródło