仮想ネットワークとは、共有された物理ネットワーク上に論理的に分離された仮想ネットワークを構築し、複数の仮想ネットワークの異種混在した集合体を、共有された物理ネットワーク上に同時に共存させることができる技術である。ハードウェアとソフトウェアのネットワークリソースとネットワーク機能を単一のソフトウェアベースの管理エンティティである仮想ネットワークに結合するプロセスである。

ネットワーク仮想化には、プラットフォーム仮想化が含まれ、多くの場合、リソース仮想化と組み合わされる。仮想化技術は、サーバー、ストレージデバイス、ネットワークリソースなどのハードウェアプラットフォームをソフトウェアで効果的にエミュレートまたはシミュレートする。仮想ネットワークは、需要の変化に応じて迅速に拡張することができる。

ネットワーク仮想化は、多くのネットワークまたはネットワークの一部を仮想ユニットに結合する外部仮想化 、または単一のネットワークサーバー上のソフトウェアコンテナにネットワークのような機能を提供する内部仮想化のいずれかに分類される 。

ソフトウェアテストでは 、ソフトウェア開発者はネットワーク仮想化を使用して、ソフトウェアが動作するネットワーク環境のシミュレーションで開発中のソフトウェアをテストする。 アプリケーションパフォーマンスエンジニアリングのコンポーネントとして、ネットワーク仮想化により、開発者は、考えられるすべてのハードウェアまたはシステムソフトウェアでソフトウェアを物理的にテストすることなく、テスト環境でアプリケーション、サービス、依存関係、およびエンドユーザー間の接続をエミュレートできる。 テストの有効性は、実際のハードウェアとオペレーティングシステムをエミュレートする際のネットワーク仮想化の精度に依存する 。

## 構成部品

さまざまな機器およびソフトウェアベンダーが、次のいずれかを組み合わせてネットワーク仮想化を提供している。

- ネットワークインターフェイスカード(NIC)とも呼ばれる、スイッチやネットワークアダプターなどのネットワークハードウェア
- ファイアウォールやロードバランサーなどのネットワーク要素
- ネットワーク( 仮想LAN (VLAN)など)および仮想マシン (VM)などのコンテナー
- ネットワークストレージデバイス
- 通信機器などのネットワークマシンツーマシン要素
- ラップトップコンピューター、タブレットコンピューター、スマートフォンなどのネットワークモバイル要素
- イーサネットやファイバーチャネルなどのネットワークメディア

## 外部仮想化

外部ネットワーク仮想化は、1つまたは複数のローカルエリアネットワーク (LAN)を仮想ネットワークに結合または細分化して、大規模ネットワークまたはデータセンターの効率を向上させる。 仮想ローカルエリアネットワーク(VLAN)とネットワークスイッチが主要なコンポーネントを構成する。 システム管理者は、このテクノロジーを使用して、同じローカルネットワークに物理的に接続されているシステムを個別の仮想ネットワークに構成できる。 逆に、管理者は、個別のローカルエリアネットワーク (LAN)上のシステムを、大規模ネットワークのセグメントにまたがる単一のVLANに結合できる。

## 内部仮想化

内部ネットワーク仮想化は 、 Xen ハイパーバイザー制御プログラムなどのソフトウェアコンテナー 、またはVNICなどの擬似インターフェイスを備えた単一システムを構成して、 ソフトウェアで物理ネットワークをエミュレートする。 これにより、アプリケーションを個別のコンテナまたは擬似インターフェースに分離することにより、単一システムの効率を改善できる。

### 例

CitrixとVyattaは、Vyattaのルーティング、ファイアウォール、VPN機能とCitrixのNetscaler ロードバランサー 、ブランチリピーターのWAN( ワイドエリアネットワーク )最適化、およびセキュアソケットレイヤー VPNを組み合わせた仮想ネットワークプロトコルスタックを構築した。

OpenSolarisネットワーク仮想化は、いわゆる「ネットワーク内のネットワーク」を提供する( OpenSolarisネットワーク仮想化とリソース制御を参照)。

Microsoft Virtual Serverは、仮想マシンを使用してx86システム用の「ネットワーク内のネットワーク」を作成する。 これらのコンテナーは、 Microsoft WindowsやLinuxなど、特定のネットワークインターフェイスコントローラー (NIC)に関連付けられているか、独立しているさまざまなオペレーティングシステムを実行できる。

## テストで使用

ネットワーク仮想化は、実際のハードウェアとシステムソフトウェアを模倣するために、アプリケーション開発とテストで使用される場合がある。 アプリケーションパフォーマンスエンジニアリングでは、ネットワーク仮想化により、アプリケーション、サービス、依存関係、およびソフトウェアテスト用のエンドユーザー間の接続をエミュレーションできる。

## ワイヤレスネットワーク仮想化

ワイヤレスネットワークの仮想化は、スペクトル共有、インフラストラクチャの仮想化、エアインターフェイスの仮想化など、非常に広い範囲に適用できる。 1つまたは複数のプロバイダーが所有する物理インフラストラクチャを複数のサービスプロバイダー間で共有できる有線ネットワーク仮想化と同様に、ワイヤレスネットワーク仮想化では、物理ワイヤレスインフラストラクチャと無線リソースを抽象化し、複数の仮想リソースに分離する必要がある。さまざまなサービスプロバイダーに提供される。 つまり、仮想化は、有線ネットワークまたは無線ネットワークに関係なく、ネットワークシステム全体を分割するプロセスと見なすことができる。 ただし、時変チャネル、減衰、モビリティ、ブロードキャストなどの点で、ワイヤレス環境の特徴的な特性により、問題はさらに複雑になりる。 さらに、ワイヤレスネットワーク仮想化は特定のアクセステクノロジーに依存し、ワイヤレスネットワークには有線ネットワーク仮想化に比べてはるかに多くのアクセステクノロジーが含まれており、各アクセステクノロジーには特定の特性があるため、コンバージェンス、共有、抽象化を達成するのが困難である。 したがって、ワイヤレスネットワーク仮想化をネットワーク仮想化のサブセットと見なすのは不正確かもしれない。

## 性能

1まで  Gbit / sネットワーク、ネットワーク仮想化は、相互接続を提供するソフトウェアレイヤーまたはハイパーバイザーレイヤーのオーバーヘッドに悩まされていなかった。 高帯域幅の増加により、10   Gbit / s以上では、パケットのレートがネットワークスタックの処理能力を超えている。  でハイスループット処理を提供し続けるため、ソフトウェアとハードウェアヘルパーのいくつかの組み合わせは、ハードウェア依存に関連した、いわゆる「ボックス内のネットワーク」に配備されたネットワーク・インターフェース・コントローラ使用(NIC) SRIOV用の拡張機能をハイパーバイザー、またはNICとペイロード(仮想マシンまたはコンテナー)間で高速パステクノロジーを使用する。

たとえば、 OpenStackの場合、ネットワークはNeutronによって提供され、Linuxカーネルの多くの機能(iptables、iproute2、L2ブリッジ、L3ルーティング、OVS)を活用してネットワークを構築する。 Linuxカーネルは10Gパケットレートを維持できないため 、次に高速パスのためのいくつかのバイパス技術が使用される。メインバイパス技術は、いずれかのような機能の限られたセットに基づいているOpen vSwitch(OVS)のそのにDPDKユーザ空間の実装やなどの処理のLinuxの完全な機能とオフロードに基づいて6WIND仮想加速器。