MAC-Adresse (Media Access Control)
Jedes netzwerkfähige Gerät besitzt mindestens eine weltweit einzigartige Hardware-Kennung – die Media-Access-Control-Adresse (kurz: MAC-Adresse). Was es mit dieser auf sich hat und wie Sie die MAC-Adresse ermitteln oder umschreiben können, erklären wir Ihnen im Folgenden.
Was ist eine MAC-Adresse?
Jedes Gerät, das in ein Rechnernetz eingebunden werden soll, benötigt einen Netzwerkadapter. Dieser Adapter erhält vom Hersteller eine weltweit einzigartige Identifikationsnummer, die MAC-Adresse. Diese ermöglicht es, Geräte wie Desktop-Computer, Tablets oder Mobiltelefone im Netzwerk zu identifizieren und bei Bedarf anzusprechen. Verfügt ein Gerät über mehrere Netzwerkadapter (beispielsweise für mehre LAN-Anschlüssen oder verschiedene Kommunikationsstandards wie Ethernet, WLAN, FDDI, Bluetooth oder Token Ring), steht für jeden Standard eine andere Adresse zur Verfügung.
Bei der MAC-Adresse (kurz für Media-Access-Control-Adresse) handelt es sich um die weltweit einzigartige Hardware-Adresse eines einzelnen Netzwerkadapters. Diese physische Adresse dient der Identifikation eines Geräts in Rechnernetzen.
Da MAC-Adressen direkt vom Hersteller der Hardware vergeben werden, spricht man auch von Hardware-Adressen. Unter Microsoft Windows wird die MAC-Adresse als physikalische Adresse bezeichnet. Apple verwendet je nach Kommunikationsstandard die Begriffe Ethernet-ID, Airport-ID oder Wi-Fi-Adresse. Die Bezeichnung Geräteadresse hingegen ist unscharf, da ein Gerät durchaus über mehrere Netzwerkadapter und somit über verschiedene MAC-Adressen verfügen kann.
Die MAC-Adresse in der Praxis
Widerspruchsfreie MAC-Adressen sind eine Grundvoraussetzung für eine fehlerfreie Netzwerkkommunikation. Die Datenübertragung in Rechnernetzen ist ein komplexer Kommunikationsablauf, bei dem unterschiedliche Voraussetzungen hinsichtlich Zuverlässigkeit, Sicherheit und Effizienz erfüllt werden müssen. Anschaulich darstellen lässt sich dieser anhand des OSI-Modells (Kürzel für Open Systems Interconnection) – ein von der ISO (International Organization for Standardization) entwickeltes Referenzmodel, das die Netzwerkkommunikation auf 7 Schichten abbildet. Im Rahmen der Datenübertragung wird jede Schicht des OSI-Modells sowohl auf Sender- als auch auf Empfängerseite durchlaufen. MAC-Adressen kommen auf der Sicherungsschicht (Layer 2) des OSI-Modells zum Einsatz – genau genommen auf der vom Institute of Electrical and Electronics Engineers (IEEE) eingeführten Unterschicht Media Access Control (Medienzugriffssteuerung).
In der vom IEEE entworfenen Erweiterung des OSI-Modells wird die Sicherungsschicht (Layer2) in die Unterschichten Media Access Control (2a) und Logical Link Control (2b) unterteilt.
Die Sicherungsschicht befindet sich zwischen der Bitübertragungsschicht (Layer 1) und der Vermittlungsschicht (Layer 3). Während die Bitübertragungsschicht Protokolle und Hilfsmittel bereitstellt, die für die Aufrechterhaltung der physischen Verbindung verantwortlich sind, regeln Protokolle auf der Sicherungsschicht, wie sich verschiedene Systeme das zur Verfügung stehende Übertragungsmedium teilen. Dabei werden sichere Systemverbindungen von der physischen Verbindung abstrahiert. Die eigentliche Übertragung von Datenpakten findet auf der Vermittlungsebene via IP statt.
Möchten Sie beispielsweise ein IP-Paket im Ethernet versenden, übermittelt Ihr Rechner einen Datenframe, der gemäß des OSI-Modells auf der Sicherungsschicht an die MAC-Adresse des Zielrechners adressiert wird.
Befindet sich der Zielrechner nicht im lokalen Netzwerk, wird ein Router angesprochen und mit der Weiterleitung ins Internet beauftragt. Auch Router, die in ein lokales Netzwerk eingebunden sind, verfügen über eine eindeutige MAC-Adresse.
Ein Ethernet-Datenframe enthält verschiedene Informationen, die auf den unterschiedlichen Ebenen des OSI-Modells ausgelesen werden.
Datenframes in IPv4-Netzen enthalten folgende Bestandteile:
- Zieladresse (die MAC-Adressen des Zielrechners)
- Quelladresse (die MAC-Adresse des Absenders)
- Steuerinformationen zur Datenflusssteuerung
- Nutzdaten (das Datenpaket, das später auf der Vermittlungsschicht übertragen werden soll)
- Prüfsummen, die die Datenintegrität gewährleisten
Ein Zielrechner, der einen Datenframe empfängt, liest diesen zunächst auf der Sicherungsschicht aus und gleicht die Zieladresse des Frames mit der eigenen MAC-Adresse ab. Stimmen die Adressen überein, beginnt der Zielrechner mit der Interpretation des Frames auf der nächsthöheren Ebene.
Netzwerkgeräte, die lediglich der Weiterleitung von Datenpaketen dienen (Repeater) oder Teilbereiche im Netzwerk verwalten (Bridges und Switches), nehmen in der Regel nicht aktiv an der Netzwerkkommunikation teil und benötigen daher keine eigene MAC-Adresse.
Um die Adresszuordnung auf der Sicherungsschicht mit der Adresszuordnung auf der Vermittlungsschicht zu verknüpfen, nutzt man in IPv4-Netzen das Address Resolution Protocol (ARP). Jeder Rechner im lokalen Netzwerk pflegt eine ARP-Tabelle, in der die Zuordnung von IP-Adressen zu MAC-Adressen erfolgt.
ARP ist anfällig für ein Angriffsmuster, das ARP-Spoofing genannt wird. Welche Gefahr von ARP-Spoofing ausgeht und welche Gegenmaßnahmen Sie treffen können, thematisieren wir im verlinkten weiterführenden Artikel zum Thema.
Der neue Standard des Internetprotokolls IPv6 verwendet statt ARP das Neighbor Discovery Protocol (NDP).
Die Syntax der MAC-Adresse
MAC-Adressen in LAN- oder WLAN-Netzen bestehen aus 6 Byte (48 Bit) und werden in hexadezimaler Schreibweise notiert. Die Verwendung von Trennzeichen wie beispielsweise Bindestrichen oder Doppelpunkten zwischen zwei Bytes fördert die Lesbarkeit.
Das folgende Beispiel zeigt die MAC-Adresse eines Desktop-Rechners in binärer und hexadezimaler Darstellung:
00110101 01101000 10110100 00000010 00010011 10011000
AC-16-2D-02-C8-19
In unserem Beispiel verwenden wir die kanonische Darstellung der Bitfolge. Diese entspricht der der Reihenfolge, wie MAC-Adressen im Ethernet übertragen werden. Andere Kommunikationsstandards wie Token Ring sehen eine Übertragung im Bit-reversed-Verfahren vor – beginnend mit dem höchstwertigen Bit.
Die Bitfolge einer jeden MAC-Adresse ist in 4 Bereiche unterteilt, die jeweils unterschiedliche Informationen codieren.
- Bit 1 (Empfänger): Das 1. Bit der MAC-Adresse gibt an, ob es sich um eine Einzel- oder Gruppenadresse handelt. Man bezeichnet dieses Bit als I/G (kurz für Individual/Group). Ist I/G = 0, handelt es sich um eine Unicast-Addresse für einen einzelnen Netzwerkadapter. Multicast-Adressen sind durch I/G = 1 gekennzeichnet und richten sich an mehrere Empfänger.
- Bit 2 (Vergabestelle): Das 2. Bit der MAC-Adresse gibt an, ob es sich um eine Adresse mit globaler Gültigkeit handelt (Universal) oder ob die Adresse lokal zugewiesen wurde (Local). Das Bit wird als U/L bezeichnet. Ist U/L = 0, gilt die Adresse als weltweit gültige Universally Administered Address (UAA). Adressen, die nur lokal eindeutig sind, werden Locally Administered Address (LAA) genannt und mit U/L = 1 gekennzeichnet.
- Bit 3–24 (Kennung des Herstellers): Die Bits 3 bis 24 codieren eine Kennung (Organizationally Unique Identifier, OUI), die vom IEEE exklusiv an Hardware-Hersteller vergeben wird. Die Zuordnung von OUIs erfolgt in der Regel öffentlich und lässt sich über Datenbanken ermitteln. Ein entsprechender Service steht beispielsweise auf heise.de zur Verfügung. Der OUI der Beispielsadresse (AC-16-2D) wurde vom IEEE an den amerikanischen Gerätehersteller Hewlett Packard vergeben.
- Bit 25–48 (Kennung des Netzwerkadapters): Mit den Bits 25 bis 48 stehen Geräteherstellern 24 Bits zur Vergabe einer einzigartigen Hardware-Kennung (Organizationally Unique Address, OUA) zur Verfügung. Pro OUI können somit 224 (= 16.777.216) eindeutige OUA vergeben werden.
Teilbereiche einer MAC-Adresse
Bezeichnung | I/G | U/L | OUI | OUA |
---|---|---|---|---|
Bit | 1. | 2. | 3.–24. | 25.–48. |
Funktion | Empfängergruppe | Vergabestelle | Herstellerkennung | Kennung des Netzwerkadapters |
MAC-Adresse herausfinden: So geht’s
MAC-Adressen lassen sich in allen modernen Betriebssystemen mit geringem Aufwand über das Terminal abfragen – sowohl auf dem lokalen System als auch per Remote im Netzwerk. Folgende Tabelle zeigt die entsprechenden Kommandozeilenbefehle für die häufigsten Betriebssysteme.
MAC-Adresse auslesen
Betriebssystem | Terminalbefehl | Per Remote |
---|---|---|
FreeBSD | ifconfig | arp -a |
NetBSD | ifconfig -a | arp -a |
OpenBSD | ifconfig -a | arp -a |
Linux | ip link | ip neigh |
Mac OS X / macOS | ifconfig | arp -a |
Solaris | ifconfig -a | arp -a |
Windows XP Professional | getmac /v | arp -a |
Windows (ab 2000) | ipconfig /all | arp -a |
Auf Mobilgeräten können Sie sich die MAC-Adresse in den Einstellungen anzeigen lassen.
MAC-Adressen auf Mobilgeräten ermitteln
Betriebssystem | Lokal |
---|---|
Android | Einstellungen > Telefoninfo > Hardware-Informationen |
Apple iOS | Einstellungen > Allgemein > Info > Wi-Fi-Adresse |
Windows Phone 7 | Einstellungen > Info > Weitere Informationen |
MAC-Adresse lokal auslesen
Möchten Sie die MAC-Adressen der LAN- und WLAN-Adapter Ihres Windows-Rechners auslesen, gehen Sie unter Windows 10 wie folgt vor.
Schritt 1: Öffnen Sie das Terminal Ihres Betriebssystems. Nutzen Sie dazu beispielsweise die Tastenkombinaten [Windowstaste]+[R]. Geben Sie dann cmd in das Fenster „Ausführen“ ein und bestätigen Sie mit „OK“.
Schritt 2: Ab Windows 2000 steht ihnen der Kommandozeilenbefehl ipconfig mit der Option /all zur Verfügung, um die MAC-Adresse aller Netzwerkadapter Ihres Windows-Rechners abzurufen.
Ipconfig /all
Alternativ ermitteln Sie die MAC-Adresse mit dem Befehl getmac /v
Schritt 3: Unter Windows wird die MAC-Adresse unter „physikalische Adresse“ angezeigt.
MAC-Adresse per Remote auslesen
Dank ARP ist es in IPv4-Netzen möglich, die MAC-Adressen anderer Geräte im selben lokalen Netzwerk zu ermitteln. Unter Windows und den meisten unixoiden Betriebssystemen nutzen Sie dazu den Kommandozeilenbefehl arp mit der Option -a, um sich die ARP-Tabelle Ihres Systems im Terminal ausgeben zu lassen.
arp -a
Sie erhalten eine Terminalausgabe nach folgendem Schema:
Schnittstelle: 172.24.0.113 --- 0x2
Internetadresse Physikal. Adresse Typ
172.24.0.111 00-80-41-AE-FD-7E dynamisch
172.24.0.112 12-34-56-78-9A-BC dynamisch
Möchten Sie lediglich die MAC-Adresse eines bestimmten Netzwerkadapters per Remote auslesen, nutzen Sie den Befehl arp -a in Kombination mit der lokalen IPv4-Adresse des Zieladapters.
Schnittstelle: 172.24.0.113 --- 0x2
Internetadresse Physikal. Adresse Typ
172.24.0.111 00-80-41-AE-FD-7E dynamisch
172.24.0.112 12-34-56-78-9A-BC dynamisch
MAC-Adresse softwareseitig zuweisen
MAC-Adressen werden von Geräteherstellern unveränderlich zugewiesen und sind hardwareseitig in den Chip des Netzwerkadapters „eingebrannt“. Zahlreiche Betriebssysteme bieten jedoch die Möglichkeit, Hardware-Adressen softwareseitig zu überschreiben. Man spricht in diesem Zusammenhang von Spoofing. In diesem Fall sendet ein System im Rahmen der Netzwerkkommunikation nicht die echte Hardware-Adresse des angesprochenen Adapters, sondern eine benutzerdefinierte MAC-Adresse.
MAC-Adresse unter Windows zuweisen
Unter Windows können Sie die MAC-Adresse über den Geräte-Manager überschreiben, sofern der Gerätetreiber des Netzwerkadapters diese Funktion unterstützt.
Schritt 1: Öffnen sie die Netzwerkadapter-Einstellungen. Folgen Sie dazu dem Klickpfad: Start Einstellungen Netzwerk und Internet Ethernet Adapteroptionen ändern.
Schritt 2: Klicken Sie mit der rechten Maustaste auf den gewünschten Netzwerkadapter und wählen Sie im Kontextmenü den Punkt „Deaktivieren“.
Schritt 3: Klicken Sie mit der rechten Maustaste auf den gewünschten Netzwerkadapter und wählen Sie im Kontextmenü den Punkt „Eigenschaften“. Es öffnet sich ein Dialogfester „Eigenschaften von Netzwerkadapter“.
Schritt 4: Klicken Sie im Dialogfenster auf die Schaltfläche „Konfigurieren“ und wählen Sie unter „Erweitert“ die Eigenschaft „Locally Administrated Address“. Tragen Sie unter „Wert“ die gewünschte softwareseitige MAC-Adresse ein.
MAC-Adresse in unixoiden Betriebssystemen zuweisen
Unix-Derivate wie Linux, macOS, Solaris und die BSD-Betriebssysteme unterstützen die softwareseitige Vergabe der MAC-Adressen über das Terminal.
MAC-Adresse überschreiben
Betriebssystem | Terminalbefehl |
Linux | ip link set dev <Interface> addr XX:XX:XX:XX:XX:XX oder ifconfig <Interface> promisc und anschließend ifconfig <Interface> hw ether XX:XX:XX:XX:XX:XX |
Mac OS X / macOS | ifconfig <Interface> ether XX:XX:XX:XX:XX:XX |
Solaris | ifconfig <Interface> ether XX:XX:XX:XX:XX:XX |
FreeBSD | ifconfig <Interface> link XX:XX:XX:XX:XX:XX |
NetBSD | ifconfig <Interface> link XX:XX:XX:XX:XX:XX activate |
OpenBSD | ifconfig <Interface> lladdr XX:XX:XX:XX:XX:XX |
Wir veranschaulichen das Vorgehen am meistgenutzten Unix-Derivat Linux. Möchten Sie die MAC-Adresse Ihres Netzwerkadapters unter Linux umschreiben, gehen Sie wie folgt vor.
Schritt 1: Öffnen Sie das Betriebssystemterminal – beispielsweise mit der Tastenkombination [STRG]+[ALT]+[T].
Schritt 2: Ermitteln Sie den Namen sowie die aktuelle MAC-Adresse des gewünschten Netzwerkadapters. Geben Sie dazu folgenden Befehl in die Kommandozeile ein:
ip link
Notieren Sie sich die vom Hersteller vergebene Hardware-Adresse für den Fall, dass Sie die Änderung rückgängig machen möchten.
Schritt 3: Schalten Sie den Netzwerkadapter aus, indem Sie folgenden Befehl in die Kommandozeile eingeben:
ip link set dev <Interface> down
Geben Sie für <interface> den via ip link ermittelten Namen des Netzwerkadapters ein.
Schritt 4: Überschreiben Sie die vom Hersteller vergebene Netzwerkadresse mit einer der in der Tabelle angebenden Optionen.
ip link set dev <Interface> addr XX:XX:XX:XX:XX:XX
Geben Sie statt XX:XX:XX:XX:XX:XX die gewünschte MAC-Adresse ein.
Schritt 5: Starten Sie den Netzwerkadapter neu. Nutzen Sie dazu folgenen Kommandozeilenbefehl:
ip link set dev <Interface> up
Um sicherzustellen, dass der ausgewählte Netzwerkadapter unter der von Ihnen gewählten MAC-Adresse erreichbar ist, lesen Sie die Netzwerkinformationen mit ip link (siehe Schritt 1) erneut aus.