rfm12 <-> serial <-> ethernet device und Subnetz

OP #2757117
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
#2757135
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,..
OP #2757149
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.
Gast #2757156
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.
Gast #2757164
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)
Gast #2758688
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).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren