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

ソフトウェア定義ネットワーク（ ソフトウェア・デファインド・ネットワーキング、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アーキテクチャは次のとおりである。 
新しいネットワークアーキテクチャの必要性.
モバイルデバイスとコンテンツの急増、サーバーの仮想化、およびクラウドサービスの出現は、ネットワーキング業界が従来のネットワークアーキテクチャを再検討する傾向にあるトレンドの1つである。 多くの従来のネットワークは階層型であり、ツリー構造に配置されたイーサネットスイッチの層で構築されている。 この設計は、クライアントサーバーコンピューティングが主流だったときに意味をなしたが、このような静的アーキテクチャは、今日のエンタープライズデータセンター、キャンパス、およびキャリア環境の動的コンピューティングとストレージのニーズには適していない。 
Open Networking Foundation（ONF）は、従来のコンピュータや機械をつないだネットワーク構造の4つの一般的な制限を挙げている：外部ソフトからの操作が許可されて複雑、一貫性のないポリシー、スケーリングできないこと、情報通信企業依存。今後の時代はネットワークを仮想化し、抽象的に考える時代である。つまり、時間の経過とともに、ネットワーク仮想化(NFV)とソフトウェア定義ネットワーク(SDN)は緊密に相互運用され、ネットワーク機器とネットワークベースのリソースを抽象化してプログラムで制御するための幅広い統合ソフトウェアベースのネットワーキングアプローチを提供することになる。 
新しいネットワークパラダイムの必要性を推進する主要なコンピューティングトレンドには、次のものがある。 
要件.
Open Data Center Alliance (ODCA) は、以下のような便利で簡潔な要件を提供している[ODCA14]：
建築コンポーネント.
次のリストは、アーキテクチャコンポーネントを定義および説明している： 
SDN制御プレーン.
SDN制御プレーンの実装は、集中型（中央集中型）、階層型、または分散型（自律分散型）の設計に従うことができる。 最初のSDN制御プレーンの提案は、単一の制御エンティティがネットワークのグローバルなビューを持つ集中型ソリューションに焦点を当てた。 これにより、制御ロジックの実装が簡略化されるが、ネットワークのサイズとダイナミクスが増加すると、スケーラビリティに制限がある。 これらの制限を克服するために、文献では、階層的アプローチと完全分散アプローチの2つのカテゴリに分類されるいくつかのアプローチが提案されている。 階層型ソリューションでは、 分散コントローラーは分割されたネットワークビューで動作するが、ネットワーク全体の知識が必要な決定は、論理的に集中化されたルートコントローラーによって行われる。 分散型アプローチでは、 コントローラはローカルビューで動作するか、同期メッセージを交換して知識を強化する。 分散型ソリューションは、アダプティブSDNアプリケーションのサポートにより適している。 
結果、コントロールプレーンでは主に以下の機能を有する。
分散SDN制御プレーンを設計する際の重要な問題は、コントロールエンティティの数と配置を決定することである。 その際に考慮すべき重要なパラメーターは、コントローラーとネットワークデバイス間の伝搬遅延あり、特に大規模ネットワークのコンテキストではそうである。 検討されてきた他の目的には、制御パスの信頼性、 フォールトトレランス、 、およびアプリケーション要件が含まれる。 
SDNアプリケーションプレーン.
SDNアプリケーション層は、制御層のサービス要求をデータプレーンスイッチへの特定のコマンドやディレクティブにマッピングし、アプリケーションにデータプレーンのトポロジーやアクティビティに関する情報を提供する。このアプリケーションプレーンには、ネットワークリソースと動作を定義、監視、制御するためのアプリケーションとサービスが含まれる：
Defense4Allは、OpenDaylightに統合されたオープンなSDNセキュリティアプリケーションである。
断面帯域幅とは、ネットワークの2つの部分を半分に等分した場合に、その間を通過できる最大双方向データレートのこと。
クラウドネットワークアズアサービスは、OpenFlow SDN機能を利用し、クラウド利用者がクラウドネットワーク機能をより高度に制御できるようにしたクラウドネットワーキングシステムである。そのプリミティブは、クラウドインフラ自体の中に直接実装される。
情報指向ネットワーク（ICN）では、場所とIDの間に違いがある。
ノースバウンドインタフェースにより、アプリケーションは基盤となるネットワークスイッチの詳細を知らなくても、制御プレーンの機能とサービスにアクセスすることができる。
抽象化レイヤーは、高レベルのリクエストを、そのリクエストを実行するために必要な低レベルのコマンドに変換するメカニズムである。
OpenFlow APIは、転送抽象化の例である。
ネットワークサービスの抽象化レイヤーの例として、プログラミング言語Freneticがある。
トラフィックエンジニアリングとは、ネットワーク上を流れるデータの挙動を動的に分析、調整、予測し、サービスレベル契約を満たすためのパフォーマンス最適化を目的とした手法である。
PolicyCopは11のソフトウェアモジュールと2つのデータベースで構成されており、ネットワークを監視してポリシー違反を検出し、違反したポリシーを強化するためにネットワークを再構成する。SDN の制御プレーンを利用して QoS ポリシーの遵守を監視する．
イベントハンドラーモジュールには、違反イベントを調べ、イベントの種類に応じて、自動的に集中脅威管理を提供し、ソフトウェア定義の安全なネットワークへの監視と別のソリューションからの脅威インテリジェンスを組み合わせる能力を与えることから、その知性に基づいて行動するポリシーエンフォーサーを呼び出すか、ネットワークマネージャにアクションリクエストを送信する。
DDoSとは、複数のシステムを利用してサーバーやネットワーク機器、リンクにトラフィックを流し、その利用可能なリソースを圧迫して、正当なユーザーへの対応を不能にする攻撃である。
用途.
SDMN.
ソフトウェア定義モバイルネットワーキング （SDMN） は、すべてのプロトコル固有の機能がソフトウェアで実装されるモバイルネットワークの設計へのアプローチであり、 コアネットワークと無線アクセスネットワーク 。 これは、 モバイルネットワーク固有の機能を組み込むSDNパラダイムの拡張として提案されている。 3GPP Rel.14以降、 PFCPプロトコルを使用するモバイルコアネットワークアーキテクチャにコントロールユーザープレーン分離が導入された。 
SD-WAN.
SD-WANは、ソフトウェア定義ネットワーキングの原則を使用して管理される広域ネットワーク （WAN）である。 SD-WANの主な推進力は、より高価なMPLS回線の代替または部分的な交換として、より手頃な価格の市販の専用回線を使用してWANコストを削減することである。 制御と管理はハードウェアとは別に管理され、中央コントローラーにより、構成と管理が容易になる。 
SD-LAN.
SD-LANは、ソフトウェア定義ネットワーキングの原則に基づいて構築されたローカルエリアネットワーク （LAN）であるが、トポロジ、ネットワークセキュリティ、アプリケーションの可視性と制御、管理、およびサービスの品質には大きな違いがある。 SD-LANは、制御管理とデータプレーンを分離して、有線および無線LANのポリシー駆動型アーキテクチャを実現する。 SD-LANの特徴は、物理的なコントローラーがなくても、クラウド管理システムとワイヤレス接続を使用できることである。 
SDNパラダイムを使用したセキュリティ.
SDNアーキテクチャは、コントローラーのネットワークの中央ビューと、いつでもデータプレーンを再プログラムするその能力により、ネットワーク関連のセキュリティアプリケーションを有効化、促進、または強化する場合がある。 SDNアーキテクチャのセキュリティ自体は未解決の問題であり、すでに研究コミュニティで数回検討されているが、 以下の段落では、セキュリティアプリケーションに焦点を当てて説明する。 
SDNに関するいくつかの研究は、SDNコントローラー上に構築されたセキュリティアプリケーションを、さまざまな目的であるでに調査している。 分散型サービス拒否（DDoS）の検出と軽減 だけでなく、ボットネットとワームの伝播は、そのようなアプリケーションの具体的な使用例である。基本的に、このアイデアは定期的にネットワークを収集することにある標準化された方法（Openflowを使用するなど）でネットワークの転送プレーンからの統計情報を取得し、それらの統計情報に分類アルゴリズムを適用してネットワークの異常を検出する。 異常が検出された場合、アプリケーションはデータプレーンを再プログラムしてデータプレーンを軽減する方法をコントローラーに指示する。 
別の種類のセキュリティアプリケーションは、移動ターゲット防御（MTD）アルゴリズムを実装することにより、SDNコントローラーを活用する。 MTDアルゴリズムは通常、特定のシステムまたはネットワークの主要なプロパティを定期的に非表示または変更することにより、特定のシステムまたはネットワークへの攻撃を通常よりも困難にするために使用される。 従来のネットワークでは、MTDアルゴリズムの実装は簡単な作業ではありない。保護するシステムの各部分について、どのキープロパティを非表示または変更するかを決定できる中央機関を構築することは難しいためである。 SDNネットワークでは、コントローラーの中心性により、このようなタスクはより簡単になる。 たとえば、1つのアプリケーションが定期的に仮想IPをネットワーク内のホストに割り当てることができ、仮想IPと実際のIPのマッピングがコントローラーによって実行される。 別のアプリケーションは、攻撃者が実行する偵察フェーズ（スキャンなど）の間に重大なノイズを追加するために、ネットワーク内のランダムなホストで偽のオープン/クローズ/フィルターされたポートをシミュレートできる。 
SDN対応ネットワークのセキュリティに関する追加の値は、それぞれFlowVisorおよびFlowCheckerを使用して取得することもできる。前者は、複数の分離された論理ネットワークを共有する単一のハードウェア転送プレーンを使用しようとする。 このアプローチに従うと、同じハードウェアリソースを本番環境と開発の目的で使用できるほか、監視、構成、インターネットトラフィックを分離できる。各シナリオには、スライスと呼ばれる独自の論理トポロジを設定できる。このアプローチと連携して、FlowChecker は、ユーザーが独自のスライスを使用して展開する新しいOpenFlowルールの検証を実現する。 
SDNコントローラーアプリケーションは、ほとんどの場合、起こり得るプログラミングエラーの包括的なチェックを必要とする大規模なシナリオで展開される。NICEと呼ばれるこれを行うシステムが2012年に説明された。 包括的なセキュリティアーキテクチャを導入するには、SDNに対する包括的かつ長期にわたるアプローチが必要である。 それが導入されて以来、設計者はスケーラビリティを犠牲にしないSDNを保護するための可能な方法を検討している。 SN-SECA（SDN + NFV）セキュリティアーキテクチャと呼ばれる1つのアーキテクチャ。 
SDNを使用したグループデータ配信.
データセンター全体で実行される分散アプリケーションは、通常、同期、障害回復力、ロードバランシング、およびデータをユーザーに近づけるためにデータを複製する（これにより、ユーザーのレイテンシが減少し、認識されるスループットが向上する）。 また、Hadoopなどの多くのアプリケーションは、データセンター内のデータを複数のラックに複製して、フォールトトレランスを向上させ、データの回復を容易にする。 これらすべての操作には、1つのマシンまたはデータセンターから複数のマシンまたはデータセンターへのデータ配信が必要である。 1台のマシンから複数のマシンにデータを確実に配信するプロセスは、Reliable Group Data Delivery（RGDD）と呼ばれる。 
複数の発信ポートへの転送を許可するルールをインストールすることにより、SDNスイッチをRGDDに使用できる。 たとえば、OpenFlowはバージョン1.1 以降、これを可能にするグループテーブルをサポートしている。 中央コントローラーは、SDNを使用して、RGDDの転送ツリーを注意深くインテリジェントにセットアップできる。 このようなツリーは、パフォーマンスを向上させるためにネットワークの輻輳/負荷状態に注意を払いながら構築できる。 たとえば、MCTCP は、データセンターネットワークの通常の構造化トポロジに依存するデータセンター内の多くのノードに配信するためのスキームであり、DCCast とQuickCast は、データセンター間でデータとコンテンツを高速かつ効率的に複製するためのアプローチである。
NFVとの関係.
NFV ネットワーク機能仮想化は、SDNを補完する概念である。 したがって、NFVはSDNまたはSDNの概念に依存しない。 NFVはソフトウェアをハードウェアから切り離し、柔軟なネットワーク展開と動的な操作を可能にする。 NFV展開では、通常、コモディティサーバーを使用して、以前はハードウェアベースであったネットワークサービスソフトウェアバージョンを実行する。 NFV環境で実行されるこれらのソフトウェアベースのサービスは、仮想ネットワーク機能（VNF）と呼ばれる。 SDN-NFVハイブリッドプログラムは、標準のIT仮想化テクノロジーを使用してサービスのイノベーションとプロビジョニングを加速することを目的とした、高効率で柔軟であるケーラブルな機能を提供した。 SDNは、SDNコントローラーを使用して、ルーターやスイッチなどの汎用転送デバイスを制御する俊敏性を提供する。 一方、NFVの俊敏性は、仮想サーバーを使用してネットワークアプリケーションに提供される。 既存のネットワーキングとオーケストレーションのパラダイムを使用して、スタンドアロンエンティティとして仮想ネットワーク機能（VNF）を実装することは完全に可能である。 ただし、SDVの概念を活用してNFVインフラストラクチャを実装および管理することには、特にVNFの管理とオーケストレーションを検討する場合に固有の利点があるため、協調型エコシステムにSDNとNFVを組み込むマルチベンダープラットフォームが定義されている。 
DPIとの関係.
DPI ディープパケットインスペクションはネットワークにアプリケーション認識を提供し、SDNはアプリケーションにネットワーク認識を提供する。 SDNは一般的なネットワークアーキテクチャを根本的に変更するが、高い相互運用性を提供するために、従来のネットワークアーキテクチャでの作業に対応する必要がある。 新しいSDNベースのネットワークアーキテクチャでは、DPIやセキュリティアプライアンスなどのメインの転送デバイス（ルーターとスイッチ）以外の個別のデバイスまたはソフトウェアで現在提供されているすべての機能を考慮する必要がある。