0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VPN接続先のWebアプリが開けないとき(YAMAHAルーター+Windows10)

Last updated at Posted at 2021-06-08

前提

  • YAMAHA製ルーター
  • Windows10のVPNクライアント
  • L2PT/IPSecでVPN接続
  • VPN接続先のLANにWebサーバーが居る
  • VPN接続は確立しており、Webサーバーへのpingは通っている
  • WebサーバーへのHTTP(S)通信はページや通信状況?で表示出来たりできなかったりする
  • WebサーバーもWindowsベース(ここは未確定)

解決方法

VPNトンネルにMSSを明示的に設定します。

ルーターのVPN設定の確認

VPNトンネルの設定からMTUを見つける

CONFIGリポートのPP anonymousの設定から、ip pp mtu xxxxという記述を探します。
ここで指定されている値がVPN接続のMTUです。

VPNトンネルの設定からMSSを見つける

個々のVPNトンネル設定から、ip tunnel tcp mss limit xxxxという記述を見つけます。
値がautoになっている場合、tunnel select ...からtunnel enable ...までのブロックをコピーして、該当のmss limit xxxxの値を先ほど見つけたmtuから40を引いた値で上書き設定します。

VPN接続とサイトが閲覧可能か確認します。

多分これで安定して閲覧できるようになるかと思います。

説明

MTUとMSS

用語の解説はこちらをご参照ください。

通常、MSSはネゴシエーションの過程で調整されるはずですが、Windows10はそれが非常に苦手なようです。
今回この記事を書く理由になったサーバーとクライアントの通信のパケットを確認したところ、ルーターからのICMP type3 code4(Fragmentation Needed and DF set)をサーバーが無視します。
このため、サーバーからのパケットが破棄され、クライアントはリクエストを再送し、やがて通信が途絶してしまいます。

VPNトンネルのMTUは設定で明示されているため、そこからTCP/IPのヘッダー長40を引いた値をMSSとして設定しておけば、安定した通信が可能になります。

YAMAHAさんはWindowsのVPNクライアントをサポートしないと明言しているため、おそらくWindowsの実装に不具合があるのでしょう…
クライアントの最適なMTUを調べて設定するのは大変ですが、ルーターがMSS書き換えに対応できるのであれば、こちらの方が楽です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?