目次

OpenVPN の導入

OpenVPN

PPTP でお手軽に VPN (クライアント編)』 で試したように、PPTP はお手軽で家庭用ルータにも接続できて便利なのですが、
下記のような問題点があります。

参考

問題点

よりセキュアに、なおかつ、IPsec よりお手軽に VPN を、という場合、OpenVPN という選択肢が考えられると思います。
比較表を作っているサイトもありました。

PPTP VS L2TP/IPSEC VS OPENVPN - IVPN より

Conclusion

OpenVPN is the best choice for all platforms. It is extremely fast, secure and reliable. 
Additionally, the IVPN multihop network is only available when connecting via OpenVPN.
The only minor downside is the requirement to install the software client but on most 
platforms this only takes a few minutes.


ここでは、VPS に MA-E3xx から OpenVPN で接続して、センサーデータをセキュアな経路で送信するというケースを想定し、セットアップを行ってみます。
サーバは、さくらの VPS の メモリ2GiB, HDD 200GB, CPU 3core プラン(1522円/月, 月払い) を使用します。


設定


よくある質問

PPP(PPPoE 含) 経由の接続が不安定

Flet's など PPP 経由では MTU が小さくなるため、OpenVPN デフォルトの MTU 1500bytes のままですと、不安定、もしくは接続されているのにパケットが通らないという結果になります。
その場合、サーバ・クライアント双方の設定ファイルに、下記を追加することで解消されるケースがほとんどです。

fragment 1426
mssfix

※ 1426 の数値は、環境により調整が必要な場合があります。[さくらの VPS] ↔ [FOMA 回線 (DTI)] でパケットが通る (SSH 接続が可能) ことを確認しています。

参考:


スループットの目安

固定回線使用 (光)

弊社回線から、さくらの VPS (石狩リージョン) へ iperf で測定してみた結果です。
あくまでも 目安 です。

$ iperf -c 133.242.xxx.xxx
------------------------------------------------------------
Client connecting to 133.242.xxx.xxx, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 192.168.253.49 port 40814 connected with 133.242.xxx.xxx port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   102 MBytes  85.1 Mbits/sec
$ iperf -c 10.8.0.1
------------------------------------------------------------
Client connecting to 10.8.0.1, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 10.8.0.30 port 50418 connected with 10.8.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  49.9 MBytes  41.7 Mbits/sec
% iperf -c 10.100.0.1
------------------------------------------------------------
Client connecting to 10.100.0.1, TCP port 5001
TCP window size: 45.0 KByte (default)
------------------------------------------------------------
[  3] local 10.100.0.6 port 37776 connected with 10.100.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  47.6 MBytes  39.8 Mbits/sec
$ iperf -c 10.100.0.1
------------------------------------------------------------
Client connecting to 10.100.0.1, TCP port 5001
TCP window size: 45.0 KByte (default)
------------------------------------------------------------
[  3] local 10.100.0.14 port 53649 connected with 10.100.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   143 MBytes   120 Mbits/sec


FOMA 経由

MA-E350/N (u-blox LISA-U200) でスループットを測定した結果です。

root@plum:~# iperf -c 10.8.0.1
------------------------------------------------------------
Client connecting to 10.8.0.1, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 10.8.0.30 port 49969 connected with 10.8.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.2 sec  3.00 MBytes  2.47 Mbits/sec
root@plum:~# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 10.8.0.30 port 5001 connected with 10.8.0.1 port 53647
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-12.2 sec  1.12 MBytes   776 Kbits/sec