以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施形態を説明する図において、同一の構成には原則として同一の符号を付し、統一の符号が付された構成の説明は省略する。
[第1の実施形態]
本発明の第1実施形態による仮想ネットワークシステムについて説明する。
仮想ネットワークシステムは、基盤となる一以上の物理ネットワークから構成される。図1〜図3を用いて本発明の第1の実施形態の仮想ネットワークシステムの基盤である物理ネットワークの構成について説明する。
図1は、本発明の第1の実施形態の仮想ネットワークシステムの基盤となる物理ネットワークの構成例を説明するブロック図である。
図1に示すように、本実施形態において仮想ネットワークシステムは、複数の物理ネットワーク1(1011)、物理ネットワークワーク2(1012)及び物理ネットワーク3から構成される。各物理ネットワーク1011、1012、1013は、各物理ネットワーク1011、1012、1013のエッジに配置されるエッジルータ102を経由して相互に接続される。
図1では簡単のため、物理ネットワーク1011、1012、1013がすべて互いに接続されている。なお、物理ネットワーク1011、1012、1013の構成については、図2を用いて後述する。
また、物理ネットワーク1011、1012、1013は、エッジルータ102を経由して、仮想ネットワークシステムを利用するユーザの通信システムが配置されるユーザ拠点と接続される。
図1では簡単のため、ユーザAのユーザ拠点1031、ユーザBのユーザ拠点1032、及びユーザCのユーザ拠点1033が接続されている。それぞれの物理ネットワーク1011、1012、1013におけるユーザAのユーザ拠点1031は、同一の構成でもよいし、異なる構成でもよい。ユーザBのユーザ拠点1032、ユーザCのユーザ拠点1033についても同様である。
仮想ネットワークシステムは、物理ネットワーク1(1011)を管理する物理ネットワーク管理サーバ1041、物理ネットワーク2(1012)を管理する物理ネットワーク管理サーバ1042、物理ネットワーク3(1013)を管理する物理ネットワーク管理サーバ1043を備える。
また、仮想ネットワークシステムは、仮想ネットワークシステム全体を管理する仮想ネットワーク管理サーバ105を備える。
各物理ネットワーク管理サーバ1041、1042、1043は、管理ネットワーク106を介して、それぞれの物理ネットワーク1011、1012、1013と接続される。また、仮想ネットワーク管理サーバ105は、管理ネットワーク106を介して各物理ネットワーク管理サーバ1041、1042、1043と接続される。
各物理ネットワーク1011、1012、1013は、仮想ネットワークを構成する方式が異なるため、各物理ネットワーク管理サーバ1041、1042、1043は、異なる方法を用いて仮想ネットワークを管理する。
物理ネットワーク1011、1012、1013における仮想ネットワークの構成方式及び仮想ネットワークの管理方法は、例えば、MPLS(Multi−Protocol Label Switching)、IEEE802.1Q Tag−VLAN、IEEE802.1ah EoE(Ethernet over Ethernet)(Ethernetは登録商標。以下同じ)等を用いることができる。
次に、個々の物理ネットワーク1011、1012、1013の内部構成について説明する。
以下、物理ネットワーク1011、1012、1013を区別しない場合には物理ネットワーク101と記載し、物理ネットワーク管理サーバ1041、1042、1043を区別しない場合には物理ネットワーク管理サーバ104と記載する。また、各ユーザの拠点1031、1032、1033を区別しない場合にはユーザ拠点103と記載する。
図2は、本発明の第1の実施形態の物理ネットワーク101の構成を説明するブロック図である。図2に示す例では物理ネットワーク1(1011)の構成を示す図である。
物理ネットワーク1(1011)は、物理ネットワーク1(1011)のエッジに配置されるエッジルータ102と、各エッジルータ102間を接続するコアルータ201とから構成される。
前述したように物理ネットワーク1(1011)には、物理ネットワーク管理サーバ1041が接続される。図2に示す例では、物理ネットワーク1(1011)に含まれるコアルータ201と物理ネットワーク管理サーバ1041とが接続される。
物理ネットワーク管理サーバ1041は、物理ネットワーク1(1011)を構成する全コアルータ201及び全エッジルータ102と管理ネットワーク106を介して通信が可能である。物理ネットワーク管理サーバ1041は、管理ネットワーク106を介してコアルータ201及びエッジルータ102を制御する。
図3A、図3B及び図3Cは、本発明の第1の実施形態の仮想ネットワークシステムにおける仮想ネットワークの構成の一例を示す説明図である。
本実施形態では、仮想ネットワークシステム上にユーザ毎の仮想ネットワークが構成される。
図3Aは、ユーザAの仮想ネットワーク3011を示した説明図である。図3Bは、ユーザBの仮想ネットワーク3012を示した説明図である。図3Cは、ユーザCの仮想ネットワーク3013を示した説明図である。以下、仮想ネットワーク3011、3012、3013を区別しない場合には仮想ネットワーク301と記載する。
図3A〜図3Cに示すように、各ユーザの仮想ネットワーク301は、各ユーザのユーザ拠点103を個別に接続するネットワークとして提供される。すなわち、仮想ネットワーク301は、各ユーザに論理的に分割されたネットワークとして提供される。
例えば、ユーザAの仮想ネットワーク3011を生成するには、まず、各物理ネットワーク101上にユーザAの仮想ネットワークが構成される。次に、各物理ネットワーク101上で構成されたユーザAの仮想ネットワークがエッジルータ102を介して接続され、各物理ネットワーク101をまたがった仮想ネットワークが構成される。また、ユーザAの仮想ネットワークとユーザAの拠点1031とがエッジルータ102を介して接続されることによって、図3に示すユーザAの仮想ネットワーク3011が構成される。
なお、本実施形態ではユーザ毎に別々の仮想ネットワーク301が割り当てられることを前提としているが、キャリア若しくはサービスプロバイダが提供するサービス毎、又は、ユーザが保有するアプリケーション毎等に基づいて仮想ネットワークが割り当てられてもよい。
以下、物理ネットワーク管理サーバ104、仮想ネットワーク管理サーバ105及びエッジルータ102のハードウェア構成について説明する。
仮想ネットワーク管理サーバ105は、プロセッサ(図示省略)、メモリ(図示省略)、不揮発性記憶媒体(図示省略)、及びネットワークインタフェース(図示省略)を備え、これらの構成は内部バス(図示省略)等を介して接続される。なお、仮想ネットワーク管理サーバ105は、他の構成を備えていてもよい。
メモリ(図示省略)上に格納されるプログラムを実行することによって、仮想ネットワーク管理サーバ105が備える機能を実現できる。仮想ネットワーク管理サーバ105が備えるソフトウェアの構成については図5を用いて後述する。
物理ネットワーク管理サーバ104は、プロセッサ(図示省略)、メモリ(図示省略)、不揮発性記憶媒体(図示省略)、及びネットワークインタフェース(図示省略)を備え、これらの構成は内部バス(図示省略)等を介して接続される。なお、物理ネットワーク管理サーバ104は、他の構成を備えていてもよい。
メモリ(図示省略)上に格納されるプログラムを実行することによって、物理ネットワーク管理サーバ104が備える機能を実現できる。物理ネットワーク管理サーバ104が備えるソフトウェアの構成については図13を用いて後述する。
図4は、本発明の第1の実施形態のエッジルータ102のハードウェア構成を説明するブロック図である。
エッジルータ102は、パケット処理ボード3904、スイッチ3903及びネットワークインタフェース(NIF)3902を備える。
ネットワークインタフェース(NIF)3902は、外部の装置と通信するためのインタフェースであり、外部と通信するためのポート(PORT)3905を備える。ポート3905には、光ケーブル、又はメタルケーブル等の通信ケーブル3906が接続される。
スイッチ3903は、内部配線3907を介して、ネットワークインタフェース(NIF)3902とパケット処理ボード3904とを相互に接続する。これによって、通信パケット及び装置内部の制御情報を互いに通信することができる。
パケット処理ボード3904は、通信パケットを処理する。パケット処理ボード3904は、例えば、プログラム可能なプロセッサであるネットワークプロセッサ(NPU)3909、メモリ3910、及びスイッチ3903と接続するためのインタフェース(I/O)3908から構成される。パケット処理ボード3904は、ネットワークプロセッサ(NPU)3909、及びメモリ3910を複数備えてもよい。
なお、エッジルータ102は、パケット処理ボード3904及びネットワークインタフェース(NIF)3902を一以上備えてもよい。
なお、エッジルータ102のソフトウェアの構成については図15を用いて後述する。
図5は、本発明の第1の実施形態の仮想ネットワーク管理サーバ105のソフトウェア構成を説明するブロック図である。
仮想ネットワーク管理サーバ105は、機能ブロックとして、ユーザ要求受付部401、仮想ネットワーク割当管理部402、仮想ネットワーク管理部403及び抽象化層管理部404を備える。
また、仮想ネットワーク管理サーバ105は、仮想ネットワークシステムの管理情報として、ユーザ要求情報405、仮想ネットワーク定義情報406、仮想ネットワーク割当情報407、マッピング情報408、及び抽象化層情報409を保持する。
仮想ネットワーク受付部401は、仮想ネットワークを管理するオペレータから仮想ネットワーク301の生成、削除又は変更等のユーザ要求を受け付ける。以下、仮想ネットワークを管理するオペレータを単にオペレータと記載する。
具体的には、仮想ネットワーク受付部401は、仮想ネットワーク301を構成するための構成情報が含まれるユーザ要求を受け付け、受け付けたユーザ要求に含まれる構成情報をユーザ要求情報405に格納する。また、仮想ネットワーク受付部401は、ユーザ要求情報405に格納される情報を抽象化層の情報に変換し、抽象化層の情報を仮想ネットワーク定義情報406に格納する。
オペレータは、仮想ネットワーク301を生成する場合に、例えば、図6に示すような構成情報が含まれるユーザ要求を送信することによって仮想ネットワーク301の生成を要求する。
図6は、本発明の第1の実施形態のユーザ要求によって生成される仮想ネットワーク301の一例を示す説明図である。図6では、ユーザBの仮想ネットワーク3012を生成するための構成情報を示す。
図6に示す例では、ユーザBのユーザ拠点1032は、それぞれ、都市1(10321)、都市2(10322)、及び都市4(10323)に配置される。ユーザ拠点10321、10322、10323の間は、L2ネットワーク801で構成される。また、都市3に配置された中継拠点802を経由してL2ネットワーク801が中継又は分離される。
なお、ここでは場所を示す情報は都市1、都市2、都市3等の都市名称である。また、トランスポート機能を示す情報は、L2ネットワークである。ただし、オペレータが要求する仮想ネットワーク301の構成情報は、一般的に、仮想ネットワーク301を用いたサービスの種類によって異なる。例えば、場所を示す情報としては、物理ネットワーク101毎に異なる識別子、独自の名称、地名、都市名等が用いられる。また、トランスポート機能を示す情報としては、L2、L3等のネットワークのレイヤ名、イーサネット、IP等のプロトコル種類名、MPLS、及びEoE等の仮想ネットワークの技術名称が用いられる。
図5の説明に戻る。
仮想ネットワーク割当管理部402は、仮想ネットワーク定義情報406及び抽象化層情報409に基づいて、仮想ネットワーク301の割当てを管理する。具体的には、仮想ネットワーク割当管理部402は、ユーザに割当てる仮想ネットワーク301を、各物理ネットワーク101へマッピングし、当該マッピング結果をマッピング情報408に格納する。
仮想ネットワーク管理部403は、仮想ネットワークシステム上に構築された仮想ネットワーク301を管理する。具体的には、仮想ネットワーク管理部403は、各物理ネットワーク管理サーバ104及びエッジルータ102から必要な情報を取得し、取得された情報に基づいて、仮想ネットワーク301の構成を制御する。
抽象化層管理部404は、仮想ネットワークシステムを抽象化ネットワークとして管理する。ここで、抽象化ネットワークについて説明する。
図7は、本発明の第1の実施形態の仮想ネットワークシステムを抽象化した抽象化ネットワークを示す説明図である。
抽象化ネットワークでは、図1に示すような仮想ネットワークシステムの各物理ネットワーク101を接続するエッジルータ102が、一つのネットワークとして共通の抽象ノード702として管理される。一方で、抽象ノード702が、どの物理ネットワーク101に属するエッジルータ102であるかを管理するために、同一の物理ネットワーク101に属するエッジルータ102に対応する抽象ノード702がネットワークグループとして管理される。
図7に示す例では、物理ネットワーク1(1011)はネットワークグループ1(7011)、物理ネットワーク2(1012)はネットワークグループ2(7012)、物理ネットワーク3(1013)はネットワークグループ3(7013)にグルーピングされる。以下、ネットワークグループ7011、7012、7013を区別しない場合にはネットワークグループ701と記載する。
すなわち、本発明では、複数の物理ネットワーク101から構成される仮想ネットワークシステムが、抽象ノード702とネットワークグループ701とから構成される一つの抽象化ネットワークが構成される。
本発明は、図6に示すような物理ネットワーク101における情報と、仮想ネットワーク301における情報との間に、抽象化層情報を備えることを特徴とする。抽象化層情報を用いることによって、物理ネットワーク101と仮想ネットワーク301との間のマッピングを容易に管理することが可能となる。
図5の説明に戻る。
ユーザ要求情報405は、オペレータから受け付けたユーザ要求に含まれる構成情報を格納する。ユーザ要求情報405の詳細については、図8を用いて後述する。
仮想ネットワーク定義情報406は、ユーザ要求情報405に格納される情報が変換された抽象化層の情報を格納する。仮想ネットワーク定義情報406の詳細については、図9を用いて後述する。
仮想ネットワーク割当情報407は、仮想ネットワーク301とユーザとの対応関係を格納する。仮想ネットワーク割当情報407の詳細については、図10を用いて後述する。
マッピング情報408は、抽象化ネットワークへの仮想ネットワーク301のマッピング結果を格納する。マッピング情報408の詳細については、図11を用いて後述する。
抽象化層情報409は、抽象化ネットワークの構成情報を格納する。抽象化層情報409の詳細については図12を用いて後述する。
本実施形態では、後述する処理によって、予め、複数の物理ネットワーク101から構成される仮想ネットワークシステムが、一つのネットワーク、すなわち、抽象化ネットワークとして管理される。
以下、仮想ネットワーク管理サーバ105が保持する情報について説明する。
図8は、本発明の第1の実施形態のユーザ要求情報405の一例を示す説明図である。図8に示す例では、図6に示す仮想ネットワーク3012を生成するための構成情報が格納される。
本実施形態では、ユーザ要求情報405は表形式T901のデータとして表される。
ユーザ要求情報405は、ユーザ名(K902)、トランスポート機能(K903)、ユーザ拠点(K904)及び中継拠点(K905)を含む。
ユーザ名(K902)は、仮想ネットワーク301が割当てられるユーザを識別するための情報を格納する。
トランスポート機能(K903)は、仮想ネットワーク301に用いられるプロトコルの種類を識別するための情報を格納する。
ユーザ拠点(K904)は、ユーザ拠点103を識別するための情報を格納する。本実施形態では、都市名が格納される。
中継拠点(K905)は、中継拠点を識別するための情報を格納する。本実施形態では都市名が格納される。
図8に示すようにユーザ要求情報405には、ユーザが要求する仮想ネットワーク301を構成するために必要な情報が格納される。
図9は、本発明の第1の実施形態の仮想ネットワーク定義情報406の一例を示す説明図である。
本実施形態では、仮想ネットワーク定義情報406は表形式T1001のデータとして表される。
仮想ネットワーク定義情報406は、仮想ネットワークID(K1002)、トランスポート機能(K1003)、ユーザ拠点LID(K1004)、及び中継拠点LID(K1005)を含む。
仮想ネットワークID(K1002)は、仮想ネットワーク301を識別するための識別子を格納する。
トランスポート機能(K1003)は、仮想ネットワーク301に用いられるプロトコルの種類を識別するための情報を格納する。トランスポート機能(K1003)は、トランスポート機能(K903)と同一のものである。
ユーザ拠点LID(K1004)は、ユーザ拠点の場所を抽象層の情報として表した識別子であるLID(Location ID)を格納する。
中継拠点LID(K1005)は、中継拠点の場所を抽象層の情報として表した識別子であるLIDを格納する。
図9に示すように、仮想ネットワーク定義情報406は、物理ネットワーク101における情報を、抽象化ネットワークの情報に変換した情報を格納する。
図10は、本発明の第1の実施形態の仮想ネットワーク割当情報407の一例を示す説明図である。
本実施形態では、仮想ネットワーク割当情報407は、表形式T1101のデータとして表される。
仮想ネットワーク割当情報407は、仮想ネットワークID(K1102)及びユーザ名(K1103)を含む。
仮想ネットワークID(K1102)は、仮想ネットワーク301を識別するための識別子を格納する。仮想ネットワークID(K1102)は、仮想ネットワークID(K1002)と同一のものである。
ユーザ名(K1103)は、仮想ネットワーク301が割り当てられるユーザを識別するための情報を格納する。ユーザ名(K1103)は、ユーザ名(K902)と同一のものである。
図11は、本発明の第1の実施形態のマッピング情報408の一例を示す説明図である。図11では、ユーザBに割り当てられる仮想ネットワーク3012に関する情報が格納されたマッピング情報408を示す。
本実施形態では、マッピング情報408は、表形式T1201のデータとして表される。
マッピング情報408は、仮想ネットワークID(K1202)、トランスポート機能(K1203)、及びマッピング情報(K1204)を含む。
仮想ネットワークID(K1202)は、仮想ネットワーク301を識別するための識別子を格納する。仮想ネットワークID(K1202)は、仮想ネットワークID(K1002)と同一のものである。
トランスポート機能(K1203)は、仮想ネットワーク301に用いられるプロトコルの種類を識別するための情報を格納する。トランスポート機能(K1203)は、トランスポート機能(K903)と同一のものである。
マッピング情報(K1204)は、仮想ネットワーク301に割当てられる抽象ノード702とユーザ拠点又は中継拠点との対応関係を表す情報を格納する。具体的には、マッピング情報(K1204)は、拠点LID(K1205)及び抽象ノードID(K1206)を含む。
拠点LID(K1205)は、ユーザ拠点の場所又は中継拠点の場所を抽象化層の情報として表したLIDを格納する。抽象ノードID(K1206)は、拠点LID(K1205)がマッピングされた抽象ノード702を識別するための識別子を格納する。
図11に示す例では、トランスポート機能(K1203)には、ユーザBに割当てられる仮想ネットワーク3012において用いられるプロトコルとして「Ethernet」が格納される。
また、マッピング情報K1204の拠点LID(K1205)には図8の都市1のユーザ拠点10321を表す「1」が格納され、対応するマッピング情報(K1204)の抽象ノードID(K1206)には「1」が格納される。
マッピング情報(K1204)の拠点LID(K1205)には図8の都市2のユーザ拠点10322を表す「102」が格納され、対応するマッピング情報K1204の抽象ノードID(K1206)には「3」が格納される。
マッピング情報K1204の拠点LID(K1205)には図8の都市3のユーザ拠点10323を表す「104」が格納され、対応するマッピング情報(K1204)の抽象ノードID(K1206)には「11」が格納される。マッピング情報(K1204)の拠点LID(K1205)には、図8の都市3の中継拠点802を表す「103」が格納され、対応するマッピング情報(K1204)の抽象ノードID(K1206)には「4」及び「10」が格納される。
図11に示すように、マッピング情報408には、抽象化ネットワークの情報と、仮想ネットワークの情報とが対応づけられて格納される。
図12は、本発明の第1の実施形態の抽象化層情報409の一例を示す説明図である。
本実施形態では、抽象化層情報409は、表形式T1301として表される。
抽象化層情報409は、抽象ノードID(K1302)、トランスポート機能(K1303)、LID(K1304)、ネットワークグループ(K1305)、及び物理ネットワーク接続(K1306)を含む。
抽象ノードID(K1302)は、抽象ノード702を識別するための識別子を格納する。
トランスポート機能(K1303)は、抽象ノードID(K1302)に対応する抽象ノード702が扱うことができるプロトコルの種類を格納する。
LID(K1304)は、抽象化ネットワークにおいて、抽象ノードID(K1302)に対応する抽象ノード702が配置される場所を示す識別情報を格納する。
ネットワークグループ(K1305)は、抽象ノードID(K1302)に対応する抽象ノード702が属するネットワークグループ701を識別するための識別子を格納する。
物理ネットワーク接続(K1306)は、抽象ノードID(K1302)に対応する抽象ノード702と接続される隣接物理ネットワーク101を識別するための識別子を格納する。
本発明は、図12に示すように、仮想ネットワークシステムを構成する各物理ネットワーク101に含まれるエッジルータ102を、抽象化ネットワークにおいて共通の抽象ノード702として一元管理することに特徴がある。
なお、抽象化ネットワークを構成する場合には、少なくとも、トランスポート機能(K1303)、又は、LID(K1304)のいずれかの情報があればよい。
次に、物理ネットワーク管理サーバ104のソフトウェア構成について説明する。
図13は、本発明の第1の実施形態の物理ネットワーク管理サーバ104のソフトウェア構成を説明するブロック図である。
物理ネットワーク管理サーバ104は、機能ブロックとして、仮想ネットワーク管理インタフェース501及び物理ネットワーク管理部502を備える。
また、物理ネットワーク管理サーバ104は、物理ネットワーク101の管理情報として、抽象化層情報503及び物理ネットワーク構成情報504を保持する。
仮想ネットワーク管理インタフェース501は、仮想ネットワーク管理サーバ105と通信するためのインタフェースである。仮想ネットワーク管理インタフェース501によって、仮想ネットワーク管理サーバ105へ物理ネットワーク101の構成情報を送信し、また、仮想ネットワーク管理サーバ105から仮想ネットワーク301の生成、削除又は変更するための制御情報又は抽象化ネットワークに関する情報を受信する。
物理ネットワーク管理部502は、物理ネットワーク管理サーバ104が接続される物理ネットワーク101、すなわち、管理対象の物理ネットワーク101上に仮想ネットワーク301を構成するための管理を行う。
また、物理ネットワーク管理部502は、仮想ネットワーク301を構成するために、物理ネットワーク101内のエッジルータ102及びコアルータ201の構成情報の取得し、また、エッジルータ102及びコアルータ201に仮想ネットワーク301を構成するための情報を設定する。
なお、仮想ネットワーク301を管理するための情報は物理ネットワーク構成情報504に格納される。
抽象化層情報503は、抽象化ネットワークの構成情報を格納する。抽象化層情報503の詳細については、図14Aを用いて後述する。
物理ネットワーク構成情報504は、物理ネットワーク管理サーバ104が管理する物理ネットワーク101のエッジルータ102及びコアルータ201の構成情報を格納する。物理ネットワーク構成情報504の詳細については、図14Bを用いて後述する。
物理ネットワーク管理部502及び物理ネットワーク構成情報504は、物理ネットワーク101を管理するための構成であり、物理ネットワーク101毎に管理方法が異なる。
一方、仮想ネットワーク管理インタフェース501及び抽象化層情報503は、仮想ネットワーク管理サーバ105が複数の物理ネットワーク101にまたがって仮想ネットワーク301を生成するための構成であり、本発明の特徴の一つである。
図14Aは、本発明の第1の実施形態の抽象化層情報503の一例を示す説明図である。図14Aは、物理ネットワーク1(1011)を管理する物理ネットワーク管理サーバ1041が保持する抽象化層情報503を示す。
本実施形態では、抽象化層情報503は、表形式T1501のデータとして表される。
抽象化層情報503は、物理ノードID(K1502)、抽象ノードID(K1503)、トランスポート機能(K1504)、LID(K1505)、及びネットワークグループ(K1506)を含む。
物理ノードID(K1502)は、物理ネットワーク1(1011)内のエッジルータ102等の物理ノードを識別するための識別子を格納する。
抽象ノードID(K1503)は、物理ノードID(K1502)に対応する物理ノードを抽象化層の抽象ノード702として識別するための識別子を格納する。
トランスポート機能K1504は、物理ノードID(K1502)に対応する物理ノードが扱うことができるプロトコル種類を格納する。
LID(K1505)は、抽象化ネットワークにおいて、物理ノードID(K1502)に対応する物理ノードが配置され場所を表す識別子を格納する。
ネットワークグループ(K1506)は、抽象化ネットワークにおいて、物理ノードID(K1502)に対応する物理ノードが属するネットワークグループ701を識別するための識別子を格納する。
図14Bは、本発明の第1の実施形態の物理ネットワーク構成情報504の一例を示す説明図である。
物理ネットワーク構成情報504は、ノードID(K1512)、種類(K1513)、配置場所(K1514)、隣接ノード(K1515)、トランスポート機能(K1516)、LID(K1517)、物理ネットワークアドレス(K1518)を含む。
ノードID(K1512)は、物理ネットワーク1(1011)内のエッジルータ102等の物理ノードを識別するための識別子を格納する。
種類(K1513)は、ノードID(K1512)に対応する物理ノードの種別を格納する。
配置場所(K1514)は、物理ネットワーク101において、ノードID(K1512)に対応する物理ノードが配置されている場所を表す情報を格納する。
隣接ノード(K1515)は、ノードID(K1512)に対応する物理ノードと隣接する他の物理ノードの識別子を格納する。
トランスポート機能(K1516)は、ノードID(K1512)に対応する物理ノードが扱うことができるプロトコル種類を格納する。
LID(K1517)は、物理ネットワーク101における、ノードID(K1512)に対応する物理ノードの配置場所を表す識別情報である。LID(K1517)は、例えば、物理ネットワーク101の構成時に決定される識別情報である。
物理ネットワークアドレス(K1518)は、物理ネットワーク101における、ノードID(K1512)に対応する物理ノードのアドレス情報である。
次に、エッジルータ102のソフトウェア構成について説明する。
図15は、本発明の第1の実施形態によるエッジルータ102のソフトウェア構成を説明するブロック図である。
エッジルータ102は、機能ブロックとして、抽象化層処理部601及び物理ネットワークエッジ機能部602を備える。
また、エッジルータ102は、管理情報として、抽象化層情報603及びエッジルータ構成情報604を保持する。
抽象化層処理部601は、抽象化層情報603に基づいて、抽象化ネットワークを管理する。なお、仮想ネットワーク管理サーバ105からの要求によって、抽象化層処理部601が有効化される。
物理ネットワークエッジ機能部602は、物理ネットワーク101に外部から流入する通信パケットを当該物理ネットワーク101内で正しくルーティングするためのルーティングの解決機能と、物理ネットワーク101内で通信パケットをカプセル化するカプセル化機能とを備える。
ここで、カプセル化機能とは、流入通信パケットをカプセル化し、また、流出通信パケットのカプセル化を解除する機能である。
抽象化層情報603は、抽象化ネットワークにおけるエッジルータ102の情報を格納する。抽象化層情報603の詳細については、図16を用いて後述する。
エッジルータ構成情報604は、物理ネットワークエッジ機能部602が備えるルーティングの解決機能及びカプセル化機能を実現するために必要となる物理ネットワーク101の構成情報を格納する。
物理ネットワークエッジ機能部602及びエッジルータ構成情報604は、物理ネットワーク101を構成するエッジルータ102として機能するための構成であり、物理ネットワーク101毎に提供する機能が異なる。
一方、抽象化層処理部601及び抽象化層情報603は、仮想ネットワーク管理サーバ105が複数の物理ネットワーク101にまたがって仮想ネットワーク301を生成するための構成であり、本発明の特徴の一つである。
図16は、本発明の第1の実施形態の抽象化層情報603の一例を示す説明図である。図16は、物理ネットワーク1(1011)を構成するエッジルータ102が保持する抽象化層情報603を示す。
本実施形態では、抽象化層情報603は、表形式T1401のデータとして表される。
抽象化層情報603は、抽象ノードID(K1402)、トランスポート機能(K1403)、LID(K1404)、ネットワークグループ(K1405)、及び物理ネットワーク接続(K1406)を含む。
抽象ノードID(K1402)は、抽象化ネットワークにおける当該エッジルータ102を抽象ノード702として識別するための識別子を格納する。
トランスポート機能(K1403)は、エッジルータ102が扱うことができるプロトコル種類を格納する。
LID(K1404)は、抽象化ネットワークにおいて、エッジルータ102が配置される場所を表す識別子を格納する。
ネットワークグループ(K1405)は、抽象化ネットワークにおいて、エッジルータ102が属するネットワークグループ701を識別するための識別子を格納する。
物理ネットワーク接続(K1406)は、エッジルータ102が接続する隣接物理ネットワーク101をネットワークグループ701として識別するための識別子を格納する。
次に、仮想ネットワークシステムにおける仮想ネットワーク301の管理方法について説明する。
まず、本実施形態における仮想ネットワークシステムの初期化処理について説明する。
図17A及び図17Bは、本発明の第1の実施形態における仮想ネットワークシステムの初期化処理の一例を説明するフローチャートである。
図17A及び図17Bでは、簡単のため物理ネットワーク1(1011)及び物理ネットワーク2(1012)について記載する。
仮想ネットワーク管理サーバ105は、オペレータからシステム初期化要求が入力された場合に、仮想ネットワークシステムの初期化処理を開始する。
まず、仮想ネットワーク管理サーバ105は、物理ネットワーク管理サーバ1041及び物理ネットワーク管理サーバ1042のそれぞれに、物理ネットワーク1(1011)及び物理ネットワーク2(1012)の構成情報の取得要求を送信する(ステップ1601)。
仮想ネットワーク管理サーバ105からの取得要求を受信した物理ネットワーク管理サーバ1041及び物理ネットワーク管理サーバ1042は、仮想ネットワーク管理サーバ105に、それぞれの物理ネットワーク1(1011)及び物理ネットワーク2(1012)の構成情報を送信する(ステップ1602)。具体的には、物理ネットワーク101内のエッジルータ102に関する情報が送信される。物理ネットワーク101内のエッジルータ102に関する情報は、例えば、物理ネットワーク構成情報504、及び、エッジルータ構成情報604が考えられる。
ここで、仮想ネットワーク管理サーバ105に送信される情報には、少なくとも、各物理ネットワーク101内のエッジルータ102の配置場所を示す識別情報(例えば、拠点名)及びエッジルータ102が対応可能なトランスポート機能の情報が含まれる。
仮想ネットワーク管理サーバ105は、物理ネットワーク管理サーバ1041及び物理ネットワーク管理サーバ1042から受信したエッジルータ102に関する情報に基づいて、抽象化層情報を決定する(ステップ1603)。すなわち、抽象化ネットワークの情報が生成される。
具体的には、仮想ネットワーク管理サーバ105は、抽象化ネットワークにおいて、エッジルータ102を識別するための抽象ノード702の識別子、すなわち、抽象ノードID(K1302)を決定する。抽象ノードID(K1302)の決定方法は、例えば、仮想ネットワーク管理サーバ105から近いエッジルータ102から順に識別子を割り当てる方法が考えられる。ただし、抽象ノードID(K1302)の決定方法はどのような方法を用いてもよい。
また、仮想ネットワーク管理サーバ105は、物理ネットワーク管理サーバ104から受信したエッジルータ102に関する情報に基づいて、当該エッジルータ102が提供可能なトランスポート機能、すなわち、トランスポート機能(K1303)を決定する。
また、仮想ネットワーク管理サーバ105は、物理ネットワーク管理サーバ104から受信したエッジルータ102に関する情報に基づいて、抽象化ネットワークにおける、エッジルータ102の配置場所を表す識別子、すなわち、LID(K1304)を決定する。
さらに、仮想ネットワーク管理サーバ105は、抽象化ネットワークにおいて、エッジルータ102が属する物理ネットワーク101を識別するための識別子、すなわち、ネットワークグループ(K1305)を決定する。
仮想ネットワーク管理サーバ105は、決定された抽象ノードID(K1302)、トランスポート機能(K1303)、LID(K1304)及びネットワークグループK1305を抽象化層情報409に格納する。
なお、この時点では、物理ネットワーク接続(K1306)には情報が格納されていない。
次に、仮想ネットワーク管理サーバ105は、決定された抽象化層情報を各物理ネットワーク101に設定する(ステップ1604)。
具体的には、仮想ネットワーク管理サーバ105は、決定された抽象化層情報を物理ネットワーク管理サーバ1041及び物理ネットワーク管理サーバ1042のそれぞれに送信する。物理ネットワーク管理サーバ1041及び物理ネットワーク管理サーバ1042は、受信した抽象化層情報をそれぞれ抽象化層情報503に格納する。
なお、物理ネットワーク管理サーバ104は、管理対象の物理ネットワーク101内のエッジルータ102の識別情報、すなわち、物理ノードID(K1502)は保持しているため、当該物理ノードID(K1502)と、受信した抽象化層情報とを対応づけて格納する。これによって、物理ネットワーク管理サーバ104は、図14Aに示すような抽象化層情報503を保持できる。
次に、仮想ネットワーク管理サーバ105は、エッジルータ1021、1022、1023、1024等の物理ネットワーク1(1011)及び物理ネットワーク2(1012)に含まれる全エッジルータ102に対して、抽象化層処理部601を有効化するための有効化要求を送信する(ステップ1605)。これによって、エッジルータ102が備える抽象化層処理部601が処理を開始する。
仮想ネットワーク管理サーバ105は、物理ネットワーク1(1011)及び物理ネットワーク2(1012)に含まれる全エッジルータ102に、ステップ1603において決定された抽象化層情報を設定する(ステップ1606)。具体的には、仮想ネットワーク管理サーバ105は、各エッジルータ102に決定された抽象化層情報を送信する。
仮想ネットワーク管理サーバ105から抽象化層情報を受信した各エッジルータ102は、必要な情報を抽象化層情報603に格納する。具体的には、抽象ノードID(K1402)、LID(K1404)、及びネットワークグループ(K1405)に情報が格納される。なお、トランスポート機能(K1403)は、エッジルータ102が予め保持する。また、この時点では、物理ネットワーク接続(K1406)には情報が格納されていない。
抽象化層処理部601が有効化されたエッジルータ102は、隣接する物理ネットワーク101のエッジルータ102(隣接エッジルータ102)と接続されているか否かを判定するためにディスカバリ処理を実行する(ステップ1607、ステップ1611)。
具体的には、エッジルータ102はディスカバリ信号を送信し、当該信号の応答があった場合には、隣接エッジルータ102が接続されると判定する。
隣接エッジルータ102が接続されていないと判定された場合、エッジルータ102は、ディスカバリ処理を終了する。一方、隣接エッジルータ102接続されていると判定された場合、エッジルータ102間で通信する。
図17Bでは、エッジルータ1021からのディスカバリ信号を受信したエッジルータ1023は、エッジルータ1021に応答信号を送信する(ステップ1608)。
また、エッジルータ1021及びエッジルータ1023は、自身が保持する抽象化層情報603を互いに送信する(ステップ1609、ステップ1610)。
これによって、隣接するネットワークグループ701を把握することができる。すなわち、エッジルータ102は、受信した抽象化層情報603のネットワークグループ(K1405)の識別情報を自身が保持する抽象化層情報603の物理ネットワーク接続(K1405)に格納する。
仮想ネットワーク管理サーバ105は、例えば、ポーリングなどによってディスカバリ処理の状況を確認し、全エッジルータ102に対して抽象化層情報603の取得要求を送信する(ステップ1612)。
抽象化層情報603の取得要求を受信した各エッジルータ102は、それぞれ、仮想ネットワーク管理サーバ105に抽象化層情報603を送信する(ステップ1613)。具体的には、抽象化層情報603の物理ネットワーク接続(K1405)に関する情報が送信される。
これによって、抽象化層情報409の物理ネットワーク接続(K1306)に情報が格納される。
仮想ネットワーク管理サーバ105は、仮想ネットワーク301を提供する機能を有効化し、仮想ネットワークシステムの初期処理が終了する(ステップ1614)。
以上の処理によって、仮想ネットワーク管理サーバ105の抽象化層情報409、物理ネットワーク管理サーバ104の抽象化層情報503、及びエッジルータ102の抽象化層情報603が設定される。すなわち、抽象化ネットワークの情報が生成される。
本実施形態では、抽象化ネットワークの情報を用いて仮想ネットワーク301と物理ネットワーク101とのマッピングが実行される。
図17A及び図17Bに示す処理によって、抽象化層情報409、抽象化層情報509及び抽象化層情報603が設定される。
次に、本実施形態において仮想ネットワークシステム上に新たに仮想ネットワーク301を生成する時に実行される処理について説明する。
図18は、本発明の第1の実施形態における仮想ネットワーク301の生成処理の一例を説明するフローチャートである。
仮想ネットワーク管理サーバ105は、仮想ネットワークシステムのオペレータから仮想ネットワーク生成要求が入力された場合に処理を開始する(ステップ1701)。
まず、仮想ネットワーク管理サーバ105は、入力された仮想ネットワーク生成要求に基づいてユーザ要求情報405を更新する(ステップ1702)。具体的には、入力された仮想ネットワーク生成要求に含まれる情報がユーザ要求情報405に格納される。
仮想ネットワーク管理サーバ105は、さらに、ユーザ要求情報405に格納される情報に基づいて、仮想ネットワーク定義情報406を更新する(ステップ1703)。
例えば、仮想ネットワーク管理サーバ105は、各物理ネットワーク管理サーバ104から物理ネットワーク構成情報504を取得し、取得された物理ネットワーク構成情報504とユーザ要求情報405とに基づいて、ユーザ要求情報405に格納される情報を仮想ネットワークを設定するための情報に変換し、当該情報を仮想ネットワーク定義情報406に格納する。なお、仮想ネットワーク管理サーバ105は、エッジルータ構成情報604も合わせて取得してもよい。
例えば、仮想ネットワーク管理サーバ105は、ユーザ要求情報405のユーザ拠点(K904)に対応する拠点名のエントリを、取得された物理ネットワーク構成情報503から検索する。そして、仮想ネットワーク管理サーバ105は、ユーザ要求情報405のトランスポート機能(K903)をトランスポート機能(K1516)に変換し、また、ユーザ拠点(K904)をそれぞれ対応するLID(K1517)に変換する。
仮想ネットワーク管理サーバ105は、仮想ネットワーク定義情報406及び抽象化層情報409を参照して、要求された仮想ネットワーク301を生成するためのネットワークグループ701を選択する(ステップ1704)。すなわち、仮想ネットワーク管理サーバ105は、トランスポート機能(K1003)と一致するトランスポート機能が提供できるネットワークグループ701を選択する。
具体的には、仮想ネットワーク管理サーバ105は、トランスポート機能(K1303)を参照して、トランスポート機能(K1003)と一致するトランスポート機能を含むエントリのネットワークグループ(K1305)を、仮想ネットワーク301を生成するためのネットワークグループ701として選択する。
仮想ネットワーク管理サーバ105は、抽象化層情報409を参照して、要求された仮想ネットワーク301のユーザ拠点LID(K1004)及び中継拠点LID(K1005)と一致するLIDを有する抽象ノード702を選択する(ステップ1705)。
具体的には、仮想ネットワーク管理サーバ105は、LID(K1304)を参照して、選択されたネットワークグループ701に含まれる抽象化ノード702のうち、仮想ネットワーク301を生成するための抽象ノード702を選択する。
次に、仮想ネットワーク管理サーバ105は、ステップ1703及びステップ105において選択されたネットワークグループ701及び抽象ノード702に基づいて、要求された仮想ネットワーク301を抽象化層情報409にマッピングできるか否かを判定する(ステップ1706)。
マッピングができないと判定された場合、仮想ネットワーク管理サーバ105は、オペレータに要求された仮想ネットワーク301の生成に失敗した旨を通知し(ステップ1711)、処理を終了する。
マッピングできたと判定された場合、仮想ネットワーク管理サーバ105は、マッピング結果に基づいて、マッピング情報408を更新する(ステップ1707)。具体的には、仮想ネットワーク管理サーバ105は、マッピング情報408にマッピング結果を格納する。
仮想ネットワーク管理サーバ105は、要求された仮想ネットワーク301がマッピングされた抽象ノード702に対して仮想ネットワーク301の設定情報を送信する(ステップ1708)。
なお、仮想ネットワーク301の設定情情報には、少なくとも、仮想ネットワークID、トランスポート機能、及びマッピング情報が含まれる。
仮想ネットワーク管理サーバ105は、要求された仮想ネットワークがマッピングされたネットワークグループ701の物理ネットワーク管理サーバ104に仮想ネットワーク301の設定情報を送信する(ステップ1709)。
以上の処理によって、仮想ネットワークシステム上に複数の物理ネットワーク101をまたがった仮想ネットワーク301が生成される。
仮想ネットワーク管理サーバ105は、オペレータに仮想ネットワークの生成が完了した旨を通知し(ステップ1710)、処理を終了する。
なお、ステップ1706において、要求された仮想ネットワーク301を抽象化層情報409にマッピングする候補が複数ある場合、その中のいずれか一つが選択される。複数の候補を選択する方法としては、オペレータが直接選択する方法、又は、仮想ネットワーク管理サーバ105が、ネットワークコスト又はネットワークの混雑度等の情報に基づいて自動的に選択する方法等が考えられるが、本実施形態ではいずれの方法を用いてもよい。
次に、本実施形態において運用中の仮想ネットワークシステム上に新たにエッジルータ1802が追加された時に実行される仮想ネットワークシステムの変更処理について説明する。
図19A及び図19Bは、本発明の第1の実施形態における仮想ネットワークシステムにエッジルータ102が追加された場合に実行される仮想ネットワークシステムの変更処理の一例を説明するフローチャートである。
図19A及び図19Bでは、簡単のため物理ネットワーク1(1011)及び物理ネットワーク2(1012)について記載する。
以下、物理ネットワーク1(1011)にエッジルータ1801が追加された場合について説明する。
物理ネットワーク管理サーバ1041は、物理ネットワーク1(1011)にエッジルータ1801が新たに追加された場合に、エッジルータ1801に対して当該エッジルータ1801の情報を取得するための取得要求を送信する(ステップ1801)。
取得要求を受信したエッジルータ1801は、エッジルータ構成情報604を物理ネットワーク管理サーバ1041に送信する(ステップ1802)。
物理ネットワーク管理サーバ1041は、仮想ネットワーク管理サーバ105に取得されたエッジルータ構成情報604を送信する(ステップ1803)。
仮想ネットワーク管理サーバ105は、受信したエッジルータ構成情報604に基づいて、抽象化層情報を決定する(ステップ1804)。ステップ1804の処理は、ステップ1603と同一の方法を用いることができる。
これによって、抽象ノードID(K1302)、トランスポート機能(K1303)、LID(K1304)及びネットワークグループ(K1305)が決定される。さらに、決定された抽象ノードID(K1302)、トランスポート機能(K1303)、LID(K1304)及びネットワークグループ(K1305)が抽象化層情報409に格納される。
仮想ネットワーク管理サーバ105は、決定された抽象化層情報を物理ネットワーク管理サーバ1041に設定する(ステップ1805)。
具体的には、仮想ネットワーク管理サーバ105は、決定された抽象化層情報を物理ネットワーク管理サーバ1041に送信する。物理ネットワーク管理サーバ1041は、受信した抽象化層情報を抽象化層情報503に格納する。
仮想ネットワーク管理サーバ105は、エッジルータ1801に対して、抽象化層処理部601を有効化するための有効化要求を送信する(ステップ1806)。これによって、エッジルータ102が備える抽象化層処理部601が処理を開始する。
仮想ネットワーク管理サーバ105は、エッジルータ1801に、抽象化層情報409に格納される抽象化層情報を設定する(ステップ1807)。
具体的には、仮想ネットワーク管理サーバ105は、エッジルータ1801に、抽象化層情報409に格納される抽象化層情報を送信する。仮想ネットワーク管理サーバ105から抽象化層情報を受信したエッジルータ1801は、必要な情報を抽象化層情報603に格納する。
なお、ステップ1807における処理はステップ1606と同一の処理である。
次に、エッジルータ1801は、隣接する物理ネットワーク101のエッジルータ102と接続されているか否かを判定するためにディスカバリ処理を実行する(ステップ1808)。ステップ1808の処理は、ステップ1609及びステップ1610と同一の処理である。
隣接エッジルータ102が接続されていないと判定された場合、エッジルータ1801は、ディスカバリ処理を終了する。一方、隣接エッジルータ102が接続されていると判定された場合、エッジルータ1801とエッジルータ1024は互いに通信する。
図18Bでは、エッジルータ1801からのディスカバリ信号を受信したエッジルータ1024は、エッジルータ1801に応答信号を送信する(ステップ1809)。ステップ1809の処理は、ステップ1608と同一の処理である。
エッジルータ1801及びエッジルータ1024は、自身が保持する抽象化層情報603を互いに送信する(ステップ1810、ステップ1811)。ステップ1810及びステップ1811の処理は、ステップ1609及びステップ1610と同一の処理である。
仮想ネットワーク管理サーバ105は、例えば、ポーリングなどによってディスカバリ処理の状況を確認し、追加されたエッジルータ1801に対して抽象化層情報603の取得要求を送信する(ステップ1812)。ステップ1812の処理は、ステップ1612と同一の処理である。
抽象化層情報603の取得要求を受信したエッジルータ1801は、仮想ネットワーク管理サーバ105に抽象化層情報603の物理ネットワーク接続(K1405)を送信する(ステップ1813)。ステップ1813の処理はステップ1613と同一の処理である。
以上の処理によって、仮想ネットワークシステムへのエッジルータ1801の追加処理が完了する。
仮想ネットワーク管理サーバ105は、追加されたエッジルータ1801を含む仮想ネットワークシステムにおける仮想ネットワーク301を提供する機能を有効化し、処理を終了する(ステップ1814)。ステップ1814はステップ1614と同一の処理である。
次に、本実施形態の仮想ネットワークシステムからエッジルータ102又はコアルータ201等の物理ルータを削除する削除処理について説明する。
図20は、本発明の第1の実施形態における仮想ネットワークシステムから物理ルータが削除される場合に実行される削除処理の一例を説明するフローチャートである。
物理ネットワーク管理サーバ104は、オペレータから物理ルータの削除要求を受け付けると処理を開始する(ステップ1901)。なお、オペレータは、仮想ネットワーク管理サーバ105を用いて、削除される物理ルータが属する物理ネットワーク101の物理ネットワーク管理サーバ104に削除要求を送信する。
削除要求を受信した物理ネットワーク管理サーバ104は、削除対象である物理ルータを削除すると仮想ネットワーク301に影響があるか否かを判定する(ステップ1902)。
例えば、仮想ネットワーク301を構成するエッジルータ102である場合には、当該エッジルータ102を削除すると仮想ネットワーク301に影響があると判定される。
物理ルータを削除しても仮想ネットワーク301に影響がないと判定された場合、物理ネットワーク管理サーバ104は、物理ネットワーク101の構成を変更し(ステップ1903)、その後、削除対象の物理ルータを削除して処理を終了する(ステップ1908)。
物理ルータを削除すると仮想ネットワーク301に影響があると判定された場合、物理ネットワーク管理サーバ104は、仮想ネットワーク管理サーバ105に仮想ネットワーク301のマッピングの変更を要求する(ステップ1904)。具体的には、物理ネットワーク管理サーバ104は、仮想ネットワーク管理サーバ105にマッピング変更要求を送信する。
マッピング変更要求を受信した仮想ネットワーク管理サーバ105は、影響がある仮想ネットワーク301について抽象化層情報409へのマッピングを再度実行する。
仮想ネットワーク管理サーバ105は、再度実行したマッピングの結果、ネットワークの切断又は性能低下等、仮想ネットワーク301に影響が発生するか否かを判定する(ステップ1905)。
仮想ネットワーク301に影響が発生すると判定された場合、仮想ネットワーク管理サーバ105は、仮想ネットワーク301を利用するユーザに影響がある旨を通知し、当該仮想ネットワーク301への影響を許可するか否かを判定する(ステップ1906)。
当該判定は、例えば、ユーザから仮想ネットワーク301への影響を許可する旨の通知を受信した場合に、仮想ネットワーク301への影響が許可されたと判定される。
ステップ1905において仮想ネットワーク301に影響が発生しないと判定された場合、又は、ステップ1906において仮想ネットワーク301への影響が許可された場合、仮想ネットワーク管理サーバ105は、仮想ネットワーク301のマッピングを変更する(ステップ1907)。
具体的には、仮想ネットワーク管理サーバ105は、ステップ1904におけるマッピング結果をマッピング情報408に反映させる。
仮想ネットワーク管理サーバ105は、マッピングの変更が完了した旨を物理ネットワーク管理サーバ104に通知する。
マッピングの変更が完了した旨の通知を受信した物理ネットワーク管理サーバ104は、物理ルータを削除し、処理を終了する(ステップ1908)。
ステップ1906の判定において、仮想ネットワーク301への影響が許可されないと判定された場合、仮想ネットワーク管理サーバ105は、物理ルータの削除を中止させるため、物理ネットワーク管理サーバ104に削除中止命令を送信し、処理を終了する(ステップ1909)。
次に、本実施形態の仮想ネットワークシステムにおける仮想ネットワーク301に新たにユーザ拠点103を追加する時に実行されるユーザ拠点の追加処理について説明する。
図21は、本発明の第1の実施形態の仮想ネットワークシステムにおける仮想ネットワーク301にユーザ拠点を追加する場合に実行されるユーザ拠点の追加処理の一例を説明するフローチャートである。
仮想ネットワーク管理サーバ105は、オペレータから仮想ネットワーク301への新たなユーザ拠点103の追加要求を受け付けると処理を開始する(ステップ2001)。
以下、仮想ネットワーク管理サーバ105は、ユーザ拠点103が追加された仮想ネットワーク301を抽象化層情報409にマッピングし、マッピングができたか否かを判定する処理は、図18のステップ1702〜ステップ1707と同一であるため、説明を省略する。以下、図18との差異を中心に説明する。
ステップ1706において、要求された仮想ネットワーク301を抽象化層情報409にマッピングできないと判定された場合、仮想ネットワーク管理サーバ105は、オペレータに対して仮想ネットワーク301の変更が失敗した旨を通知し、処理を終了する(ステップ2007)。
ステップ1707において、要求された仮想ネットワーク301を抽象化層情報409にマッピングできたと判定された場合、仮想ネットワーク管理サーバ105は、マッピングを変更した場合に、仮想ネットワーク301への影響があるか否かを判定する(ステップ2002)。
仮想ネットワーク301への影響があると判定された場合、仮想ネットワーク管理サーバ105は、仮想ネットワーク301を利用するユーザに仮想ネットワーク301への影響がある旨を通知し、当該仮想ネットワーク301への影響を許可するか否かを判定する(ステップ2003)。
仮想ネットワーク301への影響が許可されない場合、仮想ネットワーク管理サーバ105は、オペレータに対して仮想ネットワーク301の変更が失敗した旨を通知し、処理を終了する(ステップ2007)。
ステップ2002において、仮想ネットワーク301への影響がないと判定された場合、又は、ステップ2003において仮想ネットワーク301への影響が許可された場合、仮想ネットワーク管理サーバ105は、マッピング結果に基づいて、マッピング情報408を更新する(ステップ1707)。
仮想ネットワーク管理サーバ105は、仮想ネットワーク301がマッピングされたエッジルータ102に仮想ネットワーク301の設定情報を送信する(ステップ2004)。
また、仮想ネットワーク管理サーバ105は、仮想ネットワークがマッピングされたネットワークグループ701を管理する物理ネットワーク管理サーバ104に仮想ネットワーク301の設定情報を送信する(ステップ2005)。
以上の処理によって、ユーザ拠点103が追加された仮想ネットワーク301を構成することができる。
仮想ネットワーク管理サーバ105は、オペレータに対して仮想ネットワーク301の変更が完了した旨を通知し、処理を終了する(ステップ2006)。
なお、ステップ1706において、要求された仮想ネットワーク301を抽象化層情報409にマッピングする候補が複数ある場合、その中のいずれか一つが選択される。複数の候補を選択する方法としては、オペレータが直接選択する方法、又は、仮想ネットワーク管理サーバ105が、ネットワークコスト又はネットワークの混雑度等の情報に基づいて自動的に選択する方法が考えられるが、本実施形態ではいずれの方法を用いてもよい。
次に、第1の実施形態の仮想ネットワークシステムにおけるエッジルータ102の構成について説明する。
図22は、本発明の第1の実施形態のエッジルータ102のソフトウェアの実装例を示すブロック図である。図22は、物理ネットワーク1(1011)におけるエッジルータ102を示した図である。
図22に示すように、エッジルータ102は、ポート3905を経由して物理ネットワーク1(1011)と接続する。
エッジルータ102のネットワークインタフェース3902は、物理ネットワーク1(1011)の物理ネットワークエッジ機能部602及びエッジルータ構成情報604を備える。また、エッジルータ102のパケット処理ボード3904は、抽象化層処理部601及び抽象化層情報603を備える。
図23は、本発明の第1の実施形態における、異なる物理ネットワーク101を接続する二つのエッジルータ102間の構成の一例を示すブロック図である。
図23に示すように、エッジルータ1021は物理ネットワーク1(1011)と接続されるエッジルータであり、エッジルータ1022は物理ネットワーク2(1012)と接続されるエッジルータである。それぞれのエッジルータ1021、1022は、通信ケーブル3906を介して互いに接続される。
なお、エッジルータ1022のネットワークインタフェース3902は、物理ネットワーク2(1022)の物理ネットワークエッジ機能部602及びエッジルータ構成情報604を備える。
図24は、本発明の第1の実施形態における、物理ネットワーク101及びユーザ拠点103を接続するエッジルータ102の構成の一例を示すブロック図である。
エッジルータ102が、物理ネットワーク1(1011)及びユーザBのユーザ拠点1032と接続する場合、図24に示すように、ネットワークインタフェース3902に、ユーザBのユーザ拠点1032が接続される。
従来は、仮想ネットワーク301を生成する場合には、各物理ネットワーク101の構成を確認して、マッピングをする必要があり、また、物理ネットワーク101毎に管理する情報又は管理方法が異なる形式である場合に、それぞれの情報を正確に把握する必要があった。
しかし、本発明の第1の実施形態によれば、抽象化ネットワークを設定することによって、複数の物理ネットワーク101から構成される仮想ネットワークシステムを共通の情報で一元管理することが可能となる。したがって、従来技術のような煩雑さを解消することができる。
すなわち、複数の物理ネットワーク101が共通の情報を用いた抽象化ネットワークとして管理されるため、オペレータの要求を満たす仮想ネットワーク301を自動的に、かつ、迅速に生成することが可能となる。
[第2の実施形態]
本発明の第2の実施形態の仮想ネットワークシステムについて説明する。
第2の実施形態では、仮想ネットワークシステムにおいて一意な抽象化層アドレスを処理するための機能が抽象ノード702に追加される。その他の構成は第1の実施形態と同一であるため、以下では第1の実施形態と異なる部分を中心に説明する。
図25は、本発明の第2の実施形態のエッジルータ102のソフトウェア構成を説明するブロック図である。
第2の実施形態のエッジルータ102は、第1の実施形態におけるエッジルータ102の抽象化層処理部601にさらに転送アドレス解決部2102が追加され、また、抽象化層情報603に抽象化層アドレス変換情報2103及び抽象化層アドレス対応情報2104が追加される。
転送アドレス解決部2102は、通信パケットに抽象化アドレスの付与又は削除する。また、転送アドレス解決部2102は、抽象化層アドレスを用いたアドレス解決をするための処理部である。転送アドレス解決部2102が実行する処理の詳細については、図30を用いて後述する。
抽象化層アドレス変換情報2103は、仮想ネットワークシステム内において、抽象ノード702を一意に識別するための抽象化層アドレスを格納する。抽象化層アドレス変換情報2103の詳細については、図26Aを用いて後述する。
抽象化層アドレス対応情報抽象化層アドレス対応情報2104は、抽象化アドレスとエッジルータ102に接続されるユーザ拠点103との対応関係を格納する。抽象化層アドレス対応情報2104の詳細については、図26Bを用いて後述する。
図26Aは、本発明の第2の実施形態の抽象化層アドレス変換情報2103の一例を示す説明図である。
本実施形態では、抽象化層アドレス変換情報2103は、表形式T2301のデータとして表される。
抽象化層アドレス変換情報2103は、抽象化層アドレス(K1302)及び物理ネットワークアドレス(K1303)を含む。
抽象化層アドレス(K1302)は、抽象化ネットワークにおいて、ネットワークグループ701に含まれる抽象ノード702を一意に識別するためのアドレスを格納する。
物理ネットワークアドレス(K1303)は、抽象ノード702に対応するエッジルータ102等のノードの物理ネットワーク101内におけるアドレスを格納する。
このとき、抽象化層情報409には、抽象化層アドレスに関する情報がさらに追加される。
図26Bは、本発明の第2の実施形態の抽象化層アドレス対応情報2104の一例を示す説明図である。
本実施形態では、抽象化層アドレス対応情報2104は、表形式T2401のデータとして表される。
抽象化層アドレス対応情報2104は、MACアドレス(K2402)及び抽象化層アドレス(K2403)を含む。
MACアドレス(K2402)は、エッジルータ102に接続されるユーザ拠点103を識別するためのMACアドレスを格納する。
抽象化層アドレス(K2403)は、抽象化層アドレス(K1302)と同一のものである。
本実施形態では、エッジルータ102は、抽象化層アドレス対応情報2104を参照して通信パケットに抽象化アドレスを付与する。
なお、抽象化層アドレス対応情報2104は、エッジルータ102が通信パケットを学習して生成する方法、又は、オペレータが予め設定した情報を用いる方法が考えられる。以下の説明では、オペレータが予め設定した情報を用いる場合について説明する。
なお、本実施形態では、MACアドレスを用いたが、本発明はこれに限定されない。例えば、ポート、VLAN又は上位レイヤの情報等に基づく対応情報を用いてもよい。
なお、エッジルータ102は、抽象化層アドレス変換情報2103及び抽象化層アドレス対応情報2104を一つの管理情報として保持してもよい。
図27は、本発明の第2の実施形態の抽象化層情報409の一例を示す説明図である。
本実施形態では、抽象化層情報409は、表形式T2201のデータとして表される。
抽象化層情報409は、抽象ノードID(K1302)、トランスポート機能(K1303)、LID(K1304)、ネットワークグループ(K1305)、物理ネットワーク接続(K1306)及び抽象化層アドレス(K2202)を含む。図27に示すように、抽象化層アドレスを格納する抽象化層アドレス(K2202)のカラムが新たに追加されている点が第1の実施形態と異なる。
次に、第2の実施形態における仮想ネットワークシステムの初期化処理について説明する。
図28は、本発明の第2の実施形態における仮想ネットワークシステムの初期化処理の一例を説明するフローチャートである。
まず、図17に示す初期化処理(ステップ1601〜ステップ1614)が実行される。その後、以下の処理が実行される。
仮想ネットワーク管理サーバ105は、予めオペレータによって設定された情報に基づいて各抽象ノード702の抽象化層アドレスを決定し、決定された抽象化層アドレスを抽象化層情報409の抽象化層アドレス(K2202)に格納する(ステップ2401)。
仮想ネットワーク管理サーバ105は、ユーザ拠点103と接続するエッジルータ24011、24012に、決定された抽象化層アドレスを設定する(ステップ2402)。
具体的には、決定された抽象化層アドレスがエッジルータ24011、24012に送信される。エッジルータ24011、24012は、抽象化層アドレス変換情報2103の抽象化アドレス(K2302)及び抽象化層アドレス対応情報2104の抽象化アドレス(K2402)に、受信した抽象化アドレスを格納する。
仮想ネットワーク管理サーバ105は、各エッジルータ1021、1023、24011、24012に対して、物理ネットワーク101における当該エッジルータ1021、1023、24011、24012のアドレス情報の取得要求を送信する(ステップ2403)。
アドレス情報の取得要求を受信した各エッジルータ1021、1023、24011、24012は、仮想ネットワーク管理サーバ105に、物理ネットワーク101におけるアドレス情報を送信する(ステップ2404)。
仮想ネットワーク管理サーバ105は、抽象化層アドレスと、物理ネットワーク101におけるアドレスとに基づいて、抽象化ネットワークにおけるルーティング情報を算出する(ステップ2405)。
仮想ネットワーク管理サーバ105は、各エッジルータ1021、1023、24011、24012に、算出されたルーティン情報を送信する(ステップ2406)。
各エッジルータ1021、1023、24011、24012は、受信したルーティング情報を抽象化層アドレス変換情報2103及び抽象化層アドレス対応情報2104に格納する。
以上の処理によって、各エッジルータ1021、1023、24011、24012の抽象化層アドレス変換情報2103及び抽象化層アドレス対応情報2104の設定が完了する。これによって、抽象化層アドレスと、物理ネットワーク101におけるアドレスとの対応関係を把握することが可能となる。
次に、第2の実施形態におけるエッジルータ2101の転送アドレス解決部2102によって実行される処理について説明する。
図29は、本発明の第2の実施形態の仮想ネットワークシステムにおけるユーザBの拠点1032間の通信パケットの通信経路の一例を示す説明図である。
ユーザBの拠点1032間を接続する仮想ネットワーク301は、物理ネットワーク1(1011)及び物理ネットワーク3(1013)から構成される。このとき、ユーザBの通信パケットは、例えば、図29の通信経路2501のようにユーザBの拠点1032間で転送される。
物理ネットワーク101内では、物理ネットワーク101毎に異なる方法で仮想ネットワークが構成される。例えば、物理ネットワーク1(1011)内では、エッジルータ1021、1022の物理ネットワークエッジ機能部602が、抽象化層アドレス変換情報2103及び抽象化層アドレス対応情報2104に基づいて、物理ネットワーク1(1011)において転送可能な通信パケット2502に通信パケットを変更する。
同様に、物理ネットワーク3(1013)内では、エッジルータ1023、1024の物理ネットワークエッジ機能部602が、抽象化層アドレス変換情報2103及び抽象化層アドレス対応情報2104に基づいて、物理ネットワーク3(1013)において転送可能な通信パケット2503に通信パケットを変更する。
本実施形態では、仮想ネットワークシステム内を流れる通信パケットには、仮想ネットワーク内で変更されないヘッダ情報が付加される。以下、本実施形態における通信パケットの構造について説明する。
図30は、本発明の第2の実施形態における物理ネットワーク1(1011)の通信パケット2502の構造の一例を示した説明図である。図31は、本発明の第2の実施形態における物理ネットワーク3(1013)の通信パケット2503の構造の一例を示した説明図である。
通信パケット2502は、ユーザパケット2601、抽象化層ヘッダ2602、及び物理ネットワーク1のヘッダ2603を含む。
ユーザパケット2601は、ユーザ拠点103内でのユーザの通信パケットである。
抽象化層ヘッダ2602は、仮想ネットワーク301内で変更されないヘッダ情報である。例えば、抽象化層ヘッダ2602は、仮想ネットワーク301内における宛先のユーザBの拠点1032に接続されたエッジルータ1024の抽象化層アドレスE(宛先アドレス)2606と、送信元のユーザBの拠点1032に接続されたエッジルータ1021の抽象化層アドレスB(送信元アドレス)2605と、その他の制御情報として仮想ネットワーク識別子2604とが含まれる。
物理ネットワーク1のヘッダ2603は、物理ネットワーク1(1011)内のヘッダ情報である。例えば、物理ネットワーク1のヘッダ2603には、宛先アドレスとして物理ネットワーク1(1011)内のアドレス「A4」が含まれる。
通信パケット2503は、ユーザパケット2701、抽象化層ヘッダ2602、及び物理ネットワーク3のヘッダ2703を含む。
抽象化層ヘッダ2602には、仮想ネットワーク301内で宛先のユーザBの拠点1032に接続されたエッジルータ1024の抽象化層アドレスE(宛先アドレス)2606と、送信元のユーザBの拠点1032に接続されたエッジルータ1021の抽象化層アドレスB(送信元アドレス)2605と、その他の制御情報として仮想ネットワーク識別子2604とが含まれる。
図31に示すように、抽象化層ヘッダ2602は、いずれの物理ネットワーク101であっても変化しない。
物理ネットワーク3のヘッダ2703は、宛先アドレスとして物理ネットワーク3(1013)内のアドレス「B3」が含まれる。
なお、本実施形態における各エッジルータ1021、1022、1023、1024は、以下のような抽象化層アドレスと、物理ネットワーク101内アドレスとを持つものとする。
エッジルータ1021は、物理ネットワーク1内のアドレス「A2」と、抽象化層アドレス「B」とを保持する。
エッジルータ1022は、物理ネットワーク1内のアドレス「A4」を保持するが、抽象化層アドレスは保持しない。
エッジルータ1023は、物理ネットワーク3内のアドレス「D3」を保持するが、抽象化層アドレスは保持しない。
エッジルータ1024は、物理ネットワーク3内のアドレス「B2」と、抽象化層アドレス「D」とを保持する。
エッジルータ1023の転送アドレス解決部2102は、通信パケット内の抽象化層ヘッダ2602に基づいて抽象化層アドレス変換情報2103を参照し、通信パケットの物理ネットワーク3(1013)内のルーティングを解決する。
例えば、通信パケット内の抽象化層ヘッダ2602の宛先アドレス2606が「E」である場合、エッジルータ1023の転送アドレス解決部2102は、抽象化層アドレス変換情報2103の抽象化層アドレスK1302が「E」の行から、物理ネットワーク3(1013)のアドレスを「B3」と特定し、通信パケット2503の物理ネットワーク3(1013)内のヘッダ2703の宛先アドレスをB3としてルーティング処理を実行する。
なお、エッジルータ102が抽象化アドレスを付与する方法は、例えば、以下の通りである。
まず、エッジルータ102は、受信した通信パケットを解析する。次に、エッジルータは、当該解析結果に基づいて、抽象化層アドレス変換情報2103及び抽象化層アドレス対応情報2104を参照し、受信した通信パケットに抽象化アドレスを含む抽象化層ヘッダを付与する。
また、エッジルータ102は、各拠点103に通信パケットを送信するときに、当該通信パケットから抽象化層ヘッダを削除する。
従来は、各エッジルータ102がユーザ空間のアドレスと、当該エッジルータが属する物理ネットワーク101におけるアドレスとを保持する必要がある。そのため、エッジルータ102がアドレス解決のために保持するテーブル容量が膨大になることがあった。すなわち、エッジルータ、ユーザアドレス数及びユーザ数を乗算した数のエントリが必要となる。
しかし、本発明の第2の実施形態によれば、複数の物理ネットワークから構成される仮想ネットワークシステム全体で一意な抽象化層アドレスを用い、通信パケットに抽象化層アドレスの抽象化ヘッダを追加することによって、仮想ネットワークシステム内において抽象化層アドレスを用いたアドレス解決ができる。そのため、仮想ネットワークシステム内で管理するアドレス変換情報量を削減でき、ルータ装置及び運用管理面のコストダウンが可能である。
[第3の実施形態]
本発明の第3の実施形態の仮想ネットワークシステムについて説明する。
第3の実施形態の仮想ネットワークシステムは、第1の実施形態の仮想ネットワークシステムにおいて、物理ネットワーク101が、仮想的な計算機(サーバ)、又は仮想的なスイッチ等の仮想機能を備えるルータが追加される。その他の構成は第1の実施形態と同一であるため、以下では第1の実施形態と異なる部分を中心に説明する。
図3A〜図3Cに示すように、ユーザ毎の仮想ネットワーク3011、3012、3013は、各ユーザのユーザ拠点1031、1032、1033を個別に接続する論理的に分離されたネットワークを提供する。
例えば、ユーザAの仮想ネットワーク3011を構成するには、まず、物理ネットワーク1(1011)、物理ネットワーク2(1012)、物理ネットワーク3(1013)のそれぞれ物理ネットワークにおいてユーザAの仮想ネットワークが構成される。そして、各物理ネットワーク1(1011)、物理ネットワーク2(1012)、物理ネットワーク3(1013)上で構成されたユーザAの仮想ネットワークがエッジルータ102を介して接続されることによって、各物理ネットワーク1011、1012、1013をまたがった仮想ネットワークが構成される。また、構成されたユーザAの仮想ネットワークとユーザAの拠点1031とがエッジルータ102を介して接続されることによって、図3に示すユーザAの仮想ネットワーク3011が構成される。
なお、本実施形態ではユーザ毎に別々の仮想ネットワーク301を割り当てることを前提としているが、ユーザ毎でなく、キャリア若しくはサービスプロバイダが提供するサービス毎、又は、ユーザが保有するアプリケーション毎等の分類に基づいて仮想ネットワーク301が割り当てられてもよい。
図32は、本発明の第3の実施形態における物理ネットワーク101の構成を説明するブロック図である。
図32に示すように、第3の実施形態では物理ネットワーク1(1011)には、仮想的な計算機、又は仮想的なスイッチ等の仮想機能を備えるルータ2801が含まれる。
図33A、図33B及び図33Cは、本発明の第3の実施形態の仮想ネットワークシステムにおけるユーザ毎の仮想ネットワーク301の構成の一例を示す説明図である。
各仮想ネットワーク3011、3012、3013は、図3A〜Cと同様に各ユーザのユーザ拠点1031、1032、1033を接続する論理的に分離されたネットワークを提供する。
本実施形態では、さらに、ルータ2801が備える仮想機能によって提供される機能によって、仮想L3スイッチ2901及び仮想サーバ2902等がユーザ毎の仮想ネットワーク3011、3012、3013上に接続される。
図33Bに示す例では、ユーザBの仮想ネットワーク3012では、仮想L3スイッチ2901と仮想サーバ2902との機能を使用することができる。
なお、説明を簡単にするため、物理ネットワーク1(1011)にルータ2801が追加される例を用いているが、他の物理ネットワーク1012、1013がルータ2801を備えてもよい。
次に、本発明の第3の実施形態の仮想ネットワークシステムを構成する各装置が備えるソフトウェア構成について説明する。
図34は、本発明の第3の実施形態の仮想ネットワークシステムを抽象化した抽象化ネットワークを示す説明図である。
仮想ネットワーク管理サーバ105の抽象化層管理部404は、抽象化層情報409に基づいて、図32に示すような物理ネットワーク101から構成される仮想ネットワークシステムを、図34に示すような抽象化ネットワークとして管理する。
本実施形態での抽象化ネットワークでは、ルータ2801はエッジルータ102と同様に抽象ノード3101として管理される。
以下、仮想ネットワーク管理サーバ105が備える情報について説明する。
第3の実施形態の仮想ネットワーク管理サーバ105は、第1の実施形態の仮想ネットワーク管理サーバ105と同一のハードウェア構成である。第3の実施形態の仮想ネットワーク管理サーバ105は、ルータ2801が提供する仮想機能の情報を保持する点が異なる。
図35は、本発明の第3の実施形態の抽象化層情報409の一例を示す説明図である。
本実施形態では、抽象化層情報409は、表形式T3501として表される。
第1の実施形態の抽象化層情報409(図12参照)と比較して、新たに、仮想機能(K3502)のカラムが追加されている点が異なる。
仮想機能(K3502)は、抽象ノード3101に対応するルータ2801が提供する仮想機能の情報を格納する。
図35に示すように、仮想ネットワークシステムを構成する全ての抽象ノード702、3101を、抽象化ネットワークにおいて共通の情報で管理することができることが本発明の特徴である。
図36は、本発明の第3の実施形態のユーザ要求情報405の一例を示す説明図である。
本実施形態では、ユーザ要求情報405は表形式T3201のデータとして表される。
ユーザ要求情報405には、オペレータから受け付けた仮想ネットワーク301の要求の他に、要求される仮想機能の情報が格納される。
第1の実施形態のユーザ要求情報405(図8参照)と比較して、新たに、仮想機能(K3202)のカラムが追加されている点が異なる。
仮想機能(K3202)は、オペレータが要求する仮想機能に関する情報を格納する。すなわち、オペレータが要求する仮想ネットワーク301に接続される仮想機能を表す。
図37は、本発明の第3の実施形態の仮想ネットワーク定義情報406の一例を示す説明図である。
本実施形態では、仮想ネットワーク定義情報406は表形式T3301のデータとして表される。
仮想ネットワーク定義情報406は、仮想ネットワーク受付部401がユーザ要求情報405に格納される情報を抽象化ネットワークの情報に変換した情報を格納する。
第1の実施形態の仮想ネットワーク定義情報406(図9参照)と比較して、新たに仮想化機能(K3302)のカラムが追加されている点が異なる。
仮想化機能(K3302)は、抽象化ネットワークにおいて、オペレータが要求する仮想機能に関する情報を格納する。すなわち、オペレータが要求する仮想ネットワーク301に接続される仮想機能を表す。
図38は、本発明の第3の実施形態のマッピング情報408の一例を示す説明図である。図38は、ユーザBに割り当てられる仮想ネットワーク3012のマッピング情報408を示したものである。
本実施形態では、マッピング情報408は表形式T3401のデータとして表される。
仮想ネットワーク割当管理部402は、ユーザに割り当てる仮想ネットワーク301を、抽象化ネットワークへマッピングし、当該マッピング結果をマッピング情報408に格納する。
第1の実施形態のマッピング情報408(図11参照)と比較して、第3の実施形態のマッピング情報408は、新たに、仮想機能マッピング情報(K3402)のカラムが追加されている点が異なる。
仮想機能マッピング情報(K3402)は、仮想ネットワーク301に割り当てられる抽象ノード3101によって提供される仮想機能に関する情報を格納する。
仮想機能マッピング情報(K3402)は、仮想機能(K3403)及び抽象ノードID(K3404)を含む。
仮想機能(K3403)は、抽象化ネットワークにおいて、オペレータが要求する仮想機能に関する情報を格納する。すなわち、オペレータが要求する仮想ネットワーク301に接続される仮想機能を表す。
抽象ノードID(K3404)は、仮想機能(K3403)に対応する仮想機能を提供する抽象ノード3101を識別するための識別子を格納する。
図38に示す例では、仮想L3スイッチ機能を提供する抽象ノード3101の抽象ノードID(K3404)は「101」であり、また、仮想サーバ機能を提供する抽象ノード3101の抽象ノードID(K3404)は「102」であることを示す。
次に、物理ネットワーク管理サーバ104について説明する。
第3の実施形態の物理ネットワーク管理サーバ104は、ルータ2801が提供する仮想機能に関する情報を抽象化層情報503に保持する。
図39は、本発明の第3の実施形態の抽象化層情報503の一例を示す説明図である。
本実施形態では、抽象化層情報503は表形式T3701のデータとして表される。
第1の実施形態の抽象化層情報503(図14A参照)と比較して、第3の実施形態の抽象化層情報503は、新たに、仮想機能(K3702)が追加される。
仮想機能(K3702)は、抽象化ネットワークにおいて、ルータ2801が提供する仮想機能に関する情報を格納する。すなわち、仮想ネットワーク301に接続される仮想機能を表す。
図39に示す例では、物理ノードID(K1502)が「ルータe」のルータ2801は、抽象ノードID(K1503)が「101」、仮想機能(K3502)が「仮想L3スイッチ」であることを表す。また、物理ノードID(K1502)が「ルータf」のルータ2801は、抽象ノードID(K1503)が「102」、仮想機能(K3502)が「仮想サーバ」であることがわかる。
次に、ルータ2801について説明する。
ルータ2801のハードウェア構成は、エッジルータ102と同一であるため説明を省略する。
図40は、本発明の第3の実施形態のルータ2801のソフトウェア構成を説明するブロック図である。
ルータ2801は、仮想機能部3002を備える点がエッジルータ102と異なる。
仮想機能部3002は、仮想ネットワーク301に対して、仮想機能、例えば、仮想スイッチ又は仮想サーバ等を提供する機能を備える。また、ルータ2801の抽象化層情報603は、エッジルータ102の抽象化層情報603と異なる情報を含む。
図41は、本発明の第3の実施形態のルータ2801が備える抽象化層情報603の一例を示す説明図である。
本実施形態では、ルータ2801が備える抽象化層情報603は、表形式T3601として表される。
第1の実施形態の抽象化層情報603(図16参照)と比較して、第3の実施形態の抽象化層情報603は、新たに、仮想機能(K3602)のカラムが追加される。
仮想機能(K3602)は、抽象化ネットワークにおいて、ルータ2801が提供する仮想機能に関する情報を格納する。すなわち、仮想ネットワーク301に接続される仮想機能を表す。
なお、本実施形態では、エッジルータ102が仮想機能部3002を備える構成となっているが、エッジルータ102とは別の装置が仮想機能部3002を備えていてもよい。例えば、物理ネットワーク101に含まれるサーバ装置が仮想機能部3002を備えていてもよい。
次に、第3の実施形態の仮想ネットワークシステムにおける仮想ネットワーク301の生成処理について説明する。
図42は、本発明の第3の実施形態の仮想ネットワークシステムにおける仮想ネットワーク301の生成処理の一例を説明するフローチャートである。
ステップ1701〜ステップ1711の処理は第1の実施形態と同一であるため説明を省略する。
第3の実施形態では、ステップ1705の後に、仮想ネットワーク管理サーバ105が、抽象化層情報409を参照し、ステップ1705において選択された抽象ノード3010の中から、要求された仮想機能を提供可能な抽象ノード3101を選択する処理が含まれる。
ステップ1706では、ステップ1704において選択されたネットワークグループ701、及びステップ3801において選択された抽象ノード3101に基づいて仮想ネットワーク301のマッピングを実行する。
[第4の実施形態]
本発明の第4の実施形態における仮想ネットワークシステムについて説明する。
第4の実施形態における仮想ネットワークシステムは、エッジルータ102の機能ブロックの搭載方法が異なる。以下、第1の実施形態との差異を中心に説明する。
図43は、本発明の第4の実施形態のエッジルータ102のソフトウェアの実装例を示すブロック図である。
第4の実施形態におけるエッジルータ102は、複数の物理ネットワークエッジ機能部602を備える。
図43に示す例では、エッジルータ102は、物理ネットワーク1011及び物理ネットワーク1012に接続される。
物理ネットワーク1(1011)に接続されるネットワークインタフェース39021は、物理ネットワーク1(1011)に対応する物理ネットワークエッジ機能部6021及びエッジルータ構成情報604を備える。また、物理ネットワーク2(1012)に接続されるネットワークインタフェース39022は、物理ネットワーク2(1012)に対応する物理ネットワークエッジ機能部602及びエッジルータ構成情報604を備える。また、パケット処理ボード3904が、抽象化層処理部601及び抽象化層情報603を備える。
[第5の実施形態]
本発明の第5の実施形態における仮想ネットワークシステムについて説明する。
第5の実施形態の仮想ネットワークシステムは、エッジルータ102の機能ブロックの搭載方法が異なる。以下、第1の実施形態との差異を中心に説明する。
図44は、本発明の第5の実施形態のエッジルータ102のソフトウェアの実行例を示すブロック図である。
第5の実施形態では、エッジルータ102のネットワークインタフェース3902に物理ネットワーク1(1011)の物理ネットワークエッジ機能部602及びエッジルータ構成情報604が搭載される。
一方、抽象化層処理部601及び抽象化層情報603は、通信ケーブル3906を介してエッジルータ102と接続される計算機4402が備える。計算機4402は、プロセッサ(図示省略)、メモリ(図示省略)、及びネットワークインタフェース(図示省略)を備える。
図44に示す例では、エッジルータ102はパケット処理ボード3904を備えていないが、エッジルータ102がパケット処理ボード3904を備える構成であってもよい。
以上、本発明を各実施形態に基づき具体的に説明したが、本発明は前述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明の一形態によれば以下のような効果が得られる。
(1)ネットワークの構成手段及び管理方法が異なる複数の物理ネットワークにまたがって仮想ネットワークを構成する場合に、仮想ネットワーク管理サーバ105が複数の物理ネットワーク101から構成される仮想ネットワークシステムを抽象化ネットワークとして一括管理することができる。これによって、オペレータの要求に適合した仮想ネットワーク301をオンデマンドに生成することができる。
(2)仮想ネットワーク管理サーバ105は、複数の物理ネットワーク101で構成される仮想ネットワークシステムを抽象化ネットワークとして一括管理できるため、仮想ネットワーク301全体の状態を管理することができる。したがって、リアルタイム、かつ、詳細なネットワーク状態を把握することができ、高信頼な仮想ネットワーク301を構築することができる。
(3)複数の物理ネットワーク101から構成される仮想ネットワークシステム全体で一意な抽象化層アドレスを含む抽象化ヘッダを通信パケットに追加することによって、仮想ネットワークシステム内で抽象化層アドレスを用いたアドレス解決ができる。したがって、アドレス解決のために必要となるアドレス変換情報量を削減でき、ルータ装置及び運用管理面のコスト削減が可能となる。
特許請求の範囲に記載した以外の本発明の観点の代表的なものとして、次のものがあげられる。
(1)複数のルータを含んで構成された一つ以上の物理ネットワークをそれぞれ管理する一つ以上の物理ネットワーク管理サーバと、前記一つ以上の物理ネットワークを用いて構成され、ユーザが通信するための通信システム間を接続する論理的なネットワークである仮想ネットワークを管理する仮想ネットワーク管理サーバと、を備えるネットワークシステムであって、
前記各物理ネットワーク管理サーバは、それぞれ、前記仮想ネットワーク管理サーバと接続し、
前記仮想ネットワーク管理サーバは、
前記仮想ネットワークを構成するための仮想ネットワーク設定情報を保持し、
前記各物理ネットワーク管理サーバから、前記物理ネットワークの構成を示す物理ネットワーク構成情報を取得し、
前記取得された物理ネットワーク構成情報に基づいて、前記一つ以上の物理ネットワークを一つの抽象化ネットワークとして管理するための情報であり、かつ、前記仮想ネットワークを構成するための前記ルータを抽象化した抽象ノードに関する情報を格納する抽象化ネットワーク管理情報を生成し、
前記各物理ネットワーク管理サーバ及び前記各ルータは、前記仮想ネットワーク管理サーバによって生成された前記抽象化ネットワーク管理情報を受信し、
前記仮想ネットワーク管理サーバは、
前記通信システム及び前記ルータに関する入力情報を含む仮想ネットワーク生成要求を受信した場合に、前記入力情報を前記仮想ネットワークを構成するための仮想ネットワーク定義情報に変換し、
前記仮想ネットワーク定義情報に基づいて構成される仮想ネットワークを構成するために用いる前記抽象ノードを、前記抽象化ネットワーク管理情報から選択し、
前記入力情報に基づき前記仮想ネットワークを構成するために、前記仮想ネットワーク設定情報を更新し、
前記更新された仮想ネットワーク設定情報を前記抽象ノードとして選択された前記ルータ及び前記仮想ネットワーク設定情報に基づいて特定される物理ネットワーク管理サーバに送信することを特徴とするネットワークシステム。
(2)前記物理ネットワーク構成情報は、前記物理ネットワークにおける前記ルータの配置位置を表す第1の位置情報、及び、前記ルータが対応可能な通信機能を表す第1の通信機能情報を含み、
前記仮想ネットワーク管理サーバは、
前記抽象化ネットワーク管理情報を生成する場合に、前記ルータを、前記抽象化ネットワークを構成する抽象ノードとして一意に識別するための抽象ノード識別情報を生成し、
前記物理ネットワーク構成情報に基づいて、前記抽象化ネットワークにおける前記抽象ノードの配置位置を表す第2の位置情報を生成し、
前記物理ネットワーク構成情報に基づいて、前記抽象化ネットワークにおける前記抽象ノードが対応可能な通信機能を表す第2の通信機能情報を生成し、
同一の前記物理ネットワークに含まれる前記各ルータに対応する前記抽象ノードから構成される一つのネットワークグループを生成して、前記ネットワークグループを識別するためのネットワークグループ識別情報を生成し、
前記抽象ノード識別情報、前記第2の位置情報、前記第2の通信機能情報及び前記ネットワークグループ識別情報を対応づけることによって前記抽象化ネットワーク管理情報を生成することを特徴とする(1)に記載のネットワークシステム。
(3)前記入力情報は、前記仮想ネットワークの生成を要求するユーザを識別するためのユーザ識別情報と、前記物理ネットワークにおける前記通信システムの配置位置を表す第3の位置情報と、前記仮想ネットワークに用いられる通信機能を表す第3の通信機能情報とを含み、
前記仮想ネットワーク管理サーバは、
前記入力情報を前記仮想ネットワーク定義情報に変換する場合に、前記入力情報に含まれる前記ユーザ識別情報に基づいて、生成される前記仮想ネットワークを識別するための仮想ネットワーク識別情報を生成し、
前記物理ネットワーク構成情報を参照して、前記入力情報に含まれる前記第3の通信機能情報を、前記抽象化ネットワークにおける前記抽象ノードが対応可能な通信機能を表す第4の通信機能情報に変換し、
前記物理ネットワーク構成情報を参照して、前記入力情報に含まれる前記第3の位置情報を、前記抽象化ネットワークにおける前記抽象ノードの配置位置を表す第4の位置情報に変換し、
前記仮想ネットワーク識別情報、前記第4の通信機能情報及び前記第4の位置情報に基づいて、前記仮想ネットワーク定義情報を生成し、
前記抽象化ネットワーク管理情報から前記抽象ノードを選択する場合に、前記第4の通信機能情報に基づいて前記抽象化ネットワーク管理情報を参照して、前記受信した仮想ネットワーク生成要求に対応する前記仮想ネットワークを設定可能な前記ネットワークグループを選択し、
前記第4の位置情報に基づいて前記抽象化ネットワーク管理情報を参照して、前記選択されたネットワークグループの中から、前記仮想ネットワークを構成可能な前記抽象ノードを選択することを特徴とする(2)に記載のネットワークシステム。
(4)前記仮想ネットワーク管理サーバは、
前記仮想ネットワーク設定情報を更新する場合に、前記選択されたネットワークグループ及び前記選択された抽象ノードに基づいて、前記抽象化ネットワーク管理情報への前記受信した仮想ネットワーク生成要求に対応する前記仮想ネットワークのマッピングを決定し、
前記仮想ネットワーク識別情報、前記仮想ネットワークに用いられる通信機能を表す第5の通信機能情報、及び前記決定された仮想ネットワークのマッピングの結果に基づいて、前記仮想ネットワーク設定情報を更新して、前記各物理ネットワーク管理サーバ及び前記ルータに送信することを特徴とする(3)に記載のネットワークシステム。
(5)前記物理ネットワーク構成情報は、仮想的な計算機又は仮想的なスイッチを実現するための仮想機能を表す第1の仮想機能情報を含み、
前記入力情報は、前記仮想ネットワークにおいて要求される仮想機能を表す第2の仮想機能情報を含み、
前記仮想ネットワーク管理サーバは、
前記入力情報を前記仮想ネットワーク定義情報に変換する場合に、さらに、前記入力情報に含まれる前記第2の仮想機能情報を、前記抽象化ネットワークにおける前記抽象ノードが備える前記仮想機能を表す第3の仮想機能情報に変換し、
前記抽象化ネットワーク管理情報から前記抽象ノードを選択する場合に、さらに、前記第3の仮想機能情報に基づいて前記抽象化ネットワーク管理情報を参照して、前記仮想ネットワークを構成する前記抽象ノードとして選択された前記抽象ノードの中から、前記第2の仮想機能情報に対応する前記仮想機能を備える前記抽象ノードを選択することを特徴とする(4)に記載のネットワークシステム。
(6)前記ルータは異なる前記物理ネットワーク間を接続するエッジルータを含み、
前記抽象化ネットワーク管理情報及び前記仮想ネットワーク設定情報は、前記エッジルータに送信され、
前記エッジルータは、
前記仮想ネットワーク設定情報を受信した後に、隣接する前記物理ネットワークに含まれる他の前記エッジルータから、当該他のエッジルータに対応する前記抽象ノードから構成される前記ネットワークグループを識別するための情報である隣接ネットワークグループ識別情報を取得し、
前記仮想ネットワーク管理サーバに、前記取得された隣接ネットワークグループ識別情報を送信し、
前記仮想ネットワーク管理サーバは、さらに、前記隣接ネットワークグループ識別情報を、前記抽象化ネットワーク管理情報に格納することを特徴とする(2)に記載のネットワークシステム。
(7)前記仮想ネットワーク管理サーバは、前記仮想ネットワーク設定情報を更新した後に、さらに、前記抽象化ネットワークにおける前記抽象ノードのアドレスを表す第1のアドレスを管理するための第1のアドレス管理情報を生成し、
前記第1のアドレス管理情報を前記エッジルータに送信し、
前記各物理ネットワーク管理サーバ及び前記エッジルータから当該物理ネットワークにおける前記エッジルータのアドレスを表す第2のアドレスを管理するための第2のアドレス管理情報を取得し、
前記取得された第2のアドレス管理情報、及び、前記第1のアドレス管理情報に基づいて前記抽象化ネットワークにおけるルーティング情報を生成し、
前記生成されたルーティング情報を、前記各物理ネットワーク管理サーバ及び前記各エッジルータに送信することを特徴とする(6)に記載のネットワークシステム。
(8)前記エッジルータは、
前記通信システムから通信パケットを受信した場合に、前記受信した通信パケットを解析し、
前記第1のアドレス管理情報及び前記ルーティング情報に基づいて、前記受信した通信パケットに前記第1のアドレスを付与し、
前記第1のアドレスに基づいて、前記抽象化ネットワークにおけるルーティング処理を実行することを特徴とする(7)に記載のネットワークシステム。
(9)前記各物理ネットワーク管理サーバは、前記仮想ネットワーク管理サーバから前記抽象化ネットワーク管理情報を受信した場合に、当該物理ネットワーク管理サーバが管理する前記ルータの識別情報と、前記仮想ネットワーク管理サーバから受信した前記抽象化ネットワーク管理情報とを対応付けて保持することを特徴とする(1)に記載のネットワークシステム。
(10)前記物理ネットワーク管理サーバは、当該物理ネットワーク管理サーバが管理する前記物理ネットワークに新規ルータが追加された場合に、前記新規ルータに対して当該新規ルータの構成情報を取得するための取得要求を送信し、
前記新規ルータは、前記新規ルータの構成情報を前記物理ネットワーク管理サーバに送信し、
前記物理ネットワーク管理サーバは、前記仮想ネットワーク管理サーバに、前記新規ルータの構成情報を前記物理ネットワーク構成情報として送信し、
前記仮想ネットワーク管理サーバは、
前記取得された物理ネットワーク構成情報に基づいて、前記抽象化ネットワーク管理情報を生成し、
前記新規ルータが含まれる前記物理ネットワークを管理する前記物理ネットワーク管理サーバ及び前記新規ルータに、前記生成された抽象化ネットワーク管理情報を送信することを特徴とする(1)に記載のネットワークシステム。
(11)前記物理ネットワーク管理サーバは、
前記ルータの削除要求を受信し、
削除対象のルータを当該物理ネットワーク管理サーバが管理する前記物理ネットワークから削除することによって、前記仮想ネットワークに影響を与えるか否かを判定し、
前記仮想ネットワークに影響を与えないと判定された場合に、当該物理ネットワーク管理サーバが管理する前記物理ネットワークの構成を変更し、
前記削除対象のルータを削除することを特徴とする(1)に記載のネットワークシステム。
(12)前記物理ネットワーク管理サーバは、前記仮想ネットワークに影響があると判定された場合、前記仮想ネットワーク管理サーバに前記仮想ネットワーク設定情報の変更要求を送信し、
前記仮想ネットワーク管理サーバは、
前記仮想ネットワーク設定情報の変更要求を受信した場合に、前記仮想ネットワーク設定情報を変更することによって前記仮想ネットワークに影響があるか否かを判定し、
前記仮想ネットワーク設定情報を変更することによって前記仮想ネットワークに影響があると判定された場合、前記仮想ネットワークにおける影響を許可するか否かを判定し、
前記仮想ネットワークにおける影響を許可すると判定された場合、前記仮想ネットワーク設定情報を変更し、
前記物理ネットワーク管理サーバに前記仮想ネットワーク設定情報の変更が完了した旨の通知を送信し、
前記物理ネットワーク管理サーバは、前記仮想ネットワーク設定情報の変更が完了した旨の通知を受信した後に、前記削除対象のルータを削除することを特徴とする(11)に記載のネットワークシステム。
(13)前記仮想ネットワーク管理サーバは、前記仮想ネットワークにおける影響を許可しないと判定された場合、前記物理ネットワーク管理サーバに、前記削除対象のルータの削除を中止させるための中止命令を送信することを特徴とする(12)に記載のネットワークシステム。
(14)前記仮想ネットワーク管理サーバは、
新規通信システムの追加要求を受信し、
前記仮想ネットワーク設定情報を更新できるか否かを判定し、
前記仮想ネットワーク設定情報を更新できると判定された場合、前記仮想ネットワーク設定情報を更新することによって前記仮想ネットワークに影響があるか否かを判定し、
前記仮想ネットワーク設定情報を更新することによって前記仮想ネットワークに影響があると判定された場合、前記仮想ネットワークにおける影響を許可するか否かを判定し、
前記仮想ネットワークにおける影響を許可すると判定された場合、前記仮想ネットワーク設定情報を更新し、
前記物理ネットワーク管理サーバ及び前記ルータに前記更新された仮想ネットワーク設定情報を送信することを特徴とする(1)に記載のネットワークシステム。
(15)前記仮想ネットワーク管理サーバは、前記仮想ネットワークにおける影響を許可しないと判定された場合、前記仮想ネットワーク設定情報の更新失敗の通知を行うことを特徴とする(14)に記載のネットワークシステム。
(16)複数のルータを含んで構成された一つ以上の物理ネットワークをそれぞれ管理する一つ以上の物理ネットワーク管理サーバと、前記一つ以上の物理ネットワークを用いて構成され、ユーザが通信するための通信システム間を接続する論理的なネットワークである仮想ネットワークを管理する仮想ネットワーク管理サーバと、を備えるネットワークシステムにおける仮想ネットワーク管理方法であって、
前記各物理ネットワーク管理サーバは、それぞれ、前記仮想ネットワーク管理サーバと接続し、
前記仮想ネットワーク管理サーバは、前記仮想ネットワークを構成するための仮想ネットワーク設定情報を保持し、
前記方法は、
前記仮想ネットワーク管理サーバが、前記各物理ネットワーク管理サーバから、前記物理ネットワークの構成を示す物理ネットワーク構成情報を取得する第1のステップと、
前記仮想ネットワーク管理サーバが、前記取得された物理ネットワーク構成情報に基づいて、前記一つ以上の物理ネットワークを一つの抽象化ネットワークとして管理するための情報であり、かつ、前記仮想ネットワークを構成するためのルータを抽象化した抽象ノードに関する情報を格納する抽象化ネットワーク管理情報を生成する第2のステップと、
前記各物理ネットワーク管理サーバ及び前記各ルータが、前記仮想ネットワーク管理サーバによって生成された前記抽象化ネットワーク管理情報を受信する第3のステップと、
前記仮想ネットワーク管理サーバが、前記通信システム及び前記ルータに関する入力情報を含む仮想ネットワーク生成要求を受信した場合に、前記入力情報を前記仮想ネットワークを構成するための仮想ネットワーク定義情報に変換する第4のステップと、
前記仮想ネットワーク管理サーバが、前記仮想ネットワーク定義情報に基づいて構成される仮想ネットワークを構成するために用いる前記抽象ノードを、前記抽象化ネットワーク管理情報から選択する第5のステップと、
前記仮想ネットワーク管理サーバが、前記入力情報に基づき前記仮想ネットワークを構成するために、前記仮想ネットワーク設定情報を更新する第6のステップと、
前記仮想ネットワーク管理サーバが、前記更新された仮想ネットワーク設定情報を前記抽象ノードとして選択された前記ルータに送信する第7のステップと、
前記仮想ネットワーク管理サーバが、前記仮想ネットワーク設定情報に基づいて特定される物理ネットワーク管理サーバに、前記仮想ネットワーク設定情報を送信する第8のステップと、
を含むことを特徴とする仮想ネットワーク管理方法。