仮想化とは
仮想化とは、物理的なハードウェアの構成をソフトウエアにより論理的な構成に見せることです。これにより、ハードウェアの追加や機能の変更を柔軟に行うことができます。
- 仮想マシン・仮想サーバ
サーバにはWebサーバやメールサーバなど多様な機能がありますが、それを個別のコンピュータに担当させるのではなく、1台のコンピュータに実装したり、Webサーバを複数のコンピュータに分散させたりします。利用者から見れば、「Webサーバ」「メールサーバ」として認識するだけでよく、どのコンピュータであるかを知る必要がありません。
このように、ハードウェアを仮想化したものを仮想マシン(Virtual Machine、VM)、仮想マシンによるサーバを仮想サーバといいます。
- VLAN
送受信を行うには、データそのものの伝送機能(Data Plane)と、機器間の伝送経路を決定したり、仮想マシンの配置変更に伴うネットワーク構成変更や動作状態の監視などをしたりする制御機能(Control Plane)が必要です。
通常の接続機器での制御機能は、人間がポート(接続口)にケーブルを差し込むことで接続ができ、IPアドレスなどで通過や折り返しをするなど単純なものでした。
VLAN(Virtual Local Area Network)は、複数の物理スイッチングハブのポートの組合せを、個々のスイッチンハブでのVLANリストを設定変更することにより、LAN構成を仮想化できます。すなわち、制御機能の設定や変更ができるようになりました。
そのVLANリストの設定変更は人手による静的変更が主でした。動的変更もできますが、ホストをスイッチングハブに接続したときに、ホストからの情報を自動的に得るなど限定的な機能です。
すなわち、VLANもネットワーク仮想化の技術ですが、LAN構成時に設定され、その後の設定変更はあまり行われないのが通常です。いわば静的な仮想化です。
- ネットワーク仮想化
多数のサーバやスイッチングハブをもつ大規模ネットワークにおいて、ネットワークの設定変更が頻繁に行うには、仮想サーバと仮想ネットワークによる環境を動的に構成変更できる技術が必要になります。
単純にいえば、集中管理サーバ(コントローラ)からの指示により、仮想化した名称をもつ個々のスイッチングハブのVLANリストを更新するような仕組みになります。
すなわち。伝送機能と制御機能の分離と制御機能の集中制御になります。それをネットワーク仮想化といいます。
SDN(Software-Defined Networking)
SDNの特徴
SDNはネットワーク仮想化をソフトウェアで集中制御する総合的な概念で、特定の技術を指すものではありません。具体的な実装はOpenFlowになります。
次の二つの特徴があります。
- 伝送機能と制御機能の分離
従来のLAN機器はデータ伝送機能と制御機能が一体化されていました。制御機能には、仮想マシンの配置変更に伴うネットワーク構成変更や動作状態の監視などがあります。その設定変更を個々の機器で行うのは大変です。
SDNでは、個々の機器から制御機能を分離して、コントローラという制御システムに集中させ、コントローラに機器全体の設定や制御を行わせます。
- 集中制御プロトコルの標準化
集中制御をするには、機器とコントローラの間で機器を制御するためのプロトコルの標準化が必要になります。その代表的なプロトコルにOpenFileがあります。
SDNの3レイヤ
SDNでは、LAN機器やコントローラの機能を次の3レイヤに分離しています。
- インフラストラクチャレイヤ
データ転送を実際に行うネットワーク機器のレイヤです。通常システムでのハードウェアに相当します。
- コントロールレイヤ
機器とコントローラ間のネットワーク機能、機器の制御に関するレイヤです。通常システムでのOSに相当します。
- アプリケーションレイヤ
さまざまなネットワークの振る舞いを設定するレイヤです。通常システムでのアプリケーションに相当します。
OpenFlow
OpenFlowは、SDNを実現するための代表的なプロトコルです。制御機能の遠隔操作を標準化するものです。
- OpenFlowは、伝送機能を行うOpenFlowスイッチと、制御機能を行うOpenFlowコントローラで構成され、コントローラとスイッチはOpenFlowプロトコルを用いて情報交換をします。下位プロトコルはTCPまたはTLSです
- 個々のOpenFlowスイッチは、コントローラ側から識別するために、Datapath IDという識別子を持ちます。
OpenFlowコントローラには、どのDatapath IDがどの条件のパケットに対してどのような動作を行うかなどを記述した制御テーブルがあり、これを変更することにより、OpenFlowスイッチの構成を変更できます。
- OpenFlowスイッチは、仮想スイッチとしてソフトウェアで実装できます。それによりVLANでのVLANリスト更新よりも柔軟な機能更新ができるので、高度な仮想化が実現できます。
NFV(Network Function Virtualization:ネットワーク機能仮想化)
接続機器の仮想化です。従来の機器はスイッチ、ルータ、ファイアウォール、ロードバランサなど専用のハードウェアやソフトウェアで動作していました。それを、汎用のOS上で動作するアプリケーションソフトとして実装し、仮想化されたサーバ上で実行できるようにするものです。
SDNが伝送機能と制御機能の分離をするのに対して、NFVは機器機能を標準的なソフトウェアで実装するもので、両者は補完的な関係になります。