Grüße.
Die Diskussion um Hamachi zieht sich und die Fronten sind recht starr:
Es gibt Spieler, die nicht bereit sind, zusätzliche Software zu installieren, um spielen zu können.
Andere sind auf VPNs, wie Hamachi z.B. eines ist, angewiesen, um überhaupt mitzuspielen.
Vorbei an Sinn und Unsinn dieser Diskussion war ich schon länger am überlegen, ob es nicht realisierbar ist, Spieler aus einem VPN heraus an einem Spiel, das außerhalb des VPNs (also ganz normal irgendwo im Internet) gehostet wird, teilnehmen zu lassen. Das unterscheidet sich im Prinzip nicht von der "normalen" Situation, mit der die meisten hier IP-Spiele bestreiten: Ein oder mehrere (dxport) Spieler sitzen hinter einem Gateway und nehmen an einem Spiel im Netz teil.
Den grundlegenden Plan hatte ich bereits in einem anderen Thread
gepostet und bin gerade am testen, ob das tatsächlich funktionieren würde. Ich schreibe das jetzt hier, weil die ganze Sache ohne Unterstützung nicht realisierbar ist, mehr dazu später.
Als ersten Test habe ich heute mit VirtualBox sechs virtuelle Maschinen aufgesetzt, die die angestrebte Situation simulieren sollen. Zu diesem Zweck fungiert eine Instanz als Gateway (unter Debian), eine weitere Instanz hostet ein Spiel, dem zwei weitere Instanzen, die sich im gleichen Netz wie Gateway und der Host befinden (das ist im Prinzip das Internet), beitreten. Die letzten beiden Instanzen befinden sich "hinter" dem Gateway in einem eigenen Netz, stellen also das VPN dar, und verbinden sich über's Gateway mit dem Spiel (dxport nötig) und können so zusammen mit den reinen IP-Spielern spielen. Das ist im Prinzip nichts anderes als ein normales IP-Spiel mit 5 Teilnehmern, von denen zwei übers gleiche Gateway spielen.
Screenshot 1: die 6 Instanzen
So toll, wie das theoretisch funktionieren sollte, klappte das dann natürlich nicht: die beiden Spieler hinterm Gateway hatten permanent Ping 30 zueinander. Nachforschungen mit Wireshark förderten zutage, was genau beim Verbindungsaufbau abläuft: Der verbindende Client besorgt sich beim Server eine Liste mit allen Spielern und deren IPs, verbindet sich selbst zu jedem einzelnen anderen Spieler und schickt jedem ein "addplayer"-Paket mit den eigenen Daten, woraufhin jeder weitere Client den Spieler dann auch mit Nick im Spiel anzeigt. Bis diese Verbindung zustande kommt, sehen die betreffenden zwei Spieler sich selbst mit Ping 30. Nach einigen Nachforschungen und etwas Rumprobiererei konnte ich das Problem mit ein paar zusätzlichen SNAT-Regeln auf dem Gateway für jeden Spieler dahinter lösen. Kurz: Es funktioniert.
Screenshot 2: Lobby mit allen Spielern und behobenem P30-Problem
Der Screenshot zeigt ganz links den Host, rechts daneben das Gateway mit den SNAT- und DNAT-Regeln, weiter rechts (untereinander) dann die beiden Clients im Netz des Hosts und ganz rechts die beiden Clients hinterm Gateway ("VPN"), die sich gegenseitig "sehen" können.
Das Spiel lies sich dann endlich erwartungsgemäß auch starten und lief reibungslos.
Screenshot 3: laufendes Spiel (links der Host, rechts die vier Clients)
Für mich ist das der Beweis, dass es theoretisch möglich ist, IPler und VPNler in einem Spiel zu sammeln. Für das nächste Experiment benötige ich jedoch Hilfe, da ich für eine halbwegs realistische Simulation mit einem echten VPN weit mehr als 10 Instanzen benötigen würde. Aus diesem Grund erfolgt der nächste Versuch in "echt": Ich setze ein OpenVPN auf einem recht dick angebundenen
System auf und
benötige
- einen Host, der "im Netz" ganz normale IP-Spiele hosten kann
- mindestens 2 Spieler, die sich OpenVPN und dxport nach Anleitung installieren
- 2 Spieler, die dem IP-Spiel des Hosts beitreten
Wann das stattfindet, kann ich nicht genau sagen - wenn die Konfiguration des OpenVPNs so klappt, wie ich mir das vorstelle, dann heute oder morgen, irgendwann danach ist aber natürlich auch kein Problem.
Also wer Lust und v.a. Zeit hat, nebenbei in einem Spiel zu warten und was Gutes für die Community zu tun: meldet euch hier!
Das ist alles nur auf experimenteller Basis, aber wenn das funktionieren und die Performance brauchbar sein sollte, stellt sich folgende Frage: Woher bekommen wir einen ordentlich angebundenen Rechner/"Root", der als OpenVPN-Server und Gateway für derartige Spiele dienen kann? Wenn es den gibt, bräuchten wir außerdem noch irgendwen, der was von Windows-Programmierung/-Scripting versteht und Lust hätte, die dxport- und OpenVPN-Geschichten mit ner netten Benutzeroberfläche zu versehen, sodass auch die, die nicht so mit Computern können, behfähigt sind mitzuspielen.
Danke für Rückmeldungen.