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