(58)【調査した分野】(Int.Cl.,DB名)
複数の仮想ネットワーク装置と各仮想ネットワーク装置を制御する仮想ネットワーク制御装置とを用いた仮想ネットワークを利用し、前記仮想ネットワーク装置それぞれが有する物理ポートに接続されている他の前記仮想ネットワーク装置を示す構成情報を前記仮想ネットワーク装置ごとに記憶している構成データベースと、前記仮想ネットワーク装置が通信トラフィックを受信した際に該仮想ネットワーク装置が有するいずれの物理ポートから該通信トラフィックを出力するかを定めた動作情報を前記仮想ネットワーク装置と物理ポートとの組み合わせごとに記憶しているフローテーブルとを具備する通信システムにおける経路情報算出方法であって、
前記仮想ネットワーク制御装置が、前記仮想ネットワーク装置と動作情報における物理ポートとの組み合わせを前記フローテーブルから抽出し、抽出した前記仮想ネットワーク装置と物理ポートとの組み合わせを検索キーにして前記構成データベースから該仮想ネットワーク装置の物理ポートに接続されている他の前記仮想ネットワーク装置を検索し、該検索キーと検索結果とに基づいて、接続された2つの前記仮想ネットワーク装置間における送信元と送信先との組み合わせを示す送信元送信先テーブルを算出するテーブル算出ステップと、
前記仮想ネットワーク装置が、自装置に対して定められている動作情報に定められた動作を行ってから経過した時間に基づいて、該動作情報がアクティブか否かを示すアクティブフラグを算出するフラグ算出ステップと、
前記仮想ネットワーク制御装置が、前記送信元送信先テーブルにおける送信元と送信先との組み合わせに対して、前記アクティブフラグを付加するフラグ付加ステップと、
前記仮想ネットワーク制御装置が、前記送信元送信先テーブルに基づいて、任意2つの前記仮想ネットワーク装置間の経路を算出する経路情報算出ステップと、
前記仮想ネットワーク制御装置が、経路に含まれる前記仮想ネットワーク装置間の接続がすべてアクティブである経路と非アクティブを含む経路とを示す情報を付加して出力する出力ステップと、
を有することを特徴とする経路情報算出方法。
複数の仮想ネットワーク装置と各仮想ネットワーク装置を制御する仮想ネットワーク制御装置とを用いた仮想ネットワークを利用し、前記仮想ネットワーク装置それぞれが有する物理ポートに接続されている他の前記仮想ネットワーク装置を示す構成情報を前記仮想ネットワーク装置ごとに記憶している構成データベースと、前記仮想ネットワーク装置が通信トラフィックを受信した際に該仮想ネットワーク装置が有するいずれの物理ポートから該通信トラフィックを出力するかを定めた動作情報を前記仮想ネットワーク装置と物理ポートとの組み合わせごとに記憶しているフローテーブルとを具備する通信システムにおける経路情報算出方法であって、
前記仮想ネットワーク制御装置が、前記仮想ネットワーク装置と動作情報における物理ポートとの組み合わせを前記フローテーブルから抽出し、抽出した前記仮想ネットワーク装置と物理ポートとの組み合わせを検索キーにして前記構成データベースから該仮想ネットワーク装置の物理ポートに接続されている他の前記仮想ネットワーク装置を検索し、該検索キーと検索結果とに基づいて、接続された2つの前記仮想ネットワーク装置間における送信元と送信先との組み合わせを示す送信元送信先テーブルを算出するテーブル算出ステップと、
前記仮想ネットワーク制御装置が、前記仮想ネットワークにおいて予め定められた通信トラフィックの向きに基づいて、前記仮想ネットワーク装置間の接続に対して前記向きと一致するか否かを示す戻りフラグを、前記送信元送信先テーブルにおける送信元と送信先との組み合わせに対して付加する付加ステップと、
前記仮想ネットワーク制御装置が、前記送信元送信先テーブルに基づいて、任意2つの前記仮想ネットワーク装置間の経路を算出する経路情報算出ステップと、
を有し、
前記経路情報算出ステップでは、前記戻りフラグに基づいて、前記任意2つの前記仮想ネットワーク装置間における前記向きと一致する経路と、前記向きと異なる経路とが算出される、
ことを特徴とする経路情報算出方法。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明に係る一実施形態における通信システム、及び経路情報算出方法を説明する。
図1は、本実施形態における通信システムの構成例を示すブロック図である。本実施形態の通信システムは、仮想ネットワーク3、監視サーバ4、保守端末5、物理ネットワーク装置6A及び6B、サービス提供サーバ7A及び7B、ユーザ宅内ルータ8A及び8B、並びに、ユーザ端末9A及び9Bを具備している。仮想ネットワーク3は、仮想ネットワーク制御装置1、及び、4つの仮想ネットワーク装置2A〜2Dを備えている。仮想ネットワーク3において、仮想ネットワーク制御装置1による制御に基づいて、互いに接続された仮想ネットワーク装置2A〜2Dが通信することによりネットワークを形成している。
【0014】
この仮想ネットワーク3には、ユーザに対してサービスを提供するサービス提供サーバ7A及び7Bが、物理ネットワーク装置6Bを介して接続されている。また、仮想ネットワーク3には、ユーザの宅内に位置するユーザ宅内ルータ8A及び8Bが、物理ネットワーク装置6Aを介して接続されている。ユーザ宅内ルータ8Aには、ユーザが利用するユーザ端末9Aが接続されている。また、ユーザ宅内ルータ8Bには、ユーザが利用するユーザ端末9Bが接続されている。
【0015】
また、仮想ネットワーク3には、仮想ネットワーク3の動作状況等を監視する監視サーバ4が接続されている。監視サーバ4は、ユーザの利用に応じた情報が伝送されるサービス網と異なる保守網を介して、仮想ネットワーク制御装置1と、各仮想ネットワーク装置2A〜2Dとに通信可能に接続されている。監視サーバ4には、仮想ネットワーク3の運用や保守を行う保守者が利用する保守端末5も通信可能に接続されている。監視サーバ4は、仮想ネットワーク装置2A〜2Dから障害の発生等を通知する障害情報を受信すると、保守端末5に対して障害が発生したことを通知するメッセージを送信する。保守者は保守端末5に表示されたメッセージの内容に基づいて、保守端末5を操作して仮想ネットワーク3の状態を把握するための処理を仮想ネットワーク制御装置1に行わせ、処理結果を取得する。具体的には、仮想ネットワーク制御装置1は、保守端末5から受信する経路情報要求で指定される2つの仮想ネットワーク装置2間における経路と経路の利用状況とを算出する。仮想ネットワーク制御装置1は、経路情報要求に対する応答として算出結果を示す経路情報を保守端末5に送信する。
【0016】
なお、同図に示す構成例では、仮想ネットワーク装置2Aは、仮想ネットワーク装置2B及び2Cと通信する。仮想ネットワーク装置2Bは、仮想ネットワーク装置2A及び2Dと通信する。仮想ネットワーク装置2Cは、仮想ネットワーク装置2A及び2Dと通信する。仮想ネットワーク装置2Dは、仮想ネットワーク装置2B及び2Cと通信する。
【0017】
仮想ネットワーク制御装置1は、仮想ネットワーク3に備えられている各仮想ネットワーク装置2A〜2Dにおける通信トラフィックを制御する制御情報を一元管理し、当該制御情報を各仮想ネットワーク装置2A〜2Dに送信する。また、仮想ネットワーク制御装置1は、保守端末5からの要求に応じて、仮想ネットワーク3における経路情報を算出する。仮想ネットワーク装置2A〜2Dは、仮想ネットワーク制御装置1から送信された制御情報に基づいて、通信トラフィックを処理する。
【0018】
図2は、本実施形態における仮想ネットワーク制御装置1の構成例を示すブロック図である。仮想ネットワーク制御装置1は、記憶部10、制御部20、及び、通信部30を有している。記憶部10は、フローテーブル11、仮想ネットワーク装置データベース(仮想ネットワーク装置DB)12、及び、送信元送信先一覧テーブル13を記憶している。
フローテーブル11は、各仮想ネットワーク装置2A〜2Dが通信トラフィックを制御するための制御情報を含んでいる。各仮想ネットワーク装置2A〜2Dにおいて通信トラフィックはフローと呼ばれる単位で制御されており、フローテーブル11には各仮想ネットワーク装置2A〜2Dそれぞれにおけるフローごとの動作が定められている。以下では、仮想ネットワーク装置2A〜2Dそれぞれのホスト名を「hostA」、「hostB」、「hostC」、及び、「hostD」として説明する。
【0019】
図3は、本実施形態におけるフローテーブル11に記憶されているフローの構成例を示す図である。同図に示すようにフローテーブル11は、例えば、2次元の表形式のテーブルである。フローテーブル11は、仮想ネットワーク装置2A〜2Dを識別するためのホスト名、通信トラフィックを識別し特定する条件を示すヘッダフィールド、及び、通信トラフィック(パケット)に対する処理を示すアクションの3つの項目を列として有している。フローテーブル11における各行(フロー)は、各仮想ネットワーク装置2A〜2Dにおける通信トラフィックの処理に対応する。例えば、「hostA」で識別される仮想ネットワーク装置2Aにおいて、「条件a1」を満たす通信トラフィックを受信すると、「処理a1」で定められる処理を当該通信トラフィックに対して行われる。
【0020】
例えば、仮想ネットワーク環境を実現する技術の「OpenFlow」では、「ヘッダフィールド」として12個のヘッダフィールドのいずれかを用いることが規定されている。12個のヘッダフィールドは、仮想ネットワーク装置2の物理ポート番号、送信元MACアドレス、送信先MACアドレス、イーサネット(登録商標)の種別、VLANのID、VLANのプライオリティ、送信元IPアドレス、送信先IPアドレス、IPプロトコル種別、IP TOS情報、送信元L4ポート番号、及び、送信先L4ポート番号である。
【0021】
また、「アクション」として3種類の動作「Forward」(転送)、「Drop」(破棄)、及び、「Modify−Field」(フィールドの変更)が規定されている。「Forward」の動作に対しては、ポート番号、「normal」、「flood」、又は、「controller」のいずれかが付加される。ポート番号が付加されている場合には、処理対象のフローが仮想ネットワーク装置2の当該ポート番号で示されるポートから出力される。「normal」が付加されている場合には、処理対象のフローを仮想ネットワーク3の制御下から通常のL2スイッチングやL3ルーティングの制御下に移す。「flood」が付加されている場合には、仮想ネットワーク装置2の受信ポート以外のすべてのポートから処理対象のフローが出力される。「Controller」が付加されている場合には、処理対象のフローが仮想ネットワーク制御装置1に出力される。
【0022】
図4は、本実施形態における仮想ネットワーク装置データベース12に記憶されている構成情報の構成例を示す図である。仮想ネットワーク装置データベース12は、仮想ネットワーク装置2A〜2D間の接続がどのような物理構成になっているかを示す情報である。同図に示すように、仮想ネットワーク装置データベース12は、例えば、2次元の表形式のテーブルである。仮想ネットワーク装置データベース12は、仮想ネットワーク装置2A〜2Dを識別するためのホスト名、各仮想ネットワーク装置2A〜2Dが有する物理ポートを識別するポート番号、及び、各物理ポートに接続されている装置を識別するホスト名又は情報を示す接続先の3つの項目を列として有している。仮想ネットワーク装置データベース12における各行は、構成情報である。構成情報は、仮想ネットワーク装置2A〜2Dが有する物理ポートごとに存在する。例えば、ホスト名「hostA」、ポート番号「p1」、及び、接続先「hostB」が対応付けられた構成情報が仮想ネットワーク装置データベース12に記憶されている。この構成情報は、ホスト名「hostA」で識別される仮想ネットワーク装置2Aの物理ポート「p1」は、ホスト名「hostB」で識別される仮想ネットワーク装置2Bが接続されていることを示す。仮想ネットワーク装置データベース12は、例えば、仮想ネットワーク制御装置1がLLDP(Link Layer Discovery Protocol)を利用して収集した情報に基づいて作成及び更新する。
【0023】
図5は、本実施形態における送信元送信先一覧テーブル13の構成例を示す図である。送信元送信先一覧テーブル13には、経路情報を算出する際に生成される接続情報が記憶される。接続情報は、フローテーブル11と仮想ネットワーク装置データベース12とに記憶されている情報等に基づいて生成される。送信元送信先一覧テーブル13は、例えば、2次元の表形式のテーブルである。送信元送信先一覧テーブル13は、仮想ネットワーク3において通信可能な仮想ネットワーク装置2の「送信元」及び「送信先」、並びに、「送信元」から「送信先」への通信に対する「アクティブフラグ」及び「戻りフラグ」の4つの項目を列として有している。送信元送信先一覧テーブル13における各行は、接続情報である。接続情報は、仮想ネットワーク3において定められている経路ごとに存在する。経路は送信元と送信先とで定められ向きを有する。
【0024】
「アクティブフラグ」は、対応する経路がアクティブであるか否かを示す情報である。アクティブフラグは、フローテーブル11において対応する経路の処理を定めている行(フロー)が参照されてから経過した時間に応じて定められる。経過した時間は、例えば、各仮想ネットワーク装置2A〜2Dにおいて、対象となる通信トラフィックを受信し、当該通信トラフィックに対するアクションを実行してから経過した時間である。この経過した時間が予め定められた経過時間閾値を超えていない場合には、当該経路がアクティブであると判定する。すなわち、経路に対するフローが参照されてから経過時間閾値を超えている経路は、利用されていないと判断され、非アクティブであると判定される。本実施形態では、「1」がアクティブであることを示し、「0」が非アクティブであることを示す。仮想ネットワーク制御装置1は、予め定められたタイミング又は定期的に各仮想ネットワーク装置2A〜2Dの各フローのアクティブフラグを取得し、記憶する。なお、各仮想ネットワーク装置2A〜2Dから取得した各フローのアクティブフラグをフローテーブル11に加えるようにしてもよい。また、経過時間閾値は、仮想ネットワーク装置2A〜2Dにおいて同じ値を用いてもよいし、仮想ネットワーク装置2の重要度やトラフィック量などに応じて定めるようにしてもよい。
【0025】
「戻りフラグ」は、仮想ネットワーク3を構築する際に定められる情報であり、通信の向きを示す情報である。例えば、本実施形態においてはユーザ宅内ルータ8A及び8Bからサービス提供サーバ7A及び7Bへ向かう方向を「行き」の通信とし、その逆の方向を「戻り」の通信とし、各通信に対して「戻りフラグ」の値を定める。行きの通信に対して「0」を割り当て、戻りの通信に対して「1」を割り当てる。戻りフラグの値は、「送信元」から「送信先」への経路に対する通信の向きに応じて定められる。なお、戻りフラグは、仮想ネットワーク装置データベース12に付加するようにしてもよい。
図5に示される送信元送信先一覧テーブル13には、例えば、送信元「hostA」、送信先「hostC」、アクティブフラグ「0」、及び、戻りフラグ「0」を有する接続情報が記憶されている。
【0026】
制御部20は、一覧テーブル算出部21、及び、経路情報算出部22を有している。一覧テーブル算出部21は、フローテーブル11及び仮想ネットワーク装置データベース12に基づいて、経路情報要求で指定される2つの仮想ネットワーク装置2間の経路を算出するために用いる接続情報を生成し、生成した接続情報を送信元送信先一覧テーブル13に記憶させる。経路情報算出部22は、一覧テーブル算出部21が生成した接続情報に基づいて、経路情報要求で指定される2つの仮想ネットワーク装置2間の経路を算出する。通信部30は、仮想ネットワーク装置2A〜2D及び監視サーバ4との通信を行い、受信した情報を制御部20に出力する。また、通信部30は、制御部20から入力される情報を、当該情報の宛先が示す装置に送信する。例えば、通信部30は、保守端末5から経路情報要求を受信すると、受信した経路情報要求を制御部20に出力する。また、通信部30は、制御部20が算出した経路情報を、監視サーバ4に送信する。
【0027】
以下、制御部20が経路情報を算出する経路情報算出処理について説明する。ここでは、フローテーブル11に
図6に示すフローが定義されている場合について説明する。
図6は、本実施形態におけるフローテーブル11の一例を示す図である。ヘッダフィールドには、送信先のMACアドレスを用いた条件が定められている。また、アクションには通信トラフィックの転送先がポート番号で定められている。このフローテーブル11には、例えば、「hostA」(仮想ネットワーク装置2A)において、送信先が物理ネットワーク装置6BのMACアドレスである場合、通信トラフィックを物理ポートp1から出力するフローが定められている。
図6に示すフローでは、仮想ネットワーク装置2Aと仮想ネットワーク装置2Dとの間において、仮想ネットワーク装置2Bを経由する経路が通常用いられる経路として定められ、仮想ネットワーク装置2Cを経由する経路が迂回経路として定められている。また、仮想ネットワーク装置データベース12には、
図4に示した構成情報が記憶されているものとする。また、仮想ネットワーク制御装置1が受信した経路情報要求には、仮想ネットワーク装置2Aと仮想ネットワーク装置2Dとが指定されているものとする。
【0028】
図7と
図8とは、本実施形態における仮想ネットワーク制御装置1が行う経路情報算出処理を示すフローチャートである。仮想ネットワーク制御装置1において、経路情報要求が受信されると経路情報算出処理が開始される。一覧テーブル算出部21は、フローテーブル11に記憶されている各フローから、ホスト名とアクションにおけるポート番号との組み合わせを抽出する(ステップS101)。
抽出されるホスト名とポート番号との組み合わせは、{(hostA,p1),(hostA,p2),(hostA,p3),(hostB,p1),(hostB,p2),(hostC,p1),(hostC,p2),(hostD,p1),(hostD,p2),(hostD,p3)}となる。
【0029】
一覧テーブル算出部21は、ステップS101で抽出した組み合わせを検索キー(ホスト名,ポート番号)にして、仮想ネットワーク装置データベース12に記憶されている構成情報を検索する(ステップS102)。
検索結果は、{(hostA,p2,hostB),(hostA,p2,hostC),(hostB,p1,hostD),(hostB,p2,hostA),(hostC,p1,hostD),(hostC,p2,hostA),(hostD,p1,hostB),(hostD,p2,hostC)}となる。
【0030】
一覧テーブル算出部21は、仮想ネットワーク装置データベース12において検索キーに該当した構成情報があるか否かを判定し(ステップS103)、該当する構成情報がなかった場合(ステップS103:NO)、経路情報算出処理を終了させる。
一方、該当した構成があった場合(ステップS103:YES)、一覧テーブル算出部21は、処理をステップS104に進める。
【0031】
一覧テーブル算出部21は、ステップS101の抽出結果(検索キー)と、ステップS102の検索結果とに基づいて、接続情報を生成する(ステップS104)。具体的には、ステップS101で抽出したホスト名、ステップS102で検索された構成情報の接続先のホスト名、抽出したフローに対応するアクティブフラグ、及び、戻りフラグを、接続情報の送信元、送信先、アクティブフラグ、及び、戻りフラグとする。
ステップS104の処理により、一覧テーブル算出部21は、8つの接続情報を生成して送信元送信先一覧テーブル13に記憶させる。これにより、送信元送信先一覧テーブル13には、
図5に示す接続情報が記憶される。
【0032】
一覧テーブル算出部21による送信元送信先一覧テーブル13の更新が完了すると、経路情報算出部22は、送信元送信先一覧テーブル13に記憶されている接続情報に戻りフラグが「0」の接続情報があるか否か判定する(ステップS105)。
戻りフラグが「0」である接続情報がある場合(ステップS105:YES)、経路情報算出部22は、処理をステップS106に進める。
一方、戻りフラグが「0」である接続情報がない場合(ステップS105:NO)、経路情報算出部22は、経路情報算出処理を終了させる。
【0033】
経路情報算出部22は、経路情報要求において指定された仮想ネットワーク装置2と戻りフラグ「0」とを(送信元,戻りフラグ)に対する検索キーにして送信元送信先一覧テーブル13から接続情報を検索する(ステップS106)。
ここで例示しているケースでは、
図5に示す接続情報{(送信元,送信先,アクティブフラグ,戻りフラグ)}から{(hostA,hostB,1,0),(hostA,hostC,0,0)}の2つの接続情報が検索され、検索結果となる。
【0034】
経路情報算出部22は、ステップS106における検索結果の接続情報の送信元と送信先とで示される接続を経路情報とする(ステップS107)。また、接続情報においてアクティブフラグが「1」の送信元と送信先との組み合わせに対して当該経路がアクティブであることを示す属性(ACTIVE)を付与する。
この段階において経路情報は、例えば、以下のようなテキスト情報として表すことができる。
(経路情報)
・hostA→hostB:ACTIVE
・hostA→hostC
【0035】
経路情報算出部22は、経路情報に含まれる経路の始点と終点とが、経路情報要求において指定された2つの仮想ネットワーク装置2であるか否かを判定する(ステップS108)。
経路情報に含まれる経路の始点と終点とが指定された2つの仮想ネットワーク装置2である場合(ステップS108:YES)、経路情報算出部22は処理をステップS111に進める。
一方、経路情報に含まれる経路の始点と終点とが指定された2つの仮想ネットワーク装置2でない場合(ステップS108:NO)、経路情報算出部22は処理をステップS109に進める。
例示しているケースでは、経路情報に含まれる経路の終点は、「hostB」と「hostC」とであるため、経路情報算出部22は処理をステップS109に進める。
【0036】
経路情報算出部22は、経路情報に含まれる経路の始点又は終点のうち経路情報要求で指定された仮想ネットワーク装置2と異なる仮想ネットワーク装置2のホスト名及び戻りフラグ「0」とを(送信元,戻りフラグ)に対する検索キーとして送信元送信先一覧テーブル13から接続情報を検索する(ステップS109)。
経路情報が{hostA→hostB,hostA→hostC}である場合において、ステップS109では接続情報{(hostB,hostD,1,0),(hostC,hostD,0,0)}が検索結果となる。
【0037】
経路情報算出部22は、経路情報に含まれる経路に対して、ステップS109の検索結果を連結して経路情報を更新する(ステップS110)。検索結果を連結する際には、検索結果として得られた接続情報の送信元と、経路の終点とが一致するものをつなげる。
例示しているケースでは、検索結果の(hostB,hostD,1,0)と、経路(hostA→hostB)の終点とが対応し、検索結果が示すhostBからhostDへの接続を経路(hostA→hostB)に連結して経路(hostA→hostB→hostD)に更新する。
同様に、経路(hostA→hostC)を経路(hostA→hostC→hostD)に更新する。また、ステップS107における処理と同様に、接続情報においてアクティブフラグが「1」の送信元と送信先との組み合わせに対して当該経路がアクティブであることを示す属性(ACTIVE)を付与する。ステップS110の処理により、例示しているケースの経路情報は以下のようになる。
(経路情報)
・hostA→hostB→hostD:ACTIVE
・hostA→hostC→hostD
【0038】
経路情報算出部22は、ステップS110の処理を終えると、処理をステップS108に戻して、再度判定を行う。
例示しているケースでは、経路情報に含まれる経路の始点と終点とが、経路情報要求で指定されている仮想ネットワーク装置2A及び2Dと一致している(ステップS108:YES)ので、経路情報算出部22は処理をステップS111に進める。
【0039】
経路情報算出部22は、送信元送信先一覧テーブル13に記憶されている接続情報に戻りフラグが「1」の接続情報があるか否かを判定する(ステップS111)。
戻りフラグが「1」である接続情報がある場合(ステップS111:YES)、経路情報算出部22は、処理をステップS112に進める。
一方、戻りフラグが「1」である接続情報がない場合(ステップS111:NO)、経路情報算出部22は、処理をステップS117に進める。
ここで例示しているケースでは、戻りフラグが「1」である接続情報が送信元送信先一覧テーブル13に存在しているので、経路情報算出部22は処理をステップS112に進める。
【0040】
経路情報算出部22は、経路情報要求において指定された仮想ネットワーク装置2と戻りフラグ「1」とを(送信元,戻りフラグ)に対する検索キーにして送信元送信先一覧テーブル13から接続情報を検索する(ステップS112)。
ここで例示しているケースでは、
図5に示す接続情報{(送信元,送信先,アクティブフラグ,戻りフラグ)}から{(hostD,hostC,0,1),(hostD,hostB,1,1)}の2つの接続情報が検索され、検索結果となる。
【0041】
経路情報算出部22は、ステップS112おける検索結果の接続情報の送信元と送信先とで示される接続を経路情報に追加する(ステップS113)。また、ステップS107における処理と同様に、接続情報においてアクティブフラグが「1」の送信元と送信先との組み合わせに対して当該経路がアクティブであることを示す属性(ACTIVE)を付与する。
例示しているケースでは、経路情報は以下のようになる。
(経路情報)
・hostA→hostB→hostD:ACTIVE
・hostA→hostC→hostD
・hostD→hostB:ACTIVE
・hostD→hostC
【0042】
経路情報算出部22は、経路情報に含まれる経路の始点と終点とが、経路情報要求において指定された2つの仮想ネットワーク装置2であるか否かを判定する(ステップS114)。
経路情報に含まれる経路の始点と終点とが指定された2つの仮想ネットワーク装置2である場合(ステップS114:YES)、経路情報算出部22は処理をステップS117に進める。
一方、経路情報に含まれる経路の始点と終点とが指定された2つの仮想ネットワーク装置2でない場合(ステップS114:NO)、経路情報算出部22は処理をステップS115に進める。
例示しているケースでは、ステップS113において追加した経路(hostD→hostB,hostD→hostC)の終点が、指定された2つの仮想ネットワーク装置2でないので、経路情報算出部22は処理をステップS115に進める。
【0043】
経路情報算出部22は、経路情報に含まれる経路の始点又は終点のうち経路情報要求で指定された仮想ネットワーク装置2と異なる仮想ネットワーク装置2のホスト名と「1」とを(送信元、戻りフラグ)に対する検索キーとして送信元送信先一覧テーブル13から接続情報を検索する(ステップS115)。
例示しているケースでは、(hostB,1)と(hostC,1)とを検索キーとした検索に対して接続情報{(hostC,hostA,0,1),(hostB,hostA,1,1)}が検索結果となる。
【0044】
経路情報算出部22は、経路情報に含まれる経路に対して、ステップS115の検索結果を連結して経路情報を更新する(ステップS116)。検索結果を連結する際には、検索結果として得られた接続情報の送信元と、経路の終点とが一致するものをつなげる。
例示しているケースでは、検索結果の(hostC,hostA,0,1)と、経路(hostD→hostC)の終点とが対応し、検索結果が示すhostCからhostAへの接続を経路(hostD→hostC)に連結して、経路(hostD→hostC→hostA)に更新する。同様に、経路(hostD→hostB)を経路(hostD→hostB→hostA)に更新する。また、ステップS107における処理と同様に、接続情報においてアクティブフラグが「1」の送信元と送信先との組み合わせに対して当該経路がアクティブであることを示す属性(ACTIVE)を付与する。ステップS116の処理により、例示しているケースの経路情報は以下のようになる。
(経路情報)
・hostA→hostB→hostD:ACTIVE
・hostA→hostC→hostD
・hostD→hostB→hostA:ACTIVE
・hostD→hostC→hostA
【0045】
経路情報算出部22は、ステップS116の処理を終えると、処理をステップS114に戻して、再度判定を行う。
例示しているケースでは、経路情報に含まれる経路の始点と終点とが、経路情報要求で指定されている仮想ネットワーク装置2A及び2Dと一致している(ステップS114:YES)ので、経路情報算出部22は処理をステップS117に進める。
経路情報算出部22は、経路情報を監視サーバ4に出力し(ステップS117)、経路情報算出処理を終了する。
【0046】
上記の経路情報算出処理を仮想ネットワーク制御装置1が行うことにより、仮想ネットワーク3において指定された2つの仮想ネットワーク装置2間における経路を示す経路情報を得ることができる。経路情報算出処理では、通信トラフィックの流れが定義されているフローに基づいて、仮想ネットワーク装置データベース12において示されている物理的な接続のうち、仮想ネットワーク3において利用できる接続に絞り込んでから、2つの仮想ネットワーク装置2間の経路を算出する。これにより、仮想ネットワーク3における経路を算出することができる。
例示したケースでは、4つの経路が経路情報として得られる。経路情報算出処理により、仮想ネットワーク3におけるアクティブな経路と非アクティブな経路(冗長化経路)とを算出することができる。
【0047】
以下、本実施形態の通信システムにおいて、経路情報算出処理が利用されるケースを例示する。
図9は、本実施形態の通信システムで経路情報算出処理が利用される一例を示すシーケンス図である。ここでは、仮想ネットワーク3に備えられている仮想ネットワーク装置2Bにおいて障害が発生した場合について説明する。
仮想ネットワーク装置2Bにおいて障害が発生すると、仮想ネットワーク装置2Bは障害が発生したことを示す障害情報を、保守網を通じて監視サーバ4に送信する(ステップS201)。
【0048】
監視サーバ4は、障害情報を受信すると、受信した情報を保守者が利用する保守端末5に転送して、仮想ネットワーク3において障害が発生していることを通知する(ステップS202)。
保守端末5は、障害情報を受信すると、警告メッセージを表示したり、警告音を鳴らしたりして保守者に障害の発生を通知する(ステップS203)。
保守端末5は、保守者の操作に応じて、仮想ネットワーク3における経路を把握することができる経路情報を仮想ネットワーク制御装置1に要求する(ステップS204)。
【0049】
仮想ネットワーク制御装置1は、保守端末5から経路情報要求を受信すると、経路情報算出処理を実行して経路情報を取得する(ステップS205)。
仮想ネットワーク制御装置1は、取得した経路情報を保守端末5に送信する(ステップS206)。
【0050】
このようにして、仮想ネットワーク3において障害が発生した場合には、仮想ネットワーク制御装置1を介して仮想ネットワーク3における経路を把握することができる。これにより、保守者は、障害情報と経路情報とに基づいて、アクティブな経路において障害が発生したのか、非アクティブな経路(冗長化経路)において障害が発生したのかを把握することができるので、障害発生時の切り分け時間を短縮することができる。その結果、高可用性の仮想ネットワーク3を提供することができる。また、障害が発生したときに限らず、経路情報を把握することにより、仮想ネットワーク3における経路の構成や、フローテーブル11の設定の有効性を確認することができる。
また、サービス提供サーバ7A及び7Bを用いて提供されるサービスは、高可用性の仮想ネットワーク3を介して提供されるため、サービスのダウンタイムが極小化され、ユーザに対して高品質なサービスを提供することができる。
【0051】
なお、障害が発生した際に仮想ネットワーク装置2A〜2Dは、仮想ネットワーク制御装置1に障害情報を送信するようにしてもよい。このとき、仮想ネットワーク制御装置1は、障害情報を受信すると経路情報算出処理を実行し、障害情報を送信した仮想ネットワーク装置2がアクティブな経路に含まれているか否かを判定する。仮想ネットワーク制御装置1は、障害情報を送信した仮想ネットワーク装置2がアクティブな経路に含まれている場合、フローテーブル11において当該仮想ネットワーク装置2に通信トラフィックを転送するフローの利用を停止させるようにしてもよい。これにより、仮想ネットワーク3におけるダウンタイムを減少させることができる。
【0052】
また、上記の経路情報算出処理の説明においては、
図6に示されたようにレイヤ2レベルで定義されたフローテーブル11を用いる例を示した。しかし、レイヤ2レベルに限らず他のレイヤレベルで定義されていてもよい。例えば、
図10から
図12に示すように、レイヤ1レベル(
図10)や、レイヤ3レベル(
図11)、レイヤ4レベル(
図12)に示すようにフローテーブル11が定義されていてもよい。
【0053】
図10は、本実施形態におけるフローテーブル11がレイヤ1レベルで定義された例を示す図である。ヘッダフィールドには、通信トラフィックが入力されたポート番号を用いた条件が定められている。また、アクションには、入力された通信トラフィックを出力するポート番号が定められている。
図10に示すフローでは、仮想ネットワーク装置2Aと仮想ネットワーク装置2Dとの間において、仮想ネットワーク装置2Bを経由する経路が通常用いられる経路として定められ、仮想ネットワーク装置2Cを経由する経路が迂回路(冗長化経路)として定められている。
【0054】
図11は、本実施形態におけるフローテーブル11がレイヤ3レベルで定義された例を示す図である。ヘッダフィールドには、通信トラフィックの送信先のIPアドレスを用いた条件が定められている。また、アクションには、通信トラフィックの転送先がポート番号で定められている。
図11に示すフローでは、
図10と同様に、仮想ネットワーク装置2Aと仮想ネットワーク装置2Dとの間において、仮想ネットワーク装置2Bを経由する経路が通常用いられる経路として定められ、仮想ネットワーク装置2Cを経由する経路が迂回路(冗長化経路)として定められている。
【0055】
図12は、本実施形態におけるフローテーブル11がレイヤ4レベルで定義された例を示す図である。ヘッダフィールドには、通信トラフィックの送信先のMACアドレスとTCPのポート番号とを用いた条件が定められている。また、アクションには、通信トラフィックの転送先がポート番号で定められている。
図12に示すフローでは、仮想ネットワーク装置2Aと仮想ネットワーク装置2Dとの間において、プロトコルに「HTTP」を用いた通信は仮想ネットワーク装置2Bを経由した経路を用いるように定められている。また、プロトコルに「HTTPS」を用いた通信は仮想ネットワーク装置2Cを経由した経路を用いるように定められている。
【0056】
フローテーブル11が、
図6、
図10から
図12のいずれのように定められていても、仮想ネットワーク制御装置1は経路情報算出処理を行うことにより経路情報を算出できる。具体的には、一覧テーブル算出部21が、経路情報算出処理のステップS101において、フローで動作が定義されている仮想ネットワーク装置2(ホスト名)とポート番号との組み合わせを抽出することができるので、経路情報を算出できる。
【0057】
(実施例)
ここで、上記の説明における仮想ネットワーク3と構成の異なる場合における経路情報算出処理について説明する。
図13は、実施例における仮想ネットワーク3Aの構成を示すブロック図である。ここでは、監視サーバ4や、保守端末5、サービス提供サーバ7A及び7B、ユーザ宅内ルータ8A及び8B、ユーザ端末9A及び9Bを省いて、仮想ネットワーク3Aの構成と物理ネットワーク装置6A及び6Bとを示している。同図に示す仮想ネットワーク3Aは仮想ネットワーク制御装置1と6個の仮想ネットワーク装置2A〜2Fとを備えている。仮想ネットワーク制御装置1による制御に基づいて、互いに接続された仮想ネットワーク装置2A〜2Fが通信することによりネットワークを形成している。仮想ネットワーク装置2A〜2Fそれぞれのホスト名を「hostA」、「hostB」、「hostC」、「hostD」、「hostE」、及び「hostF」として説明する。また、各仮想ネットワーク装置2A〜2Fそれぞれは3つの物理ポートp1〜p3を有している。
【0058】
図14は、実施例における仮想ネットワーク装置データベース12に記憶されている構成情報を示す図である。仮想ネットワーク装置データベース12には、各仮想ネットワーク装置2A〜2Fが有する物理ポートp1〜p3それぞれごとに接続されている仮想ネットワーク装置2A〜2F、又は、物理ネットワーク装置6A、6Bが示されている。
【0059】
図15は、実施例におけるフローテーブル11に記憶されているフローを示す図である。同図に示すフローでは、仮想ネットワーク装置2Aと仮想ネットワーク装置2Fとの間において、仮想ネットワーク装置2B及び仮想ネットワーク装置2Dを経由する経路が通常使用する経路として設定されている。また、仮想ネットワーク装置2Aから仮想ネットワーク装置2Cを経由する経路や、仮想ネットワーク装置2Eを経由して仮想ネットワーク装置2Fに向かう経路などは迂回経路(冗長化経路)として設定されている。
【0060】
なお、本実施例においても、戻りフラグの値は、サービス提供サーバ7A及び7Bが接続されている物理ネットワーク装置6Bから、ユーザ宅内ルータ8A及び8Bが接続されている物理ネットワーク装置6Aに向かう方向に対して「1」が予め設定され、その逆方向に「0」が予め設定されているものとする。
【0061】
上記のように設定されている仮想ネットワーク3Aにおいて、仮想ネットワーク装置2Aと仮想ネットワーク装置2Fとを指定する経路情報要求を仮想ネットワーク制御装置1が受信した際の経路情報算出処理について説明する。
一覧テーブル算出部21は、経路情報要求が入力されると、フローテーブル11(
図15)からホスト名とアクションにおけるポート番号との組み合わせを抽出し、抽出したホスト名とポート番号とを検索キーにして仮想ネットワーク装置データベース12から構成情報を検索する(ステップS101〜ステップS102)。
一覧テーブル算出部21は、抽出結果(検索キー)及び検索結果に基づいて接続情報を生成し、生成した接続情報を送信元送信先一覧テーブル13に記憶させる(ステップS104)。
図16は、本実施例において更新された送信元送信先一覧テーブル13を示す図である。
【0062】
経路情報算出部22は、経路情報要求において指定された仮想ネットワーク装置2と戻りフラグ「0」とを(送信元,戻りフラグ)に対する検索キーにして送信元送信先一覧テーブル13から接続情報を検索し、検索結果を経路情報とする(ステップS106〜ステップS107)。この段階における経路情報は以下のようになる。
(経路情報)
・hostA→hostB:ACTIVE
・hostA→hostC
【0063】
経路情報算出部22は、ホスト名「hostB」と戻りフラグ「0」、及び、ホスト名「hostC」と戻りフラグ「0」を検索キーにして送信元送信先一覧テーブル13から接続情報を検索し、検索結果を経路情報に連結して更新する(ステップS109〜ステップS110)。この段階における経路情報は以下のようになる。
(経路情報)
・hostA→hostB→hostD:ACTIVE
・hostA→hostB→hostE
・hostA→hostC→hostE
・hostA→hostC→hostD
【0064】
経路情報算出部22は、経路情報に含まれる経路の始点と終点とが、経路情報要求で指定された仮想ネットワーク装置2と一致していないので(ステップS108:NO)、経路情報の更新を再度行う(ステップS109〜ステップS110)。この段階における経路情報は以下のようになる。
(経路情報)
・hostA→hostB→hostD→hostF:ACTIVE
・hostA→hostB→hostE→hostF
・hostA→hostC→hostE→hostF
・hostA→hostC→hostD→hostF
【0065】
経路情報算出部22は、経路情報に含まれる経路の始点と終点とが、経路情報要求で指定された仮想ネットワーク装置2と一致しているので(ステップS108:YES)、戻りフラグが「1」の接続情報に基づいた経路の算出を行う。
経路情報算出部22は、経路情報要求において指定された仮想ネットワーク装置2と戻りフラグ「1」とを(送信元,戻りフラグ)に対する検索キーにして送信元送信先一覧テーブル13から接続情報を検索し、検索結果を経路情報に追加する(ステップS112〜ステップS113)。この段階における経路情報は以下のようになる。
(経路情報)
・hostA→hostB→hostD→hostF:ACTIVE
・hostA→hostB→hostE→hostF
・hostA→hostC→hostE→hostF
・hostA→hostC→hostD→hostF
・hostF→hostE:ACTIVE
・hostF→hostD
【0066】
経路情報算出部22は、ホスト名「hostE」と戻りフラグ「1」、及び、ホスト名「hostD」と戻りフラグ「1」を検索キーにして送信元送信先一覧テーブル13から接続情報を検索し、検索結果を経路情報に連結して更新する(ステップS115〜ステップS116)。この段階における経路情報は以下のようになる。
(経路情報)
・hostA→hostB→hostD→hostF:ACTIVE
・hostA→hostB→hostE→hostF
・hostA→hostC→hostE→hostF
・hostA→hostC→hostD→hostF
・hostF→hostD→hostB:ACTIVE
・hostF→hostE→hostB
・hostF→hostE→hostC
・hostF→hostD→hostC
【0067】
経路情報算出部22は、経路情報に含まれる経路の始点と終点とが、経路情報要求で指定された仮想ネットワーク装置2と一致していないので(ステップS114:NO)、経路情報の更新を再度行う(ステップS115〜ステップS116)。この段階における経路情報は以下のようになる。
(経路情報)
・hostA→hostB→hostD→hostF:ACTIVE
・hostA→hostB→hostE→hostF
・hostA→hostC→hostE→hostF
・hostA→hostC→hostD→hostF
・hostF→hostD→hostB→hostA:ACTIVE
・hostF→hostE→hostB→hostA
・hostF→hostE→hostC→hostA
・hostF→hostD→hostC→hostA
【0068】
経路情報算出部22は、経路情報に含まれる経路の始点と終点とが、経路情報要求で指定された仮想ネットワーク装置2と一致しているので(ステップS114:YES)、算出した経路情報を出力し(ステップS117)、経路情報算出処理を終了させる。
【0069】
上記のように、経路情報算出処理により得られる経路情報から、アクティブな経路と、冗長化された経路とを把握することができる。例えば、アクティブな経路における仮想ネットワーク装置2Dに障害が発生した場合には、仮想ネットワーク装置2Dを経由しない経路を利用するようにフローテーブル11を変更することにより、発生した障害を回避することができる。
【0070】
なお、仮想ネットワークの構成として、4個の仮想ネットワーク装置2を有する場合と、6個の仮想ネットワーク装置2を有する場合とを例示したが、5個の仮想ネットワーク装置2、又は、7個以上の仮想ネットワーク装置2を有する構成であってもよい。
また、仮想ネットワーク制御装置1が一覧テーブル算出部21と経路情報算出部22とを有する構成について説明したが、通信システムは、一覧テーブル算出部21と経路情報算出部22とを備える他の装置を具備していてもよい。また、一覧テーブル算出部21と経路情報算出部22とそれぞれを独立した装置として具備していても良い。この場合、これらの装置は、保守網を介して仮想ネットワーク制御装置1と通信を行い、経路情報を算出することになる。
【0071】
なお、
図1における仮想ネットワーク制御装置1の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより経路情報算出処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。更に「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0072】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。更に、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。