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
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.
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
> 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
>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
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
> ... 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
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...
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....
@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
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
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
@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!
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.
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
@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...
@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!
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
@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.
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
@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.
@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
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.
@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
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?
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