マイ環境
- NAS: QNAP TS453
- QTS: 5.2.9.3499
- QVPN Service: 3.3.1552
- VPNプロトコル: QBelt
- Android QVPNクライアント: 1.8.11.0206
- Android 15
- また、Android 8でも再現
問題の説明
QBeltクライアントは正常に接続でき、認証もエラーなく完了します。
クライアントは設定済みプールから有効なVPNアドレス(10.6.0.2)を受け取りますが、VPNトンネルを通じて一切トラフィックが流れません。
症状:
- NASのLAN IPアドレスでアクセスできない。
- 他のLANデバイスにも接続不可。
- インターネットにもアクセス不可。
- IP接続性がないためDNSルックアップも失敗。
- それにもかかわらず、QVPNクライアントは**「正常に接続されました」**と表示。
この問題は2台の異なるAndroid端末、異なるバージョンで同一です。
調査内容
NAS上で以下を確認しました。
QBeltのインターフェースは存在する
qtun
10.6.0.1/24
UP
クライアントは正しいアドレスを受け取っている
10.6.0.2
ルーティングテーブル
ルーティングテーブルには正しく以下が含まれます:
10.6.0.0/24 dev qtun
default via 192.168.1.1 dev eth0
つまり:
- トンネル作成は正常。
- 認証も正常。
- アドレス割り当ても正常。
- ルーティングも存在。
iptables
FORWARDチェインにはqtunを含むルールはありません。
さらに重要なのは:
iptables -t nat -L
の出力が
Chain VPNNAT (1 references)
と表示しますが、チェイン内に全くルールがありません。
一時的な対応策
以下のコマンドを実行すると、直ちに完全なVPN機能が復元されます:
iptables -t nat -A VPNNAT -s 10.6.0.0/24 -o eth0 -j MASQUERADE
このルールを追加すると即座に:
- LANへのアクセスが可能。
- インターネットアクセスも可能。
- DNSも機能。
- QBeltが正常動作。
これはQVPN ServiceがVPNNATチェインを自動的に設定していないことを強く示唆します。
期待される動作
QBeltが起動時、QVPN Serviceは設定されたVPNサブネット用に必要なNAT/MASQUERADEルールを自動的にインストールすべきです。
実際の動作
VPNトンネルは正しく確立されますが、VPNNATチェインは空のままで、VPNインターフェースから一切トラフィックが流れません。
質問
- QVPN Service 3.3.1552でこれは既知の問題ですか?
- どのような条件でQVPNはVPNNATチェインを自動設定できなくなりますか?
- 公式な修正またはワークアラウンドはありますか?
- 新しいバージョンではこの問題は修正されていますか?
他のユーザーの皆さまにも、システム上でVPNNATチェインがQBelt有効時に正しく内容が設定されているかご確認いただきたいです。正常に動作しているシステムでは、少なくともQBeltサブネット用のMASQUERADEルールが1つは存在するはずです。