🎓 レベル:標準 | 重要度:A(必須) 📎 前提:ルーティングの基礎
要点(BLUF)
- 従来の機器は、経路を考える制御平面と、実際に転送するデータ平面を各自が両方持っていました。
- SDNは制御平面をコントローラに集約し、機器(データ平面)はコントローラの指示に従って転送に専念します。
- コントローラは上位アプリと**ノースバウンドAPI(REST等)で、機器とサウスバウンドAPI(NETCONF/OpenFlow等)**でやり取りします。
制御平面とデータ平面
1台のルータの中には、2つの役割が同居しています。
- 制御平面(control plane):「どこへはどう行くか」を決める頭脳。ルーティングプロトコル・ARP・STPなど。
- データ平面(data plane / forwarding plane):決まった通りにパケットを高速転送する手足。
graph TD
subgraph 従来["従来型(各機器が頭脳を持つ)"]
R1["ルータ(制御+データ)"]
R2["ルータ(制御+データ)"]
end
subgraph SDN["SDN(頭脳を集約)"]
C["コントローラ(制御平面を集中)"]
S1["スイッチ(データ平面のみ)"]
S2["スイッチ(データ平面のみ)"]
C --> S1
C --> S2
end
なぜ制御を集約するのか
機器が個別に判断する従来型は、台数が増えるほど設定が分散し、全体の一貫性を保つのが困難です。SDNはコントローラに「ネットワーク全体の意図」を集め、そこから各機器へ具体的設定を配ります。これにより、(1) 全体を一枚岩のポリシーで管理でき、(2) アプリからプログラム的にネットワークを操作でき、(3) 変更を一括・即時に反映できます。
ノースバウンドとサウスバウンド
コントローラは上下2方向にAPIを持ちます。
graph TD APP["上位アプリ・オーケストレーション"] CTRL["SDNコントローラ"] DEV["ネットワーク機器(データ平面)"] APP -->|"ノースバウンドAPI(REST/JSON・人やアプリ向け)"| CTRL CTRL -->|"サウスバウンドAPI(NETCONF・OpenFlow・機器向け)"| DEV
- ノースバウンドAPI:コントローラ↔上位アプリ。人間やプログラムが使いやすいREST/JSONが主流(
[[09-02_REST_APIとJSON]])。 - サウスバウンドAPI:コントローラ↔機器。NETCONF/RESTCONF/OpenFlowなどで設定を流し込む。
Ciscoの実装例として、キャンパス向けの**Cisco Catalyst Center(旧DNA Center)**や、SD-WANのコントローラがあります。
オーバーレイ・アンダーレイ・ファブリック
SDNの文脈でよく出る3語:
- アンダーレイ(underlay):実際の物理ネットワーク(配線・IP到達性)。土台。
- オーバーレイ(overlay):アンダーレイの上にトンネル(VXLAN等)で作る論理ネットワーク。物理構成に縛られず仮想的に接続する。
- ファブリック(fabric):アンダーレイ+オーバーレイ+コントローラをまとめた1つの統合システムとしての呼び名。
オーバーレイにより、物理配線を変えずに論理的なセグメントを自由に作れます(仮想化・マルチテナントの基盤)。
なぜAPIで操作するのか(設計の直観)
CLIは人間が1台ずつ打つ前提で、数百台・頻繁な変更には向きません。APIは機械可読・反復可能で、スクリプトやアプリから一貫した操作ができます。制御をコントローラに集め、その上にAPIを置くことで、ネットワークが「手で設定する箱の集まり」から「プログラムから呼べるサービス」へと変わります。これがクラウド時代のスケールと俊敏さを支えます。深いIaC運用はクラウド・インフラ分野へ繋ぎます。
⚠️ よくある誤解
- 「SDNは全機器を1台のコントローラに置き換える」ではない。機器(データ平面)は残ります。頭脳(制御平面)を集約するだけ。
- 「ノースとサウスが逆」になりがち:上位アプリ向けがノース(REST)、機器向けがサウス(NETCONF等)。コントローラを地図の中心に置いて上下で覚えます。
- 「オーバーレイがあれば物理は不要」ではない。オーバーレイはアンダーレイ(物理到達性)の上に成り立ちます。土台が無ければ動きません。
対応 lab
- なし(概念回。APIの実演は次トピック09-02のlabで)
関連
- ルーティングの制御平面:
[[03-03_ルーティングの基礎]]/次:[[09-02_REST_APIとJSON]] - 深い運用はクラウド・インフラ分野へ