Forum: Mikrocontroller und Digitale Elektronik MAC-Adresse (Zufallszahl) generieren


von Peter (Gast)


Lesenswert?

Hi,
Ich habe ein Ethernet-Modul an einen Microcontroller angschlossen. Dem 
Ethernet-Modul muss bei der Initialisierung eine MAC-Adresse verpasst 
werden. Für den ersten Start möchte ich gern diese MAC-Adresse per 
Zufall erzeugen (zumindest die letzten 3 Bytes).
Kennt ihr irgendwelche Tricks, Zufallszahlen zu erzeugen (wie etwas das 
Auslesen eines unbeschalteten Eingangs eines AD-Wandlers)?

BTW: Die MCU hat leider keine Seriennummer (ist ein Freescale 
HCS12-Typ), dann hätte ich das Problem nicht.

Danke im Voraus für alle Antworten,
 --> Peter

: Gesperrt durch User
von Johnny (Gast)


Lesenswert?

Ich finde diese Idee nicht sehr gut. Mann sollte eine fixe, "erlaube" 
und gültige MAC Adresse vergeben. Man weiss ja nicht genau, wie lange 
Router, Switches und andere Ethernet Geräte die MAC Adressen cachen und 
was sonst noch damit anstellen. Ausserdem kann es plötzlich Kollisionen 
mit einem anderen Gerät geben, wenn Du mal zwei solcher Prototypen 
parallel betreiben willst.

von Matthias (Gast)


Lesenswert?

Kannst du mir mal das Ethernet-Modul nennen?

von Peter (Gast)


Lesenswert?

Hallo Johnny und Matthias,

danke für Eure Antworten.

@Johnny:
Die MAC-Adresse würde nur beim allerersten Einschalten 'berechnet' und 
danach im EEPROM gespeichert, so daß forthin immer die gleiche 
MAC-Adresse verwendet wird. Die ersten 3 Bytes könnten z.B. 00-18-AA 
sein. Diese OUI ist frei verfügbar und wird nicht an Hersteller vergeben 
(nehme ich jedenfalls stark an: 
http://standards.ieee.org/regauth/oui/index.shtml )

@Matthias:
Das Module basiert auf dem MicroChip ENC28J60

Hat noch jemand Ideen?

Danke!!!
 --> Peter

von Tobias Paul (Gast)


Lesenswert?

Wie wäre es denn mit einer MAC-Adresse von einer alten (defekten) 
Netzwerkkarte ?

von Peter (Gast)


Lesenswert?

> Wie wäre es denn mit einer MAC-Adresse von einer alten (defekten)
> Netzwerkkarte?

Naja, die gibt's ja nur einmal ;)
Wir werde einige 100 von den Geräten verkaufen, und ich möchte einfach 
nur die Wahrscheinlichkeit einschränken, daß jemand, der eventuell zwei 
oder mehr davon in einem Netz betreibt, Kollisionen hat. Gleiche 
MAC-Adressen bei Geräten, die niemals in ein und das selbe Netz 
gelangen, spielen keine Rolle.

Ich könnte natürlich jedem Gerät eine eindeutige MAC-Adresse mitgeben, 
aber das halte ich für sehr Aufwändig. Ideal wäre eben, wenn jedes Gerät 
sich seine MAC-Adresse selbst generiert (bei 2^24 Möglichkeiten sollte 
das unproblematisch sein).
...und dafür brauche ich einen zufälligen Wert nach dem Starten, mit dem 
ich z.b. einen Pseudo-Zufallszahlengenerator initialisieren kann.

--> Peter


von <°----< (Gast)


Lesenswert?

>Wir werde einige 100 von den Geräten verkaufen

.... ja gerade dann nicht mit den MAC-Adressen schludern .. da sind 
gleiche IP-Adressen ja noch "lustisch" - geht - geht nicht geht

von Matthias (Gast)


Lesenswert?

...uche ich einen zufälligen Wert nach dem Starten, mit..

von einer (streng) deterministischen Maschine..

Hm...

von Peter (Gast)


Lesenswert?

Matthias schrieb:
> von einer (streng) deterministischen Maschine..
Ja, das ist das Problem. Irgendetwas Unvorhersehbares muß her!

Ich hatte mir schon überlegt, einen schnellen Timer zu starten, und dann 
den Timerwert beim ersten empfangenen ARP-Request auszulesen.
Wann der ARP-Request eintrudelt ist ja wirklich nicht vorhersehbar.

Vielleicht mach' ich's ja so?

--> Peter

von Peter (Gast)


Lesenswert?

> ... ja gerade dann nicht mit den MAC-Adressen schludern .. da sind
> gleiche IP-Adressen ja noch "lustisch" - geht - geht nicht geht

Das sehe ich als unkritisch an. Bei einem guten Zufallsgenerator ist die 
Wahrscheinlichkeit, daß es zu Problemen kommt, verschwindend gering.

--> Peter

von Christian R. (supachris)


Lesenswert?

Wieso nicht einen 1-Wire ID-Chip und dessen ID benutzen?

von Matthias (Gast)


Lesenswert?

Und wenn du eine MAC adresse im EEprom des µC bei (erst)inbetriebnahme 
ablegst? Also per ISP zum Beispiel. Die könnte gleichzeitig als 
Seriennummer dienen...?
Oder du nimmst eine Seriennummern-IC (oder zwei, falls die bits nicht 
reichen) und nutzt das als MAC&Seriennummer...?

Sonst fällt mir momentan auch nix ein...

von <°----< (Gast)


Lesenswert?


von Gast (Gast)


Lesenswert?

Einen MAC Adressen Block kaufen?? So wie es sich gehört! Kostet auch 
nicht so viel

von Ronny (Gast)


Lesenswert?

Ein Seriengerät mit einer Zufalls-MAC,auweia.Dürfte sicher einige Zeit 
vergehen,bis das jemanden auffällt,zumindest bei nur 100 
Geräten.Interessant ist nur,wenn irgendwann doch mal jemand Anspruch auf 
die zufällig gewählte MAC erhebt und dafür auch noch beim entsprechenden 
Gremium gelöhnt hat.

Was spricht denn dagegen,einfachmal 100 Netzwerkkarten zu kaufen (z.B. 
Bastlerware oder defekt,oder,oder...) und deren MACs zu nehmen?Die Teile 
bekommt man teilweise für <5€ hinterher geworfen.Und ist dafür auf der 
sicheren Seite....

von Peter (Gast)


Lesenswert?

@Christian
Ja, so ein ID-Chip ist auf jeden Fall eine Überlegung wert.

@Gast
MAC-Adressen zu kaufen finde ich etwas übertrieben, sowas machen 
Hersteller von Netzwerkkarten. Selbst MicroChip scheint es gescheut 
(oder verpennt?) zu haben, sonst hätte ich hier nicht fragen brauchen ;)
Die Ethernet-Anbindung ist auch nur ein zusätzliches Feature, für 
Kunden, die eine drahtgebundene Verbindung brauchen. Normalerweise 
benutzen wir WLAN und die WLAN-Hardware hat fest einprogrammierte 
MAC-Adressen vom Hersteller.

@Ronny
Das was auffallen wird, ist, daß die MAC-Adressen zu einem 'freien' 
Bereich gehören aber wen sollte das stören?
Und, wie gesagt, wenn der Algo gut funktioniert (wird natürlich 
ausgiebig getestet), ist die Wahrscheinlichkeit, daß jemand 2 Geräte mit 
gleichen MAC-Adressen hat, verschwindet gering.
Auch wenn es tatsächlich mal passieren sollte, man wird auf jeden Fall 
die Möglichkeit haben, das Gerät in Grundstellung zu bringen und sich 
eine neue MAC-Adresse generieren zu lassen.

--> Peter

von Gast (Gast)


Lesenswert?

Kannst Du die WLAN Mac nicht für beide nutzen? Das gerät würde doch 
bestimmt nur per WLAN, oder nur Ethernet erreichbar sein. Wenn WLAN 
nicht an, MAC für Ethernet nutzen, sonst Ethernet abschalten. Nach einem 
Reset ist Ethernet aktiv. Macht meine WLAN Kamera so.

Gruß
Michael

von EF (Gast)


Lesenswert?

Ich hab das gleiche Problem und werde es durch den 1Wire Chip DS2502-E48
(von Maxim) lösen. Mit Zufallszahlen zu operieren ist nach meiner 
Meinung
keine saubere Lösung. Die Chips kosten bei Digikey in kleinen 
Stückzahlen ca. 3 € (ist doch nicht die Welt). Ob ich die Chips dann 
auch wirklich auf die Platine bringe, oder nur die MAC-Adresse auslese 
und die Chips in der Schublade lasse, weiß ich noch nicht.

Eggert

von Timo (Gast)


Lesenswert?

@Peter

Also erstens:

Der Block 00-18-AA ist NICHT zur freien Nutzung. Das PRIVATE in der 
Liste heißt nur, dass der EIGENTÜMER dieses Blocks nicht öffentlich 
genannt werden will. Der drückt da jährlich 1000 $ für die Geheimhaltung 
ab, könnte also ein bißchen unentspannt reagieren, wenn er das spitz 
kriegt.

Zweitens:

Ein Block von 4096 MAC Adressen kostet einmalig 550 $ das sind im 
Augenblick ungefähr 400 €. Ich denke schon, dass man das für ein 
Serienprodukt investieren sollte. Wenn bei deiner Methode irgendwas 
schief geht, was ziemlich sicher der Fall sein wird, oder du Ärger wegen 
der Nutzung reservierter Adressräume bekommst, wirst du dich 
anschließend verfluchen, dass du die 400 € nicht einmalig investiert 
hast!

von Timo (Gast)


Lesenswert?

Ich korrigiere mich, der Eigentümer des Blocks 00-18-AA wird noch 
deutlich mehr als 1000 $ jährlich für die Geheimhaltung abdrücken! Die 
1000 $ sind für nur 4096 Adressen.

von EF (Gast)


Lesenswert?

nochmal zu den 1Wire Chips von MAXIM:
habe soeben ein Angebot über DS2502P-E48+ von "spezial electronic" 
bekommen
Einzelpreis bei 10 Stk 2,23€  bei 25 Stk 1,86 €. (Lieferzeit 5 Wochen).
Ich denke so günstig kommt man bei kleinen Stückzahlen sonst nicht an 
legale MAC-adressen.

Eggert

von Matthias (Gast)


Lesenswert?

@Peter:

Ich muß Timo absolut Recht geben! MAC Adressen selber generieren ist 
akzeptabel, wenn man etwas für sich privat "bastelt". Aber wenn ein 
Gerät verkauft wird, dann ist es absolut zwingend erforderlich, sich an 
den Standard zu halten und die MAC Adressen zu kaufen!!!

Wer schon mal die Effekte gesehen hat, wenn gleiche MAC Adressen in 
einem Netzwerk sind, weiß wovon ich spreche! Ich hatte neulich mal den 
Effekt, weil ich SMC-Router mit vorbereiteten Konfig-Files bespielt 
hatte und SMC lustigerweise die MAC Adressen ebenfalls in diesem 
Konfig-File ablegt.
Die Effekte sind nur mit Mühe und Netzwerkmonitor zu finden, weil sie 
sich eben auf der untersten Schicht der Netzwerkkomunikation 
abspielen...

von Timo (Gast)


Lesenswert?

@EF

Ich muss dich leider enttäuschen! Diese Chips liefern dir keine "legale" 
MAC Adresse, die haben eine EUI-48 integriert. Diese, auch einmalige, 
Identifikationsnummer wird zur Identifikation von anderen (nicht 
Netzwerk) Geräten und Software verwendet. Das heißt, wenn du eine EUI-48 
Nummer als MAC Adresse verwendest, ist diese Adresse im Zweifel schon 
vergeben.

Man kommt nicht an den Kauf eines 4096 Blocks vorbei, wenn man Geräte 
wirklich verkaufen will. Sollte bei nicht Einhaltung mal ein Kunde 
anrufen, und irgendwas von Produkthaftung faseln, schwör ich dir, dass 
das teurer als 400 € wird!

von Peter (Gast)


Lesenswert?

Hallo,
vielen Dank für eure Antworten. :-)

@Michael
Gute Idee, aber leider ist das WLAN-Modul nicht fest integriert, sondern 
steckbar (CF-Karte) und die Geräte sollen künftig auch ohne WLAN (dann 
eben mit Ethernet) laufen.

@Eggert
Ja, das ist ein nettes Teil, hat aber leichte Nachteile:
1. Vieeeeel zu teuer! Selbst wenn ich es als EEPROM-Ersatz verwenden 
würde, hätte ich ca. 2.70€ pro Stück Mehrkosten (das z.Zt. eingebaute 
EEPROM kostet nur 30ct).
2. Würde ich es trotz des hohen Preises als EEPROM-Ersatz verwenden 
wollen, scheitert es daran, dass (wie's aussieht nach grobem Überfliegen 
des Datasheets) der Chip eine hohe Programmierspannung (etwa 12V) 
braucht, aber ich habe leider nur 3.3 und 5V.

--> Peter

von Timo (Gast)


Lesenswert?

@Peter
???

Hast du meinen Beitrag nicht gelesen? Es gibt keine freien Bereiche, die 
jeder nutzen kann! Du kommst nicht drum herum, irgendwas zu kaufen. Bei 
einigen 100 Geräten ist der Preis von 400 € ja auch nicht so gewaltig.

Wenn dich das nicht interessiert, und du dir illegalerweise eine 
ausdenkst, ist die ganze Diskussion sowieso sinnlos.

von Peter (Gast)


Lesenswert?

Timo schrieb:
> Der Block 00-18-AA ist NICHT zur freien Nutzung. Das PRIVATE in der
> Liste heißt nur, dass der EIGENTÜMER dieses Blocks nicht öffentlich
> genannt werden will.

oh? Danke!
Das ändert natürlich Einiges!
Gibt es denn frei verfügbare Bereiche?

BTW: Aber wenn ich eure letzten Beiträge sehe, scheint es doch das Beste 
zu sein, sich ein paar MAC-Adressen zu kaufen.

--> Peter

von Timo (Gast)


Lesenswert?

@EF

Habe mir nochmal das Datenblatt von dem Chip durchgelesen. Da steht 
MAC-48/EUI-48 drin. Das ist aber nicht das gleiche, und auf der 
Übersichtsseite bei Maxim von dem Chip steht, dass das eine EUI-48 ist. 
Dann klappt das nicht.

Ist also zumindest fraglich, ob das geht oder nicht.

von EF (Gast)


Lesenswert?

@Timo

in meinem Datenblatt steht: "Provides valid MAC-48/EUI-48 ETHERNET 
address"
Im Datenblatt unter "NODE ADDRESS CHIP DATA STRUCTURE"
steht der eingebrannte Company ID Value 006035.
Ich hab das gerade geprüft, hier ein Link dazu: 
http://www.techzoom.net/mac/

und das ergab, daß die ersten drei Byte  Dallas (maxim) zugeordnet sind, 
also denke ich doch, dass es ok ist.

00-60-35-00-00-00  DALLAS SEMICONDUCTOR, INC.


 Eggert

von Timo (Gast)


Lesenswert?

Ist möglich, das würde aber bedeuten, dass Maxim zweimal die gleiche 
Adresse in einem Chip verkauft. Einmal MAC-48 und einmal EUI-48. Hatte 
aber zum Zeitpunkt meines Posts nur die Übersichtsseite gelesen, und da 
gesehen, dass das eine EUI-48 Adresse ist. Dann würde das nicht gehen.

von Peter (Gast)


Lesenswert?

Der ENC28J60 hat auch eine OUI eingespeichert:
-> 00-04-A3 Microchip Technology, Inc.
aber leider fehlt der Rest :-(

--> Peter

von EF (Gast)


Lesenswert?

@Peter,
wo steht das?
ich finde es nicht.
Der Enc28j60 hat Register, in die die MAC-Adr. eingetragen wird. aber 
fest eingebrannt ist da m.W. nichts.
 Eggert

von Peter (Gast)


Lesenswert?

Unter 3.3.5, PHID1 AND PHID2 REGISTERS

von EF (Gast)


Lesenswert?

@Peter

Danke, Peter hast recht. Leider nützt die OUI allein nichts.

Eggert

von fgh4uu6u (Gast)


Lesenswert?

Die Frage ist ja, ob ich mit dem Kauf von z.B. einer Netzwerkkarte
automatisch auch die MAC-Adresse uneingeschränkt mitkaufe.

Darf ich diese MAC-Adresse selbst nach Zerstörung dieser Netzwerkkarte
in ein anderes / mein Produkt umziehen, auch wenn die MAC-Adresse
einem anderen Käufer (Beispiel: 3Com) zugewiesen wurde?

von Harald (Gast)


Lesenswert?

Leute, was ist hier denn los? Zufallszahlen, alte HW schlachten, CPU-IDs 
verwenden, MAC-Blöcke kaufen etc. = VERGESSEN

Genau für diesen Zweck der Kleinserien gibt es doch MAC-EEPROMS, die 
eine gültige MAC-Adresse vorprgrammiert enthalten. Den Rest des EEPs 
kann man dann beliebig nutzen. D.h. man kauft mit dem Baustein seine 
eigene nur einmal vorkommende legale MAC mit, das ganze gibt es z.B. bei 
Microchip ab 20..30 Cent. Es gibt zahlreiche Bauformen, sollte mich 
wundern wenn der Typ des TEs nicht dabei ist.
Auf der folgenden Seite steht das auch noch einmal schön beschrieben, 
welchen Aufwand man sich spart.


http://www.microchip.com/pagehandler/en-us/products/memory/serialEEPROM/MAC.html

von Harald (Gast)


Lesenswert?

Mist, ich sehe gerade, dass ich auf einen Leichenschänder reingefallen 
bin - sorry!

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.