実施形態1.
本発明の第1の実施形態のVPNコントローラ100について、図面を参照して説明する。図1は、本発明の第1の実施形態のVPNコントローラ100の接続例を示すブロック図である。図1に示すように、本発明の第1の実施形態のVPNコントローラ100は、通信ネットワーク400を構成するスイッチ201〜206にそれぞれ接続されている。
各スイッチ201〜206は、例えば、OpenFlowスイッチである。そして、各スイッチ201〜206とVPNコントローラ100とは、例えば、OpenFlowセキュアチャネルで互いに接続されている。
そして、各スイッチ201〜206は、直接に、または間接的に互いに接続されている。具体的には、図1に示す例では、スイッチ201は、スイッチ202,204と互いに接続されている。また、図1に示す例では、スイッチ203は、スイッチ202,206と互いに接続されている。そして、図1に示す例では、スイッチ205は、スイッチ202,204,206と互いに接続されている。
より具体的には、スイッチ201の3番ポート201−3とスイッチ202の1番ポート202−1とが互いに接続されている。また、スイッチ201の4番ポート201−4とスイッチ204の4番ポート204−4とが互いに接続されている。スイッチ203の3番ポート203−3とスイッチ202の2番ポート202−2とが互いに接続されている。また、スイッチ203の4番ポート203−4とスイッチ206の4番ポート206−4とが互いに接続されている。スイッチ205の1番ポート205−1とスイッチ204の3番ポート204−3とが互いに接続されている。また、スイッチ205の2番ポート205−2とスイッチ206の3番ポート206−3とが互いに接続されている。スイッチ205の3番ポート205−3とスイッチ202の3番ポート202−3とが互いに接続されている。
また、図1に示すように、スイッチ201において、1番ポート201−1にはCEルータ301が接続され、2番ポート201−2にはCEルータ302が接続されている。スイッチ203において、1番ポート203−1にはCEルータ305が接続され、2番ポート203−2にはCEルータ306が接続されている。また、スイッチ204において、1番ポート204−1にはCEルータ303が接続され、2番ポート204−2にはCEルータ304が接続されている。スイッチ206において、1番ポート206−1にはCEルータ307が接続され、2番ポート206−2にはCEルータ308が接続されている。
したがって、図1に示すように、スイッチ201,203,204,206が通信ネットワーク400のエッジに配置された、通信ネットワーク400のエッジ装置である。以下、エッジ装置をユーザ接続スイッチともいう。
なお、各CEルータ301〜308は、VPNサービスの提供を受けるVPNユーザの各拠点(後述する拠点IDが1〜8に設定されている拠点)にそれぞれ配置されている。
図2は、本発明の第1の実施形態のVPNコントローラ100の構成例を示すブロック図である。図2に示すように、本発明の第1の実施形態のVPNコントローラ100は、転送装置インタフェース部102、転送装置性能情報取得部103、NW(ネットワーク)トポロジ同定部104、交換転送装置位置計算部105、転送経路計算部106、上り転送規則設定部107、下り転送規則設定部108、転送装置リソース使用状況DB(データベース)109、トポロジDB110、VPN情報DB111、および経路情報DB112を含む。
転送装置インタフェース部102は、OpenFlowプロトコルに基づいて、通信ネットワーク400における各スイッチ201〜206と通信し、パケットの転送規則を設定、削除、および更新したり、スイッチ201〜206から情報を取得したりする。
転送装置性能情報取得部103は、転送装置インタフェース部102を介して、通信ネットワーク400におけるスイッチ201〜206から各スイッチ201〜206の性能を示す使用状況情報を収集する。そして、転送装置性能情報取得部103は、収集した使用状況情報を転送装置リソース使用状況DB109に登録する。
NWトポロジ同定部104は、転送装置インタフェース部102を介して通信ネットワーク400のネットワークトポロジを検出する。そして、NWトポロジ同定部104は、検出したネットワークトポロジを示すネットワークトポロジ情報をトポロジDB110に登録する。NWトポロジ同定部104は、例えば、隣接転送装置間でLLDP(Link Layer Discovery Protocol)に基づいて送受信されるパケットや、通信ネットワーク400における各装置を管理するNMS(Network Management System)などからネットワークトポロジ情報を取得する。なお、NWトポロジ同定部104は、予め静的に記述されたネットワークトポロジ情報を取得してもよいし、他の方法でネットワークトポロジ情報を取得してもよい。
交換転送装置位置計算部105は、転送装置リソース使用状況DB109に登録されている情報に基づいて交換転送装置を選出する。なお、交換転送装置は、ハブ・アンド・スポーク型に形成されたデータ転送経路においてハブに相当する位置に配置されるスイッチをいう。交換転送装置位置計算部105は、選出した交換転送装置を一意に識別する識別子を転送経路計算部106に送る。
転送経路計算部106は、トポロジDB110に登録されているネットワークトポロジ情報と、VPN情報DB111に登録されているVPN情報とに基づいて、以下の処理を行う。すなわち、転送経路計算部106は、交換転送装置とVPNユーザの拠点に配置された各CEルータ301〜308との間を繋ぐパスを決定するための計算を行う。そして、転送経路計算部106は、計算結果に基づいて決定したパスの経路上の各スイッチ201〜206と当該各スイッチ201〜206のポート番号とを示すパス情報を上り転送規則設定部107および下り転送規則設定部108にそれぞれ入力する。
上り転送規則設定部107は、転送経路計算部106が入力したパス情報に基づいて、エッジに配置されたスイッチ201,203,204,206から交換転送装置に向かう上り側トラフィックに関する転送規則を生成する。そして、上り転送規則設定部107は、生成した転送規則を示す情報を転送装置インタフェース部102に入力する。
下り転送規則設定部108は、転送経路計算部106が入力したパス情報に基づいて、交換転送装置からエッジに配置されたスイッチ201,203,204,206に向かう下り側トラフィックに関する転送規則を生成する。そして、下り転送規則設定部108は、生成した転送規則を示す情報を転送装置インタフェース部102に入力する。
転送装置リソース使用状況DB109には、セキュアチャネルなどの管理用通信プロトコルに基づいて、以下のような情報が登録されている。すなわち、転送装置リソース使用状況DB109には、通信ネットワーク400においてコントローラ100と接続された各スイッチ201〜206における通信リソースの使用状況を示す使用状況情報が登録されている。
使用状況情報は、転送装置リソース使用状況DB109に、例えば、転送装置性能情報取得部103や下り転送規則設定部108によって登録されたり、その他の方法で登録されたりする。
図3は、転送装置リソース使用状況DB109の構成例を示す説明図である。図3に示すように、使用状況情報は、スイッチIDの項目、フローエントリの登録上限数の項目、およびフローエントリの現在の使用量の項目を含むテーブル形式で転送装置リソース使用状況DB109に登録されている。なお、フローエントリは、OpenFlowの規格に基づく所定の情報であり、例えば、宛先等の条件が合致したパケットに対する処理内容を示す情報である。
図3に示す例では、転送装置リソース使用状況DB109の1番目のエントリに、スイッチIDが0x01であるスイッチ(本例ではスイッチ201)の、フローエントリの登録上限数が100であり、フローエントリの現在の使用量(登録数)が0であることが登録されている。また、図3に示す例では、転送装置リソース使用状況DB109の2番目のエントリに、スイッチIDが0x02であるスイッチ(本例ではスイッチ202)の、フローエントリの登録上限数が200であり、フローエントリの現在の使用量が0であることが登録されている。図3に示す例では、転送装置リソース使用状況DB109の3番目のエントリに、スイッチIDが0x03であるスイッチ(本例ではスイッチ203)の、フローエントリの登録上限数が100であり、フローエントリの現在の使用量が0であることが登録されている。また、図3に示す例では、転送装置リソース使用状況DB109の4番目のエントリに、スイッチIDが0x04であるスイッチ(本例ではスイッチ204)の、フローエントリの登録上限数が100であり、フローエントリの現在の使用量が0であることが登録されている。図3に示す例では、転送装置リソース使用状況DB109の5番目のエントリに、スイッチIDが0x05であるスイッチ(本例ではスイッチ205)の、フローエントリの登録上限数が200であり、フローエントリの現在の使用量が0であることが登録されている。また、図3に示す例では、転送装置リソース使用状況DB109の6番目のエントリに、スイッチIDが0x06であるスイッチ(本例ではスイッチ206)の、フローエントリの登録上限数が100であり、フローエントリの現在の使用量が0であることが登録されている。
トポロジDB110には、コントローラ100が管理する通信ネットワーク400における各スイッチ201〜206の接続関係を示すネットワークトポロジ情報が登録されている。
ネットワークトポロジ情報は、トポロジDB110に、例えば、NWトポロジ同定部104によって登録されたり、その他の方法で登録されたりする。
図4は、トポロジDB110の構成例を示す説明図である。図4に示すように、ネットワークトポロジ情報は、上流スイッチIDの項目、上流スイッチ側ポートの項目、下流スイッチIDの項目、および下流スイッチ側ポートの項目を含むテーブル形式でトポロジDB110に登録されている。
図4に示す例では、トポロジDB110の1番目のエントリに、スイッチIDが0x01であるスイッチ(本例ではスイッチ201)の3番ポート201−3と、スイッチIDが0x02であるスイッチ(本例ではスイッチ202)の1番ポート202−1とがリンクされていることが登録されている。また、図4に示す例では、トポロジDB110の2番目のエントリに、スイッチIDが0x01であるスイッチ(本例ではスイッチ201)の4番ポート201−4と、スイッチIDが0x04であるスイッチ(本例ではスイッチ204)の4番ポート204−4とがリンクされていることが登録されている。トポロジDB110の3番目のエントリに、スイッチIDが0x02であるスイッチ(本例ではスイッチ202)の2番ポート202−2と、スイッチIDが0x03であるスイッチ(本例ではスイッチ203)の3番ポート203−3とがリンクされていることが登録されている。また、トポロジDB110の4番目のエントリに、スイッチIDが0x02であるスイッチ(本例ではスイッチ202)の3番ポート202−3と、スイッチIDが0x05であるスイッチ(本例ではスイッチ205)の3番ポート205−3とがリンクされていることが登録されている。
VPN情報DB111には、VPNの構成を示す構成情報が登録されている。図5は、VPN情報DB111の構成例を示す説明図である。図5に示すように、構成情報は、VPN−IDの項目、拠点IDの項目、ユーザ接続スイッチの項目、ユーザ接続ポートの項目、および処理済みフラグの項目を含むテーブル形式でVPN情報DB111に登録されている。
図5に示す例では、VPN−IDが1であるVPNにおいて、拠点IDが1である拠点に配置されたCEルータ(本例ではCEルータ301)と、スイッチIDが0x01であるスイッチ(本例ではスイッチ201)の1番ポート201−1とが接続されていることが登録されている。また、図5に示す例では、VPN−IDが1であるVPNにおいて、拠点IDが5である拠点に配置されたCEルータ(本例ではCEルータ305)と、スイッチIDが0x03であるスイッチ(本例ではスイッチ203)の1番ポート203−1とが接続されていることが登録されている。図5に示す例では、VPN−IDが1であるVPNにおいて、拠点IDが3である拠点に配置されたCEルータ(本例ではCEルータ301)と、スイッチIDが0x04であるスイッチ(本例ではスイッチ204)の1番ポート204−1とが接続されていることが登録されている。また、図5に示す例では、VPN−IDが1であるVPNにおいて、拠点IDが7である拠点に配置されたCEルータ(本例ではCEルータ307)と、スイッチIDが0x06であるスイッチ(本例ではスイッチ206)の1番ポート206−1とが接続されていることが登録されている。図5に示す例では、VPN−IDが2であるVPNにおいて、拠点IDが2である拠点に配置されたCEルータ(本例ではCEルータ302)と、スイッチIDが0x01であるスイッチ(本例ではスイッチ201)の2番ポート201−2とが接続されていることが登録されている。また、図5に示す例では、VPN−IDが2であるVPNにおいて、拠点IDが6である拠点に配置されたCEルータ(本例ではCEルータ306)と、スイッチIDが0x03であるスイッチ(本例ではスイッチ203)の2番ポート203−2とが接続されていることが登録されている。図5に示す例では、VPN−IDが2であるVPNにおいて、拠点IDが4である拠点に配置されたCEルータ(本例ではCEルータ304)と、スイッチIDが0x04であるスイッチ(本例ではスイッチ204)の2番ポート204−2とが接続されていることが登録されている。また、図5に示す例では、VPN−IDが2であるVPNにおいて、拠点IDが8である拠点に配置されたCEルータ(本例ではCEルータ308)と、スイッチIDが0x06であるスイッチ(本例ではスイッチ206)の2番ポート206−2とが接続されていることが登録されている。
また、図5に示す例では、処理済みフラグの項目は、全てNに設定されている。したがって、当該項目によって、各拠点に配置されたCEルータ301〜308においてVPNサービスを提供するための処理が行われていないことが示されている。
そして、VPN−IDの項目がそれぞれ「1」で互いに同じである拠点ID1,5,3,7のCEルータ301,305,303,307は、VPNサービスが提供されると互いに通信を行うことが可能である。また、VPN−IDの項目がそれぞれ「2」で互いに同じである拠点ID2,6,4,8のCEルータ302,306,304,308は、VPNサービスが提供されると互いに通信を行うことが可能である。
経路情報DB112には、IPに基づいてパケットの送受信経路を示す経路情報が登録される。図6は、経路情報DB112の構成例を示す説明図である。図6に示すように、経路情報は、拠点IDの項目、拠点アドレスの項目、および処理済みフラグの項目を含むテーブル形式で経路情報DB112に登録されている。なお、例えば、各拠点に配置された通信装置のIPアドレスが拠点アドレスの項目に設定される。そして、例えば、各拠点アドレスの通信装置が、各拠点のCEルータ、通信ネットワーク400、および同じVPN−IDの他の拠点のCEルータを介して、他の拠点の通信装置と通信を行う。
図6に示す例では、拠点IDが1である拠点に配置されたCEルータ(本例ではCEルータ301)に接続された通信装置の拠点アドレスが、192.168.1.0/24であることが登録されている。また、図6に示す例では、拠点IDが2である拠点に配置されたCEルータ(本例ではCEルータ302)に接続された通信装置の拠点アドレスが、192.168.2.0/24であることが登録されている。図6に示す例では、拠点IDが3である拠点に配置されたCEルータ(本例ではCEルータ303)に接続された通信装置の拠点アドレスが、192.168.3.0/24であることが登録されている。また、図6に示す例では、拠点IDが4である拠点に配置されたCEルータ(本例ではCEルータ304)に接続された通信装置の拠点アドレスが、192.168.4.0/24であることが登録されている。図6に示す例では、拠点IDが5である拠点に配置されたCEルータ(本例ではCEルータ305)に接続された通信装置の拠点アドレスが、192.168.5.0/24であることが登録されている。また、図6に示す例では、拠点IDが6である拠点に配置されたCEルータ(本例ではCEルータ306)に接続された通信装置の拠点アドレスが、192.168.6.0/24であることが登録されている。図6に示す例では、拠点IDが7である拠点に配置されたCEルータ(本例ではCEルータ307)に接続された通信装置の拠点アドレスが、192.168.7.0/24であることが登録されている。また、図6に示す例では、拠点IDが8である拠点に配置されたCEルータ(本例ではCEルータ308)に接続された通信装置の拠点アドレスが、192.168.8.0/24であることが登録されている。
また、図6に示す例では、処理済みフラグの項目は、全てNに設定されている。したがって、当該項目によって、各拠点に配置されたCEルータ301〜308においてVPNサービスを提供するための処理が行われていないことが示されている。
次に、本発明の第1の実施形態のVPNコントローラ100の動作について説明する。図7は、VPNコントローラ100が通信ネットワーク400においてVPNを構築する処理を示すフローチャートである。
VPNコントローラ100の転送装置性能情報取得部103は、転送装置インタフェース部102にOpenFlowの規格に基づくFeatures Requestの送信を要求する。転送装置インタフェース部102は、転送装置性能情報取得部103の要求に応じて、Features Requestを各スイッチ201〜208に送信する。そして、転送装置インタフェース部102は、送信したFeatures Requestに応じて各スイッチ201〜208から返信された使用状況情報を受信して転送装置性能情報取得部103に入力する。転送装置性能情報取得部103は、入力された使用状況情報に含まれるFlowtableの値を、図3に示す転送装置リソース使用状況DB109のフローエントリの登録上限数の項目において各スイッチ201〜208に応じた欄に登録する。なお、転送装置性能情報取得部103は、フローエントリの登録上限数の項目に値を登録する場合に、フローエントリの現在の使用量の項目に0を登録する。すると、図3に示すように、使用状況情報が転送装置リソース使用状況DB109に登録されることになる(ステップS101)。
また、NWトポロジ同定部104は、転送装置インタフェース部102に、例えば、LLDPに基づくメッセージの送信を要求する。転送装置インタフェース部102は、転送装置性能情報取得部103の要求に応じて、LLDPに基づくメッセージを、例えば、マルチキャストで送信する。そして、転送装置インタフェース部102は、送信したLLDPに基づくメッセージに応じて各スイッチ201〜208から返信された情報を受信してNWトポロジ同定部104に入力する。NWトポロジ同定部104は、入力された情報に基づいて通信ネットワーク400のトポロジを同定して、同定結果のトポロジを示すネットワークトポロジ情報を生成する。したがって、ネットワークトポロジ情報によって、各スイッチ201〜206の接続関係が示される。なお、LLDPに基づくメッセージに対して返信された情報に基づいてネットワークトポロジ情報を生成する方法には、例えば、既知の方法が用いられる。すると、ネットワークトポロジ情報が図4に示すようにNWトポロジ同定部104に登録されることになる(ステップS102)。
VPNコントローラ100(具体的には、例えば、転送経路計算部106)は、VPN情報DB111の処理済みフラグの項目においてNに設定されているエントリがあるか否かを判定する(ステップS103)。Nに設定されているエントリがない場合に(ステップS103のN)、全ての拠点に配置されたCEルータ301〜308においてVPNサービスを提供するための処理が既に行われたことが示されているので、VPNコントローラ100は、処理を終了する。また、Nに設定されているエントリがある場合に(ステップS103のY)、VPNコントローラ100は、処理済みフラグの項目がNに設定されているエントリにおいてVPN−IDの項目に設定されているVPN−IDを1つ選択する(ステップS104)。そして、VPNコントローラ100は、選択したVPN−IDのVPNを構築する処理を行う(ステップS105)。
図8は、VPNコントローラ100が、選択したVPN−IDのVPNを構築する処理を示すフローチャートである。VPNを構築する処理(ステップS105)において、VPNコントローラ100の交換転送装置位置計算部105は、転送装置リソース使用状況DB109を参照して、以下の処理を行う。すなわち、交換転送装置位置計算部105は、フローエントリの登録可能残数が最も多いエントリを1つ抽出し、抽出したエントリのスイッチIDの項目で示されるスイッチを交換転送装置に選出する(ステップS201)。
なお、交換転送装置位置計算部105は、転送装置リソース使用状況DB109において、フローエントリの登録上限数の項目の値からフローエントリの現在の使用量の項目の値を減算してフローエントリの登録可能残数を算出することができる。図3に示す例では、スイッチIDの項目が0x02であるスイッチ202およびスイッチIDの項目が0x05のスイッチ205のフローエントリの登録可能残数が最大値の200である。そこで、交換転送装置位置計算部105は、例えば、各スイッチの性能等に応じて予め設定された優先度に基づいて、スイッチ202およびスイッチ205のうちいずれか一方を交換転送装置に選出する。なお、交換転送装置位置計算部105は、他の方法で交換転送装置を選出してもよい。本例では、スイッチ202を交換転送装置に選出したとする。
交換転送装置位置計算部105は、ステップS201の処理で選出したスイッチを他のスイッチから識別する識別子を転送経路計算部106に入力する(ステップS202)。なお、ステップS201の処理で選出したスイッチを他のスイッチから識別する識別子は、例えば、スイッチIDの項目に登録されているスイッチIDである。
そして、転送経路計算部106は、図5に例示したVPN情報DB111を参照して、図7に示すステップS104の処理で選択されたVPN−IDであって、かつ、処理済みフラグがNに設定されているエントリを1つ抽出する(ステップS203のY,S204)。なお、転送経路計算部106は、図5に例示したVPN情報DB111を参照して、図7に示すステップS104の処理で選択されたVPN−IDであって、かつ、処理済みフラグがNに設定されているエントリがなければ(ステップS203のN)、処理を終了する。
転送経路計算部106は、ステップS204の処理で抽出したエントリに含まれるユーザ接続スイッチを始点とし、ステップS201の処理で選出したスイッチである交換転送装置を終点とするパスを決定するための計算を行う(ステップS205)。なお、転送経路計算部106は、ステップS205の処理における計算を、例えば、トポロジDB110に登録されているネットワークトポロジ情報に基づいて行う。
そして、転送経路計算部106は、ステップS205の処理における計算結果に基づいて当該パスを決定する。さらに、転送経路計算部106は、決定した当該パスの経路上のスイッチのリストとポート番号とを示すパス情報とステップS204の処理で抽出したエントリとを上り転送規則設定部107に入力する(ステップS206)。
なお、転送経路計算部106は、当該パスを、例えば、ダイクストラ法に基づいて決定する。ダイクストラ法は、トポロジに基づいて最短パスを算出するアルゴリズムである。例えば、ステップS204の処理で、VPN情報DB111から図5に示すエントリの3行目が抽出された場合に、ユーザ接続スイッチのスイッチIDが0x04であり、ユーザ接続ポートは1である。そして、ステップS201の処理で選出された交換転送装置であるスイッチのスイッチIDが0x02であるから、ダイクストラ法で求められるパスは、0x04(3番ポート204−3)→0x05(3番ポート205−3)→0x02になる。つまり、ステップS206の処理で上り転送規則設定部107に入力されるパス情報によって、当該パスが示される。
ダイクストラ法を用いたパスの決定方法として、コストに、リンクの帯域が用いられてもよいし、リンクの使用率が用いられてもよいし、テーブルに設定されている転送規則の数が用いられてもよい。
なお、ダイクストラ法を用いたパスの決定方法について説明したが、ダイクストラ法の使用は一例であり、ダイクストラ法以外のパス計算アルゴリズムが用いられてもよい。
上り転送規則設定部107は、ステップS206の処理で入力されたパス情報に基づいて、各スイッチに設定する転送規則をそれぞれ生成する。そして、上り転送規則設定部107は、転送装置インタフェース部102に、生成した転送規則を各スイッチ201〜206に設定する設定処理を行わせる(ステップS207)。
図9は、VPNコントローラ100が、交換転送装置へパケットを転送するための転送規則を各スイッチ201〜206に設定する設定処理(ステップS207の処理)を示すフローチャートである。設定処理(ステップS207)において、上り転送規則設定部107は、まず、ステップS206の処理で入力されたパス情報によって示されるパスの始点を抽出する(ステップS301)。ステップS206の処理で入力されたパス情報によって示されるパスが、0x04(3番ポート204−3)→0x05(3番ポート205−3)→0x02である場合には、始点として0x04(スイッチ204)が抽出される。
そして、上り転送規則設定部107は、ステップS301の処理で抽出した始点(本例ではスイッチIDが0x04のスイッチ204)に適用する、パケットの照合と転送とに関するルール(転送規則)を生成する(ステップS302)。具体的には、上り転送規則設定部107は、図8に示すステップS206の処理で入力されたパス情報と、ステップS204の処理で抽出されたエントリとに基づいて、転送規則を生成する。なお、上り転送規則設定部107は、各拠点に配置されたCEルータ301〜308に接続されたスイッチ201〜206から交換転送装置に向けてパケットが送信されるように各スイッチ201〜206に設定する転送規則をそれぞれ生成する。当該転送規則は、VPNサービスのユーザの拠点に配置されたCEルータ301〜308から送信されたパケットを他のトラフィックから分離して交換転送装置まで転送するための規則である。
そのようなパケットの転送を実現するために、当該転送規則は、ステップS204の処理で抽出されたエントリにおけるユーザ接続ポートの項目に設定されているポートを入力ポートに指定した照合ルールを含む。また、当該転送規則は、照合ルールの設定内容に合致したパケットにステップS204の処理で抽出されたエントリにおける拠点IDをラベルに付与して、次ホップのスイッチが接続されたポートから送信する転送規則を含む。
具体的には、例えば、図8に示すステップS204の処理で図5に示すVPN情報DB111におけるエントリの3行目が抽出され、ステップS206の処理で入力されたパス情報によって示されるパスが、0x04(3番ポート204−3)→0x05(3番ポート205−3)→0x02である場合に、上り転送規則設定部107は、ステップS301で以下の処理を行う。すなわち、上り転送規則設定部107は、抽出されたエントリにおけるユーザ接続ポートの項目(「1」)に基づいて、照合ルールにおいてスイッチIDが0x04であるエントリの入力ポートの項目に、ポート1を設定する。また、上り転送規則設定部107は、パス情報に基づいて、0x04のスイッチ204の次ホップである0x05のスイッチ205に接続される3番ポートを出力ポートに設定する。さらに、上り転送規則設定部107は、抽出されたエントリの拠点IDに基づいて、パケットのラベルを3に設定する。上り転送規則設定部107は、以上のような処理に応じた設定内容の転送規則を生成する。
図10は、上り転送規則設定部107が生成した転送規則の例を示す説明図である。本例におけるステップS302の処理で生成された転送規則が、図10におけるエントリの3行目に示されている。
上り転送規則設定部107は、ステップS302の処理で生成した転送規則を、転送装置インタフェース部102を介してステップS301の処理で抽出した始点のスイッチ(本例ではスイッチ204)に送信する(ステップS303)。
そして、上り転送規則設定部107は、パス情報から始点のスイッチを消去する消去処理を行い、消去処理後のパス情報に、終点のスイッチ以外のスイッチが含まれているか否かを判定する(ステップS304)。上り転送規則設定部107は、消去処理後のパス情報に、終点のスイッチ以外のスイッチが含まれていないと判定した場合に(ステップS304のN)、処理を終了して、図8に示すステップS208の処理に移行する。
また、上り転送規則設定部107は、消去処理後のパス情報に、終点のスイッチ以外のスイッチが含まれていると判定した場合に(ステップS304のY)、以下の処理を行う。すなわち、上り転送規則設定部107は、消去処理後のパス情報に基づいて、終点のスイッチ以外のスイッチを1つ抽出する(ステップS305)。
そして、上り転送規則設定部107は、ステップS305の処理で抽出したスイッチ(本例ではスイッチIDが0x05のスイッチ205を抽出したとする)に適用する、パケットの照合と転送とに関するルール(転送規則)を生成する(ステップS306)。
具体的には、上り転送規則設定部107は、本例では、消去処理後のパス情報に基づいて、ステップS306の処理で抽出した0x05のスイッチ205の次ホップである0x02のスイッチ202に接続される3番ポートを出力ポートに設定する。さらに、上り転送規則設定部107は、ステップS204の処理で抽出されたエントリの拠点IDに基づいて、パケットのラベルが3であることを照合ルールに設定する。上り転送規則設定部107は、以上のような処理における設定内容の転送規則を生成する。本例の処理で生成された転送規則が、図10におけるエントリの4行目に示されている。
そして、上り転送規則設定部107は、ステップS306の処理で生成した転送規則を、転送装置インタフェース部102を介してステップS305の処理で抽出したスイッチ(本例ではスイッチ205)に送信する(ステップS307)。
そして、上り転送規則設定部107は、ステップS305の処理で抽出したスイッチをパス情報から消去する消去処理を行って、ステップS304の処理に移行する。
パス情報によって示されるスイッチが終点のスイッチのみになるまで、すなわちステップS304の処理でNと判定されるまで、ステップS305〜S307の処理が繰り返されて、当初のパス情報によって示される各スイッチに転送規則が送信されて設定される。すると、VPNサービスのユーザの拠点に配置されたCEルータ301〜308から送信されたパケットを他のトラフィックと分離して交換転送装置まで転送するための転送経路が設定される。
したがって、VPNサービスのユーザの拠点に配置されたCEルータ301〜308から交換転送装置までの転送経路が設定されて、図9に示す各ステップの処理が終了すると、図8に示すステップS208の処理に移行する。
転送経路計算部106は、ステップS208の処理で、ステップS201の処理で交換転送装置に選出したスイッチを始点とし、ステップS204の処理で抽出したエントリに含まれるユーザ接続スイッチを終点とするパスを決定するための計算を行う(ステップS208)。なお、転送経路計算部106は、ステップS208の処理における計算を、例えば、トポロジDB110に登録されているネットワークトポロジ情報に基づいて行う。
そして、転送経路計算部106は、ステップS208の処理における計算結果に基づいて当該パスを決定する。さらに、転送経路計算部106は、決定した当該パスの経路上のスイッチのリストとポート番号とを示すパス情報とステップS204の処理で抽出したエントリとを下り転送規則設定部108に入力する(ステップS209)。
なお、転送経路計算部106は、当該パスを、例えば、ステップS205における処理と同様に、ダイクストラ法に基づいて決定してもよいし、他の方法に基づいて決定してもよい。
例えば、ステップS204の処理で、VPN情報DB111から図5に示すエントリの3行目が抽出された場合に、ユーザ接続スイッチのスイッチIDが0x04であり、ユーザ接続ポートは1である。そして、ステップS201の処理で選出された交換転送装置であるスイッチのスイッチIDが0x02であるとすると、ダイクストラ法で求められるパスは、0x02(3番ポート202−3)→0x05(1番ポート205−3)→0x04になる。つまり、ステップS209の処理で下り転送規則設定部108に入力されるパス情報によって、当該パスが示される。
下り転送規則設定部108は、ステップS209の処理で入力されたパス情報に基づいて、各スイッチに設定する転送規則をそれぞれ生成する。そして、下り転送規則設定部108は、転送装置インタフェース部102に、生成した転送規則を各スイッチ201〜206に設定する設定処理を行わせる(ステップS210)。
図11は、VPNコントローラ100が、VPNサービスのユーザへパケットを転送するための転送規則を各スイッチ201〜206に設定する設定処理を示すフローチャートである。設定処理(ステップS210)において、下り転送規則設定部108は、以下の処理を行う。すなわち、下り転送規則設定部108は、VPN情報DB111において図8に示すステップS204の処理で抽出されたエントリに含まれる拠点IDと同じ拠点IDが設定された拠点のうち、図6に示す経路情報DB112において処理済みフラグの項目がNに設定されている拠点IDを抽出する(ステップS401のY,S402)。なお、下り転送規則設定部108は、VPN情報DB111において図8に示すステップS204の処理で選択された拠点IDと同じ拠点IDが設定された拠点のうち、図6に示す経路情報DB112において処理済みフラグの項目がNに設定されている拠点IDがない場合に、ステップS407の処理に移行する。
下り転送規則設定部108は、ステップS402の処理で拠点IDを抽出した場合に、経路情報DB112における当該拠点IDの処理済みフラグの項目をYに設定する(ステップS403)。また、下り転送規則設定部108は、図3に示す転送装置リソース使用状況DB109において、ステップS201の処理で交換転送装置に選出したスイッチのフローエントリの現在の使用量を1増加させる(ステップS404)。
また、下り転送規則設定部108は、ステップS402の処理で抽出した拠点IDと、図8に示すステップS209の処理で入力されたパス情報とに基づいて、パケットに付与されたラベルの付け替え等の規則を含む転送規則を生成する(ステップS405)。具体的には、ステップS208の処理と同様に、ステップS204の処理で抽出したエントリが図5に示すVPN情報DB111におけるエントリの第3行目であり、ステップS209の処理で入力されたパス情報によって示されるパスが、0x02(3番ポート202−3)→0x05(1番ポート205−1)→0x04である場合に、下り転送規則設定部108は、以下の処理を行う。すなわち、下り転送規則設定部108は、ステップS204の処理で抽出された図5に示すVPN情報DB111のエントリの3行目に設定されている拠点ID(本例では、3)に図6に示す経路情報DB112において設定されている拠点アドレス192.168.3.0/24を、照合ルールに設定する。
そして、下り転送規則設定部108は、当該照合ルールと、当該照合ルールに合致するアドレスを送信先IPアドレスとするパケットのラベルを付け替える付け替えルールと、次ホップへのパケットの転送を行う転送ルールとを含んだ転送規則を生成する。本例の付け替えルールでは、例えば、既にパケットに付与されているラベルを取り外し、経路情報DB112において設定されているアドレス192.168.3.0/24の拠点IDである3に100を加えた103を、新たに当該パケットのラベルに設定することが規定される。また、本例の転送ルールでは、次ホップのスイッチである0x05スイッチが接続されたポートである3番ポートに出力することが規定される。
図12は、下り転送規則設定部108が生成した転送規則の例を示す説明図である。本例におけるステップS405の処理で生成された転送規則が、図12におけるエントリの3行目に示されている。
下り転送規則設定部108は、ステップS405の処理で生成した転送規則を、転送装置インタフェース部102を介して、図8に示すステップS201の処理で交換転送装置に選出したスイッチ(本例ではスイッチ202)に送信し(ステップS406)、ステップS401の処理に移行する。
下り転送規則設定部108は、ステップS407の処理で(ステップS401のN)、ステップS209の処理で入力されたパス情報から、図8に示すステップS201の処理で交換転送装置に選出したスイッチ202を消去する消去処理を行う(ステップS407)。そして、下り転送規則設定部108は、消去処理後のパス情報に、終点のスイッチ以外のスイッチが含まれていないと判定した場合に(ステップS408のN)、ステップS412の処理に移行する。
下り転送規則設定部108は、消去処理後のパス情報に、終点のスイッチ以外のスイッチが含まれていると判定した場合に(ステップS408のY)、以下の処理を行う。すなわち、下り転送規則設定部108は、消去処理後のパス情報に基づいて、終点のスイッチ以外のスイッチを1つ抽出する(ステップS409)。
そして、下り転送規則設定部108は、ステップS409の処理で抽出したスイッチ(本例ではスイッチIDが0x05のスイッチ205を抽出したとする)に適用する、パケットの照合と転送とに関するルール(転送規則)を生成する(ステップS410)。
具体的には、下り転送規則設定部108は、本例では、消去処理後のパス情報に基づいて、ステップS409の処理で抽出した0x05のスイッチ205の次ホップである0x04のスイッチ204に接続される1番ポートを出力ポートに設定する。さらに、下り転送規則設定部108は、ステップS405の処理で生成された転送規則に基づいて、パケットのラベルが103であることを照合ルールに設定する。下り転送規則設定部108は、以上のような処理における設定内容の転送規則を生成する。本例の処理で生成された転送規則が、図12におけるエントリの4行目に示されている。
そして、下り転送規則設定部108は、ステップS410の処理で生成した転送規則を、転送装置インタフェース部102を介してステップS409の処理で抽出したスイッチ(本例ではスイッチ205)に送信する(ステップS411)。
下り転送規則設定部108は、ステップS409の処理で抽出したスイッチをパス情報から消去する消去処理を行って、ステップS408の処理に移行する。
パス情報によって示されるスイッチが終点のスイッチのみになるまで、すなわちステップS408の処理でNと判定されるまで、ステップS409〜S411の処理が繰り返されて、当初のパス情報によって示される各スイッチに転送規則が送信されて設定される。すると、交換転送装置から送信されたパケットを他のトラフィックと分離してVPNサービスのユーザの拠点に配置されたCEルータ301〜308まで転送するための転送経路が設定される。
そして、下り転送規則設定部108は、図8に示すステップS209の処理で入力されたパス情報によって示されるパスにおける終点のスイッチ(本例ではスイッチ204)に送信するための転送規則を生成して(ステップS412)、ステップS211の処理に移行する。本例では、具体的には、ステップS405の処理で生成された転送規則に基づいてパケットに設定されたラベルを消去し、ステップS204の処理で抽出された図5に示すVPN情報DB111のエントリの3行目を参照して1番ポートからパケットを出力することが規定された転送規則が生成される。
下り転送規則設定部108は、ステップS412の処理で生成した転送規則を、転送装置インタフェース部102を介して、図8に示すステップS209の処理で入力されたパス情報によって示されるパスにおける終点のスイッチ204に送信し、図11に示す各ステップの処理が終了すると、図8に示すステップS211の処理に移行する。
VPNコントローラ100は、ステップS211の処理で、VPN情報DB111において、ステップS204の処理で抽出したエントリの処理済みフラグをYに設定する(ステップS211)。つまり、ステップS204の処理で抽出したエントリを処理済みに設定する。そして、ステップS203の処理に移行する。
本実施形態によれば、以上に述べた各処理を反復して実行することによって、VPN情報DB111において処理済みフラグがNに設定されていた各VPN−IDのVPNをそれぞれ構築することができる。そして、VPNサービスを提供開始することができる。
具体的には、図8に示すステップS203〜S211の処理を反復して実行することによって、一のVPN−IDが設定されたVPNを構築することができる。さらに、図7にしめすステップS103〜S105の処理を反復して実行することによって、VPN情報DB111において処理済みフラグがNに設定されていた各VPN−IDのVPNをそれぞれ構築することができる。
そして、本実施形態によれば、各VPNをハブ・アンド・スポーク型に構成するのであるが、ハブに相当するスイッチである交換転送装置を、フローエントリの登録上限数およびそのときの使用量に応じて、分散して選出することができる。したがって、スイッチ201〜206によって構成された通信ネットワーク400の通信リソースを有効に活用することができる。そして、通信ネットワーク400にVPNをより多く構築することができる。
実施形態2.
本発明の第2の実施形態のVPNコントローラ500について、図面を参照して説明する。図13は、本発明の第2の実施形態のVPNコントローラ500の構成例を示すブロック図である。図13に示す本発明の第2の実施形態のVPNコントローラ500は、転送装置性能情報取得部503、NWトポロジ同定部504、交換転送装置位置計算部505、転送装置リソース使用状況DB509、およびトポロジDB510の構成および動作が、図2に示す本発明の第1の実施形態のVPNコントローラ100における構成および動作と異なる。その他の構成要素の構成および動作は、図2に示す本発明の第1の実施形態のVPNコントローラ100における構成および動作と同様なため、図2と同じ符号を付して説明を省略する。
本実施形態における転送装置性能情報取得部503は、各スイッチ201〜206からパケット転送能力を示す情報を含む使用状況情報を収集する。そして、転送装置使用状況情報取得部503は、収集した使用状況情報を転送装置リソース使用状況DB509に登録する。
図14は、本実施形態における転送装置リソース使用状況DB509の構成例を示す説明図である。図14に示すように、本実施形態における使用状況情報は、スイッチIDの項目、フローエントリの登録上限数の項目、フローエントリの現在の使用量の項目、およびパケット転送能力の項目を含むテーブル形式で転送装置リソース使用状況DB509に登録されている。
NWトポロジ同定部504は、転送装置インタフェース部102を介して通信ネットワーク400のネットワークトポロジを検出する。そして、NWトポロジ同定部504は、検出したネットワークトポロジを示し、各スイッチ201〜206間のリンク帯域およびリンク使用率を示す情報を含むネットワークトポロジ情報をトポロジDB510に登録する。
図15は、本実施形態におけるトポロジDB510の構成例を示す説明図である。図15に示すように、本実施形態におけるネットワークトポロジ情報は、上流スイッチIDの項目、上流スイッチ側ポートの項目、下流スイッチIDの項目、下流スイッチ側ポートの項目、各スイッチ間のリンク帯域の項目、およびリンク使用率の項目を含むテーブル形式でトポロジDB510に登録されている。
交換転送装置位置計算部505は、転送装置リソース使用状況DB509に登録されている使用状況情報、およびトポロジDB510に登録されているネットワークトポロジ情報に基づいて、交換転送装置を選出する。そして、交換転送装置位置計算部505は、選出した交換転送装置を一意に識別する識別子を転送経路計算部106に出力する。
次に、本発明の第2の実施形態のVPNコントローラ500の動作において、第1の実施形態におけるVPNコントローラ100の動作と異なる動作について説明する。図16は、第2の実施形態のVPNコントローラ500が、選択したVPN−IDのVPNを構築する処理を示すフローチャートである。図16に示す動作例では、図8に示す動作例におけるステップS201の処理に代えて、ステップS221の処理が行われる。すなわち、ステップS221の処理では、VPNコントローラ500の交換転送装置位置計算部505は、転送装置リソース使用状況DB509、およびトポロジDB510を参照して、最もパケット転送能力の残量が多いスイッチを交換転送装置に選出する。交換転送装置位置計算部505は、パケット転送能力の残量を、各スイッチのパケット転送能力から、現在の各リンクの使用帯域を減算することで求めることができる。そこで、交換転送装置位置計算部505は、図14に示す転送装置リソース使用状況DB509におけるパケット転送能力の項目から、各スイッチのパケット転送能力を示す情報を取得する。また、交換転送装置位置計算部505は、図15に示すトポロジDB510におけるリンク帯域の項目の値とリンク使用率の値とを乗算することによって、各リンクの使用帯域を示す情報を取得する。
そして、交換転送装置位置計算部505は、各スイッチごとに、取得したパケット転送能力を示す情報が示す値から当該スイッチに接続された各リンクの使用帯域を示す情報が示す値を減算する。すると、交換転送装置位置計算部505は、当該各スイッチのパケット転送能力の残量をそれぞれ求めることができる。
具体的には、例えば、スイッチIDが0x01であるスイッチ201のパケット転送能力の残量は、図14,15を参照すると、
20Gbps−1Gbps×(0.1+0.2)=19.7Gbps
である。
また、スイッチIDが0x02であるスイッチ202のパケット転送能力の残量は、図14,15を参照すると、
48Gbps−1Gbps×(0.05)=47.95Gbps
である。
したがって、スイッチIDが0x02であるスイッチ202のパケット転送能力の残量は、スイッチIDが0x01であるスイッチ201のパケット転送能力の残量よりも多い。よって、交換転送装置位置計算部505は、スイッチIDが0x02であるスイッチ202を交換転送装置に選出する。
本実施形態によれば、交換転送装置位置計算部505が、各スイッチのパケット転送能力の残量をそれぞれ算出する。そして、交換転送装置位置計算部505は、パケット転送能力に余裕があるスイッチを交換転送装置に選出する。したがって、各スイッチの稼働状況に応じて交換転送装置が選出される。よって、稼働状況の変化に応じて、交換転送装置を柔軟に選出することができる。
実施形態3.
本発明の第3の実施形態のVPNコントローラ600について、図面を参照して説明する。図17は、本発明の第3の実施形態のVPNコントローラ600の構成例を示すブロック図である。図17に示す本発明の第3の実施形態のVPNコントローラ600は、交換転送装置位置計算部605の動作が、図13に示す本発明の第2の実施形態のVPNコントローラ500における動作と異なる。その他の構成要素の構成および動作は、図13に示す本発明の第2の実施形態のVPNコントローラ500における構成および動作と同様なため、図13と同じ符号を付して説明を省略する。
本発明の第3の実施形態のVPNコントローラ600の動作において、第2の実施形態におけるVPNコントローラ500の動作と異なる動作について説明する。図18は、第3の実施形態のVPNコントローラ600が、選択したVPN−IDのVPNを構築する処理を示すフローチャートである。図18に示す動作例では、図16に示す動作例におけるステップS221の処理に代えて、ステップS231の処理が行われる。すなわち、ステップS231の処理では、VPNコントローラ600の交換転送装置位置計算部605は、転送装置リソース使用状況DB509、およびトポロジDB510を参照して、高い効率でパケットを転送可能なスイッチを交換転送装置に選出する。
図19は、図18に示すステップS231の処理を示すフローチャートである。図19に示すように、交換転送装置位置計算部605は、トポロジDB510を参照して、通信ネットワーク400を構成するスイッチ201〜206のうち2つのスイッチで構成される組み合わせを全て抽出する(ステップS601)。
そして、交換転送装置位置計算部605は、ステップS601の処理で抽出したスイッチ201〜206の組み合わせの全てについて、スイッチ間の最短路を、例えば、ダイクストラ法で決定する(ステップS602)。
ここで、最短路の算出する際に必要となるリンクおよびノードのコストには、トポロジDB510から得られるリンク帯域や、リンク使用率、転送装置リソース使用状況DB509から得られるフローエントリの登録上限数、フローエントリの現在の使用量等のコストを適宜設定することができる。
交換転送装置位置計算部605は、スイッチ201〜206について、ステップS602の処理で決定した各最短路に含まれる数を計数する(ステップS603)。そして、交換転送装置位置計算部605は、ステップS603の処理における計数結果の値が最も大きいスイッチを交換転送装置に選出する(ステップS604)。
なお、本例の交換転送装置位置計算部605は、ステップS603の処理における計数結果の値が最も大きいスイッチを交換転送装置に選出したが、交換転送装置に選出するスイッチを他の基準に基づいて決定してもよい。
本実施形態によれば、交換転送装置位置計算部605が、各スイッチ間でパケットが最短路で送受信された場合に最も多くのパケットが転送されるスイッチを交換転送装置に選出する。したがって、より多くのパケットを最短路で転送するようにパスを構成することができる。よって、パケットをより高い効率で転送するようにパスを構成することができる。
実施形態4.
次に、本発明の第4の実施形態について、図面を参照して説明する。図20は、本発明の第4の実施形態のVPNコントローラ700の構成例を示すブロック図である。図20に示す本発明の第4の実施形態のVPNコントローラ700は、交換転送装置位置計算部705および転送経路計算部706の動作が、図17に示す本発明の第3の実施形態のVPNコントローラ600における動作と異なる。その他の構成要素の構成および動作は、図17に示す本発明の第3の実施形態のVPNコントローラ600における構成および動作と同様なため、図17と同じ符号を付して説明を省略する。
本発明の第4の実施形態のVPNコントローラ700の動作について、第3の実施形態におけるVPNコントローラ600の動作と異なる動作について説明する。図21は、第4の実施形態のVPNコントローラ700が、選択したVPN−IDのVPNを構築する処理を示すフローチャートである。図21に示す動作例では、図18に示す動作例におけるステップS231,S202,S205,S206,S208,S209の処理に代えて、ステップS241,S242,S245,S246,S248,S249の処理がそれぞれ行われる。
ステップS241の処理では、VPNコントローラ700の交換転送装置位置計算部705は、VPN情報DB111、転送装置リソース使用状況DB509、およびトポロジDB510を参照して、各VPNに応じて、スイッチを交換転送装置に選出する。
図22は、図21に示すステップS241の処理を示すフローチャートである。図22に示すように、交換転送装置位置計算部705は、VPN情報DB111およびトポロジDB510を参照して、各スイッチ201〜206と各ユーザ接続スイッチとの間の最短路を算出する(ステップS701)。
そして、交換転送装置位置計算部705は、各スイッチごとに、同じVPN−IDが設定された各ユーザ接続スイッチに至る最短路のコストの合計値を算出する(ステップS702)。
交換転送装置位置計算部705は、同じVPN−IDが設定されたVPNごとに、ステップS702の処理で算出した合計値が最も小さいスイッチをそれぞれのVPNごとの交換転送装置に選出する(ステップS703)。
なお、本例の交換転送装置位置計算部705は、ステップS702の処理における合計値が最も小さいスイッチを交換転送装置に選出したが、交換転送装置に選出するスイッチを他の基準に基づいて決定してもよい。
交換転送装置位置計算部705は、ステップS242の処理で、ステップS703の処理で選出した交換転送装置と各ユーザ接続スイッチとの間のパスを示すパス情報を転送経路計算部706に入力する(ステップS242)
転送経路計算部706は、ステップS245の処理で、ステップS242の処理で入力されたパス情報によって示されるパスを、始点がユーザ接続スイッチになり、終点が交換転送装置になるように並べ替える(ステップS245)。そして、転送経路計算部706は、並べ替えたパスを示すパス情報とステップS204の処理で抽出したエントリとを上り転送規則設定部107に入力する(ステップS246)。したがって、コストが最も小さくなるパスに基づくパス情報が上り転送規則設定部107に入力されて、転送規則が生成される。
転送経路計算部706は、ステップS248の処理で、ステップS242の処理で入力されたパス情報によって示されるパスを、始点が交換転送装置になり、終点がユーザ接続スイッチになるように並べ替える(ステップS248)。そして、転送経路計算部706は、並べ替えたパスを示すパス情報とステップS204の処理で抽出したエントリとを下り転送規則設定部108に入力する(ステップS249)。したがって、コストが最も小さくなるパスに基づくパス情報が下り転送規則設定部108に入力されて、転送規則が生成される。
本実施形態によれば、交換転送装置位置計算部705が、VPNごとに、最短路のコストの合計値が最も小さくなるように交換転送装置を選出する。したがって、パケットをより高い効率で転送するように交換転送装置を選出することができる。また、上り転送規則設定部107と下り転送規則設定部108とが、交換転送装置の選出のために用いたパス情報に基づいて、最短路のパスに応じた転送規則を生成する。したがって、パケットの転送効率をより向上させることができる。
実施形態5.
次に、本発明の第5の実施形態について説明する。図23は、本発明の第5の実施形態のVPNコントローラ800の構成例を示すブロック図である。図23に示す本発明の第5の実施形態のVPNコントローラ800は、交換転送装置対応DB813および経路情報更新部814を含み、交換転送装置位置計算部805の動作が、図2に示す本発明の第1の実施形態のVPNコントローラ100における動作と異なる。その他の構成要素の構成および動作は、図2に示す本発明の第1の実施形態のVPNコントローラ100における構成および動作と同様なため、図2と同じ符号を付して説明を省略する。
交換転送装置対応DB813には、VPNと、交換転送装置位置計算部805が選出した交換転送装置を示すスイッチIDとを対応付けるための対応情報が記憶されている。
経路情報更新部814は、追加された経路情報に基づいて、既に設定されたVPNを実現するスイッチに新たに適用する、パケットの新たな送受信経路に応じた転送規則を生成する。
次に、一のVPN−IDのVPNについて、経路情報DB112に新たな経路情報が追加された場合における本発明の第5の実施形態のVPNコントローラ800の動作について説明する。本例では、図8に示す第1の実施形態におけるVPNコントローラ100がVPNを構築する場合の動作と異なる動作について説明する。図24は、第5の実施形態のVPNコントローラ800が、選択したVPN−IDのVPNを更新する処理を示すフローチャートである。図24に示す動作例では、図8に示す動作例におけるステップS204の処理に代えて、ステップS284の処理が行われる。すなわち、ステップS284の処理で、交換転送装置位置計算部805は、VPN情報DB111から、一のVPN−IDを含み処理済みフラグが設定されていないエントリを抽出する。そして、交換転送装置位置計算部805は、当該一のVPN−IDと、当該一のVPN−IDのVPNに用いられている交換転送装置を識別する識別子である交換転送装置IDとを対応付けて交換転送装置対応DB813に記憶させる(ステップS284)。
図25は、ステップS284の処理で交換転送装置対応DB813に記憶されたエントリの例を示す説明図である。図25には、交換転送装置対応DB813に、「1」であるVPN−IDに「0x02」である交換転送装置IDが対応付けられて記憶されていることが示されている。また、図25には、交換転送装置対応DB813に、「2」であるVPN−IDに「0x04」である交換転送装置IDが対応付けられて記憶されていることが示されている。なお、交換転送装置IDは、例えば、交換転送装置に選出されたスイッチを示すスイッチIDである。
経路情報更新部814の動作について説明する。図26は、経路情報更新部814の動作を示すフローチャートである。図26に示すように、経路情報更新部814は、まず、経路情報DB112から、新たに登録されたエントリ、すなわち処理済みフラグにYが設定されていないエントリを抽出して、処理済みフラグを設定する(ステップS801)。
図27は、経路情報DB112の登録内容の例を示す説明図である。図27において、最下段に示されているエントリは、処理済みフラグにYが設定されていない。そこで、本例では、経路情報更新部814は、ステップS801の処理で、図27において最下段に示されているエントリを抽出する。なお、図27に示すように、当該エントリの拠点IDは「1」であり、拠点アドレスは、192.168.10.0/24である。
そして、経路情報更新部814は、ステップS801の処理で抽出したエントリに含まれる拠点IDと拠点アドレスとに基づいて、新たな転送規則を生成する(ステップS802)。具体的には、経路情報更新部814は、例えば、経路情報DB112において、ステップS801の処理で抽出したエントリに含まれる拠点IDと同じ拠点IDのエントリと同様な転送規則を生成する。すなわち、経路情報更新部814は、本例では、ステップS801の処理で抽出した図27に示す経路情報DB112における最下段のエントリの拠点IDである「1」に100を加えた「101」をラベルとして貼付して、パケットを1番ポートから出力する転送規則を生成する。図28は、経路情報更新部814が生成した転送規則の例を示す説明図である。図28において、経路情報更新部814が生成した転送規則は、最下段に示されている。
また、経路情報更新部814は、VPN情報DB111から、ステップS801の処理で抽出したエントリに含まれる拠点IDと同じ拠点IDのエントリを抽出する。そして、経路情報更新部814は、交換転送装置対応DB813から、VPN情報DB111から抽出したエントリに含まれるVPN−IDと同じVPN−IDのエントリを抽出する(ステップS803)。本例では、ステップS801の処理で抽出されたエントリに含まれる拠点IDは、「1」であるので、経路情報更新部814は、図5に示すVPN情報DB111から、最上段に示されているエントリを抽出する。なお、図5において、最上段に示されているエントリのVPN−IDは、「1」である。そこで、経路情報更新部814は、交換転送装置対応DB813から、VPN−IDが「1」であるエントリを抽出する。図25に示す例では、交換転送装置対応DB813において、VPN−IDが「1」であるエントリは最上段に示され、当該エントリの交換転送装置IDは0x02である。
そして、経路情報更新部814は、ステップS803の処理で抽出したエントリに含まれる交換転送装置IDによって示される交換転送装置であるスイッチに、ステップS802の処理で生成した転送規則を送信する(ステップS804)。本例では、交換転送装置対応DB813においてVPN−IDが「1」である最上段のエントリに、交換転送装置ID「0x02」が含まれている。そこで、経路情報更新部814は、スイッチIDが0x02であるスイッチ202に、ステップS802の処理で生成した転送規則を送信する。
本実施形態によれば、CEルータ301〜308を介して通信ネットワーク400に接続される各拠点に新たに端末装置等が設置等された場合に、経路情報DB112に新たな経路情報を登録することができる。
そして、新たな経路情報に基づく転送規則を、当該端末装置等が設置等された拠点に設定されたVPNに応じた交換転送装置であるスイッチだけに送信することによって、当該端末装置等が当該VPNを介して通信を行うことができるようにすることができる。
したがって、新たな経路情報に対応するVPNにおいてパケットの転送経路上の全ての転送装置にhop−by−hopで転送する方法に比べて、より迅速に新たな経路情報の内容を反映させることができる。
実施形態6.
次に、本発明の第6の実施形態について説明する。以上に述べた各実施形態のVPNコントローラの制御対象の通信ネットワーク400は、OpenFlowに対応したスイッチ201〜206によって構成されている。それに対して、本実施形態のVPNコントローラの制御対象の通信ネットワークの各スイッチは、MPLS−TP(Multi Protocol Label Switching−Transport Profile)に対応している。
次に、本発明の第6の実施形態のVPNコントローラの動作において、第1の実施形態におけるVPNコントローラ100の動作と異なる動作について説明する。図29は、第5の実施形態のVPNコントローラが、選択したVPN−IDのVPNを構築する処理を示すフローチャートである。図29に示す動作例では、図8に示す動作例におけるステップS207,S210の処理に代えて、ステップS257,S260の処理がそれぞれ行われる。
第6の実施形態のVPNコントローラの上り転送規則設定部は、ステップS257の処理で、転送装置インタフェース部に、LSP(Label Switched Path)の開通を要求する。そして、転送装置インタフェース部は、当該要求に応じて、通信ネットワークに含まれるMPLS−TPルータのCLI(Command Line Interface)などを介してLSPを開通させる処理を行う(ステップS257)。
第6の実施形態のVPNコントローラの下り転送規則設定部は、ステップS260の処理で、転送装置インタフェース部に、LSPの開通を要求する。そして、転送装置インタフェース部は、当該要求に応じて、通信ネットワークに含まれるMPLS−TPルータのCLIなどを介してLSPを開通させる処理を行う(ステップS260)。
本実施形態によれば、上り転送規則設定部、下り転送規則設定部、および転送装置インタフェース部が、MPLS−TPに基づいてLSPを開通させる。したがって、制御対象の通信ネットワークの各スイッチは、MPLS−TPに対応している場合であっても、本発明を適用して、以上に述べた各実施形態と同様な効果を奏することができる。
実施形態7.
次に本発明の第7の実施形態の通信管理装置について、図面を参照して説明する。図30は、本発明の第7の実施形態の通信管理装置10の構成例を示すブロック図である。
図30に示すように、本発明の第7の実施形態の通信管理装置10は、運用状況情報取得部13、ハブ選出部15、転送規則決定部17、および転送規則送信部12を含む。
運用状況情報取得部13は、図2に示す本発明の第1の実施形態の転送装置性能情報取得部103に相当する。ハブ選出部15は、図2に示す本発明の第1の実施形態の交換転送装置位置計算部105に相当する。転送規則決定部17は、図2に示す本発明の第1の実施形態の上り転送規則設定部107および下り転送規則設定部108に相当する。転送規則送信部12は、図2に示す本発明の第1の実施形態の転送装置インタフェース部102に相当する。
運用状況情報取得部13は、複数の通信装置が接続された通信ネットワークを構成して、直接に、または間接的に互いに接続されて複数の通信装置間で送受信されるパケットを転送して中継する複数の通信転送装置から、それぞれの通信転送装置の運用状況を示す運用状況情報を取得する。なお、通信装置は、図1に示すCEルータ301〜308に相当する。また、通信転送装置は、図1に示すスイッチ201〜206に相当する。
ハブ選出部15は、パケットを送受信する複数の通信装置の組み合わせに応じて、運用状況情報取得手段が取得した運用状況情報に基づいて、複数の通信転送装置からハブとなる通信転送装置を選出する。
転送規則決定部17は、組み合わせにおける一の通信装置が送信したパケットが、組み合わせにおける他の通信装置へ、ハブとして選出された通信転送装置を経由して送信されるように、各通信転送装置に設定する転送規則をそれぞれ決定する。
そして、転送規則送信部12は、転送規則決定部17がそれぞれ決定した転送規則を各通信転送装置に送信する。
本実施形態によれば、ネットワークリソースを有効に活用することができる。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
また、図面中の矢印の向きは、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
この出願は、2014年11月11日に出願された日本出願特願2014−229009を基礎とする優先権を主張し、その開示の全てをここに取り込む。