ネットワーク仮想化（ネットワークかそうか、Network Functions Virtualization、NFV） は、IT仮想化のテクノロジーを使用して、ネットワークノード機能のクラス全体をビルディングブロックに仮想化し、接続またはチェーンして通信サービスを作成するネットワークアーキテクチャの概念である。言い換えれば、ネットワークハードウェアをソフトウェアのように扱うこと。

仮想化とは、一言で言えば、WindowsなどのOS内で別のOSを使用すること。ソフトウェアと物理的なハードウェアの間に抽象化されたレイヤーを提供することで、コンピュータリソースを管理するための様々な技術である。仮想化技術は、サーバー、ストレージデバイス、ネットワークリソースなどのハードウェアプラットフォームをソフトウェアで効果的にエミュレートまたはシミュレートする。

NFVは、エンタープライズITで使用されているような従来のサーバー仮想化技術に依存しているが、それとは異なる。サービスチェイニング、分散アーキテクチャ、管理、オーケストレーションは、実用的なネットワークサービスの構築に関わるNFVの主要な原則である。

多数のコンピューターを管理する大型コンピューターであるホストコンピューターも、仮想マシンをホストできる。 また、その仮想マシンは多数の仮想化ネットワーク機能（VNF）をホストすることもできる。つまり、単一のコンピューティングホストまたはネットワークホストで複数の仮想マシンをホストでき、各仮想マシンで単一のVNFをホストできる。

たとえば、仮想セッションボーダーコントローラーを展開して、物理ネットワーク保護ユニットを取得してインストールするという一般的なコストや複雑さを伴わずにネットワークを保護できる。 NFVの他の例には、仮想化されたロードバランサー、ファイアウォール、侵入検知デバイス、 WANアクセラレータが含まれる。 

 背景と動機 
NFVは、大容量マルチメディア時代のネットワーク運用をいかに改善するかについて、大手ネットワーク事業者や通信事業者の間で議論されたことに端を発している。全体的な目的は、標準的なIT仮想化技術を活用して、多くの種類のネットワーク機器を業界標準の大容量サーバー、スイッチ、ストレージに統合することであり、これらはデータセンター、ネットワークノード、およびエンドユーザーの構内に配置することができる。アプローチでは、さまざまなハードウェア・プラットフォームへの依存から、少数の標準化されたプラットフォーム・タイプを使用し、必要なネットワーク機能を提供するために仮想化技術を使用するようになる。

電気通信業界内の製品開発は、伝統的に、安定性、プロトコルの順守、および品質に関する厳格な基準に従っており、この信頼性を示す機器を示すためにキャリアグレードという用語が使用されていることを反映している。 このモデルは過去にはうまく機能していたが、必然的に製品サイクルが長くなり、開発のペースが遅くなり、特注の特定用途向け集積回路（ASIC）などの独自のハードウェアまたは特定のハードウェアに依存することになった。パブリックインターネット上で大規模に運営されている動きの速い組織（ Googleトーク、 Skype 、 Netflixなど）との通信サービスにおける激しい競争の激化により、サービスプロバイダーは現状を打破する方法を模索するようになった。

 歴史 
2012年10月、通信事業者のグループが、ドイツのダルムシュタットで開催された会議で、ソフトウェア定義ネットワーク（SDN）とOpenFlowに関するホワイトペーパー を公開した。ホワイトペーパーを締めくくる行動の呼びかけは、欧州電気通信標準化機構（ETSI）内にネットワーク機能仮想化（NFV）業界仕様グループ（ISG） の創設につながった。 ISGは、ヨーロッパおよびそれ以降の電気通信業界の代表者で構成されていた。 ホワイトペーパーの発行以来、グループは100を超える出版物を作成してきた。 2016年には、NFVの高性能オープンソースバージョンが1つリリースされた。 openNetVMは、およびDockerコンテナに基づく高性能NFVプラットフォームである。 

 フレームワーク 
NFVフレームワークは、次の3つの主要コンポーネントで構成されている：

 仮想化ネットワーク機能 (VNF) は、ネットワーク機能仮想化インフラストラクチャ (NFVI) に展開できるネットワーク機能のソフトウェア実装である 。単一のコンピューティングホストまたはネットワークホストで複数の仮想マシンをホストでき、各仮想マシンで単一のVNFをホストできる。VNFの重要な特性は弾性と呼ばれ、スケールアップ/ダウンまたはスケールアウト/インの能力を意味する。スケールアウト/インは、スケールアウトするVNFに属する構成要素 (VNFC) を追加/削除すること。スケールアップ/ダウンは、スケールアップするVNFに属する既存のVNFCからリソースを追加/削除すること。スケールアウトは、スケールアップするVNFに属するVNFCインスタンスを追加することで実現する。仮想化ネットワーク機能 (VNF) は、カスタムハードウェアアプライアンスではなく、ネットワーク機能ごとに標準の大容量サーバー、スイッチ、ストレージデバイス、さらにはクラウドコンピューティングインフラストラクチャ上で、さまざまなソフトウェアとプロセスを実行する1つ以上の仮想マシンまたはコンテナーで構成される。コンテナの仮想化は、アプリケーションの基盤となるオペレーティング環境を仮想化する手法である。VNFマネージャーは、VNFインスタンスのライフサイクル管理を統括するものである。eSwitchの目的は、仮想化ソフトウェアをバイパスして、VNFにNICへの直接メモリアクセス経路を提供することである。
 ネットワーク仮想化 (NFV) の最も重要な構造は、ネットワーク仮想化基盤 (NFVI) である。つまり、NFVアーキテクチャの中核をなすのは、NFVIとして知られるリソースと機能の集合体である。NFVIは、NFVが展開される環境を構築するすべてのハードウェアおよびソフトウェアコンポーネントの全体である。 NFVIは複数の場所にまたがることができる。これらの場所間の接続を提供するネットワークは、NFVIの一部と見なされる。NFVIは、次の3つのドメインで構成されている。
 コンピュートドメイン 商用オフザシェルフ（つまり、ソフトウェアまたはハードウェア製品）の大容量コンピュートを提供する。サーバーやストレージの管理を行う。その主要な要素は、CPU/メインメモリ、内部ストレージ、アクセラレータ、ストレージコントローラによる外部ストレージ、ネットワークカード (NIC)、スイッチ (Eswitch)、実行環境である。NFVIノードは、コンピューティングドメインにある。ネットワークノードは、NFVIノード内の単一の識別可能、アドレス可能、および管理可能な要素であり、コンピューティング、ストレージ、およびネットワーク転送機能を使用してネットワークリソースを提供する。
 ハイパーバイザードメイン コンピュートドメインのリソースをハードウェアの抽象化を提供するソフトウェアアプライアンスの仮想マシン(VM)。ハードウェアを抽象化し、VMの起動、VMの終了、ポリシーへの対処、スケーリング、ライブマイグレーション、高可用性などのサービスを実装するソフトウェア環境である。
 インフラストラクチャ・ネットワーク・ドメイン (IND) 一般的な大容量の供給するように構成できるネットワークに相互接続されたスイッチインフラストラクチャ・ネットワーク・サービスと、既存のキャリアネットワークとの相互接続の手段を提供する。
 ネットワーク機能仮想化管理およびオーケストレーションアーキテクチャフレームワーク（NFV自動化構造、NFV-MANO）は、すべての機能ブロック、これらのブロックで使用されるデータ貯蔵庫、およびこれらの機能ブロックがNFVIの管理と調整を目的として情報を交換するための参照ポイントとインターフェイスのコレクションである。

NFVIとNFV-MANOの両方の構成要素は、NFVプラットフォームである。 NFVIの役割では、仮想および物理の両方の処理リソースとストレージリソース、および仮想化ソフトウェアで構成される。 NFV-MANOの役割では、VNFおよびNFVIマネージャーと、ハードウェアコントローラー上で動作する仮想化ソフトウェアで構成される。 NFVプラットフォームは、プラットフォームコンポーネントの管理と監視、障害からの回復、効果的なセキュリティの提供に使用されるキャリアグレードの機能を実装している。 –すべてパブリックキャリアネットワークに必要である。

 実用的な側面 
NFV設計に従うサービスプロバイダーは、1つ以上の仮想化ネットワーク機能（VNF）を実装する。 VNF自体は、プロバイダーの顧客に使用可能な製品またはサービスを自動的に提供しません。より複雑なサービスを構築するために、サービスチェーンの概念が使用される。この概念では、複数のVNFを順番に使用してサービスを提供する。

NFVの実装のもう1つの側面は、オーケストレーションプロセスである。信頼性が高くスケーラブルなサービスを構築するために、NFVでは、ネットワークがVNFインスタンスをインスタンス化し、監視し、修復し、（サービスプロバイダービジネスにとって最も重要な）提供されたサービスの料金を請求できる必要がある。キャリアグレード 機能と呼ばれるこれらの属性は、高可用性とセキュリティ、および低い運用と保守のコストを提供するために、オーケストレーションレイヤーに割り当てられる。重要なのは、オーケストレーションレイヤーは、VNF内の基盤となるテクノロジーに関係なく、VNFを管理できる必要があるということである。たとえば、オーケストレーション層は、ベンダーXからの上で実行されているSBC VNFを、ベンダーYのKVMで実行されているIMS VNFと同じように管理できなければならない。

 分散NFV 
NFVの当初の認識は、仮想化機能をデータセンターに実装する必要があるというものでした。このアプローチは、すべてではありませんが、多くの場合に機能する。 NFVは、仮想化された機能の物理的な場所に関して、可能な限り幅広い柔軟性を前提とし、強調している。

したがって、理想的には、仮想化された機能は、最も効果的で最も安価な場所に配置する必要がある。つまり、サービスプロバイダーは、データセンターからネットワークノード、顧客宅内まで、考えられるすべての場所にNFVを自由に配置できる必要がある。分散NFVとして知られるこのアプローチは、NFVが開発および標準化されるにつれて最初から強調されており、最近リリースされたNFVISGドキュメントで顕著である。 

場合によっては、サービスプロバイダーがこの仮想化された機能を顧客宅内に配置することには明らかな利点がある。これらの利点は、経済性からパフォーマンス、仮想化される機能の実現可能性にまで及びる。 

D-NFVの最初のETSINFV ISG承認のパブリックマルチベンダー概念実証（PoC）は、2014年6月にシカゴの、、フォーティネットおよびセルテスネットワークによって実施され、 によって後援された。これは、フォーティネットの次世代ファイアウォール（NGFW）とCertes Networksの仮想暗号化/復号エンジンを仮想ネットワーク機能（VNF）として実行し、CyanのBluePlanetシステムがエコシステム全体を調整するRADの専用のカスタマーエッジD-NFV機器に基づいていた。 RADのD-NFVソリューションであるレイヤー2 /レイヤー3ネットワークターミネーションユニット（NTU）は、顧客のエッジで仮想化エンジンとして機能するD-NFV x86サーバーモジュールを搭載し、その月の終わりまでに市販された。 2014年、RADは、新しいNFVアプリケーションを専門とするベンダーと国際的なシステムインテグレーターのエコシステムであるD-NFVアライアンスも組織した。 

 NFVモジュール性のメリット 
VNFを提供するソフトウェアを設計および開発する場合、ベンダーはそのソフトウェアをソフトウェアコンポーネントに構造化し（ソフトウェアアーキテクチャの実装ビュー）、それらのコンポーネントを1つ以上のイメージにパッケージ化する（ソフトウェアアーキテクチャの展開ビュー）場合がある。これらのベンダー定義のソフトウェアコンポーネントは、VNFコンポーネント（VNFC）と呼ばれる。 VNFは1つ以上のVNFCで実装され、一般性を失うことなく、VNFCインスタンスがVMイメージに1：1でマップされると想定される。

VNFCは通常、スケールアップおよび/またはスケールアウトできる必要がある。柔軟な（仮想）CPUを各VNFCインスタンスに割り当てることができるため、ネットワーク管理レイヤーはVNFCをスケールアップ（つまり、垂直方向にスケール）して、単一のシステムまたは単一のプラットフォームで期待されるスループット/パフォーマンスとスケーラビリティを提供できる。同様に、ネットワーク管理レイヤーは、複数のプラットフォームでVNFCの複数のインスタンスをアクティブ化することにより、VNFCをスケールアウト（つまり、水平方向にスケールアウト）できるため、他のVNFC機能の安定性を損なうことなく、パフォーマンスとアーキテクチャの仕様に到達できる。

このようなアーキテクチャの青写真を早期に採用した人は、すでにNFVのモジュール性の原則を実装している。 

 SDNとの関係 
SDN（ソフトウェア定義ネットワーク）はNFVに関連する概念であるが、異なるドメインを参照する。 ネットワーク機能仮想化（NFV）とディープパケットインスペクション（DPI）は、SDN機能を効率的に補完することができる。 SDNと同様に、NFVを成功させるには、適切な標準とオープンソースソフトウェアが必要である。

本質的に、ソフトウェア定義ネットワーク（SDN）は、これらのシステムの要素を分離および抽象化するデータネットワーク機器およびソフトウェアを構築するためのアプローチである。これは、コントロールプレーンとデータプレーンを互いに分離して、コントロールプレーンが中央に配置され、転送コンポーネントが分散されたままになるようにすることで実現する。コントロールプレーンは、ノースバウンドとサウスバウンドの両方で相互作用する。ノースバウンド方向では、コントロールプレーンは、APIを使用して、ネットワークの共通の抽象化されたビューを高レベルのアプリケーションおよびプログラムに提供する。サウスバウンド方向では、コントロールプレーンは、ネットワーク全体に分散された物理ネットワーク機器のデバイスレベルAPIを使用して、データプレーンの転送動作をプログラムする。

したがって、NFVはSDNまたはSDNの概念に依存しません。既存のネットワークおよびオーケストレーションパラダイムを使用して、仮想化ネットワーク機能（VNF）をスタンドアロンエンティティとして実装することは完全に可能である。ただし、SDNの概念を活用してNFVインフラストラクチャを実装および管理することには、特にVNFの管理とオーケストレーションを検討する場合に固有の利点がある。そのため、協調したエコシステムにSDNとNFVを組み込んだマルチベンダープラットフォームが定義されている。 

NFVインフラストラクチャには、VNFに関連付けられたオペレーターの要求を受け取り、それらをVNFの運用に必要な適切な処理、ストレージ、およびネットワーク構成に変換する中央のオーケストレーションおよび管理システムが必要である。運用が開始されると、VNFの容量と使用率を監視し、必要に応じて調整する必要がある。 

これらの機能はすべてSDNの概念を使用して実現でき、NFVはサービスプロバイダー環境における主要なSDNユースケースの1つと見なすことができる。また、多くのSDNユースケースに、NFVイニシアチブで導入された概念を組み込むことができることも明らかである。例としては、集中型コントローラーが分散転送機能を制御している場合がある。分散転送機能は、実際には既存の処理またはルーティング機器でも仮想化できる。

 業界への影響 
NFVは、初期段階でも人気のある標準であることが証明されている。その直接の応用は、モバイルベースステーションの仮想化、Platform as a Service (PaaS)、コンテンツ配信ネットワーク（CDN）、固定アクセス、ホーム環境など、数多くある。 NFVの潜在的なメリットは重要であると予想される。汎用の標準化されたハードウェアに展開されたネットワーク機能の仮想化により、設備投資と運用コスト、およびサービスと製品の導入時間が削減されることが期待される。 多くの主要なネットワーク機器ベンダーがNFVのサポートを発表している。 これは、機器サプライヤがNFV製品を構築するために使用するNFVプラットフォームを提供する主要なソフトウェアサプライヤからのNFVの発表と一致している。 

ただし、仮想化の予想されるメリットを実現するために、ネットワーク機器ベンダーはIT仮想化テクノロジーを改善して、高可用性、スケーラビリティ、パフォーマンス、および効果的なネットワーク管理機能を実現するために必要なキャリアグレードの属性を組み込んでいる。 総所有コスト（TCO）を最小限に抑えるには、キャリアグレードの機能を可能な限り効率的に実装する必要がある。これには、NFVソリューションが冗長リソースを効率的に使用して、パフォーマンスの予測可能性を損なうことなく、ファイブナインの可用性（99.999％） とコンピューティングリソースを実現する必要がある。

NFVプラットフォームは、効率的なキャリアグレードのNFVソリューションを実現するための基盤である。 これは、標準のマルチコアハードウェアで実行され、キャリアグレードの機能を組み込んだオープンソースソフトウェアを使用して構築されたソフトウェアプラットフォームである。 NFVプラットフォームソフトウェアは、障害やトラフィック負荷の変化に起因するVNFの動的な再割り当てを担当するため、高可用性を実現する上で重要な役割を果たする。 ETSI NFVの概念実証、 ATIS NFVプロジェクトのオープンプラットフォーム、 キャリアネットワーク仮想化賞 、さまざまなサプライヤなど、NFVキャリアグレード機能を指定、調整、および促進するための多数のイニシアチブが進行中である。 

NFVプラットフォームの主要コンポーネントであるvSwitchは、VM間（VM間）およびVMと外部ネットワーク間の接続を提供する役割を果たする。そのパフォーマンスは、VNFの帯域幅とNFVソリューションの費用対効果の両方を決定する。標準のOpen vSwitch（OVS）のパフォーマンスがNFVIソリューションのニーズを満たすために解決しなければならない欠点がある。 NFVサプライヤは、OVSバージョンとAccelerated Open vSwitch（AVS）バージョンの両方でパフォーマンスの大幅な向上を報告している。 

仮想化は、NFVソリューションでの可用性の指定、測定、および達成の方法も変化させている。 VNFが従来の機能専用機器に取って代わるにつれて、機器ベースの可用性からサービスベースのエンドツーエンドの階層型アプローチへのシフトがある。 ネットワーク機能を仮想化すると、特定の機器との明示的な結合が切断されるため、可用性はVNFサービスの可用性によって定義される。 NFVテクノロジは、それぞれ独自のサービス可用性の期待を持つさまざまなネットワーク機能タイプを仮想化できるため、NFVプラットフォームはさまざまなフォールトトレランスオプションをサポートする必要がある。この柔軟性により、CSPはNFVソリューションを最適化してVNFの可用性要件を満たすことができる。

ホスト型ネットワークオペレーターは、富士通などの大手ネットワークプロバイダーがネットワーク機能仮想化インフラストラクチャの3つのドメインを実行し、ネットワークを柔軟にすることを意味する。他のネットワークプロバイダーは、ネットワークコンテンツであるVNFを実行する。ITサービス組織がコンピューティングハードウェア、インフラストラクチャネットワーク、およびハイパーバイザーを操作し、その上で別のネットワークオペレーターがVNFを実行する展開シナリオである。

 MANO 
欧州電気通信標準化機構 (ETSI) は、NFV環境の制御の重要な部分が、自動化とオーケストレーションを通じて行われることをすでに示している。言い換えれば、自動化は、ネットワークをソフトウェア的に計画するために不可欠である。NFV内には、柔軟性を制御する方法を概説する別のストリームMANO（Management and Network Orchestration、ネットワーク管理オーケストレーション）がある。

MANOの内部には、NFVIを制御する仮想化インフラストラクチャマネージャー (VIM) などの個別のコンポーネントがある。VIMとは、メモリなどを管理するシステムのこと。つまり、MANOの内部にあるVIMは、VNFとその権限下のコンピューティング、ストレージ、ネットワークリソースとの相互作用、およびそれらの仮想化を制御および管理するために使用される機能で構成されるとても大切なアプリである。

ETSIは、仮想化ネットワーク機能 (VNF) が独立して開発された管理およびオーケストレーションシステムと相互運用可能であり、管理およびオーケストレーションシステムのコンポーネント自体が相互運用可能であるオープンエコシステムを可能にする標準のフルセットを提供する。これには、一連のRestful API仕様 と、VNFをサービスプロバイダーに配信するためのパッケージ形式の仕様、およびVNFのライフサイクルの管理を可能にするソフトウェアイメージとともにパッケージ化される展開テンプレートの仕様が含まれる。デプロイメントテンプレートは、 TOSCAまたはYANGに基づくことができる。 

OpenAPI Specification（別名Swagger）表現は、デプロイメントテンプレートの作成時に使用されるTOSCAおよびYANG定義ファイルとともにETSIforge サーバー で利用できる。

公開されている仕様の完全なセットは、以下の表に要約されている。
仕様題名ETSI GS NFV-SOL 001 TOSCA仕様に基づくNFV記述子ETSI GS NFV-SOL 002 Ve-VnfmリファレンスポイントのRESTfulプロトコル仕様ETSI GS NFV-SOL 003 Or-VnfmリファレンスポイントのRESTfulプロトコル仕様ETSI GS NFV-SOL 004 VNFパッケージとPNFDアーカイブの仕様ETSI GS NFV-SOL 005 Os-Ma-nfvoリファレンスポイントのRESTfulプロトコル仕様ETSI GS NFV-SOL 006 YANG仕様に基づくNFV記述子ETSI GS NFV-SOL 007ネットワークサービス記述子のファイル構造仕様ETSI GS NFV-SOL 009 NFV-MANOの管理のためのRESTfulプロトコル仕様ETSI GS NFV-SOL 011 Or-Or参照ポイントのRESTfulプロトコル仕様ETSI GS NFV-SOL 013 RESTful NFV MANOAPIの一般的な側面の仕様
NFV-MANO APIのOpenAPI表現のさまざまなバージョンの概要は、ETSI NFVwikiで入手できる。

 パフォーマンス研究 
NFVに関する最近のパフォーマンス調査では、仮想化ネットワーク機能（VNF）のスループット、レイテンシ、ジッター、および単一の物理サーバーがサポートできるVNFの数に関するNFVのスケーラビリティに焦点が当てられている。 オープンソースのNFVプラットフォームが利用可能であり、代表的なものの1つがopenNetVMである。 openNetVMは、DPDKおよびDockerコンテナーに基づく高性能NFVプラットフォームである。 openNetVMは、ネットワーク機能を展開し、それらを相互接続してサービスチェーンを構築するための柔軟なフレームワークを提供する。 openNetVMは、BSDライセンスの下でリリースされたNSDI2014およびHotMiddlebox2016の論文で説明されているNetVMプラットフォームのオープンソースバージョンである。ソースコードはgithub：openNetVM 

 要素管理 

要素管理は、仮想化ネットワーク機能(VNF)の障害、構成、会計、実行、およびセキュリティ管理機能を担当する。

1）障害：マシンが正しく機能していることを確認する。

2）構成：オンラインゲームなどの特定の仮想化ネットワーク機能を構築する。

3）会計：正しい答えを計算して、マシンを適切に実行し続ける。

4）実行：毎日のタスクを実行し続ける。

5）セキュリティ：ネットワークを攻撃から保護する。

これらの管理機能は、VNF管理の責任でもある。 ただし、要素管理は、仮想化ネットワーク機能管理とは対照的に、仮想化ネットワーク機能との独自のインターフェイスを介してそれを行うことができる。 要素管理は、（VeEm-Vnfm）という独自のインターフェイス、すなわちオープンリファレンスポイントを介してVNF管理と情報を交換することを確認する必要がある。 要素管理は仮想化を認識し、VNF管理と連携して、VNFに関連付けられたNFVIリソースに関する情報の交換を必要とする機能を実行する場合がある。