VMware ESXi and vSphere Cluster Management
Was ist eine MAC-Adresse? Aufbau, Funktion und unter Linux anzeigen
Was ist eine MAC-Adresse? Erfahren Sie, wie EUI-48, OUI, Switches, ARP und IP-Adressen zusammenhängen und wie Sie MAC-Adressen unter Linux anzeigen.
Eine MAC-Adresse ist eine Adresse eines Netzwerkinterfaces auf der Sicherungsschicht, also auf Layer 2 des OSI-Modells. Sie wird vor allem verwendet, um Daten innerhalb eines lokalen Netzwerks an den richtigen Netzwerkadapter zuzustellen.
MAC steht für Media Access Control. Ein Computer besitzt nicht zwingend nur eine MAC-Adresse: Ethernet, WLAN, virtuelle Maschinen, Container und weitere virtuelle Adapter können jeweils eigene Netzwerkinterfaces mit eigenen MAC-Adressen haben.
Was ist eine MAC-Adresse?
Eine MAC-Adresse identifiziert ein Netzwerkinterface innerhalb eines lokalen Layer-2-Netzwerks. Ein Netzwerkinterface ist eine physische oder virtuelle Schnittstelle, über die ein Gerät Daten sendet und empfängt. Beispiele sind ein Ethernet-Adapter, ein WLAN-Adapter oder eine virtuelle Schnittstelle einer VM.
Die Bezeichnungen Hardware-Adresse und physikalische Adresse sind verbreitet, weil Hersteller einem Netzwerkadapter häufig ab Werk eine Adresse zuweisen. Sie sind jedoch nicht vollständig wörtlich zu verstehen: Betriebssysteme können MAC-Adressen oft softwareseitig ändern oder vorübergehend eine zufällig erzeugte Adresse verwenden.
Ein Gerät kann mehrere MAC-Adressen besitzen
Ein Laptop mit Ethernet- und WLAN-Adapter hat normalerweise mindestens zwei MAC-Adressen. Zusätzlich können virtuelle Maschinen, Container, Bridges oder Tunnel weitere Interfaces bereitstellen. Deshalb ist es normal, dass Linux mehrere MAC-Adressen anzeigt.
Die werkseitige Herstellervergabe verfolgt das Ziel, Adressen weltweit möglichst eindeutig zu machen. Eine absolute Garantie ist das in der Praxis nicht. Adressen können doppelt vorkommen, verändert, geklont oder zufällig erzeugt werden.
Aufbau und Schreibweise
Die klassische MAC-Adresse verwendet das Format EUI-48. EUI-48 steht für eine 48-Bit-Adresse. 48 Bit entsprechen 6 Byte beziehungsweise 6 Oktetten. Ein Oktett ist eine Gruppe aus 8 Bit.
Eine EUI-48-MAC-Adresse wird als zwölf hexadezimale Zeichen dargestellt. Das Zahlensystem Hexadezimal verwendet die Zeichen 0 bis 9 sowie A bis F. Übliche Schreibweisen trennen die sechs Oktette mit Doppelpunkten oder Bindestrichen:
D8:D3:85:C1:00:08
D8-D3-85-C1-00-08Beide Schreibweisen stellen dieselben 48 Bit dar. Groß- und Kleinschreibung der hexadezimalen Buchstaben ändert den Wert nicht.
| Teil | Bitlänge | Position | Bedeutung | Beispiel |
|---|---|---|---|---|
| OUI beziehungsweise Herstellerpräfix | 24 Bit | Erste 3 Oktette | Traditionell einem Hersteller- oder Organisationsbereich zugeordnet | D8:D3:85 |
| Gerätespezifischer Anteil | 24 Bit | Letzte 3 Oktette | Traditionell individuelle Vergabe innerhalb des zugeordneten Bereichs | C1:00:08 |
| Gesamte EUI-48-Adresse | 48 Bit | 6 Oktette | Adresse des jeweiligen Netzwerkinterfaces | D8:D3:85:C1:00:08 |
Beispiel: D8:D3:85:C1:00:08 lesen
Die Adresse besteht aus sechs hexadezimalen Paaren:
D8 : D3 : 85 : C1 : 00 : 08
|------ Herstellerpräfix ------| |-- gerätespezifischer Anteil --|D8:D3:85 bilden den traditionellen ersten 24-Bit-Bereich, die sogenannte OUI (Organizationally Unique Identifier). C1:00:08 bilden den traditionell gerätespezifischen Teil.
Aus dem Präfix lässt sich nicht zuverlässig ohne Weiteres der Hersteller ablesen. Eine Zuordnung sollte mit einer aktuellen OUI-Datenbank geprüft werden. Bei lokal verwalteten oder zufällig erzeugten MAC-Adressen kann ein Herstellerpräfix außerdem keine verlässliche Aussage über die Hardware liefern.
Unicast, Multicast und lokal verwaltete Adressen
Im ersten Oktett haben einzelne Bits besondere Bedeutung. Das niederwertigste Bit kennzeichnet, ob die Adresse für Unicast oder Multicast verwendet wird. Unicast bedeutet die Zustellung an einen einzelnen Empfänger; Multicast richtet sich an eine Gruppe von Empfängern.
Das zweitniederwertigste Bit des ersten Oktetts unterscheidet traditionell zwischen einer universell vergebenen und einer lokal verwalteten Adresse. Betriebssysteme und WLAN-Funktionen können lokal verwaltete Adressen beispielsweise für Randomisierung verwenden.
Die Ethernet-Broadcast-Adresse lautet üblicherweise FF:FF:FF:FF:FF:FF. Sie adressiert alle Teilnehmer innerhalb der jeweiligen Broadcast-Domain.
Welche Rolle spielt die MAC-Adresse im lokalen Netzwerk?
Ethernet- und WLAN-Frames enthalten eine Quell- und eine Ziel-MAC-Adresse. Ein Frame ist die Datenübertragungseinheit der Sicherungsschicht. Die Zieladresse sagt dem lokalen Netzwerk, welches Interface den Frame erhalten soll.
Ein Switch liest die Quell-MAC-Adressen eingehender Frames und merkt sich, an welchem Port sie erreichbar sind. Diese Zuordnung wird als MAC- oder Forwarding-Tabelle bezeichnet. Kennt der Switch die Zieladresse, kann er den Frame gezielt an den passenden Port weiterleiten, statt ihn an alle Ports zu senden.
MAC-Adressen gelten hauptsächlich innerhalb eines lokalen Layer-2-Segments. Sie sind keine globalen Internetadressen. Wenn ein Router ein Paket in ein anderes Netzwerk weiterleitet, wird für jeden Link eine neue Layer-2-Zustellung verwendet. Die MAC-Adresse des ursprünglichen Absenders bleibt daher nicht unverändert über das gesamte Internet hinweg erhalten.
MAC-Adresse und IP-Adresse im Zusammenspiel
Eine IP-Adresse ist eine logische Adresse der Netzwerkschicht. Sie ermöglicht Adressierung und Routing zwischen verschiedenen Netzwerken. Eine MAC-Adresse dient dagegen der lokalen Zustellung über die konkrete Netzwerkverbindung.
Beispiel: Ein Rechner möchte einen IPv4-Host im gleichen LAN erreichen. Er kennt die Ziel-IP-Adresse, benötigt für den Ethernet-Frame aber zusätzlich die Ziel-MAC-Adresse. Mit ARP (Address Resolution Protocol) fragt er im lokalen Netz ab, welcher Netzwerkadapter die IPv4-Adresse verwendet. Anschließend sendet er den Frame an die ermittelte MAC-Adresse.
Bei IPv6 übernimmt Neighbor Discovery diese Aufgabe. Es dient unter anderem der Nachbarerkennung und der Auflösung einer IPv6-Adresse in die passende Link-Layer-Adresse.
| Begriff | Aufgabe | Geltungsbereich | Beispiel |
|---|---|---|---|
| MAC-Adresse | Lokale Zustellung von Frames an ein Netzwerkinterface | Lokales Layer-2-Segment | D8:D3:85:C1:00:08 |
| IP-Adresse | Logische Adressierung und Routing zwischen Netzwerken | Netzwerkschicht, auch über Router hinweg | 192.168.1.20 |
| DHCP | Automatische Vergabe von IP-Konfigurationen | Das jeweilige Netzwerk beziehungsweise der DHCP-Verwaltungsbereich | IP-Adresse, Präfix, Gateway und DNS-Server |
DHCP vergibt üblicherweise IP-Netzwerkeinstellungen. Ein DHCP-Server kann dabei eine MAC-Adresse oder eine Client-Kennung verwenden, um einem Interface wiederholt eine bestimmte IP-Adresse zuzuweisen. Eine solche DHCP-Reservierung bindet die logische IP-Konfiguration an die aktuell verwendete Identität des Clients, nicht zwingend dauerhaft an die Hardware.
MAC-Adresse unter Linux anzeigen
Unter modernen Linux-Systemen ist ip aus der iproute2-Werkzeugsammlung die bevorzugte Methode. Mit dem folgenden Befehl listen Sie die vorhandenen Interfaces und ihre Link-Layer-Adressen auf:
ip link showSuchen Sie in der Ausgabe nach einer Zeile mit link/ether. Die darauf folgende hexadezimale Zeichenfolge ist die MAC-Adresse des jeweiligen Ethernet- oder WLAN-Interfaces. Eine beispielhafte Ausgabe kann so aussehen:
3: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
link/ether d8:d3:85:c1:00:08 brd ff:ff:ff:ff:ff:ffHier lautet der Interface-Name enp0s3, und die MAC-Adresse steht hinter link/ether. brd kennzeichnet die Broadcast-Adresse.
Ein bestimmtes Interface abfragen
Wenn der Name bekannt ist, können Sie die Ausgabe auf ein Interface beschränken:
ip link show enp0s3
ip link show wlan0enp0s3 ist ein mögliches kabelgebundenes Ethernet-Interface. wlan0 ist ein traditioneller Name für ein WLAN-Interface. Auf aktuellen Distributionen heißen Interfaces jedoch häufig beispielsweise eno1 oder wlp2s0.
Wenn Sie den Namen nicht kennen, verwenden Sie zunächst:
ip linkWählen Sie danach das Interface aus, über das die relevante Verbindung läuft. Ein System mit aktiver WLAN-Verbindung kann neben dem WLAN-Interface auch ein unverbundenes Ethernet-Interface, Loopback, Bridges oder virtuelle Interfaces anzeigen.
Ältere Alternative: ifconfig
Das ältere Werkzeug ifconfig ist auf manchen Systemen weiterhin vorhanden. Je nach Version steht die MAC-Adresse neben ether oder HWaddr:
ifconfig
ifconfig enp0s3ifconfig gehört häufig zum Paket net-tools und ist auf modernen Linux-Installationen nicht immer vorinstalliert. Verwenden Sie bevorzugt ip link show. Falls eine ältere Anleitung ausdrücklich ifconfig voraussetzt, muss das distributionsübliche Paket für dieses Werkzeug nachinstalliert werden.
| Befehl | Einsatz | Wo steht die MAC-Adresse? | Hinweis |
|---|---|---|---|
ip link show | Alle Interfaces anzeigen | Nach link/ether suchen | Moderne Standardmethode |
ip link show <interface> | Ein bestimmtes Interface anzeigen | In der link/ether-Zeile | Zum Beispiel ip link show enp0s3 |
ifconfig | Alle Interfaces mit älterem Werkzeug anzeigen | Neben ether oder HWaddr | Eventuell nicht installiert |
ifconfig <interface> | Ein Interface mit älterem Werkzeug anzeigen | Neben ether oder HWaddr | Zum Beispiel ifconfig enp0s3 |
Datenschutz, Randomisierung und Sicherheitsgrenzen
Ein lokales Netzwerk kann MAC-Adressen nutzen, um Geräte wiederzuerkennen. Das ist beispielsweise für DHCP-Reservierungen, Zugangskontrollen oder die Anzeige verbundener Geräte hilfreich. Eine MAC-Adresse ist aber kein sicherer Identitätsnachweis.
MAC-Adressen lassen sich mit geeigneten Betriebssystemfunktionen ändern oder nachahmen. Dieses gezielte Ändern oder Nachahmen wird MAC-Spoofing genannt. Deshalb sollte eine MAC-Adresse niemals allein als Authentifizierungsmerkmal dienen.
Viele WLAN-Betriebssysteme verwenden MAC-Adressrandomisierung. Bei der Suche nach WLANs oder beim Verbinden mit bestimmten Netzwerken kann eine wechselnde oder lokal verwaltete Adresse genutzt werden, um die Nachverfolgbarkeit zu verringern. Dadurch kann die beobachtete WLAN-Adresse von einer erwarteten werkseitigen Adresse abweichen.
Häufige Probleme unter Linux
„ifconfig: command not found“
Das ältere Paket net-tools ist wahrscheinlich nicht installiert oder der Befehl liegt nicht im Suchpfad. Verwenden Sie bevorzugt:
ip link showNur wenn eine bestimmte ältere Anleitung ifconfig verlangt, installieren Sie das dafür vorgesehene Paket nach den Regeln Ihrer Distribution.
eth0 oder wlan0 existiert nicht
Aktuelle Linux-Distributionen verwenden häufig vorhersehbare Interface-Namen wie enp0s3, eno1 oder wlp2s0. Ermitteln Sie den tatsächlichen Namen mit:
ip linkVerwenden Sie anschließend genau diesen Namen, zum Beispiel ip link show wlp2s0.
Mehrere MAC-Adressen werden angezeigt
Das ist bei mehreren physischen Adaptern oder virtuellen Interfaces normal. Wählen Sie das Interface aus, über das die relevante Verbindung läuft, etwa WLAN oder kabelgebundenes Ethernet. Für die allgemeine Diagnose sollten Sie Interface-Name, Verbindungsstatus, IP-Adresse und MAC-Adresse gemeinsam betrachten.
Die WLAN-Adresse entspricht nicht der erwarteten Hardwareadresse
Prüfen Sie die aktive Adresse des verbundenen WLAN-Interfaces mit ip link show <interface>. MAC-Adressrandomisierung oder eine lokal konfigurierte Adresse kann die Ursache sein. Kontrollieren Sie gegebenenfalls die Datenschutz- und Randomisierungseinstellungen des Netzwerkmanagers.
DHCP-Reservierung oder Filterregel funktioniert nach einer Änderung nicht
Wenn sich die aktive MAC-Adresse geändert oder randomisiert hat, erkennt der DHCP-Server das Interface möglicherweise als neuen Client. Gleichen Sie die tatsächlich aktive MAC-Adresse mit DHCP-Reservierungen und Filterregeln ab. Bedenken Sie dabei, dass MAC-basierte Regeln keine alleinige Sicherheitsmaßnahme darstellen.
Das Wichtigste im Überblick
- MAC bedeutet Media Access Control und bezeichnet eine Layer-2-Adresse eines Netzwerkinterfaces.
- Die klassische EUI-48-Adresse ist 48 Bit lang und wird in sechs hexadezimalen Oktetten geschrieben.
- Die ersten 24 Bit können einen OUI-Herstellerbereich kennzeichnen; die restlichen 24 Bit wurden traditionell individuell vergeben.
- Switches verwenden MAC-Adressen, um Frames innerhalb eines lokalen Netzwerks weiterzuleiten.
- IP-Adressen übernehmen die logische Adressierung und das Routing; ARP beziehungsweise IPv6 Neighbor Discovery ordnen IP- und MAC-Adressen im lokalen Netz einander zu.
- Unter Linux zeigt
ip link showdie MAC-Adresse in der Zeilelink/etheran. - Ein Gerät kann mehrere MAC-Adressen besitzen, und MAC-Adressen können geändert oder randomisiert werden.
Weitere Grundlagen zur Einordnung finden Sie unter Was ist eine MAC-Adresse?.