VPN Gateway でSSL-VPN を使用する#2 圧縮機能の効果を検証する

Alibaba Cloud VPN Gateway にはトンネル経由の通信を圧縮する機能があります。 VPN Gateway のインスタンスの購入時に10Mbpsと100Mbps の帯域を選択するのですが、当然100Mbpsは高価です。安価な10Mbpsでも圧縮が有効に機能であればコストパフォーマンスを向上することが出来るはずです。

どれほどの効果があるか試してみます。

[2019/8/7] しかし、結果から言うとVPN Gateway の圧縮を有効化した状態でSSL-VPNのトンネルを確立が成功出来ませんでした。  トラブルシュートは後日となります。

[2019/8/8] VPNクライアントを変更することで圧縮を有効での接続に成功

1. VPN Gateway の設定

設定はSSL サーバーの高度な設定から指定可能です。 既定は”いいえ”です。ここを”はい”に変更します。

2. VPN Client の設定

2.1. OpenVPN Connect の設定

OpenVPN Connect のSettingsから”Tunnel compression options”で”FULL”に変更します。

接続します。 しかし、CONNECTEDになるものの切断と接続を繰り返します。

Alibaba Cloud 上のテストサーバへのPingは以下の通りで、まったく通信出来ていない状況です。

Wireshark で見るとクライアントからOpenVPNのプロトコル上でRESETしている模様。

OpenVPN Connect での接続はいったん断念します。

2.2. vpnux Client のインストールと設定

VPNクライアントを変更してテストすることにします。 OpenVPN はOpen Source Software ということがありServerもClientも色々と提供されています。

今回はvpnux Client を利用します。  OpenVPN日本語情報サイト(OpenVPN.JP) を提供しているプラムシステムズ株式会社が提供しているモジュールとなります。

http://www.plum-systems.co.jp/vpnux-client/?utm_source=openvpnjp&utm_medium=web&utm_campaign=download#download

インストールモジュールをダウンロードし、インストールします。

インストーラを起動し、”Next”をクリックします。

License Agreement を確認します。

インストールコンポーネントを確認します。 今回は既定のままで進めます。

インストールフォルダを必要に応じて変更し、”Install”をクリックします。

インストールが進行し、

完了すると”Installation Complete”と表示されます。

“Finish”で終了します。

正常にインストールが完了するとタスクトレイのにアイコンが表示されます。

次に設定をインポートします。 タスクトレイのメニューから”Import file…”を実行し、Alibaba Cloud のVPN Gateway のSSL Clients の画面からダウンロードした設定ファイル”config.ovpn”をインポートします。

Alibaba Cloud からダウンロードしたcerts.zip の中の4ファイルのうちの1つです。

次に、CA証明書、証明書、秘密鍵をvpnux の設定ディレクトリにコピーします。 

設定ディレクトリのパスはタスクトレイのメニューから”設定”を実行し、

Advanced タブの設定ファイルのディレクトリにパスの設定を確認します。

上記のディレクトリにCA証明書、証明書、秘密鍵の3つをコピーします。

次にクライアント側の圧縮の有効化の設定を行います。

タスクトレイの”設定の編集”を実行します。

config.ovpn がメモ帳で開かれます(利用環境により異なるエディタが起動するかもしれません)。

“comp-lzo”が”;”でコメントアウトされている場合は解除します。 なお、Alibaba Cloud VPN Gateway 側で圧縮を有効化した状態で設定ファイル一式をダウンロードするとconfig.ovpn の圧縮設定は有効化されています。結果、このコメントアウトの解除は不要となります。

接続をテストします。 正常に接続出来ました。

VPN クライアントからAlibaba Cloud のVPC 上のサーバ(172.24.133.100)へのPingの結果も良好です。 3904の試行で21のLossとなり1%以下のLossでした。

3. テスト

3.1. テスト方法

テストでは以下の2つのファイルを利用します。 約20MBのPDFファイルを利用します。 また、同じPDFファイルをZIPで圧縮しています。

また、ファイルコピーはVPN接続後、Windows Server 2016 にでサインインし、リモートデスクトップのクリップボード共有経由でファイルをコピーペーストします。

3.2.テスト結果

以下、テスト結果です。

VPN
圧縮無効
VPN
圧縮有効
PDFファイル26.4秒21.6秒
ZIP化したPDFファイル 18.1秒18.3秒

  • VPN側での圧縮の効果は確認できた(約20%のコピー時間短縮)
  • ZIP化されたファイルではVPNの圧縮の効果は確認できない
  • VPN側の圧縮より事前にZIPした方がコピー時間は短い

4. まとめ

VPN Gateway の圧縮機能について20%ほどの効果が確認出来ました。 もちろん、試行回数は少なく、テストしたデータも1つのPDFファイルだけです。  試行回数を増やすことで効果が出やすいケース、出にくいケースもより具体的になると思います。

効果が出やすいケースとしては、非圧縮ファイルの転送になります。 時間の短縮および事前に圧縮する手間を省けます。 

効果が出にくいのはすでに圧縮されているファイルの利用が多い場合です。テストデータを探す中で気づいたのですが、ほとんどのデータは既に圧縮されています。 わかりやすいZIPファイルやその他方式で圧縮されたもの以外でもインストーラ(exeプログラム)、office 文書なども圧縮されています。 逆に圧縮できるファイルを探すのに難儀しました(ちょっとプログラムを書いて0で埋め尽くしたテキストファイルを作ることも考えましたが現実離れしていると思いやめました)。  その他、VPNトンネルの中で行う暗号化通信(SSHなど。SSH自体に圧縮機能機能がありますが)やストリーミング処理も効果は期待できないと思います。

また、圧縮を有効化することのデメリットはVPNクライアントのソフトウェアを選ぶこと、クライアント側のCPUを多少なりとも余計に利用することの2点でしょうか。 くわえてVPN Server 側では圧縮設定はON/OFFの択一となり、圧縮をONにした場合、すべてのクライアント側でも明示的にONとする必要があります。クライアント数が多い、コントロールが難しい場合は注意が必要です。

結論、圧縮機能の有効化は特定ユースケース以外は不要かと思いました。上記のとおりすでに圧縮されているファイルが多く、その効果が発揮される場面は少ないことと、クライアントアプリケーションに依存する部分があったためです。

次はクライアントのマルチOSでの接続検証をテストする予定です。