Meine Umgebung
-
NAS: QNAP TS453
-
QTS: 5.2.9.3499
-
QVPN Service: 3.3.1552
-
VPN-Protokoll: QBelt
-
Android QVPN Client: 1.8.11.0206
-
Android 15
-
Ebenfalls reproduziert auf Android 8
Problembeschreibung
QBelt-Clients verbinden sich erfolgreich und die Authentifizierung wird ohne Fehler abgeschlossen.
Der Client erhält eine gültige VPN-Adresse aus dem konfigurierten Pool (10.6.0.2), aber es fließt kein Traffic durch den VPN-Tunnel.
Zu den Symptomen gehören:
-
Zugriff auf das NAS per LAN-IP-Adresse nicht möglich.
-
Kein Zugriff auf andere LAN-Geräte möglich.
-
Kein Zugriff auf das Internet möglich.
-
DNS-Anfragen schlagen fehl, weil keine IP-Konnektivität besteht.
-
Der QVPN-Client meldet dennoch „Erfolgreich verbunden“.
Das Problem tritt identisch auf zwei verschiedenen Android-Geräten und Android-Versionen auf.
Bisherige Untersuchungen
Folgendes wurde auf dem NAS überprüft:
QBelt-Schnittstelle existiert
qtun
10.6.0.1/24
UP
Client erhält richtige Adresse
10.6.0.2
Routing-Tabelle
Die Routing-Tabelle enthält korrekt:
10.6.0.0/24 dev qtun
default via 192.168.1.1 dev eth0
Daraus folgt:
-
Tunnelaufbau funktioniert.
-
Authentifizierung funktioniert.
-
Adressvergabe funktioniert.
-
Routing ist vorhanden.
iptables
In der FORWARD-Chain gibt es keine Regeln, die qtun betreffen.
Wichtiger noch:
iptables -t nat -L
zeigt:
Chain VPNNAT (1 references)
aber keine Regeln in dieser Chain.
Temporärer Workaround
Der folgende Befehl stellt die volle VPN-Funktionalität sofort wieder her:
iptables -t nat -A VPNNAT -s 10.6.0.0/24 -o eth0 -j MASQUERADE
Unmittelbar nach dem Hinzufügen dieser Regel:
-
LAN-Zugriff funktioniert.
-
Internet-Zugriff funktioniert.
-
DNS funktioniert.
-
QBelt arbeitet normal.
Dies spricht stark dafür, dass der QVPN Service die VPNNAT-Chain nicht automatisch befüllt.
Erwartetes Verhalten
Beim Start von QBelt sollte QVPN Service die erforderlichen NAT/MASQUERADE-Regeln für das konfigurierte VPN-Subnetz automatisch setzen.
Tatsächliches Verhalten
Der VPN-Tunnel wird korrekt aufgebaut, aber die VPNNAT-Chain bleibt leer, wodurch jeglicher Traffic vom VPN-Interface verhindert wird.
Fragen
-
Ist dies ein bekanntes Problem in QVPN Service 3.3.1552?
-
Unter welchen Bedingungen befüllt QVPN die VPNNAT-Chain nicht?
-
Gibt es einen offiziellen Fix oder Workaround?
-
Ist das in einer neueren Version behoben?
Ich würde mich über eine Rückmeldung von anderen Nutzern freuen, ob sie ihre Systeme überprüfen und bestätigen können, ob die VPNNAT-Chain bei aktiviertem QBelt korrekt befüllt wird. Auf einem funktionierenden System würde ich mindestens eine MASQUERADE-Regel für das QBelt-Subnetz erwarten.