Q. VPNはなぜこんなに遅いの?

A. MTUの調整ができていないから

 インターネットVPN経由の通信が明らかに遅い場合、MTUの調整ができていないことがある。MTUとは1回の転送で送れるパケットの最大容量で、回線ごとに決められている。NCS&A 可視化・プラットフォーム事業部の平岩 雅俊さんは、「MTUのサイズが合ってないとパケット分割が発生し遅くなる。これはVPNでよくあるトラブルの一つ」と言う。

 一例として、LAN内のパソコンからインターネットVPN経由で通信する様子を見てみよう。LANで使うイーサネットのMTUは1500バイト。VPNのMTUはVPNルーターによって異なるが、ここでは1454バイトとする。MTUのサイズを調整していない場合、パソコンが1500バイトのパケットを送信すると、VPNルーターはパケットを1454バイト以下になるように分割してVPN上へ送り出す。このようなパケット分割が発生することで、スループットが落ちる。

MTUを調整しないとスループットが低下
MTUを調整しないとスループットが低下
MTU(Maximum Transmission Unit)は1回の転送で送れるパケットの最大容量のこと。MTUのサイズは回線によって異なる場合があり、MTUの調整ができていないと、パケットの分割が発生しスループットが低下する。
[画像のクリックで拡大表示]

 場合によっては、正常な通信ができなくなることもある。パケットのヘッダー内に分割を禁止するフラグ(DFビット)が立っていると、VPNルーターは分割できないためパケットを破棄し、送信元に対してエラーを伝えるICMPパケットを送る。このICMPパケットが途中にあるファイアウォールなどで遮断されると、通信が途切れてしまう。

MTUの調整など対策が必須

 このような場合、主な対策として次の三つが考えられる。

 一つめは、パソコンから送信するパケットのサイズをVPNのMTUに合わせて小さくすること。パソコンの設定でMTUを変更すればよい。サーバーのMTUを調整することもある。

 二つめは、ルーターのMSSの設定値を、MTUを考慮した値に変更すること。MSSはTCPで転送可能なデータ(セグメント)の最大値である。これにより、TCPのネゴシエーション時に、VPNのMTUに見合ったデータサイズを通知できる。

 三つめは、IPsecで暗号化する前にパケットを分割する機能を使うこと。暗号化後にパケットを分割すると、対向ルーターが分割されたパケットを組み立ててから復号しなければならず、パフォーマンスが低下する。IPsecの暗号化前に分割することでこのような事態を回避できる。

▼MTU
Maximum Transmission Unitの略。
▼ICMPパケットを送る
このときのICMPパケットは、パケット分割が必要であることと、回線のMTUを伝える。送信元はMTUを調整してパケットを再送信する。この仕組みをPath MTU Discoveryと呼ぶ。
▼MSS
Maximum Segment Sizeの略。
▼セグメント
TCPでやり取りするデータ(ヘッダー含む)の単位。
▼TCPのネゴシエーション
TCPの接続を確立するために、送信元と宛先の機器が通信に必要な情報をやり取りし、パラメーターを決定すること。
▼機能を使うこと
この機能を持たないルーターもある。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。