最近はクラウドが流行で、何でもクラウドストレージに置く流れになっているが、個人的には、何らかのトラブルで流出した時のことを考えると、プライベートなファイルをクラウドに置くのははばかられる。
そのため、プライベートなファイルはVPNで自宅に接続し、自宅内のファイルサーバからダウンロードするという手順を行っているが、VPNのプロトコルにPPTPを使用しており、ルータが暗号化等をソフトウェアで実行する構造上、スループットがあまり稼げない。
最近は、デジカメや動画ファイルの高解像度化が進んでファイルが大きくなりダウンロードに時間がかかるので、最近YAMAHAのルータRTX1100用に提供された「スマホでL2TP/IPsec接続ができるファーム」を使い、WindowsでL2TP/IPsec接続ができないか試してみた。(IPsecだと、ルータ側の暗号化がハードウェアで行われ、スループットの向上が見込める。)
WindowsXPとRTX1100、Windows7とRTX1100と個々の組み合わせでの情報は、先達の情報があったが、WindowsXP、Windows7&8、WindowsVista、Android端末等、PPTPとL2TPを共存しつつクライアントを何でもありにしようとすると、なかなかうまくいかなかった。
とりあえずPPTPとL2TPの共存かつ、WindowsXP、Windows7&8、WindowsVista、Android端末、iPhone等で動作する設定が見つけられたので、以下に要点を記す。
#VPNの設定
pp select anonymous
pp bind tunnel20 tunnel30
pp auth request mschap-v2
pp auth username TESTUSER TESTPASS
ppp ipcp ipaddress on
ppp ipcp msext on
ppp ccp type mppe-any
ip pp remote address pool 192.168.200.251-192.168.200.254
ip pp mtu 1258
pptp service type server
pp enable anonymous
#L2TPの設定
tunnel select 20
tunnel encapsulation l2tp
ipsec tunnel 120
ipsec sa policy 120 20 esp aes-cbc sha-hmac
ipsec ike keepalive use 20 off
ipsec ike local address 20 192.168.200.1
ipsec ike nat-traversal 20 on
ipsec ike pre-shared-key 20 text PRESHAREDKEY
ipsec ike remote address 20 any
l2tp tunnel disconnect time off
l2tp keepalive use on 10 3
l2tp keepalive log on
l2tp syslog on
ip tunnel tcp mss limit auto
tunnel enable 20
#PPTPの設定
tunnel select 30
tunnel encapsulation pptp
tunnel enable 30
#VPNを通過させるフィルターの設定
ip filter 1001 pass * 192.168.200.1 udp * 500
ip filter 1002 pass * 192.168.200.1 esp * *
ip filter 1003 pass * 192.168.200.0/24 tcp * 1723
ip filter 1004 pass * 192.168.200.0/24 gre * *
ip filter 1005 pass * 192.168.200.1 udp * 1701
ip filter 1006 pass * 192.168.200.1 udp * 4500
#VPNを通過させるNATの設定
nat descriptor masquerade static 1 1 192.168.200.1 udp 500
nat descriptor masquerade static 1 2 192.168.200.1 esp
nat descriptor masquerade static 1 3 192.168.200.1 tcp 1723
nat descriptor masquerade static 1 4 192.168.200.1 gre
nat descriptor masquerade static 1 5 192.168.200.1 udp 4500
#IPSecの設定
ipsec auto refresh on
ipsec transport 1 120 udp 1701
#VPNの有効化
pptp service on
l2tp service on
引っかかりそうなポイントは、
pp auth request mschap-v2
Windows Vista以降のOSで、認証を通すのに必要
ipsec ike nat-traversal 20 on
元々この機能が無かったので、NAT配下間でIPSec接続ができなかったのだが、YAMAHA、GJ!!
ip filter 1006 pass * 192.168.200.1 udp * 4500
nat descriptor masquerade static 1 5 192.168.200.1 udp 4500
先のNATトラバーサルを使用するのに必要なフィルタとNATの設定
ipsec sa policy 120 20 esp aes-cbc sha-hmac
Windows7&8だと「ipsec sa policy 120 20 esp 3des-cbc md5-hmac」だと接続エラー788&789になるのでやむを得ず。XPだと問題無いのになぁ…。
なお、WindowsでNATトラバーサルを有効にするには、レジストリの修正が必要。
XPの場合
「HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec」
Windows Vista以降のOSの場合
「HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent」
に
「AssumeUDPEncapsulationContextOnSendRule」
という名の 「REG_DWORD」値(32bit)を追加し、2(サーバ、クライアントともNAT使用の場合)を設定して再起動。
さてどれぐらいのスループットになるかな?