AndroidOSからPacketixVPNに接続したい-できない理由と解決方法

本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^

Packetixの公式サイトでは接続設定が書かれている

Packetixのオープンソース版、SoftetherVPNでは、以前よりAndroidからSoftehter VPNへの接続方法が書かれています。

Android からの接続方法
ここでは、SoftEther VPN Server (L2TP over IPsec 機能を有効化済み) に対して Android 2.x / 3.x / 4.x から VPN 接続する方法について解説します。

SoftetherVPN

L2TPを使う設定でマニュアルが書かれており、Androidバージョンがかなり古い事が分かります。

iPhoneからの接続は可能

今現在でも、iPhoneからのSoftetherVPNへの接続は可能です。

なぜAndroidからの接続ができなくなったのか原因を調査してみました。

Android 13でのVPN接続

AndroidOSが11は、VPNプロトコルはL2TP/IPsecをサポートしていました。しかしAndroid12からL2TPをサポートしなくなりました。

つまり、Android12からは、L2TPでのVPN接続を作成する事ができなくなり、OS標準のアプリケーションではPacketixVPNに接続できなくなったという事です。

回避方法

OpenVPN接続を利用します。

PacetixVPNサーバには、OpenVPNサーバ互換機能が備わっており、OpenVPNクライアント用サンプル設定ファイル自動作成ツールも準備されています。

OpenVPN クライアントソフトはAndroid アプリで提供されており、上記で作成したクライアント用設定ファイルを利用して接続が可能になります。

OpenVPNクライアント設定用ファイルは、l2とl3の2種類が作成されます。Android端末をクライアントとしてVPNに接続したい場合はl3を利用します。

openvpn_remote_access_l3.ovpn

OpenVPN Windowsからの接続

SoftEtherVPNサーバのOpenVPNサーバ互換機能に対して、Windowsから接続しようとすると、エラーが吐かれて接続ができない。

ログには

open vpn Failed to open tun/tap interface

と記載されています。

原因はOpenVPN 2.6系になってからOpenSSL 3.0 が使われるようになったようで、幾つかの cipher がデフォルトの設定がつかえなくなったらしい。

OpenVPN 接続時 failed to negotiate cipher with server になる

解決方法として設定ファイルに、

data-ciphers AES-128-CBC

を追記したら接続できるようになりました。

Windows11 Bridgine Modeで接続リモートデスクトップ

Windows11 から、ブリッジモードで接続し、PacketixVPNで接続してきたクライアントにリモートデスクトップできました。

ブリッジモードは tap になります。

# To connect to the VPN Server as a bridging equipment of "Site-to-Site VPN",
#  specify 'dev tap'. (Layer-2 Ethernet Bridgine Mode)

dev tap

tap接続はAndroidでやろうとしてもできない。

■ tap形式のトンネルがサポートされていないのはなぜですか?

現時点で、Android VPN APIではtun形式のトンネルしかサポートされていません。これはAndroidプラットフォームの制約です。tapベースのトンネルを使ったプロファイルで接続しようとすると、「現在レイヤー3のトンネルのみサポートされています」というエラーが表示されます。

もしOpenVPN Connectでtap形式のトンネルをサポートして欲しい、ということであれば、ぜひGoogle Androidチームにコンタクトして、VpnService APIがtap形式をサポートするように要望してください。VpnService APIにこの変更が加えられない限り、OpenVPN Connectのような非rootアプリケーションでtap形式のトンネルを利用することは不可能です。

つまり、Androidではtun接続しかできないため、同じ仮想HUB内にあるネットワークのリモートデスクトップサーバにはアクセスできないって事になります。少なくても

VpnHUB01 – Windowsサーバ:PacketixVPNにて接続

しているところに、OpenVPNでWindowsからtun接続しても、Andoridからtun接続しても、通信ができませんでした。

Tun接続時の問題点まとめ


問題の概要:
OpenVPNを使用してtun接続を行うと、同じセグメント内にあるリモートデスクトップサーバにアクセスできないことがあります。

具体的な状況:

  1. 仮想HUB内のネットワーク: Androidデバイスから同じ仮想HUB内にあるリモートデスクトップサーバにアクセスしようとしています。
  2. 接続方法:
  • VpnHUB01 – Windowsサーバ:PacketixVPNを使用して接続。
  • WindowsデバイスからOpenVPNを使用してtun接続。
  • AndroidデバイスからOpenVPNを使用してtun接続。

問題点:

  • WindowsデバイスやAndroidデバイスからOpenVPNを使用してtun接続を行っても、リモートデスクトップサーバにアクセスできません。

このように、OpenVPNのtun接続を使用する場合、同じ仮想HUB内にあるリモートデスクトップサーバにアクセスできないことがあるという問題が発生します。これが問題の概要です。

TUN/TAPの違い

TAPはブリッジ生成に使われ、TUNはルーティングに使われます。

そっかぁ。ルーティング設定しないといけないって事。

Android接続して、PacketixVPNで接続したWindowsサーバにリモートデスクトップアクセスさせたい場合、別の仮想HUBを作成し、IPアドレス体系を変更して、ルーティングするような設定にしなくてはいけないって事だと思います。

この接続方式でしたら、、10.1.1.0/16ネットワークにあるリモートデスクトップサーバにアクセスする事ができました。

タイトルとURLをコピーしました