SDNとは ― OpenFlowの仕組みとNFVとの違い
SDNとは、
SDNとは、ネットワークの制御をソフトウェアに集める仕組み
SDN(Software-Defined Networking)は、ネットワーク機器から経路を決める役割を切り離し、1か所のソフトウェアからまとめて制御する仕組みです。
切り離した役割を受け持つソフトウェアをSDNコントローラと呼びます。コントローラが各スイッチに転送の決まりを書き込むときに使う代表的なプロトコルが、OpenFlowです。機器を1台ずつ設定しなくても、ネットワーク全体の経路や設定をまとめて変えられます。
従来のネットワーク機器:制御と転送が1台に入っている
ルータは、届いたパケットを宛先に応じて次の機器へ送り出します。送り先は、経路の一覧表であるルーティングテーブルを見て決めます。この表は、管理者が書き込むか、ルータ自身が隣のルータと経路情報を交換して作ります。
つまり、1台のルータの中では2種類の処理が動いています。1つは、経路情報をやり取りして表を作る処理です。もう1つは、表を参照して、パケットを出力ポートへ送り出す処理です。
表を作る処理をコントロールプレーン、表に従ってパケットを送り出す処理をデータプレーンと呼びます。RFC 7426では、データプレーンにあたる部分をForwarding Planeと呼んでいます。
従来のネットワークでは、各機器がこの2つを持っています。そのため、ネットワーク全体の動きを変えたいときは、機器を1台ずつ設定し直します。機器が数百台あれば、その数だけ設定の作業が必要です。
SDNの仕組み:コントロールプレーンとデータプレーンを分ける
SDNでは、コントロールプレーンを機器から取り出し、SDNコントローラに集めます。スイッチの中には、データプレーンだけが残ります。
コントローラは、ネットワーク全体の構成を1か所で把握し、各スイッチに転送の決まりを書き込みます。スイッチは、書き込まれた決まりに従ってパケットを送り出すだけです。
SDNの仕様の策定を進めてきた業界団体に、ONF(Open Networking Foundation)があります。ONFが2012年に公開した白書は、SDNの特徴を次の3つにまとめています。
- コントロールプレーンとデータプレーンを分けること
- ネットワークの制御と状態を、論理的に1か所へ集めること
- アプリケーションから、下にある機器の違いを隠すこと
論理的に1か所とは、利用する側から1つに見えるという意味です。実際のコントローラは、故障に備えて複数台で動かすことがあります。
ノースバウンドAPIとサウスバウンドAPI
ONFの白書は、SDNを3つの層に分けて描いています。上から、アプリケーション層・コントロール層・インフラストラクチャ層です。コントローラは真ん中の層にあり、上下の層とそれぞれ決まった窓口(API)でやり取りします。
| 層 | 入る | 下の |
|---|---|---|
| アプリケーション層 | 業務アプリ、ネットワークのサービス | ノースバウンドAPIで、コントローラに要求を出す |
| コントロール層 | SDNコントローラ | サウスバウンドAPIで、スイッチに指示する |
| インフラストラクチャ層 | スイッチなどのネットワーク機器 | 指示に従って、パケットを転送する |
コントローラから見て上向きの窓口をノースバウンドAPI、下向きの窓口をサウスバウンドAPIと呼びます。サウスバウンドAPIの代表が、次に説明するOpenFlowです。
ノースバウンドAPIは、REST APIの形で公開されることが多く、構成管理ツールなどの自動化の仕組みから呼び出されます。REST APIの操作方法は、ネットワーク自動化の記事で説明しています。
OpenFlowとは:コントローラがスイッチの表を書き換えるプロトコル
OpenFlowは、SDNコントローラとスイッチの間で使うプロトコルです。ONFの白書によると、コントロールの層と転送の層の間に定められた最初の標準のインターフェースです。OpenFlowに対応したスイッチを、OpenFlowスイッチと呼びます。
スイッチとコントローラはTCPでつながり、この接続はTLSで暗号化することもできます。ふつうはスイッチの側から接続し、宛先のポート番号は標準で6653番です。
フローテーブルとフローエントリ
OpenFlowスイッチは、転送の決まりをフローテーブルという表に持ちます。表の1行を、フローエントリと呼びます。コントローラは、OpenFlowでこのフローエントリを追加・変更・削除します。
1つのフローエントリには、次の項目があります。仕様書 OpenFlow Switch Specification 1.5.1 の5.2節にある項目のうち、主なものを選びました。
| 項目 | 中身 |
|---|---|
| マッチフィールド | 一致の条件。受信したポート、MACアドレス、IPアドレス、ポート番号など |
| 優先度 | 複数のエントリに一致したとき、どれを使うかを決める数 |
| カウンタ | 一致したパケットの数などの集計 |
| インストラクション | 一致したパケットの扱い。どのポートへ出すか、ヘッダの書き換えなど |
| タイムアウト | エントリを消すまでの時間。使われない時間で決めることもできる |
ルーティングテーブルは、ふつう宛先IPアドレスで行を選びます。一方、フローテーブルは、MACアドレス・IPアドレス・ポート番号を組み合わせて条件にできるので、第2層から第4層までの情報を見て扱いを決められます。
動かして確かめる:フローテーブルの照合
次の図のスイッチには、4つのフローエントリが入っています。ポート2の先にはWebサーバの203.0.113.50が、ポート3の先には2台目のサーバの203.0.113.60がつながっています。パケットを選ぶと、どのエントリが一致し、どれが使われるかを確かめられます。
| No | 優先度 | 一致の | 動作 |
|---|---|---|---|
| 1 | 300 | 宛先IP 203.0.113.50・TCP宛先ポート 22 | 破棄 |
| 2 | 200 | 宛先IP 203.0.113.50 | ポート2へ出力 |
| 3 | 200 | 宛先IP 203.0.113.60 | ポート3へ出力 |
| 4 | 0 | 条件なし(テーブルミス) | コントローラへ送る |
- エントリ1一致しない
- エントリ2一致・優先度が最も高い:これを使う
- エントリ3一致しない
- エントリ4一致するが、優先度が低い
エントリ1は、宛先ポートが22ではないので一致しません。エントリ2が一致し、ポート2の先のWebサーバへ送られます。テーブルミスのエントリ4も一致しますが、優先度が0なので使われません。
- エントリ1一致・優先度が最も高い:これを使う
- エントリ2一致するが、優先度が低い
- エントリ3一致しない
- エントリ4一致するが、優先度が低い
エントリ1とエントリ2の両方に一致します。優先度が300のエントリ1が使われ、パケットは捨てられます。表の中で上にあるかどうかではなく、優先度の数字で決まります。
- エントリ1一致しない
- エントリ2一致しない
- エントリ3一致・優先度が最も高い:これを使う
- エントリ4一致するが、優先度が低い
宛先IPが203.0.113.60なので、エントリ3だけが条件に一致します。ポート3の先の2台目のサーバへ送られます。
- エントリ1一致しない
- エントリ2一致しない
- エントリ3一致しない
- エントリ4一致・優先度が最も高い:これを使う
エントリ1〜3のどれにも一致しないので、テーブルミスのエントリ4が使われます。スイッチはパケットをコントローラへ送り、扱いを任せます。この通知をPacket-Inと呼びます。コントローラがこの宛先のエントリを書き込めば、次のパケットからはスイッチだけで処理できます。
一致したエントリが複数あるときは、優先度が最も高いものだけを使います。表の中の並び順は関係ありません。この点が、上から順に照合するファイアウォールのルール表とは違います。
エントリ4は条件を何も指定しておらず、優先度は0です。このようなエントリをテーブルミスエントリと呼び、どれにも一致しなかったパケットの扱いを決めます。テーブルミスエントリは最初から入っているわけではなく、コントローラが書き込んでいなければ、どれにも一致しなかったパケットは既定では捨てられます。
パケットが届いてから書き込む方式と、先に書き込む方式
動かせる表のパケットP4では、スイッチがパケットをコントローラへ送りました。このときスイッチが送るメッセージをPacket-Inと呼びます。コントローラは、送られてきたパケットを見て扱いを決め、必要なら、その宛先用のフローエントリをスイッチに書き込みます。
この方式では、最初のパケットだけがコントローラを経由します。一方、通信が始まる前に必要なエントリを書き込んでおく方式もあります。OpenFlowの仕様は、この両方を認めています。
SDNのメリットと注意点
SDNのメリットは、ネットワーク全体の設定を1か所から変えられることです。機器を1台ずつ設定し直す代わりに、コントローラに方針を渡せば、コントローラが関係するスイッチすべてに書き込みます。
ONFの白書は、メーカーの違う機器をまとめて管理できることも利点に挙げています。OpenFlowに対応していれば、メーカーが違っても同じ手順で制御できるからです。
全体の構成を1か所で把握できることは、機器の構成情報を管理する構成管理にも役立ちます。構成管理は、SNMPの記事で説明している運用管理の3分類の1つです。
注意点は、制御がコントローラに集中することです。コントローラと通信できなくなると、スイッチは新しい通信の扱いを指示してもらえません。OpenFlowの仕様は、すべてのコントローラとの接続が切れたスイッチの動作を2通り定めています。
- 書き込み済みのエントリだけで動き続けます。コントローラ宛てのパケットは捨てます。
- 従来のスイッチやルータとして動きます。ふつうは、両方の動きができる機種だけが選べます。
こうした事態に備えて、1台のスイッチを複数のコントローラにつなぐことができます。また、コントローラはネットワーク全体の転送を書き換えられるので、コントローラ自体と、スイッチとの通信を保護する必要があります。
NFVとは:SDNとの違い
NFV(Network Functions Virtualization)は、ルータやファイアウォールなどの機能を、汎用サーバの上で動くソフトウェアにする技術です。
これまで、こうした機能は機能ごとに専用の機器を用意していました。NFVでは、仮想化の技術を使って、汎用サーバの上で複数の機能を動かします。
NFVは、2012年に世界の通信事業者13社が公開した白書から始まりました。白書には、専用の機器が増え続け、置き場所と電力の確保が難しくなっていると書かれています。その後の仕様の策定は、ETSI(欧州電気通信標準化機構)で進められています。
ETSIの仕様 GS NFV 002 は、NFVの全体を次の3つに分けています。
- VNF:ソフトウェアにしたネットワーク機能です。仮想ルータや仮想ファイアウォールがあたります。
- NFVI:VNFを動かす基盤です。汎用サーバなどの機器と、それを仮想化するソフトウェアを含みます。
- MANO:VNFとNFVIを管理する仕組みです。VNFの起動や停止、台数の増減を受け持ちます。
SDNとNFVの違い
SDNは、制御を機器から切り離す考え方で、NFVは、機能を専用の機器から切り離す考え方です。どちらも機器から何かを切り離しますが、切り離すものが違います。
| 観点 | SDN | NFV |
|---|---|---|
| 何を変えるか | 制御を機器から切り離し、1か所に集める | 機能を専用の機器から、汎用サーバ上のソフトウェアに移す |
| 主な対象 | スイッチやルータの転送の決め方 | ルータ・ファイアウォール・ロードバランサなどの機能 |
| 関係する用語 | SDNコントローラ、OpenFlow | VNF、NFVI、MANO |
| 仕様をまとめる団体 | ONF | ETSI |
SDNとNFVは、どちらか一方だけでも使えます。NFVの白書にも、2つは互いに補い合うものの、依存はしないと書かれています。組み合わせ方の例として、NFVの基盤の上でSDNのソフトウェアを動かす使い方が挙げられています。
仮想ネットワークの例:VLAN・VPN・オーバーレイとの関係
SDNとNFVは、仮想ネットワークに含まれる技術です。仮想ネットワークは、物理的な配線とは別に、論理的なネットワークを作る技術をまとめた呼び方です。SDN以外にも、次のような例があります。
- VLAN:1台のスイッチを論理的に分けて、別々のネットワークとして使います。仕組みはVLANの記事にあります。
- VPN:共有のネットワークの上にトンネルを作り、離れた拠点を専用線のようにつなぎます。VPNの記事で、トンネリングの仕組みを説明しています。
- オーバーレイネットワーク:既存のIPネットワークの上に、カプセル化で別の論理ネットワークを重ねます。代表例はVXLANで、第2層のネットワークを第3層のネットワークの上に重ねます。仕様はRFC 7348です。
- SD-WAN:拠点間のWANを、1本以上の回線の上に重ねて作るオーバーレイのサービスです。アプリケーションごとの方針で、通す回線を選びます。MEF 70という標準が定義しています。
VLAN・VPN・VXLANはSDNとは別の技術で、SDNがなくても使えます。ただし、SDNのコントローラからVLANやオーバーレイの設定をまとめて配る形で、組み合わせて使うことがあります。
MEF 70の改訂版のMEF 70.1によると、SD-WANを提供する側の網にはコントローラも含まれます。制御を1か所に集める点で、SD-WANはSDNの考え方に近いサービスです。
練習問題(全5問)
正解:ネットワーク機器から
SDNは、
正解:表に
データプレーンは、
正解:優先度
OpenFlowでは、
正解:パケットを
テーブルミスエントリは、
正解:NFVは
NFVは、
選んでから「採点する」を押すと、解説つきで答え合わせができます。
関連記事
おすすめの本 PR
ネットワークを初めて学ぶ人向けの入門書です。
![『[改訂新版]3分間ネットワーク基礎講座』の表紙](https://m.media-amazon.com/images/P/4774143731.09.MZZZZZZZ.jpg)
