概要

SDN(Software Defined Networking)を考えるにあたって、オーバーレイネットワークとアンダーレイネットワークという用語がよく出てきます。オーバーレイネットワークとアンダーレイネットワークについて解説します。

オーバーレイネットワークとアンダーレイネットワーク

オーバーレイネットワーク(Overlay Network)と一緒によく利用される用語はアンダーレイネットワーク(Underlay Network)です。オーバーレイネットワークとは、見かけ上の論理的なネットワークを意味します。そして、アンダーレイネットワークは、実際にデータが転送されていく物理的なネットワークです。

ごく簡単にいえば、

「オーバーレイネットワークとは、物理的に通信可能なネットワーク(アンダーレイネットワーク)上に作る、論理的なお好みのネットワークのこと」

です。

図 オーバーレイネットワークとアンダーレイネットワークの概要
図 オーバーレイネットワークとアンダーレイネットワークの概要

オーバーレイネットワークを構築するためには、GRE、VXLAN、IPSecなどのトンネリングプロトコルを利用します。オーバーレイネットワークのデータをこれらのトンネリングプロトコルでカプセル化することで、見かけ上の論理的なネットワークを構築できます。

トンネリングプロトコルによって、オーバーレイネットワークとして構築できる見かけ上のネットワーク構成が決まります。GREを利用すると、ポイントツーポイントがデフォルトです。マルチポイントGREにすると、フレームリレー的なNBMAにもできます。VXLANを利用すると、見かけ上、イーサネットのブロードキャストネットワークにできます。

オーバーレイネットワークのデータは、実際にはアンダーレイネットワーク上で転送されます。アンダーレイネットワークとして、インターネットのようなオープンなネットワークを利用しても、プライベートなネットワークを利用してもOKです。インターネットとプライベートネットワークの両方を組み合わせてもOKです。オーバーレイネットワークを作りたい任意の機器間で物理的なデータの転送ができればいいです。

アンダーレイネットワークで利用する転送プロトコルとして、IPv4、IPv6、MPLSがあります。また、「物理的なネットワーク」なのでアンダーレイネットワークには、物理的な通信回線も必要です。アンダーレイネットワークの物理的な通信回線も何でもOKです。カッパー(銅線)でも光ファイバでも4G/5G携帯電話回線でも衛星回線でもOKです。

GREなどのトンネリングプロトコルでカプセル化したオーバーレイのデータは、アンダーレイネットワーク上を転送するために、さらにカプセル化します。たとえば、アンダーレイネットワークの転送プロトコルでIPv4を利用しているなら、さらに新しいIPv4ヘッダを付加します。新しく付加したアンダーレイの転送プロトコルヘッダによって、アンダーレイネットワーク内を転送されることになります。新しいIPv4ヘッダを付けたデータを物理的に転送するためには、さらにイーサネットなどの物理的な通信回線に応じたレイヤ2ヘッダも必要です。

GREによるオーバーレイネットワークの例

オーバーレイネットワークとアンダーレイネットワークの例として、以下のような構成を考えます。

オーバーレイネットワークのトンネリングプロトコル : GRE
アンダーレイネットワーク: IPv4ネットワーク

GREトンネルインタフェースによって、IPネットワークで通信可能なルータ間を仮想的にポイントツーポイント接続できます。つまり、GREトンネルインタフェースで直結している部分がオーバーレイネットワークです。実際には、ルータ同士が直結しているわけではないのですが、見かけ上、直接つながっているように見えます。ルータ同士がどんなに遠く離れていても問題ありません。

GREトンネルインタフェースを通じて送受信されるデータは、GREヘッダでカプセル化されます。GREヘッダでカプセルかすることで、ルータ間が見かけ上、直結しているようになります。

ただし、これは、便宜上の説明です。GREヘッダだけで見かけ上ポイントツーポイント接続しているようにみなせるわけではありません。アンダーレイネットワークの転送のために付加するIPヘッダと組み合わせて、ポイントツーポイント接続しているようにみなせます。

GREヘッダでカプセル化したオーバーレイネットワークのデータは、アンダーレイネットワークで転送します。アンダーレイネットワークの転送プロトコルとして、IPv4を利用しているなら、新しくIPv4ヘッダが付加されます。さらに、物理的な通信回線に応じたイーサネットなどのレイヤ2ヘッダも付加されてます。

図 GREトンネルのカプセル化の概要
図 GREトンネルのカプセル化の概要

GREのカプセル化の例(GRE/IP)

次のネットワーク構成例にして、どのようなカプセル化がされるかを具体的に見てみましょう。このネットワーク構成は、「GREトンネルインタフェースの設定例」の記事のものです。

図 GREカプセル化の例 ネットワーク構成
図 GREカプセル化の例 ネットワーク構成

R11-R12間でGREトンネルインタフェースを設定して、見かけ上、R11-R12間が直結されているようにオーバーレイネットワーク(インターネットVPN)を構築します。そして、R11-R12間のGREトンネルインタフェース上でRIPv2を利用してルーティングテーブルを作成しています。

図 R11 ルーティングテーブル Tunnel0コンフィグレーション
図 R11 ルーティングテーブル Tunnel0コンフィグレーション

PC1からPC2宛てのデータがR11でどのようにカプセル化されるかを見ていきます。

  1. R11はPC1(10.1.100)からPC2(10.2.1.100)宛てのデータを受信します
  2. R11はルーティングテーブルから宛先IPアドレスに一致するルート情報を検索します。10.2.1.0/24のルート情報が一致して、ネクストホップ10.2.0.21、出力インタフェースTunnel0を得ます
  3. Tunnel0からデータを出力するために、GRE/IPヘッダを付加します。IPヘッダの宛先IPアドレスはtunnel destinationの100.2.2.1で、送信元IPアドレスはtunnel sourceの100.1.1.11です。
  4. Tunnel0から出力するデータは、実際にはアンダーレイネットワークを通じて転送します。そのために、新しく付加したIPヘッダの宛先IPアドレス100.2.2.1に一致するルート情報を検索します。デフォルトルート(0.0.0.0/0)に一致して、ネクストホップ100.1.1.00を得ます。そして、ネクストホップ100.1.1.00に転送するための出力インタフェースのEthernet0/0は、Directly Connectedのルート情報から得られます。
  5. イーサネットインタフェースから出力することになるので、ARPによって適切なMACアドレスを解決してイーサネットヘッダでカプセル化します。そして、物理的な信号としてEthernet0/0から出力します。
  6. あとは、アンダーレイネットワーク(インターネット)上をR21まで転送されていきます。
図 R11 GREカプセル化 その1
図 R11 GREカプセル化 その1
 図 R11 GREカプセル化 その2
図 R11 GREカプセル化 その2

以上のように、GREトンネルインタフェースのオーバーレイネットワークでデータを転送するには、GRE/IPヘッダでカプセル化します。そして、カプセル化した新しいIPヘッダに基づいて、アンダーレイネットワークで転送します。その際に、ルーティングテーブルの再帰的な検索が行われています。

なお、この例は、アンダーレイネットワークとしてインターネットを想定したオーバーレイネットワーク(インターネットVPN)です。GREには暗号化機能がないので、インターネット上の悪意を持つユーザにデータが盗聴されるリスクがあります。そのため、暗号化できるIPSecと組み合わせたGRE over IPSecとしたほうがよいです。話を簡単にするために、GREカプセル化のみを考えています。

パケットキャプチャ

以下は、PC1からPC2宛てにPingを実行したときに、R11のEthernet0/0から送り出されるデータをWiresharkでキャプチャしたものです。

まとめ

ポイント

  • オーバーレイネットワークとは、見かけ上の論理的なネットワークのことです。オーバーレイネットワークを構築するために、GRE/VXLAN/IPSecなどのトンネリングプロトコルを利用します。
  • アンダーレイネットワークとは、実際にデータを転送する物理的なネットワークのことです。任意の物理回線を利用したIPv4/IPv6/MPLSの転送プロトコルによって、アンダーレイネットワークを構築します。
  • オーバーレイネットワークのデータは、オーバーレイのトンネリングプロトコルでカプセル化して、さらにアンダーレイの転送プロトコルでカプセル化されます。

IPルーティング応用