ITの教科書検索
入門・発展ページ読了 約9分

GREトンネルとは ― VPNとの違い

GREトンネルとは、元のパケットを新しいIPパケットで包んで運ぶカプセル化の規格です。暗号化はせず、IPsecと組み合わせるGRE over IPsecで使います。

目次
  1. GREトンネルとは
  2. GREヘッダの構造
  3. カプセル化の仕組み:IPsecとの比較
  4. GREは暗号化しない
  5. ヘッダのオーバーヘッドとMTU
  6. GRE over IPsecの組み合わせ
  7. VPNとの違い
  8. 練習問題

GREトンネルとは、パケットを包んで運ぶカプセル化の規格

GRE(Generic Routing Encapsulation)は、元のパケットを新しいIPパケットで包んで送る、カプセル化の規格です。トンネルの両端の機器が、元のパケットを包んだり取り出したりします。

GREは、中身を暗号化しません。暗号化が要るときは、IPsecと組み合わせたGRE over IPsecという構成を使います。以下では、GREヘッダの中身、MTUへの影響、VPNとの違いを順に説明します。

カプセル化の仕組み:IPsecとの比較で見る

GREでカプセル化したパケットは、元のIPヘッダとデータの前に、GREヘッダと新しい外側IPヘッダが付きます。新しいIPヘッダで元のパケットを丸ごと包む点は、IPsecの記事で説明したESPのトンネルモードと同じです。大きな違いは、暗号化するかどうかです。

① GRE② IPsecESP・トンネルモード新しい外側IPヘッダGREヘッダ元のIPヘッダデータこの範囲は暗号化されない新しい外側IPヘッダESPヘッダ元のIPヘッダデータESPトレーラICV赤い破線の範囲が暗号化される
GREとIPsec(ESP・トンネルモード)は、どちらも元のIPパケットの前に、新しい外側IPヘッダとプロトコルごとのヘッダを付けます。上から順に送られます。大きな違いは赤い破線の箱です。GREは元のIPヘッダとデータをそのまま送るので、経路上から中身を読めます。IPsecのESP・トンネルモードは、元のIPヘッダとデータ、ESPトレーラをまとめて暗号化します。最後に続くICVは、受け取った側が改ざんを確かめるための値で、暗号化の対象外です。

例えば、拠点Aのゲートウェイ198.51.100.20と拠点Bのゲートウェイ192.0.2.10の間でGREトンネルを張るとします。外側IPヘッダの送信元と宛先は、この2つのアドレスになります。この外側ヘッダのプロトコル番号には47が入ります。IPsecのESPでは50です。

GREは暗号化しない

GREのRFC 2784には、暗号化についての記述がありません。GREヘッダにもデータの部分にも、暗号化の機能はありません。

GREだけでトンネルを作ると、経路の途中にいる第三者は、元のIPヘッダとデータをそのまま読めます。インターネットを経由する拠点間通信では、この点に注意が必要です。RFC 2784のセキュリティの章は、GREパケットの中身まで見るファイアウォールを使うか、トンネルの両端でパケットフィルタを行う必要があると述べています。

ヘッダのオーバーヘッドとMTUへの影響

GREは、新しいIPヘッダ20バイトと、GREヘッダの最小4バイトを足した、24バイトのオーバーヘッドを持ちます。オーバーヘッドとは、元のデータに上乗せされる分のことです。Checksum・Key・Sequence Numberの欄を付けると、その分さらに増えます。

任意の欄を付けないとき、GREトンネルのMTUは、物理インターフェースのMTUより24バイト小さくなります。イーサネットの標準的なMTUは1500バイトなので、GREトンネルのMTUは1476バイトになります。

元のパケットがトンネルのMTUを超え、分割を禁止するDFビットが立っているとします。このとき、ルータはパケットを分割できず、送信元にICMPで小さいパケットを送るよう伝えます。経路の途中でこのICMPが遮断されると、大きなパケットだけが届かなくなります。ルータがTCPのMSSを書き換えてこれを避ける方法は、MTUとMSSの記事で説明しています。

GRE over IPsecの組み合わせ

拠点間VPNで使う一般的なIPsecの構成では、マルチキャストやブロードキャストのパケットを暗号化できません。OSPFなど多くの動的ルーティングプロトコルは、マルチキャストで経路情報をやり取りします。GREは、マルチキャストやブロードキャストも運べます。GREでカプセル化すると、元がマルチキャストのパケットも、外側は1つの送信元と宛先を持つユニキャストのGREパケットになります。

このユニキャストのGREパケットを、IPsecで暗号化します。GREがカプセル化を受け持ち、IPsecが暗号化を受け持つ組み合わせを、GRE over IPsecと呼びます。

この構成では、GREのトンネルの上で動的ルーティングプロトコルを動かせます。

VPNとの違い

GREは、カプセル化だけを行う規格です。VPNの記事で説明したように、インターネット上のトンネリングは暗号化と組み合わせます。GREにはその暗号化がないので、暗号化と認証はIPsecが受け持ちます。

GREIPsec
暗号化しないESPを使えばする
運べるものマルチキャスト・ブロードキャストを含む多くのプロトコル一般的な拠点間の構成では、ユニキャストのIPパケット
IPヘッダのプロトコル番号47ESP 50・AH 51
単体でのVPN利用経路上から中身を読めるので、インターネット経由では暗号化を別に足す暗号化と認証を備え、IPsec-VPNとして単体で使える

拠点間をインターネットでつなぐときは、GRE単体ではなく、GRE over IPsecか、IPsecの記事で説明したIPsec単体のトンネルモードを使います。

練習問題(全6問)

Q1GREの説明として正しいものは?
Q2GREヘッダの先頭4バイトに必ず含まれる内容として正しいものは?
Q3GREヘッダのKey欄とSequence Number欄について正しいものは?
Q4GREのパケットをIPv4で運ぶとき、外側IPヘッダのプロトコル番号として正しいものは?
Q5GRE over IPsecを使う理由として正しいものは?
Q6GREトンネルのMTUについて正しいものは?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

ネットワークを初めて学ぶ人向けの入門書です。

目的別の本の選び方を見る

ネットワークの記事を探す