Steam In-Home-Streaming über openVPN

    • Offizieller Beitrag

    Da ich im Internet bisher nichts brauchbares gefunden habe, mich das Thema aber interessierte, schreibe ich dazu einen kleinen Text zusammen.

    Was ist Steam In-Home-Streaming
    Angenommen ich habe einen leistungsstarken PC in einem Zimmer im Haus und einen schwächeren PC in einem anderen Zimmer. Aus irgendeinem Grund will ich an dem schwachen PC ein Steam Spiel spielen. Dafür bietet sich das in-home-streaming an. Dieses Feature wurde von Steam im Mai 2014 eingeführt und kann von jedem User genutzt werden. Das Prinzip ist simpel. Befinden sich beide Rechner in einem Netzwerk, kann ich auf beiden Systemen den Steam Client starten. Das Programm erkennt die beiden Clients im Netzwerk und gibt die Möglichkeit das Spiel auf einem Rechner zu starten, aber auf dem anderen Rechner anzuzeigen. Hierbei rechnet die Grafikkarte des stärkeren Rechners, während die Eingaben am zweiten PC geschehen.
    Ich hatte dazu schon mal hier einen Artikel verfasst: Steam In Home Streaming
    Steam Seite zum Streaming: http://store.steampowered.com/streaming/?l=german

    Und wo zu brauche ich das wirklich?
    Steam bringt im Oktober 2015 den Steam Link heraus. Dies ist ein kleiner leistungsschwacher und lüfterloser PC, den ich an meinen Wohnzimmer TV stecken kann. Darüber streame ich mir das Spiel vom Hauptrechner übers Netzwerk auf meinen großen TV und kann dort bequem auf der Couch spielen.

    Und jetzt der VPN Teil
    Da sich dieses Feature nur auf das lokale Netzwerk bezieht, habe ich mir überlegt, ob man dies nicht auch über eine längere Strecke bewältigen könnte. Dafür kommt eigentlich nur ein sogenanntes Virtual Private Network in Frage. Dies baut einen Tunnel zwischen einem VPN Server und einem VPN Client auf, durch welchen verschlüsselte Kommunikation übertragen wird. Hauptsächlich wird dies von Firmen genutzt, um Standorte miteinander zu verbinden.
    Ich habe mich bei meinem Versuch für einen openVPN Server entschieden. Das Protokoll bietet zwei Arten von Tunneln.

    • tun - Das tun device baut zwei Endpunkte auf, die peer to peer miteinander kommunizieren
    • tap - Das tap device erstellt eine Netzwerkbrücke, die Server und Client in ein Subnetz platzieren
    • weitere Informationen: http://wiki.openvpn.eu/index.php/Vergleich_TUN/

    Für unseren Aufbau benötigen wir ein tap Device! In-Home-Streaming benötigt eine Broadcast Adresse, an welche es die Anfrage herausschickt, ob noch andere Clients im Netzwerk gerade Steam nutzen. Ohne den Broadcast kommt keine Kommunikation zustande.
    Ich erkläre hier allerdings jetzt nicht, wie man einen openVPN Server mit Bridging Modus konfiguriert. Dafür gibt es genügend Anleitungen im Netz. Eine gut geschriebene Anleitung dazu findet ihr hier. Alternativ einfach über eine Suchmaschine "openVPN server linux bridge" suchen. Da findet ihr bestimmt etwas.

    Nun wird es aber interessanter. Beide Steam PC's müssen nun also mit dem openVPN Server verbunden sein, damit sie sich in einem virtuellen Netzwerk "sehen" können. Zur Überprüfung kann man einfach ICMP Pakete zwischen den Clients verschicken. Antworten alle Gegenseiten, steht die Kommunikation. Starten wir nun Steam, haben wir noch kein in-home-streaming, da der Client die Anfragen über das default Gateway verschickt.
    Eine typische Broadcast Anfrage vom Client sieht wie folgt aus.

    09:02:58.431297 IP 192.168.15.102.27031 > 192.168.15.255.27036: UDP, length 93
    09:02:58.431330 IP 192.168.15.102.27031 > 192.168.15.255.27036: UDP, length 41

    Wir müssen den Client nun noch dazu bringen, dass er die Broadcast Anfragen über das tap Device verschickt, um den zweiten Steam Client zu sehen. Dazu können wir einfacherweise den openVPN Server als default Gateway verwenden.

    Folgende Konfiguration passen wir daher an.

    openVPN Server Konfiguration
    In der Serverkonfiguration folgende Zeile hinzufügen. Damit wird dem Client die Information mitgegeben, dass seine default route über das VPN Gateway geroutet werden soll. Jeder Traffic geht somit über den VPN Server. Damit verbindet sich Steam auf beiden Seiten auch über den VPN Server mit den Steam Servern und sind damit für die "Außenwelt" nur mit einer IP sichtbar.
    push "redirect-gateway def1"

    Des Weiteren müssen wir dem NAT auf dem openVPN Server mitteilen, dass die IP's der beiden Clients maskiert werden. Dazu nutzen wir iptables. Es reicht, wenn die beiden Client IP's maskiert werden. Die IP's müssen dabei gegen die Client IP Adressen ausgetauscht werden.
    iptables -t nat -A POSTROUTING -s 192.168.15.101/24 -o br0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 192.168.15.102/24 -o br0 -j MASQUERADE

    Der openVPN Server und die Clients müssen nach der Konfiguration restartet werden. Die iptables Regeln halten übrigens nur bis zum nächsten Reboot.
    Für eine permanente Konfiguration müsst ihr euch ein autostart Script schreiben.

    Wie schaut das Ganze in der Praxis aus?
    Für mich unbrauchbar ;)
    Das Ganze sollte für mich nur ein Test sein, ob es möglich ist. Ja, es ist möglich! Aber mit einer einfachen Kabel-Internet Leitung zu Hause reicht die Bandbreite einfach nicht aus. Ich nutze eine 32Mbit/s Leitung zu Hause mit 2MBit/s Upstream. Der Upload reicht hier einfach nicht aus. Steam verlangt mindestens 3Mbit/s konstanten Upstream. Wer also Bei Kabel Deutschland 6Mbit/s oder bspw. über DSL 10Mbit/s Upstream hat, kann das Ganze gern noch mal testen. Allerdings spielt auch die Latenz eine große Rolle. Über weitere Testergebnisse mit stärkeren Leitungen wäre ich erfreut.

  • Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

    Die letzte Antwort auf dieses Thema liegt mehr als 365 Tage zurück. Das Thema ist womöglich bereits veraltet.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!