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
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 ?
> 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
...uche ich einen zufälligen Wert nach dem Starten, mit.. von einer (streng) deterministischen Maschine.. Hm...
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...
Einen MAC Adressen Block kaufen?? So wie es sich gehört! Kostet auch nicht so viel
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.
Der ENC28J60 hat auch eine OUI eingespeichert: -> 00-04-A3 Microchip Technology, Inc. aber leider fehlt der Rest :-( --> Peter
@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
@Peter Danke, Peter hast recht. Leider nützt die OUI allein 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
Mist, ich sehe gerade, dass ich auf einen Leichenschänder reingefallen bin - sorry!