KUSONEKOの見る世界

IPsecの最適MTUについて本気出して考えてみた

外出先からVPNで自宅サーバ(strongSwan)に接続していますが、オーバーヘッドや暗号化遅延などでどうしても遅くなってしまいます。

WindowsのVPNインターフェースのMTUは、自動で物理インターフェースのMTUから-100の値を設定されますが、必ずしも最適な値ではありません。

しかしMTUを調整し、一度で送れるデータ量を増やしたり、無駄なフラグメントを抑えたりする事で、通信効率を上げることができます。

今回、IPsecの最適MTU、MSSをしっかり調査しましたので結果を記載致します。

パケットフォーマットの調査

まずは、パケットの暗号化で使用するESPのパケットフォーマットを調べました。
IKEv2のリモートアクセスを使用しているので、Tunnelモード+NAT Traversalとなります。

長くなったので、以下のページにまとめました。
RFCなどのドキュメントやWiresharkのキャプチャ+暗号解除で中身を確認しながらまとめています。

IPsec 備忘録

IPsecパケットのフォーマットと最適MTUの計算方法をまとめ、計算機を作成しました。最適MTUを設定することでVPNが快適になるかもしれません。

我が家(フレッツ回線 PPPoE接続)の最適値

IPsec 備忘録に載せた方法で計算すると、我が家の場合は以下が最適値となりました。
我が家ではWindowsとiPhoneの完全性アルゴリズムが違うので、両方計算していますが、
結果的には推奨MTU、MSSは同じとなりました。


接続機器フレッツ回線
最適MTU
暗号化方式完全性
アルゴリズム
VPN最適
MTU
VPN最適
MSS
Windows1454AESSHA113741334
iPhoneSHA25613741334

IPsec 備忘録では、計算機も作成していますので、是非使ってみてください。

VPN最適MTU、MSSで動作させる方法

長くなってしまったので、以下に記載します。

VPN通信のMTU, MSSを指定する方法

VPNでMTUとMSSを指定するにはどうすれば良いかを書いています。計算機も作成しています。

おまけ