過去問では、GREに関して以下の記述がある。
最初に,現在使用しているPCのOSが標準でサポートしているVPNプロトコルのPPTPについて調べてみた。このプロトコルは,PPPパケットにGRE(Generic Routing Encapsulation)ヘッダと呼ばれるヘッダを付けてカプセル化する方式である。GREを使うことによって,(ア)を転送できるので,各種のアプリケーションに対応できる柔軟性をもつ。GREはポート番号情報をもたないので,ルータ経由でインターネットに接続する場合に問題が発生することがある。この問題に対応するためには,(イ)機能をもったルータが必要になる。(H20NW午後玉1より)

IPsecだと、OSPFのHelloパケットが送られない。そこで、GREによってHelloパケットのようなブロードキャストパケットを送信できるようにする。
これは、WAN越えでOSPFを動作させるときによく行う設定である。
それを知っている人は即答できたかもしれない。また、知らなくても、ほかの解答があまりないので、書けた人もいるだろう。
(ア)はイーサネットフレーム
(イ)はVPNパススルー(または、PPTPパススルー)

以下の過去問(H28秋NW午後玉2)には、GREのパケット形式も含めて記載があります。
〔トンネリング技術の調査〕
ネットワーク層のプロトコルをトンネリングするプロトコルには,GRE (GenericRouting Encapsulation)があり,データリンク層のプロトコルをトンネリングするプロトコルには,L2TP (Layer 2 Tunneling Protocol)がある。
J君が調査した結果, OSPFのリンクスデート情報の交換パケットをGRE又はL2TPでカプセル化すれば,そのパケットはIPsecでカプセル化できるので,インターネットVPNでOSPFを稼働できることが分かった。
そこで. J君はまず,GREを調査した。
GREは,  RFC 1701, RFC 2784で仕様が公開されている。GREは,ネットワーク層のプロトコルのパケットをカプセル化して転送する機能をもつ。 GREでは, IPブロードキャストもIPマルチキャストパケットもカプセル化して転送できる。カプセル化とカプセル化の解除は,  GREトンネリングを行う両端の機器で行われる。IPパケットがGREでカプセル化されたときのパケット形式を,図3に示す。
180417_H28秋NW午後玉2_図3
 IPパケットをGREでカプセル化すると,カプセル化された元のパケットの宛先への[ エ:経路 ]情報をインターネットがもたなくても,元のパケットによるエンドツーエンドの通信が可能になる。GRE利用時の通信例を図4に示す。
180417_H28秋NW午後玉2_図4
 図3に示したカプセル化によって,図4中の,GREトンネルインタフェースのMTUは,イーサネットインタフェースのMTUよりも24バイト小さくなる。このとき,図4中のPC及びサーバのイーサネットインタフェースのMTUサイズを適切な値に変更することによって,パケットの[ オ:断片化 ]を防げる。

■GRE over IPsec
OSPFのHelloパケットをWANで交換するには、GREトンネルが必要になります。
※H30NW午後1問3設問2(1)でも問われました。設問は、「GRE over IPsecを利用する目的」が問われ、正解は、「OSPFのマルチキャストを通すため」です。

しかし、GREは暗号化していません。そこで、IPsecが必要です。
GRE over IPsecのパケット構造は以下です。(上記の過去問より)
ipsec

マルチキャストアドレスは宛先が224.0.0.0~などのアドレスです。
たとえば、OSPFの場合、224.0.0.5というマルチキャストアドレスを使って、同一セグメントの全てのルータへのOSPFのHelloパケットを投げます。
sef1 

ルータのIPアドレスは172.16.1.254などのIPアドレスだと思いますが、それでもいいのですか?
はい、ルータに224から始まるIPアドレスを割り当てる必要はありません。

まとめるとこうなります。OSPFのリンクステートの情報交換はマルチキャストを使います。しかし、IPsecはユニキャストしか通信できず、マルチキャストは使えません。そこでマルチキャストフレームをカプセル化するためにGREを使い、ユニキャストにします。
ネットワークスペシャリストを目指す女性SEあれ?

イメージとしては以下であってますか?
成子の考えと図(以下)
「OSPFのHelloパケットの宛先IPアドレスとして、マルチキャストアドレス(224.0.0.5)が送信されると、IPsecではこのパケットを通過させません。そこで、GREトンネルにより、IPヘッダをカプセル化し、対向のルータのIPアドレスを宛先IPアドレスとしたユニキャストパケットにします。また、対向ルータではGREヘッダを外し、元のマルチキャスト(224.0.0.5)のフレームを相手に届けます。」
ipsec
これを見ると、L3SWから出したOSPFのHelloパケットを、大阪支店のL3SW2に届けるというようにみえる。でも、OSPFのマルチキャストはTTL=1、つまり同一セグメントでしか送られない。なので、これはありえない。FW1もOSPFをしゃべるルータであり、FWからのOSPFのHelloパケットがFW2に届くようにするために、GREでカプセル化をするんだ。
IPアドレスを振って構成図を書いてみるとよく分かると思う。,L3SWから出るHelloパケットは、IPsecルータ(FW1)には届く。△IPsecルータ(FW1)からFW2に届けるHelloは同一セグメントであるから届けなくてはいけない。そのためにGREでカプセル化をする。

gre_over_ipsec

Q.マルチキャストということはいろいろなところにパケットが届けられるんですよね?マルチキャストをユニキャストに変換するということは、宛先すべての数だけユニキャストパケットを作るということですか?
いえ、そんなことはない。上記の図を見てもらっても分かるように、相手のルータに渡すだけなので、パケットの宛先は1つである。宛先のIPアドレスは、GREの設定で明記されている。参考までにGREの設定は以下のサイトもみてほしい。

■参考
GREの設定例 みてもらうとわかるように、2つのNWを接続するという設定です。
GREを構築したところに、新しい専用のLANケーブルを接続したと考えればいいと思う。
https://www.infraexpert.com/study/rp8gre2.htm
ネットワークスペシャリストを目指す女性SEあれ 

ちなみに、IPsecはトンネルモードですか、トランスポートモードですか?
どちらでもできますが、トランスポートモードが一般的でしょう。
GREでトンネルを張っていますから、さらにIPsecでトンネルモードにすると、無駄にヘッダが増えるだけです。

スポンサードリンク