MAC-Adressen

Von MAC-Adressen werden wohl die meißten "normalen" Computer-Benutzer noch nichts gehört haben. Trotzdem sind sie überaus wichtig, damit der Computer überhaupt Daten über das Netzwerk senden oder empfangen kann. Die MAC-Adresse ist, im Gegensatz zur IP-Adresse, für die physikalische Adressierung der Netzwerkkarte zuständig. Jede Netzwerkkarte hat eine fest eingebrannte und weltweit einmalige Hardware-Adresse (MAC-Adresse).

Wie sieht nun aber so eine MAC-Adresse aus? Es ist eine 6 Byte (also 48 Bit) lange Zahl. jedes Byte wird in hexadezimaler Schreibweise dargestellt. Zwischen den Bytes werden Minuszeichen oder Doppelpunkte als Trennung eingefügt. Manchmal findet man auch 3 Gruppen von 2 Byte Länge die durch Minuszeichen getrennt sind. Das sieht dann ungefähr so aus:

    02:60:8C:34:6E:5A
    02-60-8C-34-6E-5A
    0260:8C34:6E5A
    0260-8C34-6E5A

oder bei der Ausgabe von ifconfig bei Linux:

shogun:~ # ifconfig eth0 Link encap:Ethernet HWaddr 00:02:3F:AD:86:F4 inet addr:10.10.0.20 Bcast:10.10.0.255 Mask:255.255.255.0 Laut Vorgabe darf die Schreibweise ohne Trennung (z.B. 123456789ABC) oder mit einem Trennstrich (z.B. 123456-789ABC) sein. Die MAC-Adresse sollte aber mit einem Trennstrich zwischen jedem Oktett geschrieben werden (also z.B. so 12-34-56-78-9A-BC). Ich habe allerdings öfter die Schreibweise mit dem Doppelpunkt gesehen.

Die MAC-Adresse ist also, wie schon gesagt, für die physikalische Adressierung der Netzwerkkarte zuständig. Eine Netzwerkkarte nimmt nur Datenpakete an, die als Zieladresse die eigene oder die Broadcast-Adresse FF:FF:FF:FF:FF:FF (an alle) haben. Datenpakete mit der richtigen IP-Adresse aber der falschen MAC-Adresse kommen also überhaupt nicht bis zur Software-Ebene durch. Sie werden bereits in der Hardware gefiltert. Dieses Verhalten entlastet die Software (Protokoll-Stack) des Rechners.

Wo findet man diese MAC-Adresse aber nun auf der Hardware? Das zeigen uns die folgenden kleinen Fotos.

 

Es handelt sich hier um zwei 3Com-Netzwerkkarten. Die linke mit der MAC-Adresse 02:60:80:7A:F3:4C und die rechte mit 00:20:AF:45:09:F0 . Bei der linken, älteren Netzwerkkarte klebt die Adresse sogar auf dem ROM-Baustein (Nur-Lese-Speicher) in dem die Adresse einprogrammiert ist. Bei der rechten steht noch EA= davor. EA heißt dabei Ethernet-Address (nicht mit IP-Adresse verwechseln!).

Aber nun zur Zusammensetzung dieser Adresse. Sie besteht aus zwei Teilen. Die ersten 3 Bytes sind abhängig vom Hersteller (Vendor-Code) und werden von einem Gremium vergeben. An diesem Teil kann man erkennen, von wem die Karte eigentlich stammt. Dieser Teil wird auch OUI oder Organizationally Unique Identifier (Eindeutige Organisations Kennung - frei übersetzt) genannt. Die letzten 3 Bytes werden vom Hersteller vergeben und spiegeln meißtens einen Teil der Seriennummer oder eine laufende Nummer wieder.

Hier nun ein paar Hersteller-Kennungen (Vendor-Codes):

00-00-0C    Cisco
00-00-24    Olicom
00-00-81    Synoptics
00-00-A2    Wellfleet
00-00-C1    Olicom A/S
00-00-C6    HP Intelligent Networks Operation (formerly Eon Systems)
00-04-AC    IBM PCMCIA Ethernet adapter
00-10-A4    Xircom RealPort 10/100 PC Card
00-20-AF    3COM Corporation
00-80-C7    Xircom Inc.
00-80-C8    D-Link (also Solectek Pocket Adapters, and LinkSys PCMCIA)
00-AA-00    Intel
00-E0-7D    Encore (Neutronix?) 10/100 PCI card
02-07-01    Interlan (now Racal-InterLAN) DEC (UNIBUS or QBUS), Apollo, Cisco
02-60-8C    3COM IBM PC; Imagen; Valid; Cisco; Macintosh
08-00-02    3COM (formerly Bridge)
08-00-25    CDC
08-00-5A    IBM

Aktuelle Listen gibt es im Internet.

Wie weiter oben steht, ist die MAC-Adresse fest eingebrannt und nur einmal weltweit vorhanden. So ganz stimmt das aber nicht. Wenn genug Netzwerkkarten hergestellt werden, wird irgendwann auch einmal wieder eine Karte mit identischer Adresse auftauchen, wie sie schon einmal vor mehreren Jahren vergeben wurde. Diese Phänomen werden aber wohl nur sehr sehr wenige Netzwerker einmal erleben. Außerdem läßt sich die MAC-Adresse überschreiben. Bei Linux/Unix geht das sehr einfach mit dem Befehl ifconfig (man-Page lesen). Bei Windows muß man sich dafür erst einmal durch die Registry-Einträge wühlen.

Eine Netzwerkkarte kann auch dazu bewegt werden, immer alle Datenpakete anzunehmen. Das wird benötigt, wenn man mit einem Netzwerk-Sniffer eine Analyse der übertragenen Daten vornehmen will. Dazu muß die Karte in den sogenanten Promiscuous-Modus versetzt werden. Bei Linux/Unix geht das natürlich wieder mit dem Befehl ifconfig ( rtfm - read the fucking manual ) und sieht dann so aus:
shogun:~ # ifconfig eth0 promisc shogun:~ # ifconfig eth0 Link encap:Ethernet HWaddr 00:02:3F:AD:86:F4 inet addr:10.10.0.20 Bcast:10.10.0.255 Mask:255.255.255.0 inet6 addr: fe80::202:3fff:febd:c644/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
Mit dem ersten Befehl wurde der Modus eingeschaltet und beim zweiten Befehl sieht man in der vierten Zeile der Ausgabe das entscheidende Wort PROMISC. Freeware-Sniffer zur LAN-Analyse findet man zum Beispiel im Internet (Ethereal, Packetyzer, ...). Das Programm nützt einem aber sehr wenig, wenn man die Daten nachher nicht interpretieren kann. Dann steht man da wie einer, der chinesische Gedichte lesen soll (grins - sieht ja alles so schön bunt aus, aber was das bedeuten soll weiß ich auch nicht).


Ein paar lokale Zusatzdokumente :
Weitere empfehlenswerte Links :

Damit sollten wieder einmal ein paar Unklarheiten beseitigt sein.


Erstellt am 28.07.2004
Artikel: Bernd Dähnrich