Forum: Mikrocontroller und Digitale Elektronik Eigenes Gerät im Netzwerk bekannt machen


von Sven (Gast)


Lesenswert?

Hallo Netzwerkexperten,

wie kann ich meine eigenen Schaltungen mit Netzwerkanschluss im 
Netztwerk bekannt machen, so dass sie von angeschlossenen Rechnern 
gefunden werden?
Meine Schaltungen bezieht die IP Adresse per DHCP.

Für lwip gibt ein es kleines NetBIOS Addon, damit gelingt es unter 
Windows, die Karte unter ihrem NetBIOS Namen anzupingen. Da ich aber 
mehrere Geräte mit Seriennummer als NetBIOS Name (z.B. SCHALTUNG0815) im 
Netzwerk habe, klappt das auch nicht, denn ich kennen den Namen inkl. 
willkürlicher Seriennummer ja vorher nicht. Wenn ich den ARP- oder 
NetBIOS-Cache anschaue (arp -a bzw. nbstat) tauchen meine Geräte immer 
erst auf, wenn ich sie (nach manueller Adresssuche) angepingt habe.

Gibt es einen Weg, dass meine Geräte im Netzwerk automatisch sichtbar 
werden? Z.b. dass mein Gerät zyklisch einen Broadcast verschickt "hallo 
es gibt mich und ich heisse SCHALTUNG4711".

Aufgrund der Komplexität möchte ich uPnP gerne vermeiden, wisst Ihr 
einen anderen Weg?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sollte es nicht genügen, den Namen beim Anfordern der IP-Adresse via 
DHCP anzugeben?

von Sven (Gast)


Lesenswert?

Das mache ich bereits; ich sehe im Sniffer auch, dass der Name beim 
Aushandeln der IP Adresse korrekt gesendet wird. Der DHCP Server sitzt 
im Router. Die Windows Stationen im Netz kümmern sich anscheinend nicht 
darum, denn der ping über Gerätename funktioniert erst bei Verwendung 
von NetBIOS.

Haben diese kleinen Router für's Heimnetz einen DNS eingebaut? Und falls 
ja, was bewegt den dazu, meine Geräte aufzunehmen?

von (prx) A. K. (prx)


Lesenswert?

Die Namen lassen sich innerhalb eines Netzes auch ansprechen, wenn sie 
in den diversen Windows Listen nicht auftauchen. Netbios (on TCP) nutzt 
dazu einen Broadcast. Es geht auch per DNS, wenn der DHCP-Server mit dem 
DNS-Server identisch ist, wie bei den üblichen DSL-Routern.

von Peter II (Gast)


Lesenswert?

Sven schrieb:
> Der DHCP Server sitzt
> im Router. Die Windows Stationen im Netz kümmern sich anscheinend nicht
> darum, denn der ping über Gerätename funktioniert erst bei Verwendung
> von NetBIOS.

bei der fitz.box muss man die domaine mit dran hängen.

ping HW0815.fritz.box

ein ping HW0815 ist eigentlich falsch, weil es kein vollständiger (FQN) 
ist.

von Oliver (Gast)


Lesenswert?

TCP/IP ist ja "nur" das Protokoll, welches die Daten transportiert. Das 
baut nunmal darauf auf, daß derjenige, der eine Verbindung aufbauen 
will, Namen oder Adresse des Verbindungspartsners kennt.

Du wirst nicht drumrumkommen, oberhalb von TCP/IP eine weitere Schicht 
aufzusetzen, die die automatische Verwaltung neu hinzukommender oder 
sich wieder abmeldender Teilnehmer innerhalb deines Systems übernimmt.

Oliver

von pic u. (pic_user)


Lesenswert?

Es gibt einen ARP modus, bei dem das Gerät seine Mac Addresse periodisch
broadcastet.

 Unsolicited ARP request frames, on the other hand, are broadcast ARP 
requests initiated by a host owning an IP address.

Example 2.3. Unsolicited ARP request frames

[root@tristan]# arping -q -c 3 -U -I eth0 192.168.99.35
[root@masq-gw]# tcpdump -c 3 -nni eth2 arp
tcpdump: listening on eth2
06:28:23.172068 arp who-has 192.168.99.35 (ff:ff:ff:ff:ff:ff) tell 
192.168.99.35
06:28:24.167290 arp who-has 192.168.99.35 (ff:ff:ff:ff:ff:ff) tell 
192.168.99.35
06:28:25.167250 arp who-has 192.168.99.35 (ff:ff:ff:ff:ff:ff) tell 
192.168.99.35
[root@masq-gw]# ip neigh show


Bei meinen Geräten, wenn Link up, für 5 Minuten werden diese ARP jede
30 Sekunden gesendet, aber nach jedem Senden wird der Interwall um
30 Sekunden erhöht. Also 30 Sek, 60 Sek, 90 Sek, 120 Sek usw bis 300 
Sekunden
überschritten werden. Logischer Link, nicht HW Link, da ja die Addresse
bezogen werden muss.

von Ralf S. (spacedog) Benutzerseite


Lesenswert?

Apple verwendet dazu folgendes:

http://de.wikipedia.org/wiki/Bonjour_%28Apple%29

Ich denke, das baut auf allgemeinen und dokumentierten Standards auf und 
liesse sich nachbauen.

von (prx) A. K. (prx)


Lesenswert?

pic user schrieb:

> Es gibt einen ARP modus, bei dem das Gerät seine Mac Addresse periodisch
> broadcastet.

Das hat er aber nichts von, weil der Name darin nicht vorkommt.

von pic u. (pic_user)


Lesenswert?

Ja, das stimmt, aber die eigene Mac-Adressen sind bekannt und so kann 
ein
Installer darauf zugreifen, sei es HTTP, ..., und es funktioniert auch
oder speziell wenn noch keine IP-Adresse konfiguriert ist.
Z.b. Ich kaufe meine Mac-Adressen in 1000 Stück und dementsprechend sind
sie mir, bzw meinem Installer als Range bekannt.
Weiters ist es so, daß z.B. ein Ethernet Paket minimum 46byte haben 
muss, ein Ping Paket hat 32 byte, also kann man hinter einem Ping Paket 
den Identifier usw anhängen, sowie auch größere Ping Pakte (64byte) 
senden. Das Padding geschieht automatisch, im embedded Bereich werden da 
aber gerne Daten angehängt.

von Sven (Gast)


Lesenswert?

Danke für die vielen Antworten.

Nun, selbst wenn dem DNS (also üblicherweise dem Heim-Router) mein Gerät 
mit Namen bekannt ist, weiß deswegen die Windows-Station im Netz noch 
nichts von der Existenz meines Geräts.

Und wie gesagt, die Namensauflösung ist eh nicht das Problem, das 
funktioniert, sei es nun über den DNS im Router oder NetBIOS. Meine 
Windows-Station weiß nur leider nicht, welchen Namen sie anfragen soll.

Das was Apple macht ist auch unter AutoIP und uPnP bekannt. Wenn ein 
DHCP Server vorhanden ist, wird eh nicht auf AutoIP zurückgegriffen. Und 
uPnP ist mir wie gesagt zu komplex für meine embedded Lösung.

Insofern klingt der Vorschlag von pic user ziemlich interessant, 
zyklisch solche ARP Broadcasts rauszuschicken.

Heisst das, dass meine Geräte-MAC-Adresse nebst IP irgendwann von selbst 
im arp Cache meiner Windows Station auftaucht? Das wäre super, dann 
könnte ich anhand der MAC Adressbereichs meine eigenen Geräte 
rausfiltern.

Das werd ich mir mal ansehn!

ps. @pic user: wo kaufst du deine Adressen 1000er Weise? Ich kenne nur 
ein 4096 Stück Paket für 600$

von pic u. (pic_user)


Lesenswert?

Ich kaufe Microchip 2Kbit Speicher mit MAC Addresse. Gibt es in 
verschiedenen Ausführungen, auch die mit nur einer I/O. Ist zwar teurer 
als verschiedenen Blöcke kaufen, aber auch flexibler und teilweise ist 
eine kleines EEProm auch praktisch. Ich verwende meistens den 
24AA02E48T-I/OT ,
kostet mich 12€cent aber schon bei 100 Stück ist er glaube ich 
13-14€cent.

von pic u. (pic_user)


Lesenswert?

Nochwas, wenn du keine DHCP Addresse bekommst, oder auch keine 
IP-Addresse
konfiguriert ist, dann ist es auch wichtig den Braodcast zu machen, dann
scheint nähmlich ein Incomplete Eintrag auf und du kannst, da du die
Mac-Addresse angezeigt bekommst, einen statischen ARP-Eintrag machen, um
dann eine IP-Addresse zu configurieren. Auch das Padding der 32byte 
Addresse
ist interessant.
Ein Ansatz aus der Praxis:
16byte padding: Padding is defined as data[1:0] xor mac[2:1] xor 
Checksum(header) + mac[2:1] - Checksum(header) + 
encrypted_word[(index-1)&7]

padding:
byte0   : Checksum (byte*9+byte)
byte1-4 : MAGIC pattern
byte3-15: Payload 7bit data ascii + 4bit flags. 12 char string.

Optional the data[1:15] is xored with Checksum in order to hide the 
magic pattern.

von Archie F. (archie)


Lesenswert?

DU hast geschrieben, dass du auf Upnp verzichten möchtest, aber ein SSDP 
Paket zu verschicken ist doch recht easy und für deine Zwecke vollkommen 
ausreichend.

von Sven (Gast)


Lesenswert?

Danke Archie, ich dachte dieses uPnP ist ne riesen Protokoll Suite, und 
davon wollte ich die Finger lassen. Aber diese SSDP alive Botschaft ist 
ja nur ein HTTP über UDP, das hab ich schnell hingekriegt und es 
funktioniert auch. Mein Gerät taucht nun im arp Cache der 
angeschlossenen Rechner auf. Allerdings müssen die Rechner uPnP 
unterstützen, bei WinXP SP2 muss man das erst aktivieren.

Evtl. ist der Tipp von pic_user also doch noch einen Versuch Wert, auch 
wenn es im ersten Moment noch etwas verwirrend klingt, die Beschreibung.

von pic u. (pic_user)


Lesenswert?

Hast du mal was über Ping tunneling was gehört ?
Das geht auch mit ARP und ermöglicht deiner SW unabhänging von IP
addressen usw dein Gerät zu finden, also ideal für eine Konfiguriersw um
deine Produkte zu erkennen und ev. auch etwas mehr.

Wie du hier siehst, 
http://www.erg.abdn.ac.uk/~gorry/eg3561/inet-pages/arp.html im blauen 
Padding kannst du reinschreiben was du willst,
wird aber bei Ethernet-sniffern angezeigt. Deshalb wird der Bereicht
gerne etwas versteckt, wie oben beschrieben.

Der Aufbau für deine Implementierung ist hier beschrieben,
http://wiki.wireshark.org/Gratuitous_ARP

Upnp ist ein extremer Sicherheitsgau. Im privaten Umfeld ev. tragbar,
im betrieblichen generell nicht.

von Sven (Gast)


Angehängte Dateien:

Lesenswert?

Ich würde ja wirklich gern auf ein zusätzliches Protokoll wie SSDP 
verzichten wenn es auch mit ARP geht, aber ich krieg's nicht hin.

pic_user, du sprichst oben von Unsolicited ARP, ich denke du meinst das, 
was auf den meisten Seiten als Gratuitous ARP bezeichnet wird?
Wenn ich mir das durchlese klingt das in der Theorie sehr gut: einfach 
einen ARP Request zur eigenen IP senden, und fertig.

Ich habe das in meinem Gerät eingebaut, siehe Screenshot. Der Sniffer 
erkennt das ganze auch als Gratuitous Paket. Die Windows Rechner im 
Netzwerk (XP und Win7) sind davon aber unbeeindruckt. In deren ARP-Cache 
tut sich gar nichts (arp -a)

Was mache ich falsch - sollte das Gerät von alleine im ARP Cache 
auftauchen, oder muss ich hier noch eine Aktualisierung antriggern?

Ich habe auch versucht, ausser einem gratuitous Request eine gratuitous 
Reply zu senden, und als destination MAC 000000000000 statt 
FFFFFFFFFFFF. Macht alles keinen Unterschied.

Oder muss ich irgendwas in die Padding Bytes schreiben? Ich habe 
eigentlich keinen Bedarf, Zusatzinformationen zu übertragen. Wenn mein 
Device im ARP Cache auftaucht, erkenne ich es anhand des von mir 
genutzten MAC Adressbereichs.

von Sven (Gast)


Lesenswert?

Oh, also laut diesem Artikel komme ich mit Gratuitous ARP doch nicht 
weiter:

Beitrag "Wieso lernt Windows XP nicht aus einem Gratuitous ARP Paket?"

Die Pakete werden wohl nur verarbeitet, wenn die Absenderstation eh 
schon im ARP Cache steht :-(

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.