Forum: Mikrocontroller und Digitale Elektronik rfm12 <-> serial <-> ethernet device und Subnetz


von Bronko P. (bronko99)


Lesenswert?

Hallo,

das ist was ich habe:
Ich habe eine RFM12 <-> Seriell Dongle gebaut. Funktioniert soweit ganz 
gut.
Nun möchte ich möglichst flexibel auf andere RFM12 Knoten zugreifen 
können (ala Ethersex) mittels TCP und IP. Im Keller steht ein Linux 
Server wo das Dongel angeschlossen wird. Der Server ist im Netz 
192.168.2.* die Funkmodule sollen z.B auf 192.168.3.* sein.

Das will ich:
1. Das Dongle soll als Ethernet Device ansprechbar sein (z.B. eth1).
   Was muss ich hierzu auf Linux Seite machen um /dev/ttyUSB0 als eth1
   haben? Im uC kann ich alles implementieren was notwendig ist.
   Momentan habe ich ein SLIP basiertes Protokoll am Laufen.
2. Der Linux Server muß wohl als Bridge(/Router) fungieren?! Was brauche
   ich an Software hierzu?
3. Ist das der richtige Weg oder gibt es etwas einfacheres/besseres?
   Wie gesagt sollen die Knoten über Ihre IP von anderen Rechnern aus
   ansprechbar sein.

Danke u. Gruß
Bronko99

von TestX .. (xaos)


Lesenswert?

du brauchst auf dem linux pc ein kleines programm, dass einen 
server-socket auf der jeweiligen netzwerkadresse öffnet und die i/o 
streams vom seriellen port auf den socket weiterleitet (zB java, python, 
c++)

um aber mehrere netzwerkadressen zu haben musst du deine linux netzwerk 
hardware virtualisieren, um mehrere virtuelle netzwerkkarten zu haben 
(wie das geht hängt von deiner distri ab und deiner lan hardware).

am einfachsten wäre es jedoch einfach pro node einen eigenen port zu 
haben,..

von Bronko P. (bronko99)


Lesenswert?

Andi D. schrieb:
> du brauchst auf dem linux pc ein kleines programm, dass einen
> server-socket auf der jeweiligen netzwerkadresse öffnet und die i/o
> streams vom seriellen port auf den socket weiterleitet (zB java, python,
> c++)

Das wäre Plan B.

Andi D. schrieb:
> um aber mehrere netzwerkadressen zu haben musst du deine linux netzwerk
> hardware virtualisieren, um mehrere virtuelle netzwerkkarten zu haben
> (wie das geht hängt von deiner distri ab und deiner lan hardware).

Ich habe Gentoo, Fritzbox als Router und Server mit Onboard 
Netzwerkkarte, also alles Standard. Ich dachte, das es über SLIP geht. 
Ich weiß was das ist und wofür das gebraucht wird, kenne aber die 
Schnittstelle Linuxseitig nicht. Meine Vermutung(Hoffnung) war, dass es 
ein Device gibt und man dann über Kernel Bridging Unterstüzung und ein 
Hilfsprogram das Routing hinbekommt.

von Dr. Sommer (Gast)


Lesenswert?

SLIP ist genau das richtige. Verwende dazu das Programm pppd, um den 
Server mit den "Clients" zu verbinden, und betrachte die Funkstrecke 
dazu als einfache serielle Verbindung, so wie bei einer Modemleitung. 
Das pppd Programm erstellt eine virtuelle Netzwerkkarte, bei der man die 
IP des Gegenstücks einstellt (in pppd oder per ifconfig), sodass Daten 
an diese IP eben an diesen Endpunkt gesendet werden.
Einfachere Alternative: Wlan.

von Dr. Sommer (Gast)


Lesenswert?

Oh, und vergessen: Damit das Routing funktioniert, musst du nur dies 
ausführen:
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

und in iptables dafür sorgen, dass die Pakete in der "FORWARD" chain 
durchgelassen werden (zB mit iptables -P FORWARD ACCEPT)

von Bronko P. (bronko99)


Lesenswert?

Ok aber was mache ich mit der Addressierung der einzelnen RFM12 Knoten?
ppp ist doch Point to Point. Die einzelnen Knoten sollen jeweils über 
eine eigene IP angsprechbar sein. Geht das trotzdem? Wie definiere ich 
dann ein Subnetz?

von Dr. Sommer (Gast)


Lesenswert?

Bronko Pavel schrieb:
> Ok aber was mache ich mit der Addressierung der einzelnen RFM12 Knoten?
Wie gesagt, beim Router stellst du die IP in pppd oder ifconfig für 
jeden Knoten ein. Dann kriegt jeder Knoten genau das, was für ihn ist.
> ppp ist doch Point to Point. Die einzelnen Knoten sollen jeweils über
> eine eigene IP angsprechbar sein. Geht das trotzdem?
Du startest pppd halt für jeden Knoten einmal, wenn du 7 Knoten hast, 
hast du halt 7x pppd laufen und 7 ppp-Interfaces auf dem Router, und du 
kannst bei jedem dieser Interfaces die IP der Gegenstelle festlegen.
> Wie definiere ich dann ein Subnetz?
Indem du halt die IP's entsprechend einstellst, mehr brauchts ja nicht, 
da eh alle über den selben Router zu erreichen sind (und ein Subnetz 
somit eigentlich sinnlos ist).

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.