WindowsのVPNインターフェースのMTUは、自動で物理インターフェースのMTUから-100の値を設定されますが、必ずしも最適な値ではありません。
しかしMTUを調整し、一度で送れるデータ量を増やしたり、無駄なフラグメントを抑えたりする事で、通信効率を上げることができます。
今回、IPsecの最適MTU、MSSをしっかり調査しましたので結果を記載致します。
パケットフォーマットの調査
まずは、パケットの暗号化で使用するESPのパケットフォーマットを調べました。IKEv2のリモートアクセスを使用しているので、Tunnelモード+NAT Traversalとなります。
長くなったので、以下のページにまとめました。
RFCなどのドキュメントやWiresharkのキャプチャ+暗号解除で中身を確認しながらまとめています。
IPsecパケットのフォーマットと最適MTUの計算方法をまとめ、計算機を作成しました。最適MTUを設定することでVPNが快適になるかもしれません。
我が家(フレッツ回線 PPPoE接続)の最適値
IPsec 備忘録に載せた方法で計算すると、我が家の場合は以下が最適値となりました。我が家ではWindowsとiPhoneの完全性アルゴリズムが違うので、両方計算していますが、
結果的には推奨MTU、MSSは同じとなりました。
接続機器 | フレッツ回線 最適MTU | 暗号化方式 | 完全性 アルゴリズム | VPN最適 MTU | VPN最適 MSS |
---|---|---|---|---|---|
Windows | 1454 | AES | SHA1 | 1374 | 1334 |
iPhone | SHA256 | 1374 | 1334 |
IPsec 備忘録では、計算機も作成していますので、是非使ってみてください。
VPN最適MTU、MSSで動作させる方法
長くなってしまったので、以下に記載します。VPNでMTUとMSSを指定するにはどうすれば良いかを書いています。計算機も作成しています。