Windows8.1のVPN(L2TP/IPsec)接続でownCloud(認証が必要なページ)にアクセスできない

自宅LAN内にLinuxサーバーを立てて、webサーバー、ファイルサーバーなどとして使っています。外には公開しておらず自宅内でアクセスするのみです。
そこで、外からもVPNで自宅LANに接続し、自宅と同じようにサーバーにアクセスできるようにしました。

 

外からVPNで自宅に接続するにあたり、PPTPはセキュリティの問題があり、L2TP/IPsecにしたかったので、それをサポートしている安いルーターを探して、バッファローのVR-S1000を買いました。

 

BUFFALO IPsec対応 VPNルーター VR-S1000

BUFFALO IPsec対応 VPNルーター VR-S1000

 

 

Macbook AirMacOS X Yosemite)やiOSからはモバイルルーターを通してL2TP/IPsecで問題なく接続できていました。
その後、新たにWindows8.1搭載のNEC Lavie Z (LZ550/T)を買ったので、同様に接続しようとしたけれど、どうもうまくいきません。サーバーには繋がるのですが、ownCloudなどの認証が必要なページにはタイムアウトで入れないのです。

 

現象をまとめると次の通りです。

  • L2TP/IPsecVPNルーターまでは接続できている。
  • サーバーのローカルIPに対してpingが通る。
  • サーバーのapacheのトップページ(デフォルトだとIt works!)は表示できる。
  • ところが、サーバーのownCloudなど認証を必要とするページにアクセスすると、ずっと応答待ちの状態になり、最後はタイムアウトになる。
  • 認証が必要なsambaのファイルにもアクセス不能。

自宅サーバーはubuntu 14.04LTS。apacheでWebサーバーを立ててownCloudを使っています。

 

VPN接続はできていても、使いたいのはownCloudなどの機能なので、実際には使いものにならない状態です。


Macbook Airでは問題なく使えているので、Windows8.1の問題ということになります。
最初は接続設定の問題かと思い、あちこち変更しましたが、状況は変わらず。
緊急避難的にPPTPで接続してみると、こちらはownCloudにも繋がります。
ほとんどあきらめかけていたとき、ネット検索でひっかかったのがMTU値の変更です。

元記事はこちらです。

 http://cathval.com/network/3847

 この記事を元に、MTUを1258に変更したら問題解決しました

作業過程を記録しておきます。

 

VPN接続した状態で、管理者権限でコマンドプロンプトを起動して、次のようにデフォルトの状態を確認します。

>netsh interface ipv4 show interfaces
Idx     Met         MTU          状態                 名前
---  ----------  ----------  ------------  ---------------------------
  1        4275  4294967295  connected     Loopback Pseudo-Interface 1
  3        4250        1500  connected     Wi-Fi
 44          20        1400  connected     L2TP-IPsec
  5        4265        1500  disconnected  Bluetooth ネットワーク接続
  7        4230        1500  disconnected  ローカル エリア接続* 1


L2TP-IPsecのMTUが1400になっています。これはPPTP接続をして確認した場合も同じでした。でもL2TP/IPsecではこのままではダメらしい。
これを次のようにして、1258に変更します。

なぜ1258になるのかは、元記事を参照して下さい。コマンド引数の44という値は、上のnetshコマンドで確認したIdx値を入れて下さい。

>netsh interface ipv4 set interface 44 mtu=1258

 

本当に変わっているのか確認します。

 

>netsh interface ipv4 show interfaces
Idx     Met         MTU          状態                 名前
---  ----------  ----------  ------------  ---------------------------
  1        4275  4294967295  connected     Loopback Pseudo-Interface 1
  3        4250        1500  connected     Wi-Fi
 44          20        1258  connected     L2TP-IPsec
  5        4265        1500  disconnected  Bluetooth ネットワーク接続
  7        4230        1500  disconnected  ローカル エリア接続* 1

 

ちゃんと1258になっていますね。

この変更をしたとたん、ownCloudにもsamba上のファイルにも問題なくアクセスできるようになりました。


Windows8.1のVPN接続のデフォルトではMTU=1400になっているので、このままL2TP/IPsec接続するとうまくいかないようです。