ソフトウェア定義ネットワーク(SDN):歴史、アーキテクチャ、および用途

最終更新: 月3 2026
  • SDNは制御プレーンとデータプレーンを分離することで、OpenFlowなどのオープンコントローラやAPIを使用してネットワークをプログラミングすることを可能にする。
  • ソフトウェア定義ネットワークは、従来のネットワークと比較して、管理を簡素化し、可視性と拡張性を向上させ、設備投資(CAPEX)と運用コスト(OPEX)を削減します。
  • そのアーキテクチャは、SDNアプリケーション、集中型ロジックコントローラ、およびプログラマブルデータパスに基づいており、南北インターフェースによって調整される。
  • ONFをはじめとする関係機関は、企業WAN、データセンター、クラウド、ビッグデータ、IoTを網羅する標準規格と実世界でのユースケースを推進している。

ソフトウェア定義ネットワーク

ソフトウェア定義ネットワーク(SDN)は、通信インフラの設計、展開、管理方法を根本的に変えました。かつては物理機器と手動設定による厳格な枠組みだったものが、今ではコードのように管理できるようになり、ネットワークのあらゆる場所で何が起こっているかを、より高速かつ柔軟に、そしてより明確に把握できるようになりました。

この新しいアプローチは突如として現れたものではありません。 90年代のアクティブネットワークからOpenFlowの標準化、そしてコントローラー、API、アプリケーションからなる完全なエコシステムの構築に至るまで、数十年にわたる研究と数々の技術的マイルストーンの成果です。ここでは、どのようにしてこの状況に至ったのか、SDNがどのような問題を解決するのか、内部的にどのように動作するのか、そして現在どのような実世界で活用されているのかを、段階的に見ていきましょう。

ソフトウェア定義ネットワーク(SDN)の起源と歴史

SDNの物語は、約20年前、商用インターネットの黎明期に始まります。グローバルネットワークの成功により、通信インフラはより容易に変更・進化できる必要があることが明らかになりました。それ以来、現在私たちがSDNと呼んでいるものへの道を開く3つの主要な段階が区別できます。

最初の段階は、アクティブネットワーク(概ね1995年~2000年)に相当します。その目的は、PCのプログラミングと同様に、ネットワークをプログラミング可能にすることでしたが、これは各通信ノードに適用されます。これを実現するために、ネットワークデバイスにAPIが定義され、コンピューティング能力、ストレージ、パケットキュー、処理機能など​​のリソースが公開されました。これにより、特定のトラフィックフローにカスタム動作を適用するコードをロードすることが可能になりました。

このアプローチは、インターネットが拡張性と機能性を維持する唯一の方法はネットワークを可能な限りシンプルに保つことだと主張する人々の見解と衝突した。それでもなお、積極的なネットワーク構築プログラムは、計算コストの削減、プログラミング言語の改良、仮想マシンの台頭、そして何よりも、ネットワークを単なる閉じた箱の集合体ではなく、プログラム可能なプラットフォームとして扱うことができるという考え方など、重要な進歩を促した。

その時代の重要な触媒となったのは、DARPAなどの機関による支援であり、彼らは90年代半ばから2000年代初頭にかけてアクティブネットワークプログラムを立ち上げた。アクティブネットワークは大規模な展開には至らなかったものの、後にSDNの基礎となる概念、すなわちネットワークにおけるプログラマブル機能、リソース仮想化、そして様々なデバイス(ファイアウォール、IDS、NATなど)の統合ビューといった概念の種を蒔いた。

1980年代に入り、トラフィックが爆発的に増加したことで、制御プレーンとデータプレーンの分離に重点を置いた第2段階が始まりました(2001年~2007年)。従来のルーターやスイッチは、制御ロジック(経路選択、ルーティングプロトコル)とデータプレーン(実際のパケット転送)を同じデバイスに統合していたため、エラーのデバッグ、トラフィックエンジニアリングの調整、新しいサービスの導入が非常に困難でした。

この状況に対処するため、通信事業者は専用ハードウェア上でパケット転送の実装を開始し、制御はより独立したまま維持しました。同時に、VPNなどのサービスやその他の高度な機能を備えた、ますます大規模で複雑なネットワークを管理する方法を模索しました。ここから2つのイノベーションの流れが生まれました。1つは、ForCES(IETF)やLinux上のNetlinkのように、制御と転送間のオープンなインターフェースです。もう1つは、RCP、SoftRouter、PCEプロトコルのように、全体的な視点からルーティングの決定を行うことができる、集中型の論理制御を備えたアーキテクチャです。

第3段階は、 Project 4Dとその後のEthaneによって実現しました。これは、データ(ルールに従ったパケット処理)、検出(トポロジー情報とトラフィック情報の収集)、配信(処理ルールのインストール)、決定(グローバルポリシーを具体的なルールに変換)という4つの明確に定義されたプレーンを持つ中央ロジックコントローラの概念を具体化したものです。スタンフォード大学などの実環境で展開されたEthaneは、現在OpenFlowとして知られるものの基礎となる、非常にシンプルなスイッチ設計を提供しました。

一方、実験エコシステムも発展を遂げていました。PlanetLabやEmulabといったインフラストラクチャ、GENIや欧州のFIREプログラムなどのプロジェクト、そしてスタンフォード大学のClean Slateプログラムなどが、代替ネットワークアーキテクチャの大規模なテストを促進しました。このような環境の中で、OpenFlowは、標準APIを使用してスイッチの転送機能を外部コントローラに公開する実用的な方法として登場しました。

業界における重要なマイルストーンとなったのは、 Avayaが2014年に行ったデモンストレーションでした。これは、最短経路ブリッジングとOpenStackを組み合わせることで、最小限の手動設定でソフトウェア定義ネットワークを構築するというものでした。そして、ファームウェアの簡単なアップデートのおかげで、多くの商用スイッチがハードウェアの変更を必要とせずにOpenFlowをサポートするようになりました。

SDNが解決する従来型ネットワークの問題点

従来型のネットワークは、ほぼ完全に個別に構成された物理機器に基づいており、企業、サービスプロバイダー、エンドユーザーからの現在のニーズに直面すると、限界に達しつつあります。その最大の弱点は、長年にわたって蓄積された複雑さです。

あらゆるシナリオに対応するため、業界では特定の課題(セキュリティ、効率性、冗長性など)を解決する、より具体的なネットワークプロトコルが次々と追加されてきたが、これらは通常、個別に設計されている。その結果、全体を簡素化する共通の抽象化レイヤーがないため、手動で調整しなければならない複雑なメカニズムの網が構築されてしまう。

  企業向け統合型ビデオセキュリティソリューション

組織がネットワーク全体で一貫したポリシーを適用したい場合(例えば、どのユーザーがどのリソースにアクセスできるかを決定する場合)、管理者は数百、数千ものデバイスを変更しなければなりません。新しい仮想マシンを追加するような単純な作業でも、環境全体に散在する多数のアクセス制御リスト(ACL)の変更が必要となり、人為的なミスや数時間の遅延のリスクが生じます。

拡張性の欠如もまた深刻な問題です。データセンターの増加、ユーザー数の増加、トラフィックの増大に伴い、デバイスの追加がますます必要になります。機器が増えるごとに、設定や管理の手間が増え、潜在的な障害点も増加します。これらすべてをビジネスニーズに合致させることは、非常に困難な作業となります。

経済的な観点から見ると、組織はメーカーの製品サイクルに大きく依存しているという問題を抱えています。新しいネットワーク機能が必要な場合、単にソフトウェアを更新するだけでは不十分なことが多く、ベンダーが適切なモデルをリリースし、社内認証が完了し、機器が調達され、導入されるまで待たなければなりません。このプロセスには何年もかかり、イノベーションを阻害する可能性があります。

さらに事態を悪化させているのは、近年の傾向が状況を一層複雑にしている点だ。マシン間通信、分散データベース、マイクロサービス、そして携帯電話、タブレット、ノートパソコンなどあらゆるデバイスから接続するユーザーなど、非常に多様なトラフィックパターンが出現している。従来のネットワーク境界が事実上消滅しつつある中で、管理者は機密データを保護しようと奮闘しており、その作業負荷は増大している。

これに加えて、クラウドサービス(SaaS、IaaS、PaaS)の普及が進んでおり、迅速なプロビジョニング、コンピューティング、ストレージ、ネットワークの動的なスケーリング、そしてより高度なセキュリティ要件が求められています。ビッグデータの台頭は、数千台のサーバーにわたる膨大な帯域幅と伝送容量を必要としますが、従来のネットワークでは必ずしも対応できるとは限りません。

SDNとは一体何なのか、そしてそれはどのように問題を解決するのか?

SDNは、ネットワークに柔軟性、集中制御、プログラマビリティを提供するように設計された新しいアーキテクチャとして登場し、複雑さをハードウェアから取り除き、ソフトウェアへと移行させます。もはや個々のデバイスを管理するのではなく、より上位の論理レイヤーから望ましいネットワーク動作を定義することが重要になります。

重要な原則は、制御プレーンとデータプレーンの分離です。データプレーンはエンドポイント間でパケットを高速に転送する役割を担い、制御プレーンはポリシー、ルーティング、ルールを適用して、パケットがどのように、どこを通過するかを決定します。SDNでは、これらのプレーンは分離され、制御は1つまたは複数の論理コントローラに集中されます。

両者の間には、通常OpenFlowのような標準プロトコルを介して、明確に定義されたインターフェースが確立されます。このインターフェースのおかげで、コントローラはスイッチやルータに転送ルールをインストール、変更、または削除することができ、スイッチやルータは閉鎖的なシステムではなく、プログラム可能なデバイスとして動作します。OpenFlowは唯一のプロトコルではありませんが、最も広く普及しており、事実上の標準となっています。

コントローラの上位層では、SDNアプリケーションはノースバウンドAPIを使用して、ネットワークに求める動作(特定のトラフィックの優先順位付け、部門のセグメンテーション、負荷分散、サービス品質の向上、サービス拒否攻撃への対応など)を表現します。コントローラは、これらの高レベルの要求を、データプレーンで適用される具体的な転送ルールに変換します。

言い換えれば、SDNはネットワークをプラットフォームへと変革し、各機器モデルや低レベルプロトコルの詳細を気にすることなく、アプリケーションやサービスを純粋なソフトウェアのように開発できるようにします。この抽象化により、自動化が容易になり、エラーが削減され、需要の変化への対応がはるかに迅速になります。

SDNアーキテクチャ:コントローラ、API、および主要コンポーネント

一般的なSDNネットワークは、複数の論理層と明確に区​​別されたコンポーネントで構成されています。その中心となるのはSDNコントローラであり、ネットワークの頭脳として機能し、データプレーンから情報を収集してアプリケーションの判断を実行します。

コントローラは、ネットワークのトポロジー、各デバイスの機能、トラフィック統計、リンク状態など、ネットワークの抽象的なビューを維持します。この情報に基づき、有効化または無効化可能なプラグインモジュール(インベントリ管理、統計収集、セキュリティモジュール、負荷分散など)を利用して意思決定を行い、その結果を南向きAPI(通常はOpenFlow、またはOVSDBやCisco OpFlexなどのプロトコル)を介してデバイスに伝達します。

データプレーンデバイス(物理スイッチ、仮想スイッチ、ルーター)は、ONFがSDNデータパスと呼ぶものを実装します。これは、論理的に公開された一連の転送エンジンとトラフィック処理機能です。各データパス内には、コントローラから指示を受け取り、それをフローテーブルのルールまたは特定のハードウェアアクションに変換する制御インターフェース処理エージェント(CDPIエージェント)があります。

アーキテクチャの最上位にはSDNアプリケーションがあります。これらは、ノースバウンドAPI(NBI)を介してコントローラと通信し、IPアドレス管理(IPAM)、サービスオーケストレーション、サービス品質(QoS)制御、DoS攻撃防御システム、高度な分析ツールなど、ビジネス上または技術的なニーズを表現するプログラムです。各アプリケーションは独自のロジックと、コントローラとやり取りするための1つ以上のNBIを備えています。

これらのブロックの間には、制御・データプレーンインターフェース(CDPI)が配置されており、転送のプログラマビリティの提供、デバイス機能の通知、統計情報の公開、イベントの通知といった役割を担っています。コントローラはこのインターフェース用のドライバを実装し、デバイスはエージェントを実装するため、ドライバとエージェントのペアごとに、物理インフラストラクチャとアプリケーション間の特定の関係が確立されます。

ONFは、これら3つの主要なレイヤーに加えて、より静的なタスク(クライアントへのリソース割り当て、物理機器の基本構成、認証情報管理、論理エンティティと物理エンティティ間の関連付けなど)をカバーする管理・運用レイヤーを定義しています。これらのタスクは通常、動的なトラフィック制御サイクルとは別に管理されます。

  イーサネットポート完全ガイド:種類、規格、動作

南北インターフェース、およびフロープログラミングモデル

サウスバウンドAPIは、コントローラをハードウェアまたはデータパスに接続します。OpenFlowは最初に広く採用されたインターフェースであり、コントローラがスイッチのフローテーブルにエントリをインストールする方法、統計情報を収集する方法、パケットの不一致などのイベントを報告する方法などを定義します。Cisco OpFlexなどの他の代替案は、異なるモデルを提案していますが、中央要素がデバイスの動作に影響を与えるという基本的な考え方は同じです。

北向きAPIを使用すると、アプリケーションはコントローラと通信し、ネットワークの抽象的なビューを取得できます。OpenFlowのような確立された標準は存在せず、スタックのさまざまなレイヤー(REST、gRPC、特定のSDK、インテントベースモデルなど)に多くの提案やライブラリが存在します。ONFがベストプラクティスの定義と互換性のあるアプローチへの収束に重点を置いているのは、まさにこの多様性があるからです。

運用レベルでは、コントローラは、デバイス上でフロー規則を実装するために、プロアクティブ、リアクティブ、またはハイブリッドモデルのいずれかを採用できます。リアクティブ方式では、スイッチは、テーブル内のエントリに一致しないパケットを受信すると、コントローラに問い合わせます。コントローラは指示を返信し、必要に応じて、今後同様のパケットを受信するための新しい規則を作成します。

プロアクティブモデルでは、コントローラは従来のルーティングテーブルと同様に、想定されるトラフィックフローに対するルールを事前にインストールします。これにより、リアルタイムクエリが最小限に抑えられ、初期通信の遅延が軽減されます。実際の多くの導入事例では、予測不可能なトラフィックに対してはリアクティブに、既知のフローに対してはプロアクティブに、両方のモデルを組み合わせて運用しています。

SDNの真の強みは、これらのオープンAPIによって提供されるプログラマビリティにあります。これらのAPIのおかげで、負荷に基づいてルートを動的に調整したり、重要なトラフィックを優先したり、障害やセキュリティインシデントへの対応を自動化したり、さらにはアプリケーション自身がネットワークと必要な条件(帯域幅、最大遅延、冗長レベルなど)を交渉したりすることが可能になります。

SDNにおけるプログラマビリティのユースケース

ネットワークのプログラマビリティという概念を説明するために、SDNが実際にどのように活用されているかを示す3つの主要なユースケースがよく議論されます。1つ目は、トラフィックフローの微調整です。OpenFlowのようなプロトコルを使用すると、コントローラはほぼリアルタイムで、特定の種類のトラフィックがどのパスをたどるべきかを決定し、リンク間の負荷を分散したり、輻輳を回避したり、必要に応じてより厳格なセキュリティポリシーを適用したりできます。

2つ目の大きな利点は、高度なアプリケーションサポートにあります。ネットワークがアプリケーションの動作を把握できないのではなく、アプリケーションは要件(例えば、音声やビデオの低遅延、特定の転送における高帯域幅、クライアント間の厳密な分離など)を公開し、コントローラはそれらの要件を満たすように構成を調整します。さらに、特にクラウドや大規模仮想化環境における自動展開により、管理者がパラメータを手動で変更することなく、新しいサービスを迅速に展開できます。

3つ目の重要な要素は、ネットワーク運用の自動化です。適切に設計されたSDNシナリオでは、ネットワークは多くのイベントに自律的に対応できます。例えば、リンク障害が発生した場合は経路が再計算され、不審なトラフィックパターンが現れた場合はブロックルールが適用されたり、分析システムにリダイレクトされたりします。また、新しいアプリケーションが起動された場合は、ネットワークが自動的にリソースを割り当てます。管理者の役割は、単に「コマンドを変更する」ことから、高レベルのポリシーを定義し、その遵守を確保することへと変化します。

組織にとってのSDNの利点

SDNの価値提案は、企業やサービスプロバイダーにとって非常に明確なメリットをもたらします。中でも特筆すべきは、集中管理です。コントローラーから、アクセス ポリシー、セキュリティ ルール、トラフィックの優先順位、サービス プロビジョニングをネットワーク全体で定義できるため、個々のデバイスを個別に管理したり、各メーカー固有のインターフェースに依存したりする必要がありません。

拡張性という点において、SDNは驚異的な俊敏性を提供します。管理者は、仮想アプライアンスの追加や削除、ネットワークのセグメント化、支店やデータセンターの接続、ルートの調整などをほぼリアルタイムで行うことができ、多くの場合、クラウドオーケストレーションプラットフォームと統合されています。これらすべては、基盤となる物理インフラストラクチャへの影響を最小限に抑えながら実現され、物理インフラストラクチャは比較的安定した状態を維持します。

もう一つの重要な利点は、ネットワークの動作を包括的に可視化できることです。コントローラまたは協調コントローラのドメインに情報を集中させることで、パフォーマンス、ボトルネック、アクティブなフロー、潜在的な脅威に関する全体像を把握できます。この可視化は、日々の運用だけでなく、キャパシティプランニングや問題の早期発見にも役立ちます。

経済的な観点から見ると、SDNは設備投資(CAPEX)と運用コスト(OPEX)の両方を削減するのに役立ちます。一方では、多くのスイッチが簡単なファームウェアアップデートでSDN機能を有効にできるため、既存のハードウェアの多くを再利用できます。他方では、自動化によって、スタッフが反復的な設定作業に費やす時間が減り、人的ミスが削減され、保守とアップグレードが簡素化されます。

最後に挙げる大きなメリットは、イノベーションと迅速な対応に関するものです。ハードウェアとソフトウェアを分離することで、組織は特定のメーカーの製品発売スケジュールに縛られることなく、新しいサービスを開発したり、さまざまなビジネスモデルを試したり、ネットワークを新しい要件(ハイブリッドクラウド、IoT、エッジコンピューティング、ビッグデータなど)に適応させたりすることができます。

SDNネットワークの欠点と課題

SDNは万能薬ではなく、こうしたネットワークの設計と運用において留意すべき課題も伴います。最もよく指摘される課題の一つは、コントローラの潜在的な脆弱性です。コントローラは多くのロジックと意思決定を集中させるため、その故障や侵害によってシステム全体がダウンする可能性のある重要なポイントとなります。

  ルーターとWiFiアクセスポイントを分析するための完全ガイド

そのためには、高可用性、冗長性、フェイルオーバー機構の導入に加え、非常に厳格なアクセス制御が必要となります。例えば、コントローラに対するサービス拒否(DDoS)攻撃は、ネットワークが重大なイベントを見逃してしまう事態を防ぐため、十分な容量で軽減する必要があります。

もう一つの課題は、デバイス数とフロー数の増加に伴い、レイテンシと複雑さが増大する可能性があることです。コントローラがデータプレーンとのやり取りを過剰に処理しなければならない場合、過負荷状態になる可能性があります。適切に設計されたSDNアーキテクチャは、機能を分散し、必要に応じて(例えば、ローカル障害からの迅速な復旧のため)分散要素の制御を維持し、コントローラを水平方向に拡張できる必要があります。

セキュリティ面では、SDNは可視性を向上させる一方で、従来のルーター、スイッチ、物理ファイアウォールに統合されていた一部のメカニズムが欠けています。コントローラー、アプリケーション、デバイス間の通信を保護し、認証と完全性を確保し、ポリシーが意図どおりに適用されていることを検証できる堅牢なポリシー環境を設計することが不可欠です。

さらに、ネットワークフォレンジックのためのプロセスを確立することが極めて重要です。詳細なイベントログ記録、変更履歴の追跡、そしてインシデント発生時に何が起こったかを再現できる能力が必要です。これらすべては、SDN本来のダイナミズムと共存し、セキュリティがボトルネックとなることを防ぎつつ、脆弱性が残らないようにする必要があります。

SDNエコシステムにおけるONFおよびその他の関係者の役割

オープン・ネットワーキング・ファウンデーション(ONF)は、SDNの進化において極めて重要な役割を担っています。ONFは、エンドユーザー(通信事業者、大企業)主導の組織であり、オープンスタンダードと協調的なプロセスを通じてソフトウェア定義ネットワークの普及を促進することを目的としています。

ONFは、最初に認知されたSDN標準であり、多くのアーキテクチャの中核要素であり続けるOpenFlow標準の定義、維持、進化を担ってきました。しかし、その活動はそれだけにとどまりません。商用展開の要件を分析し、新しいインターフェース、データモデル、用語を提案し、マルチベンダーのエコシステムを育成するワーキンググループを主導しています。

並行して、テクノロジー企業や機器メーカーは独自のSDNプラットフォームやハイブリッドアプローチを開発してきた。CienaのBlue Planetのような論理的に集中化されたコントローラに基づくソリューションなど、一部のソリューションは、集中型機能(エンドツーエンドの可視性、ポリシー、帯域幅)と、障害復旧、ローカル監視、セキュリティなどのためのネットワーク要素全体にわたる分散機能を組み合わせている。

このハイブリッド方式は、現実的な状況を反映している。つまり、すべての制御を中央制御装置に委ねる必要はなく、より複雑なインテリジェンスやオーケストレーションを集中管理し、プログラム可能な方法で実施する一方で、特定の迅速な対応メカニズムはトラフィックの近くに維持する方が都合が良いということである。

SDN、ネットワーク仮想化、および実際のユースケース

多くの組織では、SDNはネットワーク仮想化技術と組み合わせて採用され、既存の物理インフラストラクチャ上にオーバーレイネットワークを構築します。これらの仮想ネットワークは、同じ基盤となるハードウェアを活用することで、異なる環境(本番環境、開発環境、顧客別など)をセグメント化したり、複数の物理ネットワークをあたかも単一の論理エンティティであるかのように相互接続したりすることができます。

このアプローチは、SaaS、IaaS、PaaSなどのクラウドコンピューティングサービスと統合した場合に特に効果を発揮します。ソフトウェア定義ネットワークはオーケストレーションプラットフォームと連携し、仮想マシン、ストレージ、ネットワーク、セキュリティといったプロビジョニングサイクル全体を、多くの場合APIを介して、一貫性、迅速性、自動性を確保しながら実行します。

大企業や通信事業者では、SDNはよりスマートな企業WANの構築に活用されており、本社、データセンター、パブリッククラウド間のトラフィックがきめ細かく管理されています。例えば、Googleは長年にわたりSDNを用いてグローバルデータセンターを相互接続しており、ONFと協力してOpenFlowを超える新たな制御インターフェースの定義にも取り組んでいます。

データセンター環境において、SDNは迅速かつ効率的なスケーリングを実現するための重要な要素です。これにより、新しいデータセンターを数時間で稼働させ、ネットワークリソースを数分でプロビジョニングすることが可能になります。また、大規模なIoT環境の展開を容易にし、数千もの分散デバイスやセンサーを複雑な操作なしに管理できます。

最後に、SDNはソフトウェア定義インフラストラクチャへのより広範なトレンドの一部であり、ネットワークだけでなくストレージ(SDS)やその他のリソースも、特定のハードウェアとは独立した論理制御プレーンから制御されます。これにより、組織はより高い移植性、俊敏性を得ることができ、必要に応じてワークロードをクラウドとオンプレミス間で移動できるようになります。

こうした歴史的、技術的、実践的な背景を踏まえ、SDNはネットワークを理解する新たな方法として定着しつつあります。ソフトウェアの世界により近く、自動化とプログラマビリティに重点を置き、ハードウェアや運用上の複雑さを際限なく増大させることなく、トラフィックの増加、クラウド、ビッグデータ、IoTといった課題に対応できる能力を備えています。

ネットワークパフォーマンス分析
関連記事:
ネットワークパフォーマンス分析:動作、指標、およびツール