mrfeed
Goto Top

Traffic von VPS ins Heimnetz routen oder tunneln ?!

Hallo zusammen,

ich stehe (erneut) vor dem Problem mit dem Dual Stack Lite Zugang.

Ich betreibe mehrere Game Server (Linux und Windows) in meinem LAN, auf die wir bisher nur mithilfe von OpenVPN Zugriff haben.

Nun hab ich mich gefragt ob ich nicht einfach einen VPS (z.B. Hetzner Linux-VPS mit Public IPv4) mieten und sämtlichen Traffic per IPv6 in mein Heimnetz "tunneln/routen" könnte.

Szenario 1:

Der VPS schickt alles Port abhängig an die IPv6 Adressen von meinen Servern.

Szenario 2:

Der VPS schickt alles an eine Feste IPv6 im LAN und die leitet den Traffic im LAN Port bezogen weiter.

20200711_092626000_ios

Szenario 1 wird vermutlich nicht funktionieren, da die Game Server wahrscheinlich nicht auf die IPv6 Pakete reagieren können...


Bisher haben wir nach Aufbau der OpenVPN Verbindung einfach die lokalen Adressen + Port der Server eingetragen und konnten uns so verbinden.

Wünschenswert in Zukunft wäre es, dass wir die Public IPv4 und den Port angeben.

Habt ihr vielleicht Ideen wie ich das am geschicktesten hin bekomme ?

Vielen Dank im Voraus!

Grüße
Michael

Content-ID: 587017

Url: https://administrator.de/contentid/587017

Ausgedruckt am: 22.11.2024 um 06:11 Uhr

aqui
aqui 11.07.2020 um 13:50:51 Uhr
Goto Top
und sämtlichen Traffic per IPv6 in mein Heimnetz "tunneln/routen" könnte.
Du meinst IPv4 Traffic, oder ? Für IPv6 Traffic wäre es ja Quatsch, denn der kommt ja direkt geroutet in dein Heimnetz.
Aber der Ansatz ist richtig wenn es IPv4 ist, denn als DS-Lite Opfer hast du sonst ohne einen kostenpflichtigen Tunnel Provider keine Chance.
Guckst du dazu auch hier:
Zwei Mobilfunkrouter (TP-Link MR200) per VPN verbinden, ev. per externen VPN-Gateway (VPS-Server)
LordGurke
LordGurke 11.07.2020 um 14:36:55 Uhr
Goto Top
Zitat von @aqui:

und sämtlichen Traffic per IPv6 in mein Heimnetz "tunneln/routen" könnte.
Du meinst IPv4 Traffic, oder ? Für IPv6 Traffic wäre es ja Quatsch, denn der kommt ja direkt geroutet in dein Heimnetz.

Hä? Der Ansatz MrFeed ist doch genau richtig?
Er hat einen Server irgendwo im Internet, der per IPv4 erreichbar ist, der dann den Payload in IPv6 umverpackt und ins Heimnetz schickt.


Ich würde Szenario 2 bevorzugen. Wenn beide Gegenstellen Linux sind, kannst du da z.B. mit einem simplen IPIP6-Tunnel machen:
https://developers.redhat.com/blog/2019/05/17/an-introduction-to-linux-v ...

Der Server bei dir im Heimnetz und der Hetzner-Server bekommen jeweils ein solches Interface eingerichtet und zeigen auf die IPv6-Adresse der jeweiligen Gegenstelle.
Auf diesen Tunnel-Interfaces kannst du dann irgendwelche beliebigen RFC1918-Adressen als Transfernetz binden, z.B. 172.23.0.1/30.

Dann kannst du auf dem Hetzner-Server per NAT einen Portrange, den du bei dir im LAN benötigst, auf die getunnelte IPv4-Gegenstelle in deinem Heimnetz (z.B. 172.23.0.2) NATen. Dein Heimnetz-Server würde dann ein weiteres NAT auf die jeweiligen Gameserver machen.


Nachteil dieser Lösung mit dem IPIP6-Tunnel ist, dass das ganze auf der Annahme basiert, dass die IPv6-Adressen statisch sind.
Wenn sich die Adresse in deinem Heimnetz einmal ändern sollte (was bei dynamischen IPv6-Präfixen nicht allzu unwahrscheinlich ist), muss die Tunnel-Interface-Konfiguration am Hetzner-Server entsprechend angepasst werden.
Als Gegenstelle, die auf dem Hetzner-Server konfiguriert wird, solltest du deshalb auch möglichst immer die EUI64-Adresse des Heimnetz-Servers angeben (die enthält nämlich die MAC-Adresse und ändert sich im Gegensatz zur temporären Privacy-Extensions-Adresse nur dann, wenn dir dein Provider ein neues Präfix zuweist).
aqui
aqui 11.07.2020 aktualisiert um 15:57:52 Uhr
Goto Top
Hä? Der Ansatz MrFeed ist doch genau richtig?
Der Kommentar bezog sich allein auf nativen v6 Traffic von außen. Den braucht der TO ja keineswegs tunneln, da direkt geroutet. Der Terminus "sämtlicher Traffic" ist ja recht unspezifisch wenn es um v4 und v6 geht. Letztlich meinen wir aber alles das gleiche, denn es geht nur um v4.
EvilMoe
EvilMoe 11.07.2020 um 20:21:53 Uhr
Goto Top
Hallo,
Empfehlenswert ist auch dieser Service: https://www.feste-ip.net/
Ich bin mir aber nicht sicher, ob die auch UDP tunneln oder nur TCP.

LG
MrFeed
MrFeed 11.07.2020 um 21:26:08 Uhr
Goto Top
Zitat von @aqui:

und sämtlichen Traffic per IPv6 in mein Heimnetz "tunneln/routen" könnte.
Du meinst IPv4 Traffic, oder ? Für IPv6 Traffic wäre es ja Quatsch, denn der kommt ja direkt geroutet in dein Heimnetz.
Aber der Ansatz ist richtig wenn es IPv4 ist, denn als DS-Lite Opfer hast du sonst ohne einen kostenpflichtigen Tunnel Provider keine Chance.
Guckst du dazu auch hier:
Zwei Mobilfunkrouter (TP-Link MR200) per VPN verbinden, ev. per externen VPN-Gateway (VPS-Server)

Bei den meisten spielen kann man von vornherein schon keine IPv6 Adresse angeben...
Daher die Idee, dass ich den Hetzner Server mit der IPv4 angeben kann und der Hetzner Server den Traffic entgegen nimmt und mit IPv6 an die entsprechenden Server schickt. Es ist nur die Frage ob IPv6 Pakete entgegen nehmen können.
Daher glaub ich auch eher das Szenario 2 eher denkbar ist.

Es geht genau um so einen Tunnel Provider, nur will ich das eben selber machen...
MrFeed
MrFeed 11.07.2020 um 21:27:33 Uhr
Goto Top
Zitat von @aqui:

Hä? Der Ansatz MrFeed ist doch genau richtig?
Der Kommentar bezog sich allein auf nativen v6 Traffic von außen. Den braucht der TO ja keineswegs tunneln, da direkt geroutet. Der Terminus "sämtlicher Traffic" ist ja recht unspezifisch wenn es um v4 und v6 geht. Letztlich meinen wir aber alles das gleiche, denn es geht nur um v4.

Hätte ich wohl besser definieren können, tut mir leid ..

Es geht um IPv4 Traffic, den ich irgendwie mit Hilfe von IPv6 in mein Heimnetz bekomme...
MrFeed
MrFeed 11.07.2020 um 21:28:02 Uhr
Goto Top
Zitat von @EvilMoe:

Hallo,
Empfehlenswert ist auch dieser Service: https://www.feste-ip.net/
Ich bin mir aber nicht sicher, ob die auch UDP tunneln oder nur TCP.

LG

Yup, das ist es im Prinzip, nur will ich das selber betreiben...
MrFeed
MrFeed 11.07.2020 um 21:55:02 Uhr
Goto Top
Zitat von @LordGurke:


Ich würde Szenario 2 bevorzugen. Wenn beide Gegenstellen Linux sind, kannst du da z.B. mit einem simplen IPIP6-Tunnel machen:
https://developers.redhat.com/blog/2019/05/17/an-introduction-to-linux-v ...

Der Server bei dir im Heimnetz und der Hetzner-Server bekommen jeweils ein solches Interface eingerichtet und zeigen auf die IPv6-Adresse der jeweiligen Gegenstelle.

soweit so gut, also die folgende line auf beiden Servern mit der Entsprechenden IPv6 ausführen.

ip link add name ipip6 type ip6tnl local LOCAL_IPv6_ADDR remote REMOTE_IPv6_ADDR mode any

Auf diesen Tunnel-Interfaces kannst du dann irgendwelche beliebigen RFC1918-Adressen als Transfernetz binden, z.B. 172.23.0.1/30.

Dann kannst du auf dem Hetzner-Server per NAT einen Portrange, den du bei dir im LAN benötigst, auf die getunnelte IPv4-Gegenstelle in deinem Heimnetz (z.B. 172.23.0.2) NATen. Dein Heimnetz-Server würde dann ein weiteres NAT auf die jeweiligen Gameserver machen.

Wie genau kann ich mir das Transfernetz vorstellen ?

Kann ich nicht einfach den Traffic am Server abhängig vom Port an die entsprechende lokale IP4 weiterleiten ?

Aber schon mal Danke für deinen Tipp!!


Nachteil dieser Lösung mit dem IPIP6-Tunnel ist, dass das ganze auf der Annahme basiert, dass die IPv6-Adressen statisch sind.

Sind sie face-smile

Wenn sich die Adresse in deinem Heimnetz einmal ändern sollte (was bei dynamischen IPv6-Präfixen nicht allzu unwahrscheinlich ist), muss die Tunnel-Interface-Konfiguration am Hetzner-Server entsprechend angepasst werden.
Als Gegenstelle, die auf dem Hetzner-Server konfiguriert wird, solltest du deshalb auch möglichst immer die EUI64-Adresse des Heimnetz-Servers angeben (die enthält nämlich die MAC-Adresse und ändert sich im Gegensatz zur temporären Privacy-Extensions-Adresse nur dann, wenn dir dein Provider ein neues Präfix zuweist).

Dafür trage ich schon Sorge.. da ändert sich nichts mehr..
LordGurke
LordGurke 11.07.2020 um 22:28:58 Uhr
Goto Top
Zitat von @MrFeed:
Auf diesen Tunnel-Interfaces kannst du dann irgendwelche beliebigen RFC1918-Adressen als Transfernetz binden, z.B. 172.23.0.1/30.

Dann kannst du auf dem Hetzner-Server per NAT einen Portrange, den du bei dir im LAN benötigst, auf die getunnelte IPv4-Gegenstelle in deinem Heimnetz (z.B. 172.23.0.2) NATen. Dein Heimnetz-Server würde dann ein weiteres NAT auf die jeweiligen Gameserver machen.

Wie genau kann ich mir das Transfernetz vorstellen ?

Kann ich nicht einfach den Traffic am Server abhängig vom Port an die entsprechende lokale IP4 weiterleiten ?

Ein Transfernetz ist ein kleines IP-Netz welches nur zwei Router (oder in diesem Fall deinen vServer und die Gegenstelle im Heimnetz) zwecks Routing miteinander verbindet. Die IP-Adressen werden nur gebraucht, damit dein vServer deinen "Verteiler" im Heimnetz irgendwie per IPv4 adressieren kann.

Du kannst diese Art Tunnel auch in TAP-Modus betreiben - dabei erzeugst du dann zwischen deinem Server und deinem Heimnetz eine Netzwerkverbindung, bei der der vServer einfach direkt komplett dein Heimnetz adressieren kann.
Das hat allerdings den Nachteil, dass dadurch eine unverschlüsselte Verbindung direkt ungefiltert in dein Heimnetz möglich ist, wohingegen bei der (ebenfalls unverschlüsselten) Tunnelverbindung mit Transfernetz wenigstens eine Barriere in Form des NAT dazwischen steht.

Wenn du die TAP-Variante willst, kannst du den Tunnelmodus "ip6gretap" verwenden.
Auf vServer-Seite richtest du das Interface ein und vergibst dem Interface eine IPv4-Adresse, welche zum Subnetz deines Heimnetzes gehört.
Diese brauchst du später, denn deine Gameserver müssen diese IP-Adresse als Gateway verwenden (denn sonst adressieren sie die IPv4-Antworten auf eingehende Anfragen an deinen Router daheim, der versucht sie über deinen Provider rauszuschicken...).

Auf Heimnetz-Seite richtest du ebenfalls das ip6gretap-Interface ein, brauchst diesem aber keine Adresse zu geben. Stattdessen erzeugst du eine Bridge mit diesem Tunnelinterface und deinem physischen Netzwerk-Interface zum restlichen Netzwerk.
Wenn deine Gameserver auf der selben Maschine laufen wie der Tunnelendpunkt selbst, ist die Bridge nicht notwendig.


Alternativ-Idee dazu:
Von wie vielen physischen oder virtualisierten Gameservern reden wir denn?
Wenn das eine physische Maschine ist, auf der alle laufen, kann die ja ganz einfach der Tunnelendpunkt sein und du kannst das Portforwarding direkt auf dem vServer erledigen (über das angesprochene IPIP6-Tunneling).

Hast du mehrere physische Maschinen könntest du natürlich auch einfach vom vServer aus mehrere Tunnelinterfaces zu deinem Heimnetzwerk einrichten (du hast ja genug IPv6-Adressen face-wink ) und dann ebenfalls das Portforwarding direkt vom vServer aus erledigen.

Das hätte den Vorteil, dass man beim klassischen Setup ohne TAP-Tunnel bleiben kann, was etwas mehr Sicherheit bietet.
In jedem Fall aber muss der Server für die Gameserver das IPv4-Gateway sein, da ansonsten die Antwortpakete von Server zu Client einen falschen Weg nehmen würden und entweder überhaupt nicht oder mit falscher Quell-IP beim Client ankommen.
MrFeed
MrFeed 11.07.2020 um 23:56:42 Uhr
Goto Top
Zitat von @LordGurke:

Ein Transfernetz ist ein kleines IP-Netz welches nur zwei Router (oder in diesem Fall deinen vServer und die Gegenstelle im Heimnetz) zwecks Routing miteinander verbindet. Die IP-Adressen werden nur gebraucht, damit dein vServer deinen "Verteiler" im Heimnetz irgendwie per IPv4 adressieren kann.

achso ok, ich dachte das ipv4 paket wird einfach in ein ipv6 paket gepackt und vom server vielleicht wieder entpackt ?! Wie richte ich denn dann dieses ip transfernetz innerhalb des Tunnels an ?


Du kannst diese Art Tunnel auch in TAP-Modus betreiben - dabei erzeugst du dann zwischen deinem Server und deinem Heimnetz eine Netzwerkverbindung, bei der der vServer einfach direkt komplett dein Heimnetz adressieren kann.

Eher ungern .. ich habe kein eigenes Subnetz für die Server eingerichtet.. Am liebsten wäre es mir wenn er sogar nur die einzelnen Port Verbindungen durchlassen würde (von vServer zu Heimnetz)..

Alternativ-Idee dazu:
Von wie vielen physischen oder virtualisierten Gameservern reden wir denn?

Ich habe 3 Physische Maschinen die Insgesamt 18 Game Server hosten. zwei von den Maschinen haben jeweils eine ip und nur die Ports sind unterschiedlich. Die andere Maschine hat 2 Ip adressen weil sie eine Windows Maschine virtualisiert hat.

Wenn das eine physische Maschine ist, auf der alle laufen, kann die ja ganz einfach der Tunnelendpunkt sein und du kannst das Portforwarding direkt auf dem vServer erledigen (über das angesprochene IPIP6-Tunneling).

Hast du mehrere physische Maschinen könntest du natürlich auch einfach vom vServer aus mehrere Tunnelinterfaces zu deinem Heimnetzwerk einrichten (du hast ja genug IPv6-Adressen face-wink ) und dann ebenfalls das Portforwarding direkt vom vServer aus erledigen.

Wenn ich mehrere Interfaces anlege heißt das ja das ich auf dem vServer schon nach Ports aufteilen kann/muss oder ?

Das hätte den Vorteil, dass man beim klassischen Setup ohne TAP-Tunnel bleiben kann, was etwas mehr Sicherheit bietet.
In jedem Fall aber muss der Server für die Gameserver das IPv4-Gateway sein, da ansonsten die Antwortpakete von Server zu Client einen falschen Weg nehmen würden und entweder überhaupt nicht oder mit falscher Quell-IP beim Client ankommen.

Achso, ich dachte der Server würde automatisch der fragenden IP antworten. Aber das Gateway kann ich einstellen. Das ist kein problem..


Die Variante mit dem Server der die Verbindung zum vServer hat gefällt mir eigentlich am besten.
Idealerweise würde der vServer nur die zugelassenen Ports weiterleiten und der Server würde dann anhand des Ports an den entsprechenden Server weiterleiten. Wie würde ich denn die Weiterleitung (anhand des Ports) auf der Heimnetzseite konfigurieren ?

Das mit dem Tunnel Interface für jeden Server ist auch in Ordnung. Alle Server laufen unter Linux (nur einer mit einer Windows VM, mit eigener IP). Kann ich die Tunnelverbindung auch mit der Windows VM erstellen ?
aqui
aqui 12.07.2020, aktualisiert am 13.07.2020 um 13:11:25 Uhr
Goto Top
...htt.....
MrFeed
MrFeed 13.07.2020 um 11:41:22 Uhr
Goto Top


Aber das ist doch gar nicht das was ich dafür brauche oder ?

In diesem Szenario brauch ich ja erneut eine ovpn file für jeden der sich verbinden will ... da kann ich es auch gleich so lassen wie es ist..