L2TP
PPPのフレームなどを別のネットワーク上で運ぶトンネリングプロトコルである。L2TPv2はIP網でUDPを使ってPPP通信を運び、内容を保護する場合はIPsecなどと組み合わせる。
イマシルちゃんの解説
PPPは、一対一の接続で通信を運ぶために使われるプロトコルだよ。
その通信を途中のIPネットワークにも通したいとき、L2TPを使えるんだ。
送り側がPPPのデータを別のパケットへ入れ、トンネルの出口へ届けるよ。
出口は包みを外してPPPの通信を取り出すの。
これで、途中の網を越えて接続の相手へ通信を渡せるんだ。
ただしL2TPで包むだけでは内容は秘密にならないよ。
インターネットを通る内容を隠したい場合は、IPsecで通信を保護するなど、暗号化の仕組みも一緒に使うんだ。
この解説はわかりやすかったですか?
より深い解説
PPPの通信をトンネルに入れる
L2TPv2はRFC 2661で定められ、IP網ではUDPを利用する。接続開始時の宛先ポートは1701である。トンネルやセッションを管理する制御メッセージと、PPPのフレームを運ぶデータメッセージがある。
L2TPv3は別の仕様で、イーサネットなどのデータリンクを運ぶ用途にも対応する。ヘッダーや運び方を含め、すべてのL2TPをv2と同じものとして扱わない。
外側から順に数える
L2TPv2でPPP内のIPv4/TCPを運ぶ例では、外側IPv4、UDP、L2TP、PPP、内側IPv4、TCP、アプリケーションデータの順に重なる。
| 部分 | 長さを考えるときの条件 |
|---|---|
| 外側・内側のIPv4 | オプションなしならそれぞれ20バイト |
| UDP | 8バイト |
| L2TP | 長さ・シーケンス番号・オフセットなどの有無で変わる |
| PPP | 運ぶフィールドや圧縮の条件を確認する |
| TCP | オプションなしなら20バイト |
L2TPヘッダーを常に16バイトと決めつけてはいけない。計算では、示された構成がどのフィールドを含むかを確認する。
カプセル化後の長さからデータ量を求める
独自の計算例として、外側のIP MTUを1,492バイト、外側IPv4を20、UDPを8、L2TPを16、PPPを2、内側IPv4を20、TCPを20バイトと仮定する。IPsecはこの例に含めない。
アプリケーションデータの上限は、1,492 −(20+8+16+2+20+20)=1,406バイトになる。内側がTCPではなくUDPなら、そのヘッダーは20ではなく8バイトなので、同じほかの条件では1,418バイトとなる。
トンネルを重ねるほど、元のデータに使える長さは小さくなる。パケットが大きすぎる場合の断片化や破棄を避けるには、経路のMTUと各ヘッダーの増分を確認する。
暗号化との組合せ
L2TP自体は内容を暗号化しない。L2TP/IPsecは、L2TPの通信をIPsecで保護する構成である。その場合はESP、外側のカプセル化、パディング、必要ならNAT-TのUDPなどの増分も考える。L2TPだけの計算結果を、そのまま暗号化VPNの最大データ長に使えない。
参考資料
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午後Ⅱ