[Ubuntu] Port forwarding - połączenie z serwerem za VPNem

Ten temat zakładam po 8 godzinach szukania i próbowania różnych rozwiązań z anglojęzycznej części Internetu.
Wkrótce będziemy grać w grę, której serwery są od dawna nieaktywne, nie posiada integracji Steam (w związku z tym P2P jest niemożliwe), dedykowanych serwerów nie da się znaleźć. Chcę jednocześnie ograniczyć ilość instalowanego oprogramowania na naszych komputerach.
Maszyna hostująca serwer gry (serwer 1) będzie dynamicznie wybierana (Windows 10). Serwer gry nasłuchuje na 0.0.0.0:27015 protokołu UDP. Połączenie z nią będzie możliwe poprzez publiczny gateway (maszyna z systemem Ubuntu 18.04.4 LTS; serwer 2). Serwer 1 jest połączony z serwerem 2 poprzez OpenVPN. Serwer 1 dostaje w tej sieci 10.0.0.2, serwer 2 - 10.0.0.1. Sieć w obie strony działa.
Mam problem ze znalezieniem właściwych reguł forwardujących pakiety z publicznego interfejsu serwera 2 do interfejsu sieci VPN. Obecne reguły przesyłają pakiet do serwera gry, ale pakiet pytający o połączenie w swoim nagłówku jako adres źródłowy ma ustawiony publiczny adres serwera 2, przez co serwer gry wysyła pakiet odpowiadający przez interfejs internetowy (nie VPN).

Próbowałem takich kwiatków (przegrzebałem o wiele więcej, linkować tego nie warto):
Linux change source ip adress of incoming traffic
iptables: change local source address if destination address matches
How To Forward Ports through a Linux Gateway with Iptables (z odpowiednim dostosowaniem do obecnej sytuacji)

Wpisywałem wszysko, włącznie z irracjonalnymi wartościami i dalej leciał pakiet z publicznym IP serwera 2, i dalej pakiet odpowiadający przez nieprawidłowy interfejs.

Konfigurację forwardingu na serwerze 2 zostawiłem na takim poziomie:

iptables -A INPUT -p udp --dport 7777 -j ACCEPT #openvpn
#iptables -A FORWARD -i ens3 -o tun0 -p udp -m state --state NEW,ESTABLISHED,RELATED --dport 27015 -j ACCEPT
#iptables -A FORWARD -i tun0 -o ens3 -p udp -m state --state ESTABLISHED,RELATED --sport 27015 -j ACCEPT
iptables -A FORWARD -i ens3 -p udp -d 10.0.0.2 --dport 27015 -j ACCEPT
#iptables -A INPUT -p udp --dport 27015 -j ACCEPT
#iptables -t nat -A PREROUTING -i ens3 -p udp -d <publiczne ip serwera 2> --dport 27015 -j DNAT --to-destination 10.0.0.2:27015
iptables -t nat -A POSTROUTING -p udp --destination 10.0.0.2 -j SNAT --to-source 10.0.0.1
#iptables -t nat -A POSTROUTING -o tun0 -p udp --dport 27015 -d 10.0.0.2 -j SNAT --to-source <publiczne ip serwera 2>

Rozumiem koncepcje, że serwer1 jest serwerem gry, serwer2 jest gatewayem ale o ile się nie mylę pakiet IP pomijając nagłówek ma domyślne wartości adresu docelowego i źródłowego, więc pakiet przychodzący z zewnątrz przekierujesz forwardem w iptables na serwer gry ale nadawcą będzie serwer1, więc w grę wchodzi bardziej NAT/PAT. Nie będę się rozdrabniał jak działają ale mam kilka sugestii.
Opcja 1:
Jeżeli serwer1 (gateway ubuntu) jest tylko gatewayem, bez uwierzytelniania, etc to możesz pozbyć się gatewaya i wepchać serwer2 w strefę zdemilitaryzowaną na routerze, otworzyć i przekierować port 27015 UDP na serwer2. Domyślam się, że VPN pomiędzy gatewayem a serwerem był stworzony po to aby oddzielić serwery od własnej sieci. Pozostają później kwestie dostępu do serwera w DMZ.

Opcja 2:
Rozwiązanie bazujące na obecnej infrastrukturze, czyli dodanie obsługi NAT w iptables.
Nie wiem co masz teraz konkretnie zrobione ale bazując na tym artykule masz NAT w ipbales z izolacją sieci:

Generalnie to sieć padała (DNS do aktualizacji nie odpowiadał, serwer VPN nie odpowiadał, ssh odpowiadało, ale z pingiem około 1000ms), restart, update, restart, restart i przetestowałem wszystko po kolei.
Problem z nieprzepisanym source ip zniknął.
Opcja pierwsza odpada, bo host gry nie jest w LANie razem z tą drugą maszyną. Będzie wybierany jak zbierzemy się i zdecydujemy. Może to być Warszawa, Poznań, Kraków albo Olsztyn. Gra nie ma dedyków, a ktoś musi hostować.
Opcja druga jakimś cudem nie do końca chce działać (nie routuje pakietu z gateway’a do klienta).
Z tego co podesłałem, to działa 3. link sekcja Adding the Forwarding Rules (tylko podstawić pod wartości własne).
A sam temat uważam za śmieć niepotrzebny. Panie Admin, bardzo proszę o wyrzucenie do kosza.

Z opisu wynika, że masz problem z trasowaniem. I albo VPN jest pomijany w komunikacji, albo brakuje mu tras.

Nie prościej postawić serwer gry na hoście z publicznym IP?