Bitte um Mithilfe bei Softwaretest:

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Bitte um Mithilfe bei Softwaretest:

Beitrag von weedy » 21.06.2005 13:48:01

Hallo. Seit einiger Zeit hat mich der Gedanke gequält, ob es denn möglich sei, eine bestehende Verbindung zwischen 2 Rechnern durchzuführen, die je hinter einem Masquerading/ NAT/ Proxy/ Gateway/ Firewall/ Packetfilter/ wasauchimmer hängen. Die idee bestand darin dass der Verbindungsaufbau durch 2 simultane entgegengesetzte UDP-Packete zu erzeugen. Keiner der UDP-Clients geht dabei in den listen-Modus. Daß das funktioniert zeigt bereits ein vortest:

Code: Alles auswählen

#!/bin/bash

# wenn man diese Aktion mit ngrep beobachtet, werden keine Icmp-Packete geliefert.
# dieses Script zeigt, wie ein UDP-Verbindungskanal zwischen 2 Rechnern hinter je einem Firewall und ueber diese Firewalls moegl
ich ist.

{ { sleep 1; echo 1;} | netcat -u -p 4000 127.0.0.1 3000; } & { { sleep 1; echo 2;} | netcat -u -p 3000 127.0.0.1 4000; }
So. Das teil hat bei mir immer funktioniert; es kann probleme geben, wenn einer der erzeugten Prozesse das UDP-Packet zu spät sendet.

Nun habe ich ein Programmpacket geschrieben, welches einen Vermittlungsserver zur Verfuegung stellt, der die Clients zeitmäßig synchronisiert, sodaß diese zeitgleich die UDP-Packete losschicken, nachdem sie sich gegenseitig über die verwendeten Ports und Hosts geeinigt haben und vom Server zeitsynchronisiert wurden (keine Angst, da wird nicht an der Uhr rumgefriemelt. das betrifft nur die sleeps in den Prozessen). Ich kann das nicht testen (ausser im LAN, da funktioniert es), da mir einfach die Infrastruktur fehlt. Es werden benötigt:


o auf allen verwendeten Rechnern: python2.3/ Linux/ readline
o einen Server im Internet, auf dem './udp_server.py <ip_address> <portnr>' gestartet wird, dessen ip_address im Internet auch sichtbar ist (Vermittlungsserver)
o mindestens 2 Clientrechner (die sich _nicht_ in einem Subnetz mit dem Server befinden, sonst geht das nicht), die sich hinter einem Proxy befinden und per './udp_client.py <ip_address> <portnr> <poolid>' (mit derselben poolid) an dem Server connecten und dann vom Server Synchronisiert werden
o die Software: http://crazy.vakuum.net/udp_durch_firewall_test.tgz
o Gedult: ich hatte es bereits getestet, aber auf dem Proxy war freebsd und das mappt die ports anders beim Masquerading: der port muss derselbe bleiben, sonst geht das nicht (ich konnte feststellen, dass der Port bei Linux gleich bleibt, wenn er noch nicht auf dem Proxy belegt ist).
o Sind die Clients miteinander verbunden, erscheint in der jeweiligen Client-Console ERSTKONTAKT und kann kann mit 'say( "...")' geplappert werden. Lasst euich bitte nicht davon verwirren, dass die Programme python im Interaktiven Modus starten ( es erscheint eine python-Console '>>>'. Die Prozesse laufen im Thread).

Schreibt bitte ins Forum, wer wann und wo Server zur Verfügung stellt mit welcher/m IP/Port. Und wer als Client mit welcher Poolid dort angedockt ist.

Wenn das Experiment gelingt, dann haben wir die Voraussetzung für eine neue Art des P2P-Verbindungsaufbaus geschaffen (die zwar nicht immer Funktionieren würde, aber oft genug). Bisher musste einer der sich verbindenden P2P-Clients immer im Inet sichtbar sein; der jeweils andere konnte sich dann hinter einem Firewall verbergen. Nun können dies beide.

Danke im Voraus.

weedy.

Benutzeravatar
theBrain
Beiträge: 231
Registriert: 19.01.2003 21:03:06
Wohnort: Erlangen
Kontaktdaten:

Beitrag von theBrain » 21.06.2005 14:26:54

ich könnte dir ne Büchse anbieten. (frisch Installiert mit Debian Sarge)
Einen Shellzugang würde ich Dir einrichten. (voller Rootzugriff)
also Quasi ein dedizierter Testrechner nur für dich.
Das System würde hinter einer Firewall (IPCOP ) in der DMZ stehen.
Die Leitung ist ne ADSL 6000/512 mit fester IP.
Ports leite ich im IPCOP weiter.
Mit Zeit kann ich dir weniger behilflich sein.
Die Zugangsdaten poste ich aber nicht im Netz :-))

hth

Heiko
man muss die Sau auch füttern,
nicht nur schlachten.

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 21.06.2005 15:01:09

Von Smalltalk weggeschoben.

by, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Beitrag von weedy » 21.06.2005 20:35:19

theBrain hat geschrieben:ich könnte dir ne Büchse anbieten. (frisch Installiert mit Debian Sarge)
Einen Shellzugang würde ich Dir einrichten. (voller Rootzugriff)
also Quasi ein dedizierter Testrechner nur für dich.
Das System würde hinter einer Firewall (IPCOP ) in der DMZ stehen.
Die Leitung ist ne ADSL 6000/512 mit fester IP.
Ports leite ich im IPCOP weiter.
Mit Zeit kann ich dir weniger behilflich sein.
Die Zugangsdaten poste ich aber nicht im Netz :-))

hth

Heiko
Das wäre genial. Wie willst Du mir die Daten zukommen lassen? Es gäbe zur Auswahl silc und jabber über ssl. Zur Not auch Email.

Der Rechner, den Du mir vorschlägst, wäre mit seinem Firewall geeignet für einen ersten Client. Wenn der andere Client zum Testnicht hinter einer FW steht (wie hier bei mir), koennte ich bei Erfolg den Test insgesamt trotzdem als Erfolg werten, weil das mit dem Verbindungsprinzip dann auch bei 2 FWs funktionieren wuerde.

Ich braeuchte aber gleichzeitig noch einen Rechner (in einem anderen Subnetz), der Verbindungsserver ist. Er muss im Internet direkt per ip angesprochen werden können. Vieleicht bekomme ich noch von jemanden einen Direkten Rechner, dann müssten wir mal die Zeit festlegen, in der mir alle Rechner gleichzeitig zur Verfügung stehen, damit ich testen kann.

Danke im Voraus für Deine Hilfe,

weedy.

Benutzeravatar
theBrain
Beiträge: 231
Registriert: 19.01.2003 21:03:06
Wohnort: Erlangen
Kontaktdaten:

Beitrag von theBrain » 27.06.2005 15:16:13

sorry war ein wenig busy in der letzten Zeit. Den Rechner versuche ich heute fertig zu machen. Und schicke dir dann die nötigen Daten per Mail. Das sollte sicher genug sein wenn Du gleich das Passwd aenderst.

cu

Heiko
man muss die Sau auch füttern,
nicht nur schlachten.

Benutzeravatar
theBrain
Beiträge: 231
Registriert: 19.01.2003 21:03:06
Wohnort: Erlangen
Kontaktdaten:

Beitrag von theBrain » 28.06.2005 20:39:50

wohin soll denn die mail gehen?
schick mir mal deine Email Adr an
zugangsdaten.3.freidenker@spamgourmet.com :-))
man muss die Sau auch füttern,
nicht nur schlachten.

Benutzeravatar
theBrain
Beiträge: 231
Registriert: 19.01.2003 21:03:06
Wohnort: Erlangen
Kontaktdaten:

Beitrag von theBrain » 04.07.2005 09:29:17

diese Emailadr gibt es wirklich, ich verwende spamgourmet zum weiterleiten.
Wenn Du allerdings kein Interesse mehr an dem System hast gib kurz bescheid, dann kann ich den Rechner für etwas anderes verwenden.

cu

Heiko
man muss die Sau auch füttern,
nicht nur schlachten.

Antworten