Netzwerk Programmierung Tun/Tap

Gast #3031813
Lesenswert?

Hallo zusammen

Ich benötige Hilfe bei folgender Situation. (Windows XP)
Auf PC-A läuft eine Programmiersoftware welche über zwei Ports 
kommuniziert.
Das zu programmierende Gerät ist in einem entfernten Netzwerk.
Um es nun zu warten oder zu programmieren wäre eine Lösung eine VPN 
Verbindung. Ich suche nun eine Alternative. Ein erster Versuch mit einer 
einfachen Portforwarding Software durch einen Teamviewer VPN Tunnel war 
nicht zufriedenstellend.
Meine Idee war nun mit einer Virutellen Schnittstelle (tun/tap von 
openvpn) auf Rechner A zu installieren dann auf dem PC-B (welcher im 
selben Netzwerk ist wie das zu programmierende Gerät) ein Socket 
Server/Client Programm welches die Daten in empfang nimmt und 
weiterleitet. So das es aussieht als ob die Programmiersoftware auf PC-B 
arbeitet.
Idea wäre wenn diese Kommunikation über nur einen Port läuft 
vorzugsweise Port 80.

Kennt jeman so eine Software?
Ist es überhaupt möglich? Was sagt ihr zu meiner Idee?
Andere Lösungen/Ansatze/Gedanken?

Vielen Dank
#3032473
Lesenswert?

Theoretisch sollten 3 einfache Sachen dafür reichen:

 - Dateifreigabe (um das Kompilat von PC-A für den Programmier-PC 
freizugeben)
 - Die Programmiersoftware, mit der der Programmier-PC den Controller 
(?) flasht
 - "Polling-Software", die ständig den Inhalt der Dateifreigabe 
überprüft, ob eine Änderung des Datums vorliegt.

Sähe dann so aus:

 - Programm wird kompiliert. Kompilat kommt in die Freigabe. Die 
Freigabeverzeichnisse werden vom  "Polling-Programm" 
sekündlich/minütlich/... überwacht, welches bei einer Datumsdifferenz 
oder jedwelcher Änderung über einen DOS-Befehl (meist lässt sich über 
einen Übergabeparameter ein jedes graphische Tool überlisten) den 
Programmierprozess der Hardware anstößt.

Fertig.
#3032559
Lesenswert?

@ Johannes

scheitert ja schon am 1. Punkt (die 2 Rechner sind nicht im selben Netz)


@TO: was spricht gegen ein VPN Verbindung? (ich meine jetzt nicht 
teamviewer, sondern selber gemacht...) OpenVPN usw. ?


sonst eben SSH (das scheint es auch für windows zu geben) da kann man 
einzelne ports forwarden

http://sshwindows.sourceforge.net/information/


interessant wäre jetzt noch, ob es SICHER (also verschlüsselt) sein 
muss?
#3033176
Lesenswert?

Ist der Programmier-PC  ein Windows- oder Linux-System?

Dann gäbe es noch die Möglichkeit, über ein Skript fürs eMail-Programm 
die Inhalte der Mail abzufragen.
Sollte sich mit einem Outlookmakro oder einem Thunderbird-Skript 
bewerkstelligen lassen.
1
if (IncomingMail.Header == *Program*) { execute(flash.exe)  }

Ansonsten: Warum kein FTP?

Im Linuxfall: ein kleines Shellskript schreiben, welches alle Minuten 
die Aktualität der Daten auf einem Server abruft. Liegt eine neue Datei 
drauf, holt sich das Skript die zu "flashende" Datei (z.b. *.Hex) vom 
Server und macht dann das Gleiche wie oben beschrieben.

Nach der Methode habe ich mal einen Gießroboter übers Internet 
gesteuert.


µC  <---  PC (mit Pollprogramm) <->  INTERNET <--- Anwender (Webseite)

... und es hat prächtig funktioniert! ;o)
Gast #3033216
Lesenswert?

Martin schrieb:

> Das zu programmierende Gerät ist in einem entfernten Netzwerk.
> Um es nun zu warten oder zu programmieren wäre eine Lösung eine VPN
> Verbindung. Ich suche nun eine Alternative. Ein erster Versuch mit einer
> einfachen Portforwarding Software durch einen Teamviewer VPN Tunnel war
> nicht zufriedenstellend.
> Meine Idee war nun mit einer Virutellen Schnittstelle (tun/tap von
> openvpn) auf Rechner A zu installieren dann auf dem PC-B (welcher im
> selben Netzwerk ist wie das zu programmierende Gerät) ein Socket
> Server/Client Programm welches die Daten in empfang nimmt und
> weiterleitet. So das es aussieht als ob die Programmiersoftware auf PC-B
> arbeitet.
> Idea wäre wenn diese Kommunikation über nur einen Port läuft
> vorzugsweise Port 80.


Warum soll ein VPN funktionieren wenn die Systeme nicht miteinander 
reden können weil die in unterschiedlichen Netzen stehen ?
#3033217
Lesenswert?

Mir stellt sich erst mal die Frage wie das Netz auf der "Zielseite" 
aussieht.
Das Netz wird ja nicht offen sein sondern durch irgendeine Firewall 
abgesichert sein. Kann diese Firewall z.B. IPSec, SSL, L2TP.
Kann diese z.B. IPSec könntest Du mit einem passenden Client wie von 
Shrewsoft einen Tunnel aufbauen. Der Vorteil die FW als Gegenstelle zu 
benutzen ist daß man keinen PC am Remote-Standort benötigt sondern ein 
Gerät verwendet das "sowieso" immen eingeschaltet ist.
Gast #3033255
Lesenswert?

Danke erstmal für die vielen Vorschläge.

Die Lösungen mit FTP oder Datei Freigabe funktionieren nach meiner 
Meinung nicht oder nur schlecht da auch Live auf das System geschaut 
werden möglich sein soll. Das gäbe extrem viele Schreib/Lese Zyklen.

VPN ist absolut möglich. Nur leider ist es nicht nur eine Anlage und 
nicht immer ein Router vor Ort der das kann.

Deshalb wäre eine andere Lösung toll.

SSH werde ich mir anschauen Danke.

Hab schon mal angefangen meine Idee umzusetzten.
Kenne mich leider nicht aus mit C# und der asynchronen Programmierung.
Bekomme immer den Fehler :"Eine bestehende Verbindung wurde 
softwaregesteuert.....abgebrochen"
Denke es liegt an dem asynchron Ding.

Für weiter Ideen mit ich hoffen.
Vielen Dank
Angehängte Dateien:
#3033744
Lesenswert?

>VPN ist absolut möglich. Nur leider ist es nicht nur eine Anlage und
>nicht immer ein Router vor Ort der das kann.

und überall ein anderer Systemadmin, der dir das alles nicht erlauben 
wird ;-)

nachtrag: am einfachsten wäre, wenn sich der PC vom Kunden automatisch 
zu DIR verbindet .. (z.b. indem ein mitarbeiter dort, openVPN startet 
usw. )

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