ソフトウェア定義ネットワーク
ソフトウェア定義ネットワーク( ソフトウェア・デファインド・ネットワーキング、SDN)テクノロジーは、大規模なネットワークを設計・構築・運用する際に、ネットワーク間に中継する通信機器やネットワークデバイスの転送判断を中央のサーバーからソフトウェアでプログラミングする手法。
ネットワークのパフォーマンスと監視を改善して従来のネットワーク管理よりもクラウドコンピューティングのようにするために、動的でプログラム的に効率的なネットワーク構成を可能にするネットワーク管理へのアプローチである。  データ転送と経路制御の機能を論理的に分離し、ソフトウェア制御による動的で柔軟なネットワークを作り上げる技術全般を指す。
Wi-Fiなどの一部の技術分野とは異なり、SDNの開発を担当する単一の標準化団体はない。
コントローラと呼ばれるマシンで動作する制御用ソフトウェアにより、データプレーンを制御する技術のことである。2008年にカリフォルニア大学バークレー校とスタンフォード大学で研究が開始された。SDNは制御プレーンからデータプレーンへのコミュニケーションを必要とし、その通信プロトコルの一つとしてはOpen Flowが存在する。現在は、Open Networking FoundationによってOpenFlow規格の策定とSDNの推進が進められている。
SDNは、従来のネットワークの静的アーキテクチャが分散型で複雑であるのに対し、現在のネットワークにはより柔軟性があり、トラブルシューティングが容易であるという事実に対処することを目的としている。 SDNは、ルーティングプロセス(制御プレーン)からネットワークパケット (データプレーン)の転送プロセスの関連付けを解除することにより、ネットワークインテリジェンスを1つのネットワークコンポーネントに集中させようとする 。 制御プレーンは、インテリジェンス全体が組み込まれているSDNネットワークの頭脳と見なされる1つ以上のコントローラーで構成される。 ただし、セキュリティ、 スケーラビリティ、弾力性に関しては、インテリジェントな集中化には固有の欠点があり、これがSDNの主要な問題である。一般的なSDNコントローラは、ノースバウンドとサウスバウンドインターフェースに加えて、他のSDNコントローラや他のネットワークとの通信を可能にするイースト/ウエストバウンドインターフェースを持っている。データ転送と処理と制御サポートは、リソース層のサブレイヤーである。抽象化、オーケストレーション、およびアプリケーションのサポートは、SDN制御レイヤーのサブレイヤーである。
SDNは、2011年の登場以来、一般にOpenFlowプロトコルに関連付けられていた( ネットワークスイッチ間のネットワークパケットのパスを決定するためのネットワークプレーンエレメントとのリモート通信用 )。 しかし、2012年以来 多くの企業のためのOpenFlowは、彼らが独自の技術を追加し、もはや排他的なソリューションではない。 これには、 シスコシステムズのオープンネットワーク環境とニシラのネットワーク仮想化プラットフォームが含まれる 。
SD-WANは同様の技術を広域ネットワーク (WAN)に適用する。
SDNテクノロジーは現在、非常に高速なフェイルオーバーを必要とする産業用制御アプリケーションで利用できる。 1つの企業は、従来のネットワーク管理スイッチに関連する特定のサイバー脆弱性の排除とともに、ミッションクリティカルプロセスの100倍の高速フェイルオーバー(従来のネットワークの10ミリ秒と比較して100μsでフェイルオーバー)を誇っている。
vSDNEmul、  EstiNet、  Mininet など、多くのエミュレータが研究目的で開発されているため、SDNの研究は続いている 。
SDNデータプレーンは、SDN制御プレーンの決定に従って、ネットワーク転送装置がデータの転送や処理を行う場所である。
制御サポート機能は、SDN制御レイヤと相互作用し、リソース制御インターフェースを介してプログラマビリティをサポートする。
データ転送機能は、他のネットワークデバイスやエンドシステムから受信したデータフローを受け取り、SDNアプリケーションで定義されたルールに従って計算・確立されたデータ転送パスに沿って転送する。
SDNの原理の歴史は、このアーキテクチャがデータネットワークで使用されるようになる前に、プロビジョニングと管理を簡素化する方法として、公衆交換電話網で最初に使用された制御プレーンとデータプレーンの分離に遡ることができる。
インターネット技術特別調査委員会(IETF)は、2004年に公開された "Forwarding and Control Element Separation"(ForCES)という適切なインターフェイス標準の制御機能と転送機能を分離するさまざまな方法を検討し始めた。  ForCESワーキンググループは、コンパニオンSoftRouterアーキテクチャも提案した。  データから制御を分離することを追求したIETFの初期の追加標準には、IPサービスプロトコルとしてのLinux Netlink とパス計算要素(PCE)ベースのアーキテクチャが含まれる。
これらの初期の試みは、2つの理由で牽引力を得られなかった。 1つは、インターネットコミュニティの多くが、特に制御プレーンで障害が発生する可能性があるため、データからコントロールを分離することはリスクがあると考えていたことである。 2つ目は、制御プレーンとデータプレーンの間に標準のアプリケーションプログラミングインターフェイス(API)を作成すると競争が激化することをベンダーが懸念していたことである。
分割制御/データプレーンアーキテクチャでのオープンソースソフトウェアの使用は、スタンフォード大学のコンピューターサイエンス部門のエタンプロジェクトにそのルーツをたどる。 エタンのシンプルなスイッチ設計により、OpenFlowが誕生した。  OpenFlowのAPIは、2008年に最初に作成された。  その同じ年に、ネットワークのオペレーティングシステムであるNOXが作成された。
複数のキャンパスを接続するためのバックボーンとしてのWAN全体だけでなく、単一のキャンパスネットワークでのプロトコルの使用を評価するためのテストベッドの作成を含め、OpenFlowでの作業はスタンフォードでも継続された。  アカデミックな環境では、 NECとHewlett-Packardの OpenFlowスイッチに基づくいくつかの研究および生産ネットワークがあった。また、2009年頃から、 Quanta Computerのホワイトボックスに基づいている。
アカデミアを超えて、最初の展開は2010年にNiciraによって、NTTおよびGoogleと共同開発したOnixからのOVSを制御することだった。 注目すべき展開は、2012年のGoogleのB4展開だった。   その後、Googleは、データセンターにOnixを導入した最初のOpenFlowを同時に認めた。  もう1つの既知の大規模な展開は、 China Mobileである。
2014 Interop and Tech Field Dayでは、ソフトウェアデファインドネットワーキングがAvayaによって最短パスブリッジング( IEEE 802.1aq )とOpenStackを自動化キャンパスとして使用し、データセンターからエンドデバイスに自動化を拡張し、サービス提供から手動プロビジョニングを排除することで実証された。
SDNアーキテクチャはネットワーク制御と転送機能を分離し、ネットワーク制御を直接プログラム可能にして、基盤となるインフラストラクチャをアプリケーションとネットワークサービスから抽象化できるようにする。
OpenFlowプロトコルは、SDNテクノロジーで使用できる。 SDNアーキテクチャは次のとおりである。
直接プログラム可能 :転送機能から切り離されているため、ネットワーク制御は直接プログラム可能である。
アジャイル :転送から制御を抽象化すると、管理者はネットワーク全体のトラフィックフローを動的に調整して、変化するニーズに対応できる。
集中管理 :ネットワークインテリジェンスは、ソフトウェアベースのSDNコントローラーに(論理的に)集中化され、ネットワークのグローバルビューを維持する。これは、アプリケーションとポリシーエンジンからは単一の論理スイッチとして認識される。
プログラムで構成 :SDNを使用すると、ネットワーク管理者は動的な自動SDNプログラムを介してネットワークリソースを非常に迅速に構成、管理、保護、および最適化できる。
オープンスタンダードベースでベンダーニュートラル :SDNはオープンスタンダードを通じて実装されると、複数のベンダー固有のデバイスやプロトコルではなくSDNコントローラーによって命令が提供されるため、ネットワークの設計と運用が簡素化される。
モバイルデバイスとコンテンツの急増、サーバーの仮想化、およびクラウドサービスの出現は、ネットワーキング業界が従来のネットワークアーキテクチャを再検討する傾向にあるトレンドの1つである。  多くの従来のネットワークは階層型であり、ツリー構造に配置されたイーサネットスイッチの層で構築されている。 この設計は、クライアントサーバーコンピューティングが主流だったときに意味をなしたが、このような静的アーキテクチャは、今日のエンタープライズデータセンター、キャンパス、およびキャリア環境の動的コンピューティングとストレージのニーズには適していない。
Open Networking Foundation(ONF)は、従来のコンピュータや機械をつないだネットワーク構造の4つの一般的な制限を挙げている:外部ソフトからの操作が許可されて複雑、一貫性のないポリシー、スケーリングできないこと、情報通信企業依存。今後の時代はネットワークを仮想化し、抽象的に考える時代である。つまり、時間の経過とともに、ネットワーク仮想化(NFV)とソフトウェア定義ネットワーク(SDN)は緊密に相互運用され、ネットワーク機器とネットワークベースのリソースを抽象化してプログラムで制御するための幅広い統合ソフトウェアベースのネットワーキングアプローチを提供することになる。
新しいネットワークパラダイムの必要性を推進する主要なコンピューティングトレンドには、次のものがある。
エンタープライズデータセンター内では、トラフィックパターンが大幅に変化している。 通信の大部分が1つのクライアントと1つのサーバー間で発生するクライアントサーバーアプリケーションとは対照的に、今日のアプリケーションはさまざまなデータベースとサーバーにアクセスし、データを最後に返す前に一連の「東西」のマシン間トラフィックを発生させる。クラシックな「南北」のトラフィックパターンのユーザーデバイス。 同時に、ユーザーは、あらゆる種類のデバイス(自分のデバイスを含む)から企業のコンテンツやアプリケーションへのアクセスを要求し、いつでもどこからでも接続することで、ネットワークトラフィックのパターンを変えている。 最後に、多くのエンタープライズデータセンターマネージャーは、プライベートクラウド、パブリッククラウド、またはその両方の組み合わせを含むユーティリティコンピューティングモデルを検討しており、ワイドエリアネットワーク全体のトラフィックが増加する。
「ITの消費」
ユーザーは企業のネットワークにアクセスするためにスマートフォン、タブレット、ノートブックなどのモバイルパーソナルデバイスをますます採用している。 ITは、企業データと知的財産を保護し、コンプライアンス要件を満たす一方で、これらの個人用デバイスをきめ細かく対応する必要がある。
企業はパブリッククラウドサービスとプライベートクラウドサービスの両方を熱心に採用しており、これらのサービスの前例のない成長をもたらしている。 エンタープライズビジネスユニットは、アプリケーションやインフラストラクチャ、その他のITリソースにオンデマンドでアラカルトでアクセスする俊敏性を求めている。 複雑さを増すために、ITのクラウドサービスの計画は、セキュリティ、コンプライアンス、監査の要件が強化された環境で、ビジネスの再編成、統合、および一夜で想定を変更する可能性のある合併とともに行われる必要がありる。 プライベートクラウドでもパブリッククラウドでも、セルフサービスプロビジョニングを提供するには、理想的には共通の観点から、共通のツールスイートを使用して、コンピューティング、ストレージ、およびネットワークリソースの柔軟なスケーリングが必要である。
「ビッグデータ」はより広い帯域幅を意味する
今日の「ビッグデータ」またはメガデータセットを処理するには、何千ものサーバー上で大規模な並列処理が必要であり、それらすべてが相互に直接接続する必要がある。 巨大なデータセットの台頭により、データセンターでのネットワーク容量の追加が常に求められている。 ハイパースケールデータセンターネットワークのオペレーターは、ネットワークを以前には想像もできなかったサイズにスケーリングし、破損することなく多対多の接続を維持するという困難な作業に直面している。
Open Data Center Alliance (ODCA) は、以下のような便利で簡潔な要件を提供している[ODCA14]:
ネットワークは、アプリケーションのニーズ、ビジネスポリシー、およびネットワークの状態に基づいて、動的に調整および対応しなければならない。
ポリシーの変更が自動的に伝達されることで、手作業やエラーを減らすことができること。
新機能の導入(ソフトウェアのアップグレードやパッチ)は、業務の中断を最小限に抑えながらシームレスに行われなければならない。
ネットワーク管理ソフトウェアは、個々のネットワーク要素を再構成して概念的な変更を行うのではなく モデル管理:ネットワーク管理ソフトウェアは、個々のネットワーク要素を再構成して概念的な変更を行うのではなく、モデルレベルでネットワークを管理できる必要がある。
制御機能は、モバイル・ユーザー・デバイスや仮想サーバーなどのモビリティに対応する必要がある。
ネットワークアプリケーションは、アドオンソリューションとしてではなく、コアサービスとしてシームレスなセキュリティを統合する必要がある。
オンデマンド・スケーリング
オンデマンドの要求に応じて、ネットワークとそのサービスを拡大・縮小できること。
次のリストは、アーキテクチャコンポーネントを定義および説明している:
SDNアプリケーションは、 ノースバウンドインターフェース (NBI)を介して、ネットワーク要件と望ましいネットワーク動作を明示的、直接的、およびプログラム的にSDNコントローラーに伝達するプログラムである。 さらに、内部の意思決定のために、ネットワークの抽象化されたビューを使用する場合がある。 SDNアプリケーションは、1つのSDNアプリケーションロジックと1つ以上のNBIドライバーで構成される。 SDNアプリケーション自体が、抽象化されたネットワーク制御の別のレイヤーを公開し、それぞれのNBIエージェントを通じて1つ以上の高レベルのNBIを提供する場合がある。SDNアプリケーションレイヤーは、コントロールレイヤーサービス要求を特定のコマンドとディレクティブにデータプレーンスイッチにマップし、アプリケーションにデータプレーンのトポロジとアクティビティに関する情報を提供する。抽象化、オーケストレーション、およびアプリケーションのサポートは、SDNコントロールレイヤーのサブレイヤーである。 アプリケーションプレーンには、ネットワークリソースと動作を定義、監視、制御するアプリケーションとサービスが含まれている。
SDNコントローラーは、(i)要件をSDNアプリケーションレイヤーからSDNデータパスに変換し、(ii)SDNアプリケーションにネットワークの抽象的なビューを提供する(統計やイベントが含まれる場合がある)を担当する論理的に集中化されたエンティティである。 。 SDNコントローラーは、1つ以上のNBIエージェント、SDN制御ロジック、およびコントロールからデータプレーンインターフェース(CDPI)ドライバーで構成される。 論理的に一元化されたエンティティとしての定義は、複数のコントローラーのフェデレーション、コントローラーの階層接続、コントローラー間の通信インターフェース、ネットワークリソースの仮想化やスライスなどの実装の詳細を規定したり妨げたりするものではありない。
SDN Datapathは、アドバタイズされた転送機能とデータ処理機能に対する可視性と競合しない制御を公開する論理ネットワークデバイスである。 論理的表現は、物理的基板リソースのすべてまたはサブセットを包含することができる。 SDNデータパスは、CDPIエージェントと、1つ以上のトラフィック転送エンジンと0個以上のトラフィック処理機能のセットで構成される。 これらのエンジンと機能には、データパスの外部インターフェース間の単純な転送、内部トラフィック処理または終了機能が含まれる場合がある。 1つ以上のSDNデータパスは、単一の(物理)ネットワーク要素(通信リソースの統合された物理的な組み合わせ)に含まれ、ユニットとして管理される。 SDNデータパスは、複数の物理ネットワーク要素にわたって定義することもできる。 この論理定義は、論理から物理へのマッピング、共有物理リソースの管理、SDNデータパスの仮想化またはスライス、非SDNネットワーキングとの相互運用性、 OSIレイヤー4-7関数を含むことができるデータ処理機能などの実装の詳細を規定または排除するものではない。
SDN Control to Data-Plane Interface(CDPI)
SDN CDPIは、SDNコントローラーとSDNデータパスの間に定義されたインターフェースであり、少なくとも(i)すべての転送操作のプログラムによる制御、(ii)機能の通知、(iii)統計レポート、および(iv)イベント通知を提供する。 SDNの1つの価値は、CDPIがオープンでベンダー中立で相互運用可能な方法で実装されるという期待にある。
SDNノースバウンドインターフェイス(NBI)
SDN NBIは、SDNアプリケーションとSDNコントローラー間のインターフェースであり、通常、抽象的なネットワークビューを提供し、ネットワークの動作と要件を直接表現できるようにする。 これは、抽象化の任意のレベル(緯度)で、異なる機能セット(経度)で発生する可能性がある。 SDNのもう1つの価値は、これらのインターフェースがオープンでベンダー中立で相互運用可能な方法で実装されるという期待にあるという。
集中型-階層型-分散型
SDN制御プレーンの実装は、集中型(中央集中型)、階層型、または分散型(自律分散型)の設計に従うことができる。 最初のSDN制御プレーンの提案は、単一の制御エンティティがネットワークのグローバルなビューを持つ集中型ソリューションに焦点を当てた。 これにより、制御ロジックの実装が簡略化されるが、ネットワークのサイズとダイナミクスが増加すると、スケーラビリティに制限がある。 これらの制限を克服するために、文献では、階層的アプローチと完全分散アプローチの2つのカテゴリに分類されるいくつかのアプローチが提案されている。 階層型ソリューションでは、  分散コントローラーは分割されたネットワークビューで動作するが、ネットワーク全体の知識が必要な決定は、論理的に集中化されたルートコントローラーによって行われる。 分散型アプローチでは、  コントローラはローカルビューで動作するか、同期メッセージを交換して知識を強化する。 分散型ソリューションは、アダプティブSDNアプリケーションのサポートにより適している。
結果、コントロールプレーンでは主に以下の機能を有する。
分散SDN制御プレーンを設計する際の重要な問題は、コントロールエンティティの数と配置を決定することである。 その際に考慮すべき重要なパラメーターは、コントローラーとネットワークデバイス間の伝搬遅延あり、特に大規模ネットワークのコンテキストではそうである。 検討されてきた他の目的には、制御パスの信頼性、 フォールトトレランス、  、およびアプリケーション要件が含まれる。
SDNアプリケーション層は、制御層のサービス要求をデータプレーンスイッチへの特定のコマンドやディレクティブにマッピングし、アプリケーションにデータプレーンのトポロジーやアクティビティに関する情報を提供する。このアプリケーションプレーンには、ネットワークリソースと動作を定義、監視、制御するためのアプリケーションとサービスが含まれる:
Defense4Allは、OpenDaylightに統合されたオープンなSDNセキュリティアプリケーションである。
断面帯域幅とは、ネットワークの2つの部分を半分に等分した場合に、その間を通過できる最大双方向データレートのこと。
クラウドネットワークアズアサービスは、OpenFlow SDN機能を利用し、クラウド利用者がクラウドネットワーク機能をより高度に制御できるようにしたクラウドネットワーキングシステムである。そのプリミティブは、クラウドインフラ自体の中に直接実装される。
情報指向ネットワーク(ICN)では、場所とIDの間に違いがある。
ノースバウンドインタフェースにより、アプリケーションは基盤となるネットワークスイッチの詳細を知らなくても、制御プレーンの機能とサービスにアクセスすることができる。
抽象化レイヤーは、高レベルのリクエストを、そのリクエストを実行するために必要な低レベルのコマンドに変換するメカニズムである。
OpenFlow APIは、転送抽象化の例である。
ネットワークサービスの抽象化レイヤーの例として、プログラミング言語Freneticがある。
トラフィックエンジニアリングとは、ネットワーク上を流れるデータの挙動を動的に分析、調整、予測し、サービスレベル契約を満たすためのパフォーマンス最適化を目的とした手法である。
PolicyCopは11のソフトウェアモジュールと2つのデータベースで構成されており、ネットワークを監視してポリシー違反を検出し、違反したポリシーを強化するためにネットワークを再構成する。SDN の制御プレーンを利用して QoS ポリシーの遵守を監視する.
イベントハンドラーモジュールには、違反イベントを調べ、イベントの種類に応じて、自動的に集中脅威管理を提供し、ソフトウェア定義の安全なネットワークへの監視と別のソリューションからの脅威インテリジェンスを組み合わせる能力を与えることから、その知性に基づいて行動するポリシーエンフォーサーを呼び出すか、ネットワークマネージャにアクションリクエストを送信する。
DDoSとは、複数のシステムを利用してサーバーやネットワーク機器、リンクにトラフィックを流し、その利用可能なリソースを圧迫して、正当なユーザーへの対応を不能にする攻撃である。
OpenFlowはTCAMテーブルを使用してパケットシーケンス(フロー)をルーティングする。 フローがスイッチに到着すると、フローテーブルのルックアップが実行される。 フローテーブルの実装に応じて、 vSwitchが使用されている場合はソフトウェアフローテーブルで、ハードウェアに実装されている場合はASICでこれが行われる。 一致するフローが見つからない場合は、コントローラーに追加の指示を求める要求が送信される。 これは、3つの異なるモードのいずれかで処理される。 リアクティブモードでは、コントローラーはこれらの要求の後に動作し、必要に応じて、対応するパケットのフローテーブルにルールを作成してインストールする。 プロアクティブモードでは、コントローラは、このスイッチで可能なすべての可能なトラフィック一致のフローテーブルエントリを事前に入力する。 このモードは、すべての静的エントリが事前にインストールされている今日の一般的なルーティングテーブルエントリと比較できる。 これに続いて、すべての着信フローが一致するエントリを見つけるため、リクエストはコントローラに送信されない。 プロアクティブモードの主な利点は、すべてのパケットがラインレートで転送され(TCAMのすべてのフローテーブルエントリを考慮)、遅延が追加されないことである。 3番目のモードであるハイブリッドモードは、一連のトラフィックに対するリアクティブモードと、残りのトラフィックに対する低遅延転送(プロアクティブモード)の柔軟性に従う。
ソフトウェア定義モバイルネットワーキング (SDMN)  は、すべてのプロトコル固有の機能がソフトウェアで実装されるモバイルネットワークの設計へのアプローチであり、 コアネットワークと無線アクセスネットワーク 。  これは、 モバイルネットワーク固有の機能を組み込むSDNパラダイムの拡張として提案されている。  3GPP Rel.14以降、 PFCPプロトコルを使用するモバイルコアネットワークアーキテクチャにコントロールユーザープレーン分離が導入された。
SD-WANは、ソフトウェア定義ネットワーキングの原則を使用して管理される広域ネットワーク (WAN)である。  SD-WANの主な推進力は、より高価なMPLS回線の代替または部分的な交換として、より手頃な価格の市販の専用回線を使用してWANコストを削減することである。 制御と管理はハードウェアとは別に管理され、中央コントローラーにより、構成と管理が容易になる。
SD-LANは、ソフトウェア定義ネットワーキングの原則に基づいて構築されたローカルエリアネットワーク (LAN)であるが、トポロジ、ネットワークセキュリティ、アプリケーションの可視性と制御、管理、およびサービスの品質には大きな違いがある。  SD-LANは、制御管理とデータプレーンを分離して、有線および無線LANのポリシー駆動型アーキテクチャを実現する。 SD-LANの特徴は、物理的なコントローラーがなくても、クラウド管理システムとワイヤレス接続を使用できることである。
SDNアーキテクチャは、コントローラーのネットワークの中央ビューと、いつでもデータプレーンを再プログラムするその能力により、ネットワーク関連のセキュリティアプリケーションを有効化、促進、または強化する場合がある。 SDNアーキテクチャのセキュリティ自体は未解決の問題であり、すでに研究コミュニティで数回検討されているが、    以下の段落では、セキュリティアプリケーションに焦点を当てて説明する。
SDNに関するいくつかの研究は、SDNコントローラー上に構築されたセキュリティアプリケーションを、さまざまな目的であるでに調査している。 分散型サービス拒否(DDoS)の検出と軽減 だけでなく、ボットネットとワームの伝播は、そのようなアプリケーションの具体的な使用例である。基本的に、このアイデアは定期的にネットワークを収集することにある標準化された方法(Openflowを使用するなど)でネットワークの転送プレーンからの統計情報を取得し、それらの統計情報に分類アルゴリズムを適用してネットワークの異常を検出する。 異常が検出された場合、アプリケーションはデータプレーンを再プログラムしてデータプレーンを軽減する方法をコントローラーに指示する。