SDN
ネットワーク機器の制御の機能とデータ転送の機能を分け、制御をソフトウェアで一元的に行う考え方。ネットワークの構成や設定を、プログラムから柔軟に変えられる。
イマシルちゃんの解説
ネットワーク機器には、データをどこへ送るか決める仕事と、決められたとおりに転送する仕事があるよ。
前者をコントロールプレーン、後者をデータプレーンというんだ。
SDNはこの二つを分け、ソフトウェアからネットワークの動きを制御できるようにする考え方だよ。
代表的な構成では、制御をまとめるコントローラーが転送のルールを機器へ伝えるんだ。
実際のデータは各機器がそのルールに沿って運ぶよ。
こうすると、通信の種類に応じて経路を変えるなど、全体の方針をプログラムから反映しやすくなるんだ。
この解説はわかりやすかったですか?
より深い解説
定義
SDN(Software-Defined Networking)は、ネットワーク機器が持つ2つの機能を分離し、制御の機能をソフトウェアに集めて一元的に管理する考え方である。
| 機能 | 役割 | SDNでの置き場所 |
|---|---|---|
| コントロールプレーン(制御) | 経路を計算し、どこへ転送するかを決める | コントローラーに集約する |
| データプレーン(転送) | 決められたとおりにパケットを転送する | 各スイッチに残す |
従来のネットワーク機器は、この2つを1台の中に持ち、機器ごとに独立して判断していた。
構成とAPI
| 層 | 内容 | 主なインタフェース |
|---|---|---|
| アプリケーション層 | ネットワークの使い方を決めるプログラム | |
| (上向きのAPI) | ノースバウンドAPI(REST APIなど) | |
| コントロール層 | SDNコントローラー | |
| (下向きのAPI) | サウスバウンドAPI(OpenFlow、NETCONFなど) | |
| インフラストラクチャ層 | スイッチなどのネットワーク機器 |
利点
- ネットワーク全体の状態を1か所で把握し、まとめて設定を変えられる
- 通信の種類ごとに経路を変えるなど、細かな制御をプログラムで実現できる
- 特定のメーカーの機器に依存しにくくなる
- 仮想マシンやクラウドの変化に合わせて、ネットワークを自動で作り変えられる
注意点
コントローラーに制御が集中するため、コントローラーの障害や負荷がネットワーク全体に影響する。冗長化や、コントローラーとスイッチの間の通信の保護が重要になる。
NFVとの違い
SDNとよく並べて語られるのがNFV(Network Functions Virtualization)である。
| SDN | NFV | |
|---|---|---|
| 何をするか | 制御とデータ転送を分離し、制御を集中させる | ファイアウォールやロードバランサなどの機能を、専用機器ではなく汎用サーバ上のソフトウェアで動かす |
| 目的 | ネットワークの制御を柔軟にする | 専用機器を減らし、機能を素早く配置する |
2つは別の考え方だが、組み合わせて使われることが多い。