ネットワーク機器が増えるたびに、エンジニアはスイッチやルータに1台ずつSSHで入り、CLIで設定を投入する。VLANの追加、ACLの変更、ファームウェアの更新――すべてが手作業だ。機器が10台なら耐えられるが、100台を超えると設定ミスや反映漏れが常態化する。この「機器ごとの個別管理」という従来モデルの限界を根本から変えるのがSDN(Software-Defined Networking)である。
本記事では、SDNの基本的な考え方から、アーキテクチャの仕組み、そしてCiscoの主要ソリューションまでを一気通貫で解説する。
SDNの核心:コントロールプレーンとデータプレーンの分離
従来のネットワーク機器は、経路計算などの「頭脳」にあたるコントロールプレーンと、実際にパケットを転送する「手足」にあたるデータプレーンが1台の筐体に同居していた。SDNではこの2つを明確に分離し、コントロールプレーンを外部のSDNコントローラに集約する。
コントロールプレーンが担う処理は、ルーティングプロトコルの計算、MACアドレスの学習、ARP処理などだ。一方、データプレーンはコントロールプレーンが決定した転送先情報に従って、パケットやフレームを実際に転送する。NATやカプセル化、ACLによるフィルタリングもデータプレーン側の仕事になる。
この分離により、ネットワーク全体の制御ロジックを1か所に集約でき、ソフトウェアによって柔軟にネットワークの振る舞いを定義できるようになる。
以下の図は、従来型とSDN型の違いを示している。
SDNアーキテクチャの3層構造
SDNアーキテクチャは、次の3つの層で構成される。
- アプリケーション層:ネットワークの監視、分析、ポリシー管理などのアプリケーションが動作する層
- コントロール層:SDNコントローラが配置され、ネットワーク全体の制御ロジックを司る層
- インフラストラクチャ層:物理・仮想のスイッチやルータなど、実際にデータを転送する機器の層
これらの層は、2種類のAPIで接続される。
ノースバウンドAPIとサウスバウンドAPI
ノースバウンドAPI(NBI) はコントロール層とアプリケーション層をつなぐインターフェースだ。HTTP/HTTPSを使ったRESTful APIでアクセスし、データ形式にはJSONやXMLが使われる。自作プログラムからネットワークを制御するためのプログラミングインターフェースとして機能する。
サウスバウンドAPI(SBI) はコントロール層とインフラストラクチャ層をつなぐインターフェースだ。代表的なプロトコルとして、OpenFlow、OpFlex、NETCONF、RESTCONF、SNMP、SSH/Telnetなどがある。SDNコントローラがネットワーク機器を実際に制御するための通信経路にあたる。
以下の図でSDNアーキテクチャ全体の構造を確認できる。
主要なSDNソリューションの比較
SDNの実装は大きく3つのアプローチに分類できる。
OpenFlowベースのSDN(Open SDN)
OpenFlowは、SDNの最も初期のサウスバウンドプロトコルだ。コントロールプレーンをOpenFlowコントローラに完全に集約し、OpenFlowスイッチの転送テーブルをコントローラが一括管理する。コントロールプレーンの変更度合いが最も大きく、柔軟性は高いがその分設計難易度も上がる。代表的なコントローラにはOpenDaylight SDN ControllerやCisco Open SDN Controllerがある。
Cisco ACI(データセンター向け)
Cisco ACIはデータセンター向けのSDNソリューションだ。SDNコントローラとしてAPIC(Application Policy Infrastructure Controller)を使用し、サウスバウンドAPIにはCisco独自のOpFlexを採用している。OpFlexはOpenFlowほどコントロールプレーンを集中させず、ポリシーベースでシンプルにネットワークを構築できる点が特徴だ。
ネットワークトポロジにはスパイン/リーフ構成を採用する。リーフスイッチはすべてのスパインスイッチと接続し、リーフ同士・スパイン同士は直接接続しない。この構成により、すべての通信が最大2ホップで完了する。
Cisco SD-AccessとDNA Center(エンタープライズ向け)
Cisco SD-Accessは企業ネットワーク向けのSDNソリューションで、SDNコントローラとしてCisco DNA Centerを使用する。DNA CenterはCiscoが提唱するインテントベースネットワーク(IBN)の中核であり、管理者がネットワークの「意図(インテント)」を定義すれば、具体的な機器設定をコントローラが自動生成する。
DNA Centerの主な機能は次のとおりだ。
- 設定の自動化:統一ポリシーによるネットワーク構築。個別機器へのCLI投入が不要になる
- アシュアランス:SNMP、Syslog、NetFlowなどからデータを収集し、AIや機械学習で問題を検知・分析する
- Scalable Groups:IPアドレスに依存しないSGT(Scalable Group Tag)ベースのアクセス制御をGUIで設定できる
- テンプレートエディタ:CLIテンプレートを作成・適用し、設定の一貫性を保つ
- REST API(インテントAPI):ノースバウンドAPIとしてHTTPメソッドでネットワークを制御。外部プログラムとの連携が可能
SBIとしてはTelnet/SSH/SNMPに加え、NETCONF/RESTCONFも使用する。管理対象機器はSNMP/SyslogでDNA Centerに情報を通知する。
以下のテーブルで3つのアプローチを整理する。
| 項目 | Open SDN | Cisco ACI | Cisco SD-Access |
|---|---|---|---|
| 用途 | 汎用 | データセンター | エンタープライズ |
| コントローラ | OpenDaylight等 | APIC | Cisco DNA Center |
| SBI | OpenFlow | OpFlex | CLI / SNMP / NETCONF |
| CP集中度 | ほぼ全て集中 | 一部集中 | 分散(集中管理なし) |
| トポロジ | 自由 | スパイン/リーフ | 階層型(STPなし) |
SD-Accessのアンダーレイとオーバーレイ
SD-Accessのネットワークは、物理層(アンダーレイ)と論理層(オーバーレイ)の2層構造になっている。
アンダーレイはルータやスイッチ、ケーブルで構成される物理ネットワークだ。OSPFやIS-ISといったリンクステート型のルーティングプロトコルを使用し、すべてレイヤ3で接続する。STPやRSTPは使わない。
オーバーレイはアンダーレイの上に構築される仮想ネットワークで、VXLANによるトンネリングを用いる。トンネルの宛先アドレス解決にはLISP(Locator Identity Separation Protocol)を使用する。
実務で押さえておくべきポイント
SDNの学習を進めるにあたって、次のステップが効果的だ。
まず、REST APIの基礎を押さえること。SDNコントローラの操作はほぼすべてREST API経由で行える。HTTPメソッド(GET/POST/PUT/DELETE)とJSONの読み書きができれば、DNA CenterのインテントAPIやAPICの操作を実際に試せる。
次に、自分の環境に近いソリューションから手を動かすこと。データセンター寄りならACIのスパイン/リーフ構成、企業LAN/WAN寄りならDNA CenterとSD-Accessがそれぞれの入口になる。Cisco DevNetのサンドボックス環境では、実機なしでAPI操作を試すことができる。
最後に、従来型との対比を常に意識すること。SDNが解決する課題を理解していれば、各ソリューションの設計思想の違い(OpenFlowの完全集中 vs OpFlexのポリシー分散 vs DNA Centerのインテントベース)が腹落ちしやすくなる。