Wie werden IP-Adressen auf MAC-Adressen abgebildet?


14

Ich habe über die Unterschiede zwischen MAC- und IP-Adressen gelesen und warum wir beide brauchen.

Zusammenfassend sind MAC-Adressen physikalisch unveränderbare eindeutige IDs für jedes einzelne Gerät, während IP-Adressen zugewiesen, änderbar und virtuell sind. Analog dazu sind MAC-Adressen wie Personen, die permanente Namen haben, und IP-Adressen sind der Ort, an dem sie derzeit leben.

In der realen Welt verknüpfen wir Adressen und Namen mit Hilfe eines Telefonbuchs. Welcher Mechanismus verknüpft IP-Adressen mit MAC-Adressen und wo befindet sich dieser Mechanismus im Netzwerk?


5
Nachdem Sie Ihre Fragen durchgesehen haben, werden Sie meines Erachtens von einem guten Buch profitieren. Überlegen Sie, ob Sie etwas in Anlehnung an TCP / IP Illustrated, Vol. 4, No. 1: Die Protokolle von Stevens (zu Ihrer Information, die Ausgabe von 1993 wird im Allgemeinen als besser angesehen als die Neuveröffentlichung von 2011, obwohl die Ausgabe von 1993 nur IPv4 ausführlich behandelt).
Mike Pennington

"Das illustrierte Netzwerk: Wie TCP / IP in einem modernen Netzwerk funktioniert" und / oder "TCP / IP-Handbuch: Eine umfassende illustrierte Internetprotokollreferenz" könnten ebenfalls einen Blick wert sein.
Jens Link

4
@MikePennington Danke, das ist eine nette Art, es zu formulieren, im Gegensatz zu einem "RTFM" und einem -1. Ich lese es jetzt online :)
CodyBugstein


1
MAC-Adressen sind in Wirklichkeit weder physisch noch unveränderlich noch eindeutig. Ich habe Geräte gesehen, deren MAC bei jedem Neustart zufällig ausgewählt wird. Es gibt auf jeden Fall Dienstprogramme für nahezu jede Plattform, mit denen die MAC-Adresse nahezu jeder Schnittstelle vorübergehend oder dauerhaft geändert werden kann. iOS 8 wird sogar den WLAN-MAC für das Scannen von Netzwerken nach dem Zufallsprinzip sortieren.
MacLemon

Antworten:


19

Der Mechanismus wird als Address Resolution Protocol (ARP) bezeichnet . Alle Ethernet IPv4-Geräte-ARPs, um Ethernet-Mac-Adressen für Ziel-IPs aufzulösen. IP-zu-Mac-Zuordnungen werden in der ARP-Tabelle jedes Geräts gespeichert (das Telefonbuch in Ihrer Analogie).

Zur Vereinfachung: In den meisten Fällen senden Sie zum Auflösen der mit einer IP-Adresse verknüpften MAC-Adresse ein Broadcast-ARP-Paket (an alle Geräte im Netzwerk) und fragen, wer über diese IP-Adresse verfügt. Das Gerät mit dieser IP-Adresse antwortet dem ARP (mit seiner MAC-Adresse).


Die meiste Zeit sieht es nur von einem lokalen Arptisch aus, denke ich. Nur das erste Mal, dass es eine Sendung geben muss
Cruncher

^ Ja, natürlich, nachdem der MAC des Geräts ermittelt wurde, wird er einige Zeit (einige Minuten) in einer ARP-Tabelle gespeichert, sodass der ARP-Abfrageprozess nicht für jedes Paket wiederholt werden muss.
Mulaz

Oh, ich wusste nicht, dass es nach ein paar Minuten den Tisch fallen ließ. Ich dachte, es hält eine Weile an. Bedeutet das für ARP-Gift, dass Sie ARP-Antworten quasi häufig senden müssen?
Cruncher

Ja, und der "echte" Host darf keine Pakete an die vergiftete Maschine senden, sonst speichert die Maschine die "echte" MAC.
Mulaz

1
Je nachdem, was Sie erreichen wollen.
Mulaz

13

Da die Frage mit IPv6 markiert wurde, beantworte ich dies, da IPv6 sich sehr von IPv4 unterscheidet.

Zunächst gibt es kein ARPv6. Die Zuordnung zwischen Layer 2 und IPv6-Adressen erfolgt über das Neighbor Discovery Protocol (NDP), das über ICMPv6 gesendet wird. Daher müssen Sie ICMPv6 nicht ignorieren und wegfiltern, wie dies bei älteren IP-Adressen üblich ist. Der NDP bietet zwei Nachrichtentypen, die hier von Interesse sind: Neighbor Solicitation und Neighbor Advertisement. Ein Knoten, der eine Link-Layer-Adresse für eine bestimmte IP-Adresse lernen möchte, sendet eine Neighbor Solicitation an die entsprechende Multicast-Adresse des Link-Local-Solicited-Nodes - für IPv6 wird kein Broadcast mehr gesendet.

Wenn die fragliche 2001:db8::0011:2233:4455:6677Adresse beispielsweise lautet ff02::1:ff55:6677, lautet die entsprechende Multicast-Adresse für angeforderte Knoten und die entsprechende Ethernet-Multicast-Adresse 33:33:ff:55:66:77. Alle Knoten mit einer Adresse, die auf endet, *55:6677gehören zu dieser Multicast-Gruppe und werden diese abhören - dies ist höchstwahrscheinlich nur das Zielsystem selbst. Die Neighbor Solicitation enthält auch die Unicast-IPv6-Adressen und die MAC-Adresse des Soliciting-Systems.

Nach dem Empfang antwortet der Zielknoten mit seiner Nachbarwerbung, die an die Unicast-Adresse (Verbindungsschicht und IPv6) des anfragenden Knotens gesendet wird. Somit lernt der Anforderungsknoten die MAC-Adresse des Zielknotens.

Und ja, NDP-Spoofing funktioniert ähnlich wie ARP-Spoofing. Und nein, IPsec ist nicht die Antwort.


" ARP selbst kann nicht verwendet werden, da es für 4-Byte-Netzwerkschichtadressen (dh IPv4) erstellt wurde. " Dies ist nicht wahr. ARP verwendet Adresslängenfelder, um die Adresslänge (bis zu 255 Bytes) für die Layer-2- und Layer-3-Adressen anzugeben (siehe RFC 826). Der Grund, warum ARP nicht mit IPv6 verwendet werden kann, ist, dass IPv6 kein Broadcast hat.
Ron Maupin

1
ARP wurde aus Sicherheitsgründen durch NDP in Version 6 ersetzt (und erfuhr dann, wie bei allen guten, an Version 6 angrenzenden Protokollen, ein erhebliches Feature-Creep), nicht weil Version 6 kein Broadcast hat - ARP verwendet nur L2-Broadcast und hätte problemlos erweitert werden können v6 adressen.
Nick Bastin

2
Ich weiß nicht, ob ARP aus Sicherheitsgründen überhaupt ersetzt wurde. Meines Erachtens bestand der Wunsch, alle Steuerprotokolle durch ICMPv6 abzudecken. Als Nebeneffekt können Sie ICMPv6 mit IPsec sichern. Für IPsec ist jedoch ein Schlüsselaustausch erforderlich, und IKE wird über UDP ausgeführt, für das eine IP-Adresse erforderlich ist. Eine Aufgabe von NDP besteht darin, eine IP-Adresse auszuhandeln, und der manuelle Schlüsselaustausch lässt sich nicht skalieren. Daher funktioniert die Idee von NDP + IPsec = Secure NDP nicht auf diese Weise. Alternativen wie SeND haben nicht nachgelassen (und werden es wahrscheinlich nie tun). Am Ende sehe ich keinen Sicherheitsvorteil von NDP gegenüber ARP.
Gegenmodus

4

Die beste Antwort ist gut. Falls es hilft, finden Sie hier eine Beschreibung in Bezug auf Ihre Telefonbuch-Analogie. Echte Netzwerkbegriffe in Klammern.

Anhand ihres Namens (IP-Adresse) wissen Sie, dass sie in Ihrer Nachbarschaft leben (Broadcast-Domain). Zuerst sehen Sie in Ihrem Telefonbuch (ARP-Cache) nach, ob Sie deren Adresse (MAC-Adresse) bereits kennen. Wenn sie nicht im Telefonbuch sind, gehen Sie nach draußen und rufen "Wo wohnt Steve?", So laut, dass jeder es hören kann (ARP-Anfrage). Vorausgesetzt, Steve wohnt tatsächlich dort und ist wach, antwortet er - nur Ihnen, nicht schreiend - "Hier ist meine Adresse" (ARP-Antwort). Sie schreiben es in Ihr Telefonbuch, damit Sie später darauf zurückgreifen können (ARP-Caching).


Sicher. Es war eine lustige Übung für mich. Reales Zeug wie Broadcast / Unicast passt nicht perfekt zur Analogie (Schreien / Sprechen / Mailen?), Also nimm ein Körnchen Salz.
Jacktose

Zum Redakteur: Ich habe die Adresse später in der Analogie für MAC verwendet.
Jacktose

2
  1. MAC-Adressen können geändert werden. Verwenden Sie unter Linux ip oder ifconfig für die meisten Windows-Betriebssysteme und überprüfen Sie die Treibereinstellungen Ihrer Netzwerkschnittstelle.

  2. Sie konvertieren nichts. MAC-Adressen befinden sich in Schicht 2, IP in Schicht 3 des OSI-Modells. Bei IPv4 wird mit ARP ermittelt, welche MAC-Adresse (Layer-2) zu einer bestimmten IP-Adresse (Layer-3) gehört. Für IPv6 wird ICMPv6 (Neighbor Discovery) verwendet.


Sorry, ich hätte sagen sollen "übersetzen" nicht "konvertieren"
CodyBugstein

0

ARP (Address Resolution Protocol)

IP-Adresse ---> ARP ---> MAC-Adresse

MAC-Adresse ---> RARP ---> IP-Adresse

IP-Adresse = Logische Adresse [32 Bit]

MAC-Adresse = Physikalische Adresse [48 Bit]

Netzwerkschicht (IP) ----> ARP ---> Datenverbindungsschicht (MAC)

Die IP-Adresse wird in der Netzwerkschicht benötigt, um einen Quell- / Zielhost zu identifizieren.

Die MAC-Adresse wird in der Datenverbindungsschicht benötigt, um einen Quell- / Zielhost zu identifizieren.


Sie sind falsch in Bezug auf RARP (viele Leute haben diese falsche Vorstellung). Dies wurde früher von einem Host verwendet, um seine eigene IP-Adresse zu ermitteln, nicht die IP-Adressen anderer Hosts. Es wird nicht mehr verwendet.
Ron Maupin

0

Der Netzwerkstapel sucht zuerst die Ziel-IP in seiner Routing-Tabelle und bestimmt daraus zwei Dinge.

  1. Über welche Schnittstelle das Paket gesendet werden soll.
  2. Wie lautet die IP-Adresse des nächsten Hops? Wenn in der Routingtabelle kein nächster Hop angegeben ist, wird die IP des Ziels als nächster Hop verwendet.

Beachten Sie, dass die IP-Adresse für den nächsten Hop ein rein lokales Konzept ist und niemals Teil eines Pakets wird, das über die Leitung gesendet wird.

Wenn das Paket auf einer Mehrpunktverbindungsschicht (z. B. Ethernet usw.) gesendet werden soll, sucht das Betriebssystem den nächsten Hop in seiner Arp- (ipv4) oder Nachbarerkennungs-Tabelle (ipv6). Wenn es dort einen nicht veralteten Eintrag findet, hat es die MAC-Adresse, die es benötigt, und kann das Paket senden.

Wenn kein verwendbarer Eintrag vorhanden ist, werden die für diesen nächsten Hop bestimmten Pakete in die Warteschleife gestellt und eine Anforderung zum Ermitteln der MAC-Adresse gesendet. Die Mechanismen hier unterscheiden sich etwas zwischen v4 und v6.

In v4 werden Arp-Anfragen gesendet. Dies wird normalerweise rundgesendet, aber in einigen Fällen, wenn der Host einen veralteten Eintrag hat, versucht er möglicherweise zuerst eine Unicast-Anforderung und greift nur dann auf die Rundsendung zurück, wenn dies fehlschlägt. Die Antwort ist normalerweise Unicast.

In v6 werden Anforderungen für Neigbour-Anfragen an eine Multicast-Adresse gesendet, die aus der nächsten Hop-Adresse generiert wird. Das Ziel antwortet mit einer Unicast-Nachbarbekanntmachung. Hosts können auch Nachbarwerbung an die Gruppe "All-Nodes Multicast" (auch bekannt als effektiv Broadcast) senden, um Einträge in den Discovery-Caches ihrer Nachbarn zu aktualisieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.