ソフトウェアによってネットワーク構成を柔軟に制御する技術。
SDN(Software-Defined Networking=ソフトウェアで定義するネットワークのこと)とは、ルータやスイッチなどのネットワーク機器を、ソフトウェアからまとめて柔軟に制御する技術です。
従来のネットワークでは、機器1台ごとに人が直接ログインして設定していました。台数が増えると手間がかかり、ミスも起きやすくなります。SDNでは設定や経路の決定をソフトウェアに集約し、画面やプログラムから一括で変更できるようにします。
身近な例で考えると、オーケストラの指揮者に似ています。従来は演奏者(機器)が各自バラバラに楽譜を読んで演奏していましたが、SDNでは指揮者(ソフトウェア)が全体を見て一斉に指示を出すイメージです。上の図解で、ソフトウェアが複数の機器をまとめて操作する様子を確認してみてください。
SDNの心臓部は、ネットワークの働きを2つの「平面(プレーン)」に分けることです。平面とは「役割のまとまり」のことだと考えてください。
・制御平面(コントロールプレーン):頭脳。「どこへ送るか」という経路やルールを決める
・データ平面(データプレーン):手足。決まったルールに従い、実際にパケット(データのかたまり)を転送する
| 従来のネットワーク | SDN | |
|---|---|---|
| 頭脳と手足 | 各機器が両方を持つ | 頭脳を1か所に集約 |
| 設定方法 | 機器ごとに手作業 | ソフトウェアで一括 |
| 構成変更 | 時間がかかる | 柔軟ですばやい |
頭脳と手足を分けると、次のような利点が生まれます。
・柔軟な構成変更:機器を触らずソフトウェアの設定だけで経路を変えられる
・一元管理:ネットワーク全体を1つの画面で見渡して管理できる
・自動化しやすい:プログラムから制御できるため、混雑に応じた自動調整がしやすい
OpenFlowとは、SDNのコントローラ(制御平面)が、スイッチ(データ平面)に「このパケットはこう転送せよ」と指示を出すための代表的なプロトコルです。SDNを実現する具体的な通信規格の1つだと考えてください。
OpenFlow対応のスイッチは、フローテーブルという転送ルールの一覧を持っています。コントローラがこの表を書き換えることで、スイッチの動きを遠隔から自由に変えられます。
・条件:たとえば「あて先がAのパケット」
・動作:たとえば「ポート2へ転送する」
このように「条件 → 動作」のルールを並べておき、合致したパケットを処理します。
身近な例で考えると、郵便局の仕分けマニュアルに似ています。本部(コントローラ)が「この地域あての郵便はこのトラックへ」というマニュアル(フローテーブル)を作って各郵便局(スイッチ)に配り、現場はそのとおりに仕分けする──その配布の手順がOpenFlowにあたります。
SDNが必要になったのは、従来のネットワーク管理に限界があったからです。ネットワーク機器(ルータやスイッチ)は以前から存在していましたが、設定方法に大きな問題がありました。
従来の管理の問題点は次のとおりです。
・機器ごとに個別で設定が必要:機器1台1台にログインして手作業で設定を変える
・機器が増えるほど作業量が増える:台数が10倍になれば作業も約10倍になる
・変更に時間がかかる:組織のネットワーク構成を変えるのに数日かかることもある
特に、データセンター(=大量のサーバを置く施設)では数百〜数千台の機器を扱うため、従来の方法では管理しきれなくなりました。SDNはこの問題を「制御を1か所に集める」という発想で解決します。ソフトウェアを使えば変更は数分で全機器に反映できるようになります。
SDNとよく一緒に出てくる言葉がNFV(Network Functions Virtualization=ネットワーク機能の仮想化のこと)です。この2つは似ているようで役割が違います。
2つの違いを簡単に整理すると次のとおりです。
・SDN:「どこへデータを送るか(経路・制御)」をソフトウェアで集中管理する仕組み
・NFV:「ルータやファイアウォール(=通信を守る機器)など機器の機能そのもの」を、専用のハードウェアではなく普通のサーバ上のソフトウェアで動かす仕組み
身近な例で考えると、SDNは「交通整理をソフトで行う」こと、NFVは「物理的な道路標識を、画面の表示に置き換える」ことに似ています。両方組み合わせることで、ネットワーク全体をよりソフトウェアで自由に管理できるようになります。どちらも「ハードウェアへの依存をなくし、ソフトウェアで柔軟に」という同じ方向を目指しています。