8. L2TP Over Specific Media (特定メディア上の L2TP)
本章では、特定のメディアタイプ上での L2TP の実装詳細について説明します。L2TP は、UDP/IP、フレームリレー、ATM など、さまざまなパケット転送メディア上で動作するように設計されています。
8.1 L2TP over UDP/IP (UDP/IP 上の L2TP)
L2TP は、トンネルエンドポイント間の通信に登録された UDP ポート 1701 を使用します。UDP は、L2TP 制御メッセージとデータメッセージの両方にパケット転送サービスを提供します。
ポート割り当て:
- 送信元ポート: 送信側は、送信元ポートとして使用可能な任意の UDP ポートを使用できます。
- 宛先ポート: UDP ポート 1701 を使用する必要があります。
パケットカプセル化:
UDP/IP 上の L2TP パケットのカプセル化形式は次のとおりです:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP ヘッダー |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| UDP ヘッダー |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| L2TP ヘッダー |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| L2TP 制御メッセージまたは |
| PPP ペイロード |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
UDP チェックサム:
UDP チェックサムは、すべての L2TP パケットで計算され、含まれる必要があります。受信側は、存在する場合、チェックサムを検証する必要があります。チェックサム検証が失敗した場合、パケットは破棄される必要があります。
MTU に関する考慮事項:
L2TP は追加のカプセル化レイヤー (L2TP ヘッダー + UDP ヘッダー + IP ヘッダー) を追加するため、実装ではパス MTU を考慮する必要があります。典型的なカプセル化オーバーヘッド:
- IP ヘッダー: 20 バイト (IPv4) または 40 バイト (IPv6)
- UDP ヘッダー: 8 バイト
- L2TP ヘッダー: 最低 6 バイト(オプションに応じてそれ以上)
フラグメンテーション:
L2TP 実装では、IP フラグメンテーションを避けることが推奨されます。これは次の方法で実現できます:
- パス MTU ディスカバリー
- トンネル確立時に MRU (最大受信単位) を交渉する
- IP レイヤーではなく PPP レイヤーでフラグメンテーションを実行する
8.2 IP (インターネットプロトコル)
L2TP パケットは、パケット転送プロトコルとして IP を使用します。IP は、L2TP にエンドツーエンドのパケット転送サービスを提供します。
IP バージョンサポート:
L2TP は、IPv4 [RFC791] と IPv6 [RFC2460] の両方で動作するように設計されています。実装は、少なくとも 1 つの IP バージョンをサポートする必要があり、オプションで両方をサポートできます。
IPv4 固有の考慮事項:
- プロトコルタイプ: UDP カプセル化を使用する場合、IP プロトコルフィールドは 17 (UDP) に設定されます。
- サービスタイプ (TOS): L2TP 実装は、サービス品質要件を示すために IP TOS フィールドを設定できます。制御メッセージは、データメッセージよりも高い優先度を必要とする場合があります。
- 生存時間 (TTL): パケットがネットワーク内で無限にループしないように、適切な TTL 値を設定する必要があります。
IPv6 固有の考慮事項:
- 次ヘッダー: UDP カプセル化を使用する場合、17 (UDP) に設定されます。
- フローラベル: IPv6 フローラベルを使用して、同じトンネルに属するパケットフローを識別し、QoS 処理を行うことができます。
- ホップリミット: IPv4 の TTL に相当します。
アドレス選択:
LAC と LNS は、ピアの IP アドレスを決定できる必要があります。これは次の方法で実現できます:
- 静的設定
- DNS 解決
- 動的検出メカニズム
マルチホーミングに関する考慮事項:
トンネルエンドポイントに複数の IP アドレス (マルチホーム) がある場合、実装では、トンネルのすべてのパケットが一貫した送信元アドレスを使用することを確認する必要があります。これは、トンネル状態を維持し、混乱を防ぐために重要です。
セキュリティ:
L2TP が IP 上で動作する場合、トンネルトラフィックを保護するために IPsec [RFC2401] を使用することを強く推奨します。IPsec は次を提供できます:
- 機密性: ESP 暗号化による
- 完全性: AH または ESP 認証による
- エンドポイント認証: IKE による
詳細なセキュリティ考慮事項については、第 9 章を参照してください。
実装上の注意:
-
ポート多重化: 同じ IP アドレスペア間で複数のトンネルを確立でき、トンネル ID で区別されます。
-
NAT トラバーサル: L2TP が NAT デバイスを通過する必要がある場合、追加のメカニズム (L2TP/IPsec NAT-T など) が必要になる場合があります。
-
ファイアウォールに関する考慮事項: ファイアウォールは、L2TP をサポートするために UDP ポート 1701 での双方向通信を許可する必要があります。
-
QoS マッピング: 実装では、PPP レイヤーからの QoS 要件を IP レイヤーの DSCP または TOS フィールドにマッピングできます。