【じーあーるいーとんねる】

GREトンネル とは?

最終更新:
💡 パケットを包んで運ぶ。暗号化とは別

元のパケットにGREヘッダーと配送用ヘッダーを付け、別のネットワーク越しに運ぶトンネル。暗号化との違い、IPv4のプロトコル番号47、MTUや経路設定の注意点を解説します。

📌 このページのポイント
GRE:パケットを包んで運ぶ元のパケット中身の宛先:元の通信相手GREと配送用の外側IPを付ける外側IP宛先:トンネル終点GRE中身の種別元のパケット元の通信相手宛終点で外側IPとGREを外す中身の宛先へ転送GRE単体では暗号化・相手の認証をしない
IPv4を配送用に使う例で、中央はパケットの構造を並べています。幅はバイト数の比率ではありません。IPv4の47はIPプロトコル番号で、TCP/UDPのポート番号ではありません。
ひよこ ひよこ
GREトンネルって、どこへ送る仕組み?
ペンギン先生 ペンギン先生
まず元のパケットにGREヘッダーを付け、さらに配送用のヘッダーで包むんだ。IP上で使う場合、外側の宛先はトンネル終点。終点で包みを外し、中身の宛先に従って転送するよ。
ひよこ ひよこ
外側と中身の宛先は、同じ?
ペンギン先生 ペンギン先生
役割が違うよ。中身は元の通信相手を表し、外側はトンネルで届ける先を表す。封筒の中の手紙と、運送用の宛名を分けて考えると分かりやすいね。
ひよこ ひよこ
包むなら、盗み見も防げる?
ペンギン先生 ペンギン先生
GREだけでは内容を暗号化せず、相手の認証も提供しないんだ。保護が必要なら、たとえばIPsecと組み合わせる設計をする。トンネルがあることと、秘密を守れることは別だよ。
ひよこ ひよこ
ファイアウォールでポート47を開けばよい?
ペンギン先生 ペンギン先生
IPv4でGREを運ぶときの47はIPのプロトコル番号だよ。TCPやUDPのポート番号ではない。通信経路の機器がGREを通せるか、中身のフィルタをどこで行うかも確認しよう。
ひよこ ひよこ
中身は何でも送れて、設定も簡単?
ペンギン先生 ペンギン先生
汎用的な方式だけれど、扱えるプロトコルは機器や実装によるよ。ヘッダーが増えてパケットが大きくなるので、MTUや断片化も考える。トンネル宛先までの経路と、中身を流す経路を誤るとループや到達不能が起きることもあるんだ。
もっと詳しく知りたい人へ

GREとVXLANは、どちらか一方が上位互換?

用途と実装を比較します。VXLANはEthernetフレームをUDPで運ぶ方式で、GREと配送の形式やネットワーク設計が異なります。暗号化の必要性、マルチキャスト、機器の対応、MTUなどの要件で選び、単純な新旧の関係にはしません。

GREヘッダーはいつも同じ大きさ?

RFC 2784の基本ヘッダーは4バイトで、チェックサムなどの有無により増えます。RFC 2890にはキーとシーケンス番号の拡張もあります。配送用IPヘッダーの分も含め、利用する形式と機器の設定でオーバーヘッドを確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「GREトンネル」って出てきたら「パケットを別のパケットに包んで運ぶ仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Generic Routing Encapsulation」 = 汎用ルーティングカプセル化
💬 Genericは汎用、Encapsulationは包み込むことです。GREヘッダーは中身のプロトコル種別を示します。機器があらゆる種類を必ず扱える、という意味ではありません。

参考資料

← 用語集にもどる