Loading article…
| 通信プロトコル | |
| 目的 | ネットワークトンネリング |
|---|---|
| 開発者 | シスコシステムズ |
| 導入 | 1994年[1] |
| RFC(複数) | 1701、1702、2784 |
汎用ルーティングカプセル化(GRE)は、シスコシステムズが開発したトンネリングプロトコルであり、インターネットプロトコルネットワーク上の仮想ポイントツーポイントリンクまたはポイントツーマルチポイントリンク内にさまざまなネットワーク層プロトコルをカプセル化することができます。[2]
使用例
- PPTPと組み合わせてVPN を作成します。
- IPsec VPNと組み合わせて、接続されたネットワーク間でルーティング情報を渡すことを可能にします。
- モビリティ管理プロトコルにおいて。
- A8/A10インターフェイスでは、パケット制御機能 (PCF) との間で IP データをカプセル化します。
- LinuxおよびBSD は、 Cisco 機器と相互運用可能な GRE トンネルを介してアドホック IP を確立できます。
- 分散型サービス拒否(DDoS) から保護されたアプライアンスを保護されていないエンドポイントに接続します。
プロトコルスタックの例
OSI のプロトコル階層化の原則に基づき、プロトコル カプセル化 (GRE に限らない) は階層化の順序を崩します。これは、一方が他方のキャリアとして機能する、2 つの異なるプロトコル スタック間のセパレーターとして考えることができます。
配信プロトコル
IP内に直接カプセル化されたGREパケットは、IPv4ヘッダーのプロトコルフィールド[3]またはIPv6ヘッダーの次ヘッダーフィールド[4]でIPプロトコルタイプ47を使用します。
パフォーマンス上の理由から、GREはUDPパケットにカプセル化することもできます。[5]等コストマルチパスルーティングを使用すると、より良いスループットを実現できます。
パケットヘッダー
拡張 GRE パケット ヘッダー (RFC 2890)
GREパケットヘッダー[6]の拡張バージョンは以下のように表される。
- C (1ビット)
- チェックサムビット。チェックサムが存在する場合は 1 に設定されます。
- K (1ビット)
- キー ビット。キーが存在する場合は 1 に設定されます。
- S (1ビット)
- シーケンス番号ビット。シーケンス番号が存在する場合は 1 に設定されます。
- 予約0(9ビット)
- 予約ビット。0 に設定されます。
- バージョン (3 ビット)
- GRE バージョン番号。0 に設定されます。
- プロトコルタイプ (16 ビット)
- カプセル化されたペイロードのイーサ プロトコル タイプを示します。( IPv4の場合、これは 16 進数の 0800 になります。)
- チェックサム(16ビット)
- Cビットが設定されている場合に存在します。GRE ヘッダーとペイロードのチェックサムが含まれます。
- 予約1(16ビット)
- Cビットが設定されている場合に存在し、0 に設定されます。
- キー(32ビット)
- Kビットが設定されている場合に存在し、アプリケーション固有のキー値が含まれます。
- シーケンス番号 (32 ビット)
- Sビットが設定されている場合に存在します。GRE パケットのシーケンス番号が含まれます。
標準 GRE パケット ヘッダー (RFC 2784)
標準的なGREパケットヘッダー構造[7]を下図に示します。
- C (1ビット)
- チェックサムビット。チェックサムが存在する場合は 1 に設定されます。
- 予約0(12ビット)
- 予約ビット。0 に設定されます。
- バージョン (3 ビット)
- GRE バージョン番号。0 に設定されます。
- プロトコルタイプ (16 ビット)
- カプセル化されたペイロードのイーサプロトコルタイプを示します。( IPv4の場合、これは16進数の0x0800、IPv6の場合は0x86DDになります。[4])
- チェックサム(16ビット)
- Cビットが設定されている場合に存在します。GRE ヘッダーとペイロードのチェックサムが含まれます。
- 予約1(16ビット)
- Cビットが設定されている場合、その内容は 0 に設定されます。
オリジナルの GRE パケット ヘッダー (RFC 1701)
新しい構造は元の構造に取って代わりました: [1]
元の GRE RFC では、現在の標準では廃止されたパケット ヘッダー内の追加のフィールドが定義されていました。
- C (1ビット)
- チェックサムビット。チェックサムが存在する場合は 1 に設定されます。
- R (1ビット)
- ルーティング ビット。ルーティングとオフセット情報が存在する場合は 1 に設定します。
- K (1ビット)
- キー ビット。キーが存在する場合は 1 に設定されます。
- S (1ビット)
- シーケンス番号ビット。シーケンス番号が存在する場合は 1 に設定されます。
- (1ビット)
- 厳密なソースルート ビット。
- 再帰(3ビット)
- 再帰制御ビット。
- フラグ(5ビット)
- 将来の使用のために予約されており、0 に設定されています。
- バージョン (3 ビット)
- 0 に設定します。
- プロトコルタイプ (16 ビット)
- カプセル化されたペイロードのEther プロトコル タイプを示します。
- チェックサム(16ビット)
- Cビットが設定されている場合に存在します。GRE ヘッダーとペイロードのチェックサムが含まれます。
- オフセット(16ビット)
- RビットまたはCビットが設定されている場合に存在します。Rビットが設定されている場合にのみ、有効な情報が含まれます。アクティブなソース ルート エントリへのルーティングフィールド内のオフセットを示すオフセット フィールド。
- キー(32ビット)
- Kビットが設定されている場合に存在し、アプリケーション固有のキー値が含まれます。
- シーケンス番号 (32 ビット)
- Sビットが設定されている場合に存在します。GRE パケットのシーケンス番号が含まれます。
- ルーティング(可変)
- Rビットが設定されている場合に存在します。ソース ルート エントリのリストが含まれるため、可変長になります。
PPTP GRE パケット ヘッダー
ポイントツーポイントトンネリングプロトコル(PPTP)[8]は、以下に示すような変形GREパケットヘッダー構造を使用します。PPTPは、PPTP GREパケットが送信されるGREトンネルを作成します。
- C (1ビット)
- チェックサムビット。PPTP GRE パケットの場合、これは 0 に設定されます。
- R (1ビット)
- ルーティング ビット。PPTP GRE パケットの場合、これは 0 に設定されます。
- K (1ビット)
- キー ビット。PPTP GRE パケットの場合、これは 1 に設定されます (すべての PPTP GRE パケットはキーを運びます)。
- S (1ビット)
- シーケンス番号ビット。シーケンス番号が指定されている場合は 1 に設定され、PPTP GRE データ パケットであることを示します。
- (1ビット)
- 厳密なソース ルート ビット。PPTP GRE パケットの場合、これは 0 に設定されます。
- 再帰(3ビット)
- 再帰制御ビット。PPTP GRE パケットの場合、これらは 0 に設定されます。
- A (1ビット)
- 確認応答番号が存在します。確認応答番号が指定されている場合は 1 に設定され、PPTP GRE 確認応答パケットであることを示します。
- フラグ(4ビット)
- フラグ ビット。PPTP GRE パケットの場合、これらは 0 に設定されます。
- バージョン (3 ビット)
- GRE バージョン番号。PPTP GRE パケットの場合、これは 1 に設定されます。
- プロトコルタイプ (16 ビット)
- PPTP GRE パケットの場合、これは 16 進数の 880B に設定されます。
- キーペイロード長 (16 ビット)
- GRE ヘッダーを含まないペイロードのサイズが含まれます。
- キーコールID(16ビット)
- パケットが属するセッションのピアのコール ID が含まれます。
- シーケンス番号 (32 ビット)
- S ビットが設定されている場合に存在し、GRE ペイロード シーケンス番号が含まれます。
- 確認番号 (32 ビット)
- A ビットが設定されている場合に存在します。送信者が受信した最高の GRE ペイロード パケットのシーケンス番号が含まれます。
標準
- RFC 1701:汎用ルーティング カプセル化 (GRE) (情報)
- RFC 1702: IPv4 ネットワーク上の汎用ルーティング カプセル化(情報)
- RFC 2637:ポイントツーポイント トンネリング プロトコル(情報)
- RFC 2784: Generic Routing Encapsulation (GRE) (提案標準、RFC 2890 により更新)
- RFC 2890: GRE へのキーおよびシーケンス番号の拡張(提案標準)
- RFC 8086: GRE-in-UDP カプセル化(提案標準)
参照
- 汎用ルーティングカプセル化を使用したネットワーク仮想化- GRE 経由で L2 パケットを伝送
- GPRSトンネリングプロトコル- GTP-UはGREに似ており、携帯電話ネットワークで使用されます。
参考文献
- ^ ab S. Hanks; T. Li; D. Farinacci; P. Traina (1994 年 10 月). Generic Routing Encapsulation (GRE). ネットワークワーキンググループ. doi : 10.17487/RFC1701 . RFC 1701. 情報提供。
- ^ US 7801021B1、Nikolaos Triantafillis、Robert J. Ordemann、Simon D. Barber、「Generic routing encapsulation tunnel keepalives」、2010 年 9 月 21 日発行、Cisco Technology Inc.に譲渡。
- ^ S. Hanks、T. Li、D. Farinacci、 P . Traina (1994 年 10 月)。IPv4 ネットワーク上の汎用ルーティング カプセル化。ネットワーク ワーキング グループ。doi : 10.17487/ RFC1702。RFC 1702 。 情報提供。
- ^ ab C. Pignataro; R. Bonica; S. Krishnan (2015 年 10 月). IPv6 による Generic Routing Encapsulation (GRE) のサポート。インターネット技術タスク フォース(IETF) 。doi : 10.17487/ RFC7676。ISSN 2070-1721。RFC 7676 。 提案された標準。
- ^ E. Crabbe; E. Crabbet; T. Herbert (2017 年 3 月). L. Yong (編). GRE-in-UDP カプセル化.インターネット技術タスクフォース(IETF). doi : 10.17487/RFC8086 . ISSN 2070-1721. RFC 8086. 提案された標準。
- ^ G. Dommety (2000 年 9 月). GRE へ のキーおよびシーケンス番号の拡張。ネットワーク ワーキング グループ。doi : 10.17487 /RFC2890。RFC 2890 。 提案された標準。
- ^ D. Farinacci、T. Li、S. Hanks、D. Meyer、P. Traina (2000 年 3 月) 。Generic Routing Encapsulation (GRE)。ネットワーク ワーキング グループ。doi : 10.17487/ RFC2784。RFC 2784 。 提案された標準。RFC 2890 によって更新されました。
- ^ K. Hamzeh、G. Pall、W. Verthein、J. Taarud、W. Little、G. Zorn (1999 年 7 月)。ポイントツーポイント トンネリング プロトコル (PPTP)。ネットワーク ワーキング グループ。doi : 10.17487 / RFC2637。RFC 2637 。 情報提供。
外部リンク
- シスコの汎用ルーティング カプセル化、サブプロトコルのホームページ
- Generic Routing Encapsulation は、2018 年 12 月 29 日にWayback Machineにアーカイブされました。Cisco DocWiki のエントリ (旧称「Internetworking Technology Handbook」)
