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

以前に書いた VPN Gateway でSSL-VPN を使用する#2 圧縮機能の効果を検証する をInternational サイトを前提に書き直しました。テストも再度実施しています。

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

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

1. VPN Gateway の設定

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

2. VPN Client の設定

2.1. OpenVPN Connect の設定

OpenVPN Connect のSettingsから”Tunnel compression options”を既定の”NO” から ”FULL”に変更します。

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

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

”FULL”から”DOWNLINK ONLY”に変えても接続できない状況はかわりありませんでした。

前回の日本サイトのVPN Gateway でのテストのときも同様に圧縮を有効にするとOpenVPN Connect から接続は行えませんでした。

断念します。

2.2. Open VPN GUI のインストールと設定

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

今回はOpen VPN GUI を利用します。  OpenVPN日本語情報サイト(OpenVPN.JP) からモジュールが提供されています。

インストール手順は省略しますが”OepnVPN 2.4.9″ をダウンロードし、インストールしています。

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

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

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

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

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

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

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

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

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

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

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

client
dev tun
proto udp
remote 47.74.7.101 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert vsc-6we71hfzmbzkurcl4cfji.crt
key vsc-6we71hfzmbzkurcl4cfji.key
cipher AES-128-CBC
comp-lzo
verb 4

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

VPN クライアントからAlibaba Cloud のVPC 上のサーバ(172.24.203.118)へのPingの結果も良好です。 33の試行でLoss は0でした。

3. テスト

3.1. テスト方法

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

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

Alibaba Cloud 上のWindows Server 2019 にサインインします。

物理PC(グレー背景)のデスクトップにある2つのファイルを順番にコピーペーストでAlibaba Cloud 上の Windows Server 2019 上にコピーし、時間を測定します。

3.2. テスト結果

以下、テスト結果です。 なお、Alibaba Cloud VPN Gateway は10Mbps の帯域幅のインスタンスです。

圧縮無効圧縮有効
PDFファイル22.86秒22.66秒
ZIP化したPDFファイル19.49秒17.53秒

圧縮の有効無効で顕著な差は確認出来ませんでした。 試行は3回程度です。 おそらくですが10Mbps と狭い帯域かつファイルサイズも20MBということで差が出にくいテスト方法だった可能性はあります。

以下はコピー時のネットワークのトラフィックですが、8Mbps あたりで頭打ちです。

4. まとめ

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

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

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

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

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

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

以上