2014-11-10

シングルボードPC VPNパフォーマンス対決

By Taro Yamazaki  |  10:00

OpenVPNはLinuxをはじめとした幅広いプラットフォームで動作実績があるのが特徴の一つです。
今回は、最近の電子工作ブームでも話題のシングルボードPC 3機種をOpenVPNサーバーとしてセットアップし、OpenVPNのVPNパフォーマンスを測定してみましょう。
[追記(2015/6/2)] こちらに、Raspberry Pi 2を含めた結果をまとめました。

Raspberry Pi B+

泣く子も黙る、最近注目を浴びているシングルボードPCで、国内でも広く知られた機種です。もともとは教育用途での活用を想定して開発が進められてきましたが、その低価格と応用性の広さを強みに、電子工作などの分野で使用されてきています。今回は、今年6月から出荷開始されたRaspberry Pi B+を使って測定しています。

テスト環境のOSとしては、Raspberry Piでは標準的なRaspbianを使用しています。このOSはDebianベースなので、OpenVPNはAPTを使ってインストールできます。

Raspberry Pi B+は国内でも¥4,000程度で購入できます。この低価格はやはり魅力ですね。



pcDuino 3

Arduino互換の入出力コネクタを備えたシングルボードPCです。OSとしてLinux(Debian)だけでなく、Androidも使用できることが特徴です。

SoCとしてAllwinner A20を搭載。CPUコアはARM Cortex A7 ディアルコア(1GHz)です。このボードもRaspberry PIと同様、HDMIポートやUSBポートを備えており、小型PCとしても利用できます。

pcDuinoではOSとしてUbuntuを使用できますので、APTを使ったOpenVPNのインストールが可能です。OSのインストールは、こちらで公開されているカーネルとOSをSDカードを使ってインストールします。

国内では¥8,000程度で購入できます。


PCEngines APU

他の2機種とは別カテゴリーのプロダクトで、ネットワークアプライアンスのプラットフォームが想定されたボードです。

製造元であるPCEnginesは以前からこのカテゴリーの製品を販売しており、IPPBXであるAsteriskを組み込んだアプライアンスやFAXサーバー、セキュリティ機器などに広く使用されたALIXが有名です。このAPUは、その後継として製品化されたボードです。ALIXと同様、このAPUもあくまでもアプライアンス用途を前提としており、ディスプレイやキーボードなどを直接接続することはできないので、厳密な意味でシングルボードPCとは呼べませんが、BSDやLinuxなどのOSを入れたSDカードを使ってブートすることができます。

CPUとしてはAMD T40E デュアルコア(1GHz)を搭載しています。ネットワークアプライアンスでの用途を想定し、ギガビット対応のEthernetポートを3つ備えており、アプライアンスサーバーとしてだけではなく、ルータやファイアウォールなどでの使用も可能です。

今回は4GBのメモリを搭載したapu1c4にvoyage Linuxをインストールして計測しました。voyage LinuxもDebianベースのため、OpenVPNのインストールにAPTが使用できます。



サイズ比較

この3つを並べると、このような大きさになります。




最も小さいのがRaspberry Pi、次にpcDuinoですが、この両者のサイズの違いはそれほど大きくありません。これらと比べるとAPUはだいぶ大きめで、CDジャケットよりも少し大きいぐらいのサイズです。こうやって並べてみると、Raspberry Piの小ささが際立ちますね。

ネットワークスループット

さて、いよいよパフォーマンス測定です。まず、Ethernetで直接接続した場合のスループットをiperfを使って測定してみましょう。

各ボードでiperfをサーバーとして起動し、ギガビット対応のスイッチングハブだけを介したクライアントPC(Windows 7)がiperfクライアントとして接続します。
Raspberry PIpcDuinoAPU
No.1 94.994.8935.0
No.2 94.794.9935.0
No.3 94.894.9931.0
No.4 94.994.9930.0
No.5 94.994.9931.0
No.6 94.894.9931.0
平均 94.894.9932.7

このような結果になりました。ギガビット対応のAPUが930Mbps程度のスループットを出しています。Raspberry PIとpcDuinoはいずれも100Baseのインターフェイスなので、95Mbps程度の値になっています。

OpenVPNスループット

次に今回の目的であるOpenVPNを使用した場合のスループットを計測してみましょう。

ネットワーク構成は直接接続時と同様ですが、各ボードでOpenVPNサーバーを起動し、クライアントPCからOpenVPNを使って接続した上で、VPNアドレスに対してiperfを実行します。

なお、以下のような条件で測定しました。

  • 各ボードの標準的なOSを使用し、標準のパッケージマネージャ(今回はすべてAPT)でOpenVPNをインストール
  • サーバー設定ファイルはすべてのボードで同一のものを使用
  • クライアント設定ファイルは同一のものを使用し、接続先アドレスだけを変更して使用
  • MTUの調整などのチューンナップはなし
  • AES-NIなどのOpenSSLアクセラレータは使用しない

Raspberry PIpcDuinoAPU
No.1 12.837.963.8
No.2 12.844.857.4
No.3 12.940.163.0
No.4 13.042.753.3
No.5 13.043.856.7
No.6 12.947.758.5
平均 12.942.858.8

まとめ

OpenVPNのスループットは、Raspberry Pi < pcDuino < APUという結果になりました。

OpenVPNのようなソフトウェアVPNの場合、暗号化や署名処理などのパフォーマンスはCPUのスペックに大きく依存するため、CPUのパフォーマンスにほぼ比例します。

ギガビットへの対応も含め、ネットワークアプライアンスへの利用をメインターゲットとしているAPUのパフォーマンスはやはり頭ひとつ抜けていますが、Raspberry PiとpcDuinoのスループットの差が意外に大きいのも興味深い点です。VPNパフォーマンス上ではpcDuinoがなかなか善戦していると言えるかもしれません。

VPNサーバーとして利用する場合で、社内LANへのルーティングなどで柔軟なネットワーク構成を行いたい場合は、ギガビット対応+複数LANポートのAPUはかなり強力な選択肢になりそうです。

あまりトラフィックが多くなく、高いスループットが要求されないちょっとしたVPNサーバーとして、また拠点間接続時のサテライト側のVPNクライアントとしてなどの用途などでは、低価格+低消費電力のシングルボードPCは魅力です。これらのシングルボードPCを活用したVPN構築も十分に検討候補になると言えるでしょう。

[追記(2015/6/2)] こちらに、Raspberry Pi 2を含めた結果をまとめました。

Author: Taro Yamazaki

© 2015 yamata::memo | Distributed By My Blogger Themes | Created By BloggerTheme9
TOP