JP2008042665A - ネットワーク仮想化装置及びネットワーク仮想化プログラム - Google Patents

ネットワーク仮想化装置及びネットワーク仮想化プログラム Download PDF

Info

Publication number
JP2008042665A
JP2008042665A JP2006216107A JP2006216107A JP2008042665A JP 2008042665 A JP2008042665 A JP 2008042665A JP 2006216107 A JP2006216107 A JP 2006216107A JP 2006216107 A JP2006216107 A JP 2006216107A JP 2008042665 A JP2008042665 A JP 2008042665A
Authority
JP
Japan
Prior art keywords
network
virtual
connection
data exchange
exchange node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006216107A
Other languages
English (en)
Other versions
JP4279300B2 (ja
Inventor
Junichi Nakazato
淳一 中里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2006216107A priority Critical patent/JP4279300B2/ja
Publication of JP2008042665A publication Critical patent/JP2008042665A/ja
Application granted granted Critical
Publication of JP4279300B2 publication Critical patent/JP4279300B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】仮想ネットワークを構成する仮想ハブが自律的に分割や移動することによって、物理ネットワークの設備コストの増加を伴わずにトラフィックの最適化を図ること。
【解決手段】物理ネットワーク上に仮想ネットワークAを構築するネットワーク仮想化装置21は、各端末17の接続を管理するデータ交換ノード18を備えている。データ交換ノードは、端末の物理ネットワーク上のコネクションと、仮想ネットワークのアドレスとのマッピング情報を記憶するテーブル182と、端末とのコネクションを確立し保持する手段186と、他ネットワーク仮想化装置21aに含まれる他データ交換ノード18aとのコネクションを確立し保持する手段186と、対応する端末とのコネクションを確立し保持する手段186と、解除基準を超えた場合には、保持しているコネクションのうちの何れかを解除し、解除したコネクションを、他データ交換ノードに保持させる手段とを備える。
【選択図】 図2

Description

本発明は、複数の端末とのコネクションを保持するデータ交換ノードを備え、オーバレイネットワークを構築するネットワーク仮想化装置、及びデータ交換ノードに適用されるプログラムに関し、特に、データ交換ノードがネットワーク仮想化装置間にて自律的に分割したり、移動したりすることによって、オーバレイネットワーク上のトラフィックを最適化するネットワーク仮想化装置及びネットワーク仮想化プログラムに関する。
例えば、TCP/IPネットワークのような既存の物理的なネットワーク(以後、「アンダーレイネットワーク」と称する)上に、ソフトウェアにて構築する仮想的なネットワークをオーバレイネットワークと呼ぶ。
主な仮想的なネットワーク(以後、「仮想ネットワーク」と称する)として、以下のように、いわゆるピアツーピア(以後、「P2P」と称する)ネットワーク(例えば、非特許文献1乃至7)と呼ばれるものや、仮想ローカルエリアネットワーク(以後、「仮想LAN」と称する)がある。
P2Pネットワークは、現状、ファイル交換(Winny,BitTorrent等)、音声通信(Skype等)などに広く利用されている。その方式により、大きく以下の2つ、すなわち、(1)ホストやコンテンツの探索は特別なサーバに依存するが、最終的なデータの送受信はP2Pのホスト間で行なうものと、(2)データの送受信だけでなく、ホストやコンテンツの探索そのものも、特別なサーバを必要とせず、完全に対等な立場のホスト間で分散協調して行なうものとに分けられる。なお、ホスト、コンテンツの探索に、特定のサーバではないが、特別な役割を果たすホスト群を利用する、上記2つの中間的な方式を用いるものもある。
一方、仮想LANとして代表的なものに、ソフトイーサ株式会社製のSoftether(例えば、非特許文献8乃至9)がある。Softetherは仮想ネットワークを構築するソフトウェア群である。Softether又はこれに類似したソフトウェアでは、ある特定のホスト上にソフトウェアにて仮想的なイーサネット(登録商標)スイッチングハブ(以後、「仮想ハブ」と称する)が構築される。仮想ネットワークに参加を希望するホストは、同じくソフトウェアにて構築された仮想的なネットワークインタフェース(以後、「仮想ネットワークインタフェース」と称する)を介して、前述の仮想ハブにアンダーレイネットワーク(以後、「物理ネットワーク」とも称する)を使用して接続することにより、仮想ネットワークに参加する。
このような仮想ネットワークの一般的な構成を図19に示す。
例えばTCP/IPネットワークであるアンダーレイネットワーク1900は、オーバレイネットワークである仮想ネットワーク1901を構築する基盤となる物理ネットワークである。アンダーレイネットワーク1900は、ルータ1902、ファイアウォール1903、リンク層の通信装置(イーサネットならばハブやスイッチングハブ)により構成される。ルータ1902は、TCP/IPネットワークを構成するネットワーク層の装置であり、一般的なものであることからここではその詳細な説明を割愛する。また、ファイアウォール1903は、内部ネットワーク1904と外部ネットワーク1905との境界に設置されるセキュリティ装置であり、一般的なものであることからここではその詳細な説明を割愛する。
ホスト1906は、仮想ネットワーク1901を構成する仮想ハブ1907の何れかに接続する計算機であり、仮想ネットワークインタフェース1908を介して仮想ハブ1907に接続する。仮想ハブ1907は、このように複数のホスト1906とのコネクションを保持するデータ交換ノードである。コンピュータ1909は、このような仮想ハブ1907を配置するネットワーク仮想化装置である。仮想ネットワーク1901は、一つ又は複数の仮想ハブ1907に、それぞれ仮想ネットワークインタフェース1908を持った複数のホスト1906が接続することにより構築される。
このような仮想ネットワーク1901の特徴として、以下が挙げられる。
1)仮想ハブ1907の配置場所が固定である(管理者により移動は可能)。
2)仮想ハブ1907の配置個数が固定である(管理者により追加・削除は可能)
3)仮想ネットワーク1901に属するホスト1906間のトラフィックは全て固定の仮想ハブ1907を経由する(管理者又は利用者により変更可能)
4)仮想ネットワーク1901に属するホスト1906と仮想ハブ1907との位置関係はアンダーレイネットワーク1900のトポロジを考慮していない。
電子情報通信学会誌、2004年9月号、「P2P総論I ブローカーレスモデルの挑戦」 電子情報通信学会誌、2004年10月号、「P2P総論II P2Pテクノロジ」 電子情報通信学会誌、2004年12月号、「P2P総論III P2Pサービスとビジネス」 電子情報通信学会誌、2005年1月号、「P2P総論IV 最新動向と将来展望」 株式会社アスキー、UNIX MAGAZINE、2005年9月号、「P2P技術の基礎知識[1]」 株式会社アスキー、UNIX MAGAZINE、2005年10月号、「P2P技術の基礎知識[2]」 株式会社アスキー、UNIX MAGAZINE、2005年11月号、「P2P技術の基礎知識[3]」 株式会社アスキー、公式SoftEther活用ガイド http://www.softether.com、ソフトイーサ株式会社ホームページ
このような従来の仮想ネットワーク1901では、上述したような特徴により、以下のような問題が生じる。
第一の問題は、トラフィックが非効率的であり、それに伴いアンダーレイネットワーク1900への負荷が増大することである。つまり、データ送受信を行なうホスト1906同士が、例えば、同じアンダーレイネットワーク1900(#2)に属するホスト1906aとホスト1906bのように、たとえ同じアンダーレイネットワーク1900(#2)のトポロジ的に近隣に位置していたとしても、仮想ハブ1907がこれらホスト1906a,1906bからアンダーレイネットワーク1900(#2)のトポロジ的に遠隔に位置している場合、これらホスト1906a,1906b間のトラフィックは、アンダーレイネットワーク1900の観点から、常に長距離を移動することとなり、非常に非効率的となる。これによって、アンダーレイネットワーク1900のリソースを必要以上に浪費し、アンダーレイネットワーク1900への負荷の増大を招く。これは、アンダーレイネットワーク1900への設備投資コストの増加をもたらす。
第二の問題は、仮想ネットワーク1901の拡張に伴う性能的及び規模的な限界があることと、それに起因して管理の複雑さが増大することである。つまり、仮想ハブ1907に性能容量の限界があるために、仮想ネットワーク1901の拡張可能な規模に制約が生じてしまう。ホスト1906群を他の仮想ハブ(図示せず)へ繋ぎ変えたり、或いは、仮想ハブ1907を増設することにより仮想ネットワーク1901の拡張(接続ホスト1906の数の拡大)が可能だとしても、管理者や利用者によるホスト1906の繋ぎ変え、或いは管理者による新規仮想ハブ(図示せず)の作成、既存の仮想ハブ1907との接続調整などのための設定が必要となり、管理の複雑さが増大し、結果的に、管理コストの増大を招く。
本発明はこのような事情に鑑みてなされたものであり、仮想ネットワークを構成する仮想ハブが自律的に分割や移動することによって、物理ネットワークへの設備投資のコストの増加や、仮想ネットワークの管理の複雑さを招くこともなく、仮想ネットワーク上のトラフィックの最適化を図ることが可能なネットワーク仮想化装置及びネットワーク仮想化プログラムを提供することを目的とする。
上記の目的を達成するために、本発明では、以下のような手段を講じる。
すなわち、請求項1の発明は、予め構築され、それぞれ一つ以上の端末が接続された複数の物理ネットワーク上に、ソフトウェアによって仮想的にネットワークを構築するネットワーク仮想化装置である。このネットワーク仮想化装置は、構築された仮想ネットワークに対する各端末の接続を管理するデータ交換ノードを備えている。そして、データ交換ノードは更に、各端末それぞれに対して予め割り当てられ、物理ネットワーク上において各端末をそれぞれ特定するための物理ネットワークアドレスが指定されると、指定された物理ネットワークによって特定された端末との物理ネットワークを介したコネクションを確立し、保持する手段と、仮想ネットワーク上において各端末をそれぞれ特定するための仮想ネットワークアドレスとコネクションとのマッピング情報を記憶する手段と、他ネットワーク仮想化装置に含まれる他データ交換ノードとの物理ネットワークを介したコネクションを確立し、保持する手段と、仮想ネットワークアドレスが指定されると、マッピング情報に基づいて、指定された仮想ネットワークアドレスにマップされたコネクションを特定し、この特定されたコネクションによって接続された端末と、仮想ネットワークを介して通信する手段と、予め定めた解除基準を超えた場合には、保持している物理ネットワークを介したコネクションのうちの何れかを解除し、解除したコネクションを、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持させる手段とを備えている。
請求項2の発明は、請求項1に記載のネットワーク仮想化装置において、予め定めた解除基準を超えた場合とは、保持している物理ネットワークを介したコネクションのうち、単位時間当たりのトラフィック量が、予め定めた量を超えた場合、同一の物理ネットワークに属する端末の数が、予め定めた数を超えた場合、データ交換ノードの負荷が、予め定めた基準値を超えた場合のうちの何れかの場合である。
請求項3の発明は、請求項1又は請求項2に記載のネットワーク仮想化装置において、データ交換ノードは更に、他ネットワーク仮想化装置が複数存在する場合、解除したコネクションを、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持させる手段は更に、複数存在する他ネットワーク仮想化装置のうち、保持させる他データ交換ノードを含む他ネットワーク仮想化装置を、予め定めた選択基準に基づいて選択する手段を備えている。そして、予め定めた選択基準とは、他データ交換ノードが、解除されたコネクションを保持した場合、解除されたコネクションによって接続された端末との間のデータ転送コストが最小になるようなデータ交換ノードを含むネットワーク仮想化装置を選択するか、又は、解除されたコネクションによって接続された端末との物理ネットワークにおける距離が最小になるようなネットワーク仮想化装置を選択する。
請求項4の発明は、請求項1乃至3のうち何れか1項の発明のネットワーク仮想化装置において、データ交換ノードは更に、解除されたコネクションが、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持された後、解除されたコネクション以外のコネクションの保持を継続するか、又は解除されたコネクション以外のコネクションを全て解除し、これら解除したコネクションを、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持させるか否かを、予め定めた判定基準に基づいて判定する手段を備える。そして、判定基準は、解除されたコネクションの解除される前におけるトラフィック量の、データ交換ノードによって保持されていた仮想ネットワークを介した全てのコネクションによる合計トラフィック量に対する割合が、予め定めた値を超えた場合に全て解除し、超えない場合に継続する第1の判定基準、解除されたコネクションに接続された端末数の、解除される前にデータ交換ノードによって保持されていた仮想ネットワークに接続されていた合計端末数に対する割合が、予め定めた値を超えた場合に全て解除し、超えない場合に継続する第2の判定基準、解除されたコネクションの、解除される前における負荷が、予め定めた基準値を超えている場合に全て解除し、超えていない場合に継続する第3の判定基準のうちの何れかである。
請求項5の発明は、請求項1乃至4のうち何れか1項の発明のネットワーク仮想化装置において、データ交換ノードは更に、予め定めた解除基準を超えた場合であっても、保持させる手段が解除すべきコネクションを、他データ交換ノードに保持させることによって、他データ交換ノードを含む他ネットワーク仮想化装置の負荷が、予め定めた基準値を超えることになる第1の場合、他データ交換ノードを含む他ネットワーク仮想化装置が保持する仮想化ネットワークに接続された端末の合計数、又は他ネットワーク仮想化装置が含む他データ交換ノード数が、予め定めた基準値を超えることになる第2の場合、他データ交換ノードが保持する仮想化ネットワークに接続された端末の合計数が、予め定めた基準値を超えることになる第3の場合、解除すべきコネクションに接続された端末が、過去に別のデータ交換ノードに保持されていた場合、現在のデータ交換ノードに保持された時からの経過時間、又は現在のデータ交換ノードが、最後に物理ネットワークを介したコネクションを保持した時からの経過時間が、予め定めた基準値に達していない第4の場合のうちの何れかの場合には、保持させる手段に対してコネクションを解除させない手段を備えた。
請求項6乃至10の発明は、請求項1乃至5のネットワーク仮想化装置のそれぞれを実現するためのプログラムである。
本発明によれば、仮想ネットワークを構成する仮想ハブが、ネットワーク環境や、トラフィック量等に応じて、自律的に分割や移動することができる。
以上により、物理ネットワークへの設備投資のコストの増加や、仮想ネットワークの管理の複雑さを招くこともなく、仮想ネットワーク上のトラフィックの最適化を図ることが可能なネットワーク仮想化装置及びネットワーク仮想化プログラムを実現することができる。
以下に、本発明を実施するための最良の形態について図面を参照しながら説明する。
[全体構成]
図1は、本発明の実施の形態に係るネットワーク仮想化装置によって構築される仮想ネットワークの一般的な構成を示す概念図である。なお、以後の説明では、物理ネットワーク(アンダーレイネットワーク)11はTCP/IPネットワークであることを前提として説明する。現在、企業や通信事業者では、ほぼこのTCP/IPネットワークが使用されているといっても差し支えない。TCP/IPネットワークは、後述するルータ12、ファイアウォール13、リンク層の通信装置(イーサネットならばイーサネットスイッチングハブ14等)により構成される。ルータ12は、TCP/IPネットワークを構成するネットワーク層の装置であり、一般的なものであることから、ここではその詳細な説明を割愛する。また、ファイアウォール13は、企業ネットワーク等の内部ネットワーク15と、インターネット等の外部ネットワーク16との境界に設置されるセキュリティ装置であり、一般的なものであることからここではその詳細な説明は割愛する。
ホスト17は、仮想ネットワーク10を構成する仮想ハブ18のいずれかに接続する計算機であり、仮想ネットワークインタフェース19を介して仮想ハブ18に接続する。詳細は後述する。
仮想ネットワークインタフェース未対応ホスト20は、仮想ネットワークインタフェース19が搭載されていないホストである。これらのホスト20は、特殊なソフトウェアである仮想ネットワークインタフェース19を搭載する必要が無い反面、仮想ハブ18に接続する何らかの手段が別途必要である。
図1中では、一般的なPPPoE、SSL−VPNを用いて仮想ハブ18に接続する形態と、一つの実施例であるネットワーク仮想化装置21が提供する特別なイーサネットポートに直結する形で、仮想ハブ18に接続する形態を例として示している。以下に、ネットワーク仮想化装置21の特別なイーサネットポートに関して述べる。
ネットワーク仮想化装置21は、仮想ハブ18を配置する装置であり、専用装置であることも、汎用の計算機(Windows(登録商標)やUNIX(登録商標)が稼働する計算機)であることも可能である。一つのネットワーク仮想化装置21には複数の仮想ハブ18を配置することも可能であり、通常、それらの仮想ハブ18は異なる仮想ネットワーク10に属する。同一仮想ネットワーク10に属すこともできるが、運用上のメリットは無い。
なお、ネットワーク仮想化装置21には、仮想ネットワークインタフェース未対応ホスト20を、ルータ12を介さずに直接収容するための特別なイーサネットポートを持つことができる。この特別なイーサネットポートに収容されるイーサネット上のホストは、ある仮想ハブ18を介して仮想ネットワーク10に収容される形となる。仮想ハブ18は、本実施の形態の中心的役割を担うものであり、詳細は後述する。
仮想イーサネットコネクションAは、ホスト17と仮想ハブ18(具体的には、後述する仮想ハブ18の仮想イーサネットポート)間を接続する仮想的なイーサネットの線であり、TCP/IPネットワーク上に何らかの方法で実現される。実現方法は本発明の特徴的な部分ではないため、ここではその詳細な説明を割愛するが、UNIX等の一般的なOSにおけるいくつかの実装例を後述する。
また、仮想イーサネットコネクションAは、仮想ハブ18間を接続する概念でもあり、仮想ハブ18は、仮想ハブ18の分割・移動処理時に、仮想ハブ18間の仮想イーサネットコネクションAの接続を変更する必要がある。しかし、これは、通常のイーサネットスイッチングハブ14を接続するのと同等の機能であるのでここでは詳細に述べない。
[ホスト及びネットワーク仮想化装置の構成]
ホスト17及びネットワーク仮想化装置21の詳細な機能ブロック図を図2に示す。以下、ホスト17及びネットワーク仮想化装置21に配置される仮想ハブ18の詳細をそれぞれ記す。
(ホスト)
ホスト17は、TCP/IPネットワークにて通信を行なうためのネットワークインタフェースである物理ネットワークインタフェース23だけでなく、仮想ハブ18に接続するため(仮想ネットワーク10にて通信を行なうため)のネットワークインタフェースである仮想ネットワークインタフェース19、及びそれを制御するための仮想ネットワークインタフェース制御モジュール24を持つ。
仮想ネットワークインタフェース19は、仮想ハブ18との仮想イーサネットコネクションAを生成、保持する。ホスト17上で動作するアプリケーションプログラムや、ホスト17のOS内のTCP/IPプロトコルからは、仮想ネットワークインタフェース19は物理ネットワークインタフェース23と同じように見え、IP層の経路制御により、いずれのネットワークインタフェースが使用されるかが決定される。
仮想ネットワークインタフェース制御モジュール24は、仮想ハブ18との仮想イーサネットコネクションAの生成の制御などの処理を行なう。
(ネットワーク仮想化装置)
ネットワーク仮想化装置21は、システム制御モジュール201、システム情報テーブル202、及び仮想ハブ18を備えている。以下に、システム制御モジュール201及びシステム情報テーブル202の処理内容、及び、テーブルのデータ構成例を記す。なお、仮想ハブについては、次項にて説明する。
システム制御モジュール201は、ネットワーク仮想化装置21全体の制御を行なうモジュールで、以下の処理を行なう。
・自装置21、自装置21が収容する仮想ハブ18、及びホスト17に関する情報の収集を行う。すなわち、自装置21に収容する仮想ハブ18の情報は、後述の通り、各仮想ハブ18が収集し、ホスト情報テーブル183に保持する。更にその情報をシステム制御モジュール201が各仮想ハブ18から収集し、集中管理する。
・同一管理ドメイン内の他ネットワーク仮想化装置21aとの情報交換を行う。すなわち、システム情報交換メッセージの交換により、自装置21が収集した情報を他装置21aに通知し、他装置21aが収集した情報を獲得する。
・上記収集した自装置21、並びに同一管理ドメイン内の他装置21aの情報をシステム情報テーブル202にて管理する。
・仮想ハブ18の生成、削除などを行う。
次に、システム情報テーブル202について説明する。図3は、システム情報テーブル202のフォーマットの一例を示す模式図である。すなわち、システム情報テーブル202は、ネットワーク仮想化装置情報301と、仮想ハブ情報310とを含んでいる。
ネットワーク仮想化装置情報301は、アンダーレイネットワークのIPアドレス/ネットマスク情報302と、収容仮想ハブ数303と、収容仮想ネットワーク数304と、システム負荷情報305とを含んでいる。更に、システム負荷情報305は、CPU利用率306、メモリ利用率307、仮想ハブ毎のトラフィック309、総トラフィック308を含んでいる。
仮想ハブ情報310は、収容ホスト数311と、仮想ハブと各ホスト間とのコスト312とを含んでいる。更に、コスト312は、ホスト312aと、ラウンドトリップタイム312bと、ホップ数312cとを含んでいる。
(仮想ハブ)
図2に示すように、仮想ハブ18は、複数の仮想イーサネットポート187を有する仮想イーサネットポート制御モジュール186と、仮想イーサネットスイッチモジュール185と、仮想ハブ制御モジュール181と、MACアドレス学習テーブル182と、ホスト情報テーブル183と、ポート間トラフィックテーブル184とを含んでいる。
ホスト情報テーブル183は、そのデータ構成例を図4に示すように、自仮想ハブ18が収容するホストの情報を保持している。すなわち、ホスト情報テーブル183は、仮想ネットワークインタフェース19のMACアドレス183a、ホスト17を収容する仮想イーサネットポート187(仮想イーサネットポート制御モジュール186内にある)の仮想イーサネットポート識別子183b、仮想ハブ18と該当ホスト17間のラウンドトリップタイム183c、仮想ハブ18と該当ホスト17間のホップ数(経由ルータ数)183d、該当ホスト17へのアンダーレイネットワークのIPパケットを送信する次ホップのゲートウェイを表すフォワーディング情報183e、該当ホスト17のアンダーレイネットワークのIPアドレス/ネットマスク情報183fを含む。これら情報は、仮想ハブ18の分割や移動処理時に使用される。
ポート間トラフィックテーブル184は、各仮想イーサネットポート187間のトラフィック量を保持するテーブルである。
仮想イーサネットポート187は、ホスト17の仮想ネットワークインタフェース19との仮想イーサネットコネクションAを保持するための仮想的なイーサネットポートであり、仮想イーサネットコネクションAの仮想ハブ18側の端点と見なすことができる。各仮想イーサネットポート187には、仮想イーサネットポート識別子183bが付与され、それにより識別される。
MACアドレス学習テーブル182は、通常のイーサネットスイッチングハブ14と同様、受信イーサネットフレームの送信元MACアドレスと受信ポートとのマッピングを保持するテーブルである。通常のイーサネットスイッチングハブ14では、受信イーサネットフレームの送信元MACアドレスとのマッピングは受信ポートであるが、本実施の形態においては、送信元MACアドレス183aと仮想イーサネットポート識別子183bとのマッピングとなる。
仮想イーサネットポート制御モジュール186は、ホスト17、又は他仮想ハブ18aからの接続要求を受け付け、ユーザ認証、その他通信路暗号化方法などの調整を行なう。その結果、接続が完了すると、ホスト17の仮想ネットワークインタフェース19との間、又は他仮想ハブ18aとの間の仮想イーサネットコネクションAを保持するための仮想イーサネットポート187を生成し、仮想イーサネットポート識別子183bを付与する。更に、ホスト17から接続要求を受けた場合には、そのホスト17に関するエントリをホスト情報テーブル183に作成し、接続要求に格納されているホスト17のネットワークアドレス、ネットマスク情報などをホスト情報テーブル183に保存する。また、各仮想イーサネットポート187からのイーサネットフレーム受信時には、MACアドレス183aの学習を行なう。すなわち、受信イーサネットフレームの送信元MACアドレスと、該当イーサネットフレームを受信した仮想ネットワークポート(仮想イーサネットポート識別子183b)187のマッピングをMACアドレス学習テーブル182に書き込む。
仮想イーサネットスイッチモジュール185は、基本的には、一般的なイーサネットスイッチングハブ14と同様の処理を行なう。つまり、イーサネットフレームを受信すると(仮想イーサネットポート制御モジュール186からイーサネットフレームを受け取ると)、該当イーサネットフレームのヘッダの宛先MACアドレスとMACアドレス学習テーブル182の情報から、出力先仮想イーサネットポート187を決定し、該当イーサネットフレームをその仮想イーサネットポート187に出力する(出力先仮想ネットワークポート情報(仮想イーサネットポート識別子183b)をパラメータとして、該当イーサネットフレームを仮想イーサネットポート制御モジュール186へ渡す)。更に、上記処理に伴い、各仮想イーサネットポート187間の単位時間当たりのトラフィックを計測し、ポート間トラフィックテーブル184に保存する。
仮想ハブ制御モジュール181は、仮想ハブ18の分割や移動の制御を行なう。具体的には、ホスト情報テーブル183のラウンドトリップタイム183c、ホップ数183d、フォワーディング情報183e、IPアドレス/ネットマスク情報183fの収集及び設定を行う。また、仮想イーサネットスイッチモジュール185がスイッチング処理に伴い収集し、ポート間トラフィックテーブル184に格納したポート間トラフィック情報を監視する。そして、これらの情報に基づき、必要に応じて仮想ハブ18の分割、又は移動処理を開始する。また、自仮想ハブ18の削除処理も行なう。例えば、予め定められた期間、収容するホスト17が存在しない場合には、自身の処理を終了する。
[処理詳細]
以下、仮想イーサネットコネクションAの生成(仮想ネットワークインタフェース19による仮想ハブ18への接続)、仮想ハブ18による分割・移動処理のための情報収集、仮想ハブ18の分割・移動処理に関し、順に詳細を述べ、最後に、具体的なネットワーク構成に基づいて、仮想ハブ18の分割・移動処理の例を記す。
(仮想ネットワークコネクションの生成)
仮想イーサネットコネクションAは、ホスト17と仮想ハブ18との間、仮想ハブ18と仮想ハブ18との間で生成、保持されるものであるが、ここでは、前者の場合のみについて述べる。
1.仮想ハブ18への接続(仮想イーサネットコネクションAの生成)は、以下の場合に行なわれる。
・ホスト17のユーザが、仮想ネットワークインタフェース制御モジュール24を使用して仮想ハブ18への接続要求を手動で出す場合。
・ホスト17のOS起動時の一連の処理の中で、コンフィグレーションに基づいて仮想ネットワークインタフェース制御モジュール24が呼び出され、接続要求を自動で出す場合。
・ホスト17の仮想ハブ18間の移動処理(繋ぎ替え処理)時、移動元の仮想ハブ18の仮想ハブ制御モジュール181がホスト17へ移動要求を出す場合。
2.接続要求のパラメータは以下の通りである。
・物理ネットワーク11での仮想ハブ18のIPアドレスである接続先IPアドレス(接続先仮想ハブ18のIPアドレス)。
・認証方法、及び、認証パラメータ(ユーザ名、パスワードなど)
・物理ネットワーク11でのホスト自身のIPアドレス/ネットマスクであるホスト自身のIPアドレス/ネットマスク情報。
・その他、通信路暗号化プロトコルやキープアライブ時間(無通信時の接続切断などに使用)等。
3.仮想ネットワークインタフェース制御モジュール24から仮想ハブ18への接続要求を受け取った仮想ネットワークインタフェース19は、TCP/IP以下のプロトコルを使用し、接続先の仮想ハブ18と物理ネットワーク11を使用して通信を行ない、ユーザ認証、通信路暗号化プロトコルその他のパラメータの調整、自身のネットワークアドレス、ネットマスク情報の送信などを行なった後、ホスト17と仮想ハブ18の間に仮想イーサネットコネクションAを作成、保持する。
4.仮想ネットワークインタフェース19によりホスト17、仮想ハブ18間に仮想イーサネットコネクションAが作成されたことにより、ホスト17上のアプリケーションプログラムは、同一仮想ネットワーク上に属する他ホスト17と、そのホスト17のイーサネットアドレス(仮想イーサネット上のネットワークアドレス)を指定することにより、イーサネットレベルでの通信が可能となる。なお、仮想ネットワーク10上でTCP/IPにて通信を行なう場合は、別途、IPアドレス(仮想ネットワーク10上で動作するTCP/IPネットワークのIPアドレス)が必要となるが、IPアドレスの割り当て方法は一般的なものであるので、ここではその説明を省略する。
(仮想ハブによる情報収集)
仮想ハブ18の仮想ハブ制御モジュール181、及び仮想イーサネットスイッチモジュール185は、分割や移動処理のための以下に示す各種情報(ラウンドトリップタイム、ホップ数、仮想イーサネットポート間トラフィック)を収集、保存する。また、収集した情報を自身が属するネットワーク仮想化装置21のシステム制御モジュール201に通知する。以下、各種情報について補足する。
・ラウンドトリップタイム
仮想ハブ制御モジュール181は、各仮想イーサネットポート187(仮想イーサネットコネクションA)に対して、定期的に、又は分割や移動先の決定時に、ラウンドトリップタイム計測パケットを送出し、規定回数分の平均値(例えば10回分の平均値)をホスト情報テーブル183に保存する。
・ホップ数
仮想ハブ制御モジュール181は、各仮想イーサネットポート187(仮想イーサネットコネクションA)のアンダーレイネットワークのIPアドレスに対して、定期的に、又は分割や移動先の決定時に、ホップ数計測パケットを送出し、得られたホップ数(ホスト17−仮想ハブ18間のルータ数)をホスト情報テーブル183に保存する。
・仮想ネットワークポート間トラフィック
仮想ハブ18の仮想イーサネットスイッチモジュール185は、イーサネットフレームのスイッチングの際、該当仮想イーサネットポート187間のトラフィックを計測し、単位時間当たりの値(イーサネットフレーム数、バイト数など)をポート間トラフィックテーブル184に保存する。
(仮想ハブ分割・移動処理フロー)
仮想ハブ18の分割及び移動処理は、本実施の形態におけるネットワーク仮想化装置21における動作の中でも、最も特徴的な部分である。この処理の一例を図5に示すフローチャートを用いて説明する。
(ステップS1)仮想ハブ制御モジュール181は、ホスト情報テーブル183、ポート間トラフィックテーブル184の内容を定期的に監視し、分割・移動開始判定基準を超える事象又は状態を検出した場合に分割及び移動処理を開始する。なお、分割・移動開始判定基準及び判定処理の詳細は後述する。
(ステップS2)仮想ハブ制御モジュール181は、分割及び移動処理を開始すると、移動先ネットワーク仮想化装置21の選択処理を行なう。移動先ネットワーク仮想化装置21による選択処理の詳細は後述する。
(ステップS3)仮想ハブ制御モジュール181は、移動先ネットワーク仮想化装置21に、自仮想ハブ18と同一仮想ネットワークに属する仮想ハブ18が存在するかを確認する。具体的には、自身が属するネットワーク仮想化装置21のシステム制御モジュール201に問い合わせを行なう。システム制御モジュール201は、システム情報テーブル202の移動先ネットワーク仮想化装置21に対応するエントリにて、問い合わせを行なった仮想ハブ18と同一の仮想ネットワークに属する仮想ハブ18が存在するかどうかをチェックし、その結果を仮想ハブ制御モジュール181に返す。
(ステップS4)仮想ハブ制御モジュール181は、移動先ネットワーク仮想化装置21にて、仮想ハブ18の新規作成が受け入れ可能かをチェックする。具体的には、自身が属するネットワーク仮想化装置21のシステム制御モジュール201に問い合わせを行なう。システム制御モジュール201は、システム情報テーブル202の移動先ネットワーク仮想化装置21に対応するエントリにて、上記処理が受け入れ可能かどうかの判定を行ない、結果を仮想ハブ制御モジュール181に返す。受け入れ可能かどうかの判定処理の詳細は後述する。
(ステップS5)移動先ネットワーク仮想化装置21にて、新規の仮想ハブ18を作成する。具体的には、以下の処理を行なう。すなわち、先ず、仮想ハブ制御モジュール181は、自身が属するネットワーク仮想化装置21のシステム制御モジュール201に、移動先ネットワーク仮想化装置21での新規の仮想ハブ18の作成依頼を行なう。次に、上記依頼を受けたシステム制御モジュール201は、移動先ネットワーク仮想化装置21のシステム制御モジュール201に、新規仮想ハブ18の作成を依頼する。そして、上記依頼を受けた移動先ネットワーク仮想化装置21のシステム制御モジュール201は、自装置21上で指定の仮想ネットワークに属する仮想ハブ18を作成し、その結果を依頼元に返す。
(ステップS6)仮想ハブ制御モジュール181は、移動先ネットワーク仮想化装置21、及び仮想ハブ18にて、移動対象のホスト17が受け入れ可能かのチェックを行なう。具体的には、自身が属するネットワーク仮想化装置21のシステム制御モジュール201に問い合わせを行なう。システム制御モジュール201は、システム情報テーブル202の移動先ネットワーク仮想化装置21に対応するエントリにて、上記処理が受け入れ可能かどうかの判定を行ない、結果を仮想ハブ制御モジュール181に返す。受け入れ可能な場合はステップS7へ、受け入れ可能でない場合には処理を終了する。受け入れ可能かどうかの判定処理の詳細は後述する。
(ステップS7)仮想ハブ制御モジュール181は、仮想ハブ18を移動するか、又は分割するかの判定を行なう。具体的には、ホスト情報テーブル183の情報を参照するか、又は自身が属するネットワーク仮想化装置21のシステム制御モジュール201に問い合わせを行なう。そして、分割すべきであると判定した場合はステップS8へ、移動すべきであると判定した場合にはステップS9へ進む。移動か分割かの判定基準、判定処理の詳細は後述する。
(ステップS8)仮想ハブ制御モジュール181は、移動対象のホスト17を、移動先ネットワーク仮想化装置21の該当仮想ハブ18に繋ぎ替え、分割又は移動の処理を終了する。具体的には以下の処理を行なう。
すなわち、移動元の仮想ハブ制御モジュール181は、移動対象となるホスト17に対して、物理ネットワークのIPアドレスである移動先ネットワーク仮想化装置21の情報や、仮想ネットワークを識別可能な情報(識別子、アンダーレイネットワークのトランスポート層のポート番号等)をパラメータとした、仮想ハブ接続変更要求を送出する。
次に、上記仮想ハブ接続変更要求を受信したホスト17の仮想ネットワークインタフェース制御モジュール24は、要求に含まれる情報を元に、移動先の仮想ハブ18との仮想イーサネットコネクションAを生成し、要求に対する応答を移動元の仮想ハブ18へ返す。その後、移動元の仮想ハブ18との仮想イーサネットコネクションAを削除する。
(ステップS9)仮想ハブ制御モジュール181は、移動先ネットワーク仮想化装置21、及び仮想ハブ18が、自仮想ハブ18が収容する全ホストを受け入れ可能かのチェックを行なう。具体的には、自身が属するネットワーク仮想化装置21のシステム制御モジュール201に問い合わせを行なう。システム制御モジュール201は、システム情報テーブル202の移動先ネットワーク仮想化装置21に対応するエントリにて、上記処理が受け入れ可能かどうかの判定を行ない、結果を仮想ハブ制御モジュール181に返す。受け入れ可能な場合にはステップS10へ、受け入れ可能でない場合にはステップS8に進む。受け入れ可能かどうかの判定処理の詳細は後述する。
(ステップS10)仮想ハブ制御モジュール181は、自仮想ハブ18が収容する全てのホスト17を、移動先ネットワーク仮想化装置21の該当仮想ハブ18に繋ぎ替える。繋ぎ替え処理の詳細はステップS8と同様である。
(ステップS11)仮想ハブ制御モジュール181は、自仮想ハブ18の処理を終了(シャットダウン)する。
(ステップS12,S13)なお、ステップS4にて仮想ハブ18の受け入れが不可となった場合、又はステップS6にて受け入れ不可となった場合に、分割・移動先候補が他にも存在する場合には、ステップS2の処理に戻り、次善の候補を選択することもできる。
(仮想ハブ分割・移動判定基準、判定処理詳細)
次に、図5に示す処理フロー中の各種判定基準、判定処理の処理詳細について記載する。処理によっては複数基準が存在するが、いずれの基準を使用するか、基準値をどのように設定するかなどは仮想ネットワークを運用するサイトのポリシーにより設定される事項であるので、以下に示す記載に限定されるものではない。
ステップS1で用いられる分割・移動開始判定で用いられる基準、判定処理には、以下に示す通り、例えばフロードリブンと、トポロジドリブンとの2つがある。
フロードリブンによる分割・移動処理では、仮想ハブ制御モジュール181が、各仮想イーサネットポート187間のトラフィック(ポート間トラフィックテーブル184)を監視し、ある特定の仮想イーサネットポート187間トラフィックが予め定めている閾値を超えた場合に、分割・移動処理を開始する。例えば、閾値としては、単位時間当たりのフレーム数、バイト数(例えば1時間あたり10Mフレーム、1分間あたり10MByte等)や、該当仮想ハブ18の総トラフィックに対する該当仮想イーサネットポート187間のトラフィックの割合(例えば50%等)が考えられる。
トポロジドリブンによる分割・移動処理では、仮想ハブ制御モジュール181は、ホスト情報テーブル183を監視し、自仮想ハブ18が収容するホスト17の内、予め定めた基準値を超えるホスト17が、物理ネットワーク11の特定のエリアに属していると判断した場合、分割・移動処理を開始する。例えば、基準値としては、収容するホスト17の50%や、10ホスト等が考えられる。また、上記ホストが、物理ネットワーク11の特定のエリアに属していると判断する基準は、以下のようなものが考えられる。
・上記ホスト群が、物理ネットワーク11にて同一ネットワークアドレスを持ち、かつ、そのネットワークアドレスが、自身が属するネットワーク仮想化装置21とは異なる場合。
・上記ホスト群への物理ネットワーク11のIPパケット送信処理にて、次ホップが同一で、かつ、それらホスト17が、自身が属するネットワーク仮想化装置21と物理ネットワーク11の同一LANセグメントに存在しない場合。
ステップS2における分割・移動先ネットワークの決定に際しては、以下に示す通り、例えばコストベースと、トポロジベースとの2つの判定基準及び判定処理がある。なお、フロードリブンで分割・移動開始を決定した場合は、以下のいずれかの方法でも分割・移動先を決定しても差し支えないが、トポロジドリブンで分割・移動開始を決定した場合は、コストベースで決定しても動作上は問題無いが、トポロジベースで分割・移動先を決定することが妥当である。
コストベースの判定を行う場合、仮想ハブ制御モジュール181は、ホスト情報テーブル183、及びシステム制御モジュール201を介して自身が属するネットワーク仮想化装置21のシステム情報テーブル202の情報から、以下のコストをチェックする。
・自身が属するネットワーク仮想化装置21と移動対象ホスト間のコスト。
・同一管理ドメイン内の、自身が属するネットワーク仮想化装置21以外のネットワーク仮想化装置21と移動対象ホスト間のコスト。
またここで、コストは、具体的には以下のようなものが考えられる。
・ラウンドトリップタイム。
・ホップ数(アンダーレイネットワークのホップ数)。
そして、上記チェックしたコストのうち、最小のコストを持つネットワーク仮想化装置21が、自身の属するネットワーク仮想化装置21でない場合、そのネットワーク仮想化装置21を分割・移動先として選択する。なお、移動対象ホストは複数存在するため、最終的なコストは、それら全てのホストに対するコストの平均をとるなどの措置が必要となる。
一方、トポロジベースの判定を行う場合、仮想ハブ制御モジュール181は、ホスト情報テーブル183、及びシステム制御モジュール201を介して自身が属するネットワーク仮想化装置21のシステム情報テーブル202の情報から、以下のトポロジ情報をチェックする。
・移動対象ホストの物理ネットワーク11上でのトポロジ情報。
・同一管理ドメイン内の、自身が属するネットワーク仮想化装置21以外のネットワーク仮想化装置21の物理ネットワーク11上でのトポロジ情報。
またここで、トポロジ情報は、具体的には以下のようなものが考えられる。
・物理ネットワーク11のIPアドレス(ネットワークアドレス)。
・物理ネットワーク11のフォワーディング情報。
・物理ネットワーク11の経路制御情報。
そして、上記チェックしたトポロジ情報を元にした分割・移動先選択の基準は、以下のようなものが考えられる。
上記移動対象のホスト群が、物理ネットワーク11にて、あるネットワーク仮想化装置21と同一ネットワークアドレスを持ち、かつ、そのネットワーク仮想化装置21が自身が属するものではなく、かつ、そのネットワーク仮想化装置21が、自身が属するネットワーク仮想化装置21と物理ネットワーク11の同一LANセグメントに存在しない場合に、そのネットワーク仮想化装置21を分割・移動先とする。
上記移動対象ホスト群への物理ネットワーク11のIPパケット送信処理における次ホップと、あるネットワーク仮想化装置21への同処理における次ホップが同一で、かつ、そのネットワーク仮想化装置21が自身が属するものではなく、かつ、そのネットワーク仮想化装置21が、自身が属するネットワーク仮想化装置21と物理ネットワーク11の同一LANセグメントに存在しない場合に、そのネットワーク仮想化装置21を分割・移動先とする。
上記と同様の判定処理を、物理ネットワーク11のIP経路情報に基づいて行なう。
なお、移動対象ホスト17は複数存在するため、最終的な判断は、移動対象の全ホスト17のうち最も多いホスト17とトポロジ的に近い(同一ネットワークアドレスを持つ、同一次ホップである等)ネットワーク仮想化装置21を選択するなどの措置が必要となる。
次に、ステップS4,S6,S9で行われる移動先での仮想ハブ18、ホスト17の受け入れ判定基準及び判定処理の例について説明する。
仮想ハブ制御モジュール181は、(システム制御モジュール201を介して)自身が属するネットワーク仮想化装置21のシステム情報テーブル202の情報から、予め定めている閾値を超えた場合に、移動先ネットワーク仮想化装置21での仮想ハブ18の受け入れ、又は移動先仮想ハブ18でのホスト17の受け入れが不可であると判断する。例えば、閾値は以下のようなものが考えられる。
・移動先ネットワーク仮想化装置21のCPU利用率50%。
・移動先ネットワーク仮想化装置21の仮想ハブ収容数が10。
・移動先ネットワーク仮想化装置21のホスト収容数が100。
・移動先仮想ハブ18のホスト収容数が20。
・移動先仮想ハブ18の単位時間当たりのトラフィックが10MBytes。
次に、ステップS7で行われる分割か移動かの判定例について説明する。
仮想ハブ制御モジュール181は、ホスト情報テーブル183の情報、及びシステム制御モジュール201を介して自身が属するネットワーク仮想化装置21のシステム情報テーブル202の情報から、予め定めている閾値を超えた場合(或いは超えていない場合)に移動とし、超えていない場合(或いは超えた場合)に分割と判断する。例えば、判断項目、及び、閾値は以下のようなものが考えられる。
移動対象のホスト17の合計トラフィックの、自仮想ハブ18が収容する全ホスト17の合計トラフィックに対する割合が、予め定めている閾値を超えた場合に移動し、超えていない場合に分割とする。閾値としては、例えば、上記割合が70%の場合とする。
移動対象のホスト17の数の、自仮想ハブ18が収容する全てのホスト17の数に対する割合が、予め定めている閾値を超えた場合に移動し、超えていない場合に分割とする。閾値としては、例えば上記割合が50%の場合とする。
移動先ネットワーク仮想化装置21、又は移動先仮想ハブ18の負荷が、予め定めている閾値を超えた場合に分割し、超えていない場合に移動とする。例えば、閾値としては、例えば以下のようなものがある。
・移動先ネットワーク仮想化装置21のCPU利用率50%。
・移動先ネットワーク仮想化装置21の仮想ハブ収容数が10。
・移動先ネットワーク仮想化装置21のホスト収容数が100。
・移動先仮想ハブ18のホスト収容数が20。
・移動先仮想ハブ18の単位時間当たりのトラフィックが10MBytes。
(仮想ハブ分割・移動処理の具体例1)
物理ネットワーク11、及び仮想ネットワーク10を構成するネットワーク仮想化装置21、仮想ハブ18、ホスト17が、図6のような状態の場合に関し、仮想ハブ18の分割・移動処理の詳細を記す。本例はフロードリブンによる分割・移動処理開始の例である。
図6は、ある企業のネットワーク構成であり、物理ネットワークであるTCP/IPネットワークはルータ12(#1〜#3)により、4つのLANセグメント(LAN1〜LAN4)に分割されている。
初期状態では、ネットワーク仮想化装置21(#1〜#4)が、それぞれ、LAN1〜4に配置されており、LAN1上のネットワーク仮想化装置21(#1)がホスト17(#1〜#9)の全てを収容している。この状態で、ネットワーク仮想化装置21(#1)の仮想ハブ18(#1)は、仮想イーサネットポート187間のトラフィック情報に基づき、ホスト17(#2〜#6)及び、ホスト17(#7,#8)を移動すべきできあると判断する。
さらに、コストベースでの分割・移動先判定(ネットワーク仮想化装置21(#1),ネットワーク仮想化装置21(#3),ネットワーク仮想化装置21(#4)とホスト17(#2〜#8)間のラウンドトリップタイム計測値)に基づき、最終的に、ホスト17(#2〜#6)をネットワーク仮想化装置21(#3)に、ホスト17(#7,#8)をネットワーク仮想化装置21(#4)に移動すべきであると判断する。
そこで、ネットワーク仮想化装置21(#3,#4)上での仮想ハブ18の有無、仮想ハブ作成、ホスト17の受け入れ可否、分割か移動か、などの判断ののち、分割と判断して処理をした状態が図7である。結果的に、ホスト17(#2〜#6)のトラフィックはLAN3内に、ホスト17(#7,#8)のトラフィックはLAN4内に、局所化される。
一方、移動であると判断すると、ホスト17(#2〜#8)だけでなく、ホスト17(#1,#9)ともネットワーク仮想化装置21(#3)上の仮想ハブ18(#3)、又はネットワーク仮想化装置21(#4)上の仮想ハブ18(#4)へ移動し、更に、仮想ハブ18(#2)と仮想ハブ18(#3)、仮想ハブ18(#2)と仮想ハブ18(#4)との接続を仮想ハブ18(#3)と仮想ハブ18(#4)の接続に変更後、ネットワーク仮想化装置21(#1)上の仮想ハブ18(#1)は、自らを終了し、その結果、図8のような状態となる。
(仮想ハブ分割・移動処理の具体例2)
アンダーレイネットワーク及び、仮想ネットワーク10を構成するネットワーク仮想化装置21、仮想ハブ18、ホスト17が、図9のような状態の場合に関し、仮想ハブの分割・移動処理の詳細を記す。本例はトポロジドリブンによる分割・移動処理開始の例である。
図9は、ある企業のネットワーク構成であり、構成、初期状態は前述の図6と同様である。この状態で、ネットワーク仮想化装置21(#1)の仮想ハブ18(#1)は、物理ネットワーク11(#1〜#4)(LAN1〜4)のフォワーディング情報(次ホップ情報)に基づき、ホスト17(#2〜#8)を移動すべきできあると判断する。更に、トポロジベースでの分割・移動先判定に基づき、ネットワーク仮想化装置21(#2)が上記ホスト17と同一次ホップに属すことが判るため、最終的に上記ホスト17をネットワーク仮想化装置21(#2)に移動すべきであると判断する。
そこで、ネットワーク仮想化装置21(#2)上での仮想ハブ18(#2)の有無、仮想ハブ作成、ホスト17の受け入れ可否、分割か移動か、などの判断の後、分割と判断して処理をした状態が図10である。結果的に、ホスト17(#2〜#8)のトラフィックがLAN2〜4に局所化され、LAN1に流入することが無くなった。一方、移動であると判断すると、ホスト17(#2〜#8)だけでなく、ホスト17(#1,#9)ともネットワーク仮想化装置21(#2)上の仮想ハブ18(#2)へ移動し、ネットワーク仮想化装置21(#1)上の仮想ハブ18(#1)は自らを終了し、その結果、図11のような状態となる。
さらに、図11の状態で、ネットワーク仮想化装置21(#2)が、物理ネットワーク(LAN)のIPのネットワークアドレス情報に基づき、ホスト17(#2〜#6)をネットワーク仮想化装置21(#3)へ、ホスト17(#7,#8)をネットワーク仮想化装置21(#4)へ、移動すべきであると判断する。そこで、上記と同様、ネットワーク仮想化装置21(#3,#4)上での仮想ハブ18(#3,#4)の有無、仮想ハブ作成、ホスト17の受け入れ可否、分割か移動か、などの判断ののち、分割と判断して処理をした状態が図12である。結果的に、ホスト17(#2〜#6)のトラフィックはLAN3内に、ホスト17(#7,#8)のトラフィックはLAN4内に局所化される。
[各機能モジュールの実装例]
本実施の形態の特徴的な部分である仮想ハブ18の分割、移動の機能は、仮想イーサネットコネクションA、仮想ネットワークインタフェース19、仮想ハブ18の実装方法に依存しないが、参考のため、これらの機能モジュールの、一般的なUNIXにおけるいくつかの実装方法を以下に述べる。
(仮想ネットワークインタフェースの実装例)
仮想ネットワークインタフェース1300,1400の実装例として、仮想イーサネットコネクションAの実現方法に着目した、一般的なUNIXにおける実装方法を図13,図14に示す。
1.IPトンネリングの仕組みを利用した実装方法
図13は、一般的なIPトンネリングの仕組みを利用したものであり、仮想ネットワークインタフェース層1308はOSのカーネル1302の内部に実装される。ユーザプロセス1301内には、例えばシステム制御モジュール201である制御アプリケーションプログラム1303、及びその他のアプリケーションプログラム1304が存在する。仮想ネットワークインタフェース層1308は、上位層であるイーサネット層1307からは単なるネットワークインタフェースとして見えるが、一方、下位層であるIP(アウターIP)層1309からは、TCP/UDP層1305と同様のトランスポート層として見える。本実装方法では、仮想イーサネットコネクションAはホスト17と仮想ハブ18間のIPトンネルとなる。
2.トンネルインタフェースの仕組みを利用した実装方法
図14(a)及び図14(b)は、一般的なトンネルインタフェースの仕組みを利用したものであり、仮想ネットワークインタフェースプログラム1403はユーザプロセス1401として実装される。OSのカーネル1402内の通信プロトコルとのデータのやりとりは、トンネルインタフェース1411を介して行なう。
図14(a)は、トンネルインタフェース1411がIPデータグラムを処理する(ユーザランドのプログラムとIPデータグラムをやりとりする)タイプである。この場合、ユーザプロセス1401には、仮想ネットワークインタフェースプログラム1403の他に、制御アプリケーションプログラム1404、イーサネット層1405、必要に応じてHTTP1406、アプリケーションプログラム1407が実装される。一方、カーネル1402には、TCP/UDP層1409、IP層1410、トンネルインタフェース1411、イーサネット層1412、及び物理ネットワークインタフェース1413が実装される。
図14(b)は、トンネルインタフェース1411がイーサネットフレームを処理する(ユーザランドのプログラムとイーサネットフレームをやりとりする)タイプである。この場合、ユーザプロセス1401には、仮想ネットワークインタフェースプログラム1403の他に、制御アプリケーションプログラム1404、必要に応じてHTTP1406、アプリケーションプログラム1407が実装される。一方、カーネル1402には、TCP/UDP層1409、IP層1410、トンネルインタフェース1411、イーサネット層1412、及び物理ネットワークインタフェース層1413が実装される。
なお、図13に示すIPトンネリングの仕組みを利用した方法、および図14(b)に示す方法では、UNIXのOS内の既存のイーサネット層1307,1310,1412が、物理ネットワークインタフェース層1311,1413、仮想ネットワークインタフェース1308,1403双方の上位層として使用可能であるが、図14(a)に示す方法では、仮想ネットワークインタフェースプログラム1403の上位に位置するイーサネット層1405の処理を、ユーザプログラムである仮想ネットワークインタフェースプログラム1403の中に実装する必要があり、実装はより複雑になり得る。本実装方法では、仮想イーサネットコネクションAはホスト17と仮想ハブ18間のソケット(TCPソケット、UDPソケット、或いはRaw IPソケットなど)となる。
(仮想ネットワークインタフェースの処理フロー)
以下に、上記2つの実装例について、それぞれ処理内容を記す。
1.IPトンネリングの仕組みを利用した実装方法
IPトンネリングで構成されるホスト17と仮想ハブ18間の仮想イーサネットコネクションAを使用し、仮想ネットワーク10のイーサネットフレームの送受信を行なう。
・仮想ネットワーク上の他ホストへの送信
(a)ホスト(以後、送信元ホスト)17上のアプリケーションプログラム1304は、宛先ホストへデータを送信しようとする。
(b)アプリケーションプログラム1304からの送信データを受け取ったTCP/UDP層1305、及びIP(インナーIP)層1306は、仮想イーサネットコネクションA上での宛先ホストのIPアドレスを元に、出力ネットワークインタフェースとして仮想ネットワークインタフェース19を選択し、IPパケットをイーサネット層1307に渡す。
(c)IP(インナーIP)層1306からIPパケットを受け取ったイーサネット層1307は、IPパケットをイーサネットフレームに格納し、それを仮想ネットワークインタフェース層1308に渡す。
(d)イーサネット層からイーサネットフレームを受け取った仮想ネットワークインタフェース層1308は、送信元ホスト17が接続している仮想ハブ18のIPアドレスをパラメータとして、該当イーサネットフレームをIP(アウターIP)層1309へ渡す。この時、IPヘッダのプロトコルフィールドに、自身を識別するための値を設定する。
(e)IP(アウターIP)層1309以下のプロトコルスタックは、通常の処理を行ない、該当データを仮想ハブ18へ送信する。
・仮想ネットワーク上の他ホストからの受信
(a)物理ネットワークインタフェース層1311、その上位のイーサネット層1310の処理は一般的なものにより、ここでは、その詳細説明を割愛する。
(b)イーサネット層1310からイーサネットフレームを受け取ったIP(アウターIP)層1309は、IPヘッダのプロトコルフィールドを元に、該当IPパケットが仮想ネットワークインタフェース層1308宛(IP(アウターIP)層1309から見ると、仮想ネットワークインタフェース層1308は単なる一トランスポート層に見える)であると判断し、それを仮想ネットワークインタフェース層1308へ渡す。
(c)IP(アウターIP)層1309からIPパケットを受け取った仮想ネットワークインタフェース層1308は、該当IPパケットからイーサネットフレームを取り出し、それを上位層であるイーサネット層1307へ渡す。
(d)以降、イーサネット層1307以上のプロトコルは、通常の処理を行ない、該当データをアプリケーションプログラムへ渡す。
2.トンネルインタフェースの仕組み(その1:図14(a))を利用した実装方法
TCPソケット、UDPソケット、或いはRaw IPソケットなどで構成されるホスト17と仮想ハブ18間の仮想イーサネットコネクションAを使用し、仮想ネットワークのイーサネットフレームの送受信を行なう。
・仮想ネットワーク上の他ホストへの送信
(a)ホスト(以後、送信元ホスト)上のアプリケーションプログラム1407は、宛先ホストへデータを送信しようとする。
(b)アプリケーションプログラム1407からの送信データを受け取ったTCP/UDP層1409、及びIP層1410は、仮想イーサネット上での宛先ホストのIPアドレスを元に、出力ネットワークインタフェースとしてトンネルインタフェースを選択し、IPパケットをトンネルインタフェース1411に渡す。
(c)IP1410層からIPパケットを受け取ったトンネルインタフェース1411は、IPパケットを、readシステムコール経由でユーザランドの仮想ネットワークインタフェースプログラム1403に渡す。
(d)トンネルインタフェース1411からIPパケットを受け取った仮想ネットワークインタフェースプログラム1403は、送信元ホストが接続している仮想ハブのIPアドレスをパラメータとして生成されたソケットに対し、該当IPパケットをイーサネットフレームに格納して書き込む。
(e)以下のプロトコルスタックは、通常の処理を行ない、該当データを仮想ハブ18へ送信する。
・仮想ネットワーク上の他ホストからの受信
(a)物理ネットワークインタフェース層1413から上位のTCP/UDP層1409の処理は一般的なものにより、ここではその詳細説明を割愛する。
(b)仮想ハブ18とのソケットからデータ(イーサネットフレーム)を受け取った仮想ネットワークインタフェースプログラム1403は、イーサネットフレームからIPパケットを取り出し、writeシステムコール経由でトンネルインタフェース1411へ該当IPパケットを渡す。
(c)仮想ネットワークインタフェースプログラム1403からIPパケットを受け取ったトンネルインタフェース1411は、該当IPパケットを上位層であるIP層1410へ渡す。
(d)以降、IP層1410以上のプロトコルは、通常の処理を行ない、該当データをアプリケーションプログラム1407へ渡す。
3.トンネルインタフェースの仕組み(その2:図14(b))を利用した実装方法
TCPソケット、UDPソケット、或いはRaw IPソケットなどで構成されるホストと仮想ハブ間の仮想ネットワークコネクションを使用し、仮想ネットワークのイーサネットフレームの送受信を行なう。
・仮想ネットワーク上の他ホストへの送信
(a)ホスト(以後、送信元ホスト)上のアプリケーションプログラム1407は、宛先ホストへデータを送信しようとする。
(b)アプリケーションプログラム1407からの送信データを受け取ったTCP/UDP層1409、IP層1410、及びイーサネット層1412は、仮想イーサネット上での宛先ホストのIPアドレスを元に、出力ネットワークインタフェースとしてトンネルインタフェース1411を選択し、イーサネットフレームをトンネルインタフェース1411に渡す。
(c)イーサネット層1412からイーサネットフレームを受け取ったトンネルインタフェース1411は、イーサネットフレームを、readシステムコール経由でユーザランドの仮想ネットワークインタフェースプログラム1403に渡す。
(d)トンネルインタフェース1411からイーサネットフレームを受け取った仮想ネットワークインタフェースプログラム1403は、送信元ホストが接続している仮想ハブのIPアドレスをパラメータとして生成されたソケットに対し、該当イーサネットフレームを書き込む。
(e)以下のプロトコルスタックは、通常の処理を行ない、該当データを仮想ハブへ送信する。
・仮想ネットワーク上の他ホストからの受信
(a)物理ネットワークインタフェース層1413から上位のTCP/UDP層1409の処理は一般的なものにより、ここではその詳細説明を割愛する。
(b)仮想ハブとのソケットからデータ(イーサネットフレーム)を受け取った仮想ネットワークインタフェースプログラム1403は、writeシステムコール経由でトンネルインタフェース1411へ該当イーサネットフレームを渡す。
(c)仮想ネットワークインタフェースプログラム1403からイーサネットフレームを受け取ったトンネルインタフェース1411は、該当イーサネットフレームを上位層であるイーサネット層1412へ渡す。
(d)以降、イーサネット層1412以上のプロトコルは、通常の処理を行ない、該当データをアプリケーションプログラム1407へ渡す。
(仮想ハブの実装例)
以下、仮想ハブの実装例について説明するが、先ず、ネットワーク仮想化装置の概念的なプロトコルスタック1500を図15に示す。この図から以下のようなことが言える。すなわち、仮想ハブ1503〜1505は、様々なプロトコル上で動作させることが可能である。一例として、図15において一番左側に示す仮想ハブ1503では、HTTPなどのより上位層プロトコル1506上で動作し、一番右側の仮想ハブ1505では、IP層1508及びイーサネット層1509のすぐ上位で動作する。後者は、例えば、仮想ネットワークインタフェース未対応ホスト20を収容する場合に使用する。図15に示す仮想ハブのうち、真ん中の仮想ハブ1504では、HTTP/他プロトコル1506、TCP/UDP層1507、及びIP層1508のすぐ上位で動作する。また、これら仮想ハブ1503〜1505より上位に、仮想NAP(NAPT)1502、或いは仮想ルータ1501などの機能を搭載することにより、仮想ネットワークの実現だけでなく、本実施の形態の特徴を持つ様々な仮想ネットワークを構築することが可能となる。
次に、仮想ハブ1600,1700,1800の実装例として、仮想イーサネットポート制御モジュール、仮想イーサネットスイッチモジュールの実装場所に着目した、一般的なUNIXにおける実装方法を図16乃至図18に示す。
第1の方法は、図16に示すように、仮想イーサネットポート制御モジュール1605、仮想イーサネットスイッチモジュール1601ともにOSのカーネル内に実装する方法である。この方法では、IP層1606の上位に仮想イーサネットポート制御モジュール1605が位置し、仮想イーサネットスイッチモジュール1601は仮想イーサネットポート制御モジュール1605の上位に位置するか、或いはカーネルスレッドなどにより実装される。なお、仮想イーサネットポート制御モジュール1605、仮想イーサネットスイッチモジュール1601ともにOSのカーネル1610内に実装されているため、これらは受信キュー1602や関数コール1604によりデータの受渡しを行なう。エンキュー1603は、受信キュー1602にデータを格納する処理である。なお、イーサネット層1607、ネットワークインタフェース1608は一般的なものであるので、ここでは説明を省略する。
第2の方法は、図17に示すように、仮想イーサネットポート制御モジュール1705をOSのカーネル1702内に、仮想イーサネットスイッチモジュール1703をユーザプロセス1701として実装する方法である。この方法では、仮想イーサネットポート制御モジュール1705は上記と同様、IP層1706の上位に位置し、仮想イーサネットスイッチモジュール1703はユーザプロセス1701として実装される。仮想イーサネットスイッチモジュール1703はユーザプロセス1701として実装されるため、これらはデータリンク層のデータを直接やりとりできるリンクソケット等の特別なソケット1704を介してデータの受渡しを行なう。なお、イーサネット層1707、ネットワークインタフェース1708は一般的なものであるので、ここでは説明を省略する。
第3の方法は、図18に示すように、仮想イーサネットポート制御モジュール1805、仮想イーサネットスイッチモジュール1803ともにユーザプロセス1801として実装する方法である。この方法では、仮想イーサネットポート制御モジュール1805とカーネル1802のTCP/IP層1807とは、TCP/UDPソケット1811やRaw IPソケット1812のような通常のTCP/IPソケットを介してデータの受渡しを行う。なお、仮想イーサネットポート制御モジュール1805、仮想イーサネットスイッチモジュール1803ともにユーザプロセス1801として実装されているため、これらは関数コール、或いはプロセス間通信1804によりデータの受渡しを行なう。なお、イーサネット層1809、ネットワークインタフェース層1810は一般的なものであるのでここでは説明は省略する。
前記第1及び第2の実装方法は、トランスポート層(TCPなど)の存在を前提としていないため、ホスト側の仮想ネットワークインタフェースがIPトンネリングを利用した方法の場合に採用できる方法である。
逆に、第3の実装方法は、トランスポート層の存在を前提としているため、ホスト側の仮想ネットワークインタフェースがトンネルインタフェースを利用した方法の場合に採用することが望ましい。
(仮想ハブのデータ送受信処理フロー)
上述の通り、前記3つの実装例において仮想イーサネットポート制御モジュールと仮想イーサネットスイッチモジュールの実装場所、及びそれによるデータの受渡し方法は異なるが、仮想イーサネットポート制御モジュールによるイーサネットフレーム送受信処理、仮想イーサネットスイッチモジュールによるイーサネットフレームのスイッチング処理に関しては一般的なものにより、ここではその詳細説明を省略する。
上述したように、本発明の実施の形態に係るネットワーク仮想化装置においては、上記のような作用により、仮想ネットワークに属する仮想ハブが、物理ネットワークのトポロジを考慮した上で、仮想ハブの自律的な分割及び移動を行なうことができる。以上により、物理ネットワークの観点から、仮想ネットワークに属するホスト間のトラフィックの最適化、局所化を実現することが可能となる。その結果、物理ネットワークへの負荷が軽減され、端末間のデータ送受信時間が短縮され、設備投資を抑制することが可能となる。
また、仮想ネットワークに属する仮想ハブが、自身に接続するホストの増減、或は、ホスト間のトラフィックの増減に動的に追従して仮想ハブの自律的な分割及び移動を行なうことができるので、性能、規模の拡張を管理者(或は利用者)を介さず実現することが可能となる。その結果、管理コストを抑制することが可能となる。
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
(応用技術分野)
仮想ハブの自律分割・移動によるトラフィックの局所化、最適化以外に、以下のような応用例が考えられる。
・ネットワークデザイン不要の仮想ネットワーク構築
例えば、新規に仮想ネットワークを作成する場合、ネットワーク管理者は、単に、あるネットワーク仮想化装置21上に仮想ハブ18を1つ作成し、その情報であるIPアドレスなどを、その仮想イーサネットに参加を希望するホスト17に通知するだけでよい。あとは、上記仮想ハブ18が、ホスト17間のトラフィックや物理ネットワーク11でのトポロジを考慮して、自律的に分割、移動することで、最適なネットワーク構成を構築する。
・不正トラフィックの局所化、封じ込め
例えば、IDS(Intrusion Detection System)やウィルスチェックプログラムなどのセキュリティシステムと連携することにより、トラフィック量、トラフィック内容に基づき、特定のホストを物理ネットワーク11上の特定のエリアに局所化することで、セキュリティの脅威を最小限に押えることが可能である。
本発明の実施の形態に係るネットワーク仮想化装置によって構築される仮想ネットワークの一般的な構成を示す概念図。 ホスト及びネットワーク仮想化装置の詳細例を示す機能ブロック図。 システム情報テーブルのフォーマットの一例を示す模式図。 ホスト情報テーブルの一例を示すデータ構成図。 仮想ハブの分割及び移動処理の一例を示すフローチャート。 フロードリブンによる仮想ハブ分割・移動処理の一例を説明するためのネットワーク構成図(初期状態)。 フロードリブンによる仮想ハブ分割・移動処理の一例を説明するためのネットワーク構成図(分割後)。 フロードリブンによる仮想ハブ分割・移動処理の一例を説明するためのネットワーク構成図(移動後)。 トポロジドリブンによる仮想ハブ分割・移動処理の一例を説明するためのネットワーク構成図(初期状態)。 トポロジドリブンによる仮想ハブ分割・移動処理の一例を説明するためのネットワーク構成図(分割後)。 トポロジドリブンによる仮想ハブ分割・移動処理の一例を説明するためのネットワーク構成図(移動後)。 トポロジドリブンによる仮想ハブ分割・移動処理の一例を説明するためのネットワーク構成図(再分割後)。 一般的なUNIXにおける仮想ネットワークインタフェースの実装例を示す図(IPトンネリングの仕組みを利用)。 一般的なUNIXにおける仮想ネットワークインタフェースの実装例を示す図(トンネルインタフェースの仕組みを利用)。 ネットワーク仮想化装置の概念的なプロトコルスタックを示す図。 一般的なUNIXにおける仮想ハブの実装例を示す図(全てカーネル内)。 一般的なUNIXにおける仮想ハブの実装例を示す図(一部カーネル内)。 一般的なUNIXにおける仮想ハブの実装例を示す図(全てユーザプログラム内)。 仮想ネットワークの一般的な構成を示す図。
符号の説明
A…仮想ネットワークコネクション、1〜4…LAN、10…仮想ネットワーク、11…物理ネットワーク、12…ルータ、13…ファイアウォール、14…イーサネットスイッチングハブ、15…内部ネットワーク、16…外部ネットワーク、17…ホスト、18…仮想ハブ、19…仮想ネットワークインタフェース、20…仮想ネットワークインタフェース未対応ホスト、21…ネットワーク仮想化装置、23…物理ネットワークインタフェース、24…仮想ネットワークインタフェース制御モジュール、181…仮想ハブ制御モジュール、182…MACアドレス学習テーブル、183…ホスト情報テーブル、183a…MACアドレス、183b…仮想ネットワークポート識別子、183c…ラウンドトリップタイム、183d…ホップ数、183e…フォワーディング情報、183f…ネットマスク情報、184…ポート間トラフィックテーブル、185…仮想イーサネットスイッチモジュール、186…仮想イーサネットポート制御モジュール、187…仮想ネットワークポート、201…システム制御モジュール、202…システム情報テーブル、301…ネットワーク仮想化装置情報、302…ネットマスク情報、305…システム負荷情報、306…CPU利用率、307…メモリ利用率、308…総トラフィック、309…トラフィック、310…仮想ハブ情報、311…収容ホスト数、312…各ホスト間とのコスト、312a…ホスト、312b…ラウンドトリップタイム、313c…ホップ数、1300…仮想ネットワークインタフェース、1301…ユーザプロセス、1302…カーネル、1303…制御アプリケーションプログラム、1304…アプリケーションプログラム、1305…TCP/UDP層、1306…IP(インナーIP)層、1307…イーサネット層、1308…仮想ネットワークインタフェース層、1309…IP(インナーIP)層、1310…イーサネット層、1311…物理ネットワークインタフェース層、1400…仮想ネットワークインタフェース、1401…ユーザプロセス、1402…カーネル、1403…仮想ネットワークインタフェースプログラム、1404…制御アプリケーションプログラム、1405…イーサネット層、1406…HTTP、1407…アプリケーションプログラム、1409…TCP/UDP層、1410…IP層、1411…トンネルインタフェース、1412…イーサネット層、1413…物理ネットワークインタフェース層、1500…プロトコルスタック、1501…仮想ルータ、1502…仮想NAP、1503〜1505…仮想ハブ、1506…HTTP/他プロトコル、1507…TCP/UDP層、1508…IP層、1509…イーサネット層、1600…仮想ハブ、1601…仮想イーサネットスイッチモジュール、1602…受信キュー、1603…エンキュー、1604…関数コール、1605…仮想イーサネットポート制御モジュール、1606…IP層、1607…イーサネット層、1608…ネットワークインタフェース、1610…カーネル、1700…仮想ハブ、1701…ユーザプロセス、1702…カーネル、1703…仮想イーサネットスイッチモジュール、1704…ソケット、1705…仮想イーサネットポート制御モジュール、1706…IP層、1707…イーサネット層、1800…仮想ハブ、1801…ユーザプロセス、1802…カーネル、1803…仮想イーサネットスイッチモジュール、1804…プロセス間通信、1805…仮想イーサネットポート制御モジュール、1807…TCP/IP層、1809…イーサネット層、1810…ネットワークインタフェース層、1811…TCP/UDPソケット、1812…Raw IPソケット、1900…アンダーレイネットワーク、1901…仮想ネットワーク、1902…ルータ、1903…ファイアウォール、1904…内部ネットワーク、1905…外部ネットワーク、1906…ホスト、1907…仮想ハブ、1908…仮想ネットワークインタフェース、1909…コンピュータ

Claims (10)

  1. 予め構築され、それぞれ一つ以上の端末が接続された複数の物理ネットワーク上に、ソフトウェアによって仮想的にネットワークを構築するネットワーク仮想化装置であって、
    前記構築された仮想ネットワークに対する前記各端末の接続を管理するデータ交換ノードを備え、前記データ交換ノードは更に、
    前記各端末それぞれに対して予め割り当てられ、前記物理ネットワーク上において前記各端末をそれぞれ特定するための物理ネットワークアドレスが指定されると、前記指定された物理ネットワークによって特定された端末との前記物理ネットワークを介したコネクションを確立し、保持する手段と、
    前記コネクションと、前記仮想ネットワーク上において前記各端末をそれぞれ特定するための仮想ネットワークアドレスとのマッピング情報を記憶する手段と、
    他ネットワーク仮想化装置に含まれる他データ交換ノードとの前記物理ネットワークを介したコネクションを確立し、保持する手段と、
    前記仮想ネットワークアドレスが指定されると、前記マッピング情報に基づいて、前記指定された仮想ネットワークアドレスにマップされたコネクションを特定し、この特定されたコネクションによって接続された端末と、前記仮想ネットワークを介して通信する手段と、
    予め定めた解除基準を超えた場合には、保持している前記物理ネットワークを介したコネクションのうちの何れかを解除し、前記解除したコネクションを、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持させる手段と
    を備えたネットワーク仮想化装置。
  2. 前記予め定めた解除基準を超えた場合とは、
    前記保持している物理ネットワークを介したコネクションのうち、単位時間当たりのトラフィック量が、予め定めた量を超えた場合、
    同一の物理ネットワークに属する端末の数が、予め定めた数を超えた場合、
    前記データ交換ノードの負荷が、予め定めた基準値を超えた場合
    のうちの何れかの場合である請求項1に記載のネットワーク仮想化装置。
  3. 前記データ交換ノードは更に、
    前記他ネットワーク仮想化装置が複数存在する場合、前記解除したコネクションを、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持させる手段は更に、前記複数存在する他ネットワーク仮想化装置のうち、前記保持させる他データ交換ノードを含む他ネットワーク仮想化装置を、予め定めた選択基準に基づいて選択する手段を備え、
    前記予め定めた選択基準とは、
    前記他データ交換ノードが、前記解除されたコネクションを保持した場合、前記解除されたコネクションによって接続された端末との間のデータ転送コストが最小になるようなデータ交換ノードを含むネットワーク仮想化装置を選択するか、又は、前記解除されたコネクションによって接続された端末との前記物理ネットワークにおける距離が最小になるようなネットワーク仮想化装置を選択する
    請求項1又は請求項2に記載のネットワーク仮想化装置。
  4. 前記データ交換ノードは更に、
    前記解除されたコネクションが、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持された後、前記解除されたコネクション以外のコネクションの保持を継続するか、又は前記解除されたコネクション以外のコネクションを全て解除し、これら解除したコネクションを、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持させるか否かを、予め定めた判定基準に基づいて判定する手段を備え、
    前記判定基準は、
    前記解除されたコネクションの解除される前におけるトラフィック量の、前記データ交換ノードによって保持されていた仮想ネットワークを介した全てのコネクションによる合計トラフィック量に対する割合が、予め定めた値を超えた場合に全て解除し、超えない場合に継続する第1の判定基準、
    前記解除されたコネクションに接続された端末数の、解除される前に前記データ交換ノードによって保持されていた仮想ネットワークに接続されていた合計端末数に対する割合が、予め定めた値を超えた場合に全て解除し、超えない場合に継続する第2の判定基準、
    前記解除されたコネクションの、解除される前における負荷が、予め定めた基準値を超えている場合に全て解除し、超えていない場合に継続する第3の判定基準
    のうちの何れかである請求項1乃至3のうち何れか1項に記載のネットワーク仮想化装置。
  5. 前記データ交換ノードは更に、
    前記予め定めた解除基準を超えた場合であっても、前記保持させる手段が解除すべきコネクションを、前記他データ交換ノードに保持させることによって、
    前記他データ交換ノードを含む前記他ネットワーク仮想化装置の負荷が、予め定めた基準値を超えることになる第1の場合、
    前記他データ交換ノードを含む前記他ネットワーク仮想化装置が保持する仮想化ネットワークに接続された端末の合計数、又は前記他ネットワーク仮想化装置が含む他データ交換ノード数が、予め定めた基準値を超えることになる第2の場合、
    前記他データ交換ノードが保持する仮想化ネットワークに接続された端末の合計数が、予め定めた基準値を超えることになる第3の場合、
    前記解除すべきコネクションに接続された端末が、過去に別のデータ交換ノードに保持されていた場合、現在のデータ交換ノードに保持された時からの経過時間、又は前記現在のデータ交換ノードが、最後に物理ネットワークを介したコネクションを保持した時からの経過時間が、予め定めた基準値に達していない第4の場合
    のうちの何れかの場合には、前記保持させる手段に対して前記コネクションを解除させない手段を備えた請求項1乃至4のうち何れか1項に記載のネットワーク仮想化装置。
  6. 予め構築され、それぞれ一つ以上の端末が接続された複数の物理ネットワーク上に、プログラムによって仮想的にネットワークを構築する、ネットワーク仮想化装置に含まれるデータ管理ノードに適用される前記プログラムであって、
    前記各端末それぞれに対して予め割り当てられ、前記物理ネットワーク上において前記各端末をそれぞれ特定するための物理ネットワークアドレスが指定されると、前記指定された物理ネットワークによって特定された端末との前記物理ネットワークを介したコネクションを確立し、保持する機能、
    前記コネクションと、前記仮想ネットワーク上において前記各端末をそれぞれ特定するための仮想ネットワークアドレスとのマッピング情報を記憶する機能、
    他ネットワーク仮想化装置に含まれる他データ交換ノードとの前記物理ネットワークを介したコネクションを確立し、保持する機能、
    前記仮想ネットワークアドレスが指定されると、前記マッピング情報に基づいて、前記指定された仮想ネットワークアドレスにマップされたコネクションを特定し、この特定されたコネクションによって接続された端末と、前記仮想ネットワークを介して通信する機能、
    予め定めた解除基準を超えた場合には、保持している前記物理ネットワークを介したコネクションのうちの何れかを解除し、前記解除したコネクションを、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持させる機能
    をコンピュータに実現させるためのプログラム。
  7. 前記予め定めた解除基準を超えた場合とは、
    前記保持している物理ネットワークを介したコネクションのうち、単位時間当たりのトラフィック量が、予め定めた量を超えた場合、
    同一の物理ネットワークに属する端末の数が、予め定めた数を超えた場合、
    前記データ交換ノードの負荷が、予め定めた基準値を超えた場合
    のうちの何れかの場合である請求項6に記載のプログラム。
  8. 前記他ネットワーク仮想化装置が複数存在する場合、前記解除したコネクションを、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持させる機能は更に、前記複数存在する他ネットワーク仮想化装置のうち、前記保持させる他データ交換ノードを含む他ネットワーク仮想化装置を、予め定めた選択基準に基づいて選択する機能をコンピュータに実現させ、
    前記予め定めた選択基準とは、
    前記他データ交換ノードが、前記解除されたコネクションを保持した場合、前記解除されたコネクションによって接続された端末との間のデータ転送コストが最小になるようなデータ交換ノードを含むネットワーク仮想化装置を選択するか、又は、前記解除されたコネクションによって接続された端末との前記物理ネットワークにおける距離が最小になるようなネットワーク仮想化装置を選択する
    請求項6又は請求項7に記載のプログラム。
  9. 前記解除されたコネクションが、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持された後、前記解除されたコネクション以外のコネクションの保持を継続するか、又は前記解除されたコネクション以外のコネクションを全て解除し、これら解除したコネクションを、他ネットワーク仮想化装置に含まれる他データ交換ノードに保持させるか否かを、予め定めた判定基準に基づいて判定する機能を更にコンピュータに実現させ、
    前記判定基準は、
    前記解除されたコネクションの解除される前におけるトラフィック量の、前記データ交換ノードによって保持されていた仮想ネットワークを介した全てのコネクションによる合計トラフィック量に対する割合が、予め定めた値を超えた場合に全て解除し、超えない場合に継続する第1の判定基準、
    前記解除されたコネクションに接続された端末数の、解除される前に前記データ交換ノードによって保持されていた仮想ネットワークに接続されていた合計端末数に対する割合が、予め定めた値を超えた場合に全て解除し、超えない場合に継続する第2の判定基準、
    前記解除されたコネクションの、解除される前における負荷が、予め定めた基準値を超えている場合に全て解除し、超えていない場合に継続する第3の判定基準
    のうちの何れかである請求項6乃至8のうち何れか1項に記載のプログラム。
  10. 前記予め定めた解除基準を超えた場合であっても、前記保持させる機能が解除すべきコネクションを、前記他ネットワーク仮想化装置に保持させることによって、
    前記他データ交換ノードを含む前記他ネットワーク仮想化装置の負荷が、予め定めた基準値を超えることになる第1の場合、
    前記他データ交換ノードを含む前記他ネットワーク仮想化装置が保持する仮想化ネットワークに接続された端末の合計数、又は前記他ネットワーク仮想化装置が含む他データ交換ノード数が、予め定めた基準値を超えることになる第2の場合、
    前記他データ交換ノードが保持する仮想化ネットワークに接続された端末の合計数が、予め定めた基準値を超えることになる第3の場合、
    前記解除すべきコネクションに接続された端末が、過去に別のデータ交換ノードに保持されていた場合、現在のデータ交換ノードに保持された時からの経過時間、又は前記現在のデータ交換ノードが、最後に物理ネットワークを介したコネクションを保持した時からの経過時間が、予め定めた基準値に達していない第4の場合
    のうちの何れかの場合には、前記保持させる機能に対して、前記コネクションを解除させない機能をコンピュータに実現させるための請求項6乃至9のうち何れか1項に記載のプログラム。
JP2006216107A 2006-08-08 2006-08-08 ネットワーク仮想化装置及びネットワーク仮想化プログラム Expired - Fee Related JP4279300B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006216107A JP4279300B2 (ja) 2006-08-08 2006-08-08 ネットワーク仮想化装置及びネットワーク仮想化プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006216107A JP4279300B2 (ja) 2006-08-08 2006-08-08 ネットワーク仮想化装置及びネットワーク仮想化プログラム

Publications (2)

Publication Number Publication Date
JP2008042665A true JP2008042665A (ja) 2008-02-21
JP4279300B2 JP4279300B2 (ja) 2009-06-17

Family

ID=39177183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006216107A Expired - Fee Related JP4279300B2 (ja) 2006-08-08 2006-08-08 ネットワーク仮想化装置及びネットワーク仮想化プログラム

Country Status (1)

Country Link
JP (1) JP4279300B2 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009267625A (ja) * 2008-04-23 2009-11-12 Ntt Docomo Inc 仮想ネットワークシステム、仮想ネットワーク構築方法
JP2009302847A (ja) * 2008-06-12 2009-12-24 Toshiba Corp ネットワーク仮想化システムおよびプログラム
JP2010103633A (ja) * 2008-10-21 2010-05-06 Toshiba Corp 通信制御方法、通信装置、および通信システム
JP2010226545A (ja) * 2009-03-25 2010-10-07 Nec Corp ネットワークノード、ネットワーク及びそれらに用いるトンネルスイッチング方法
WO2012029146A1 (ja) * 2010-09-01 2012-03-08 富士通株式会社 管理装置、管理プログラムおよび管理方法
JP2012511292A (ja) * 2008-12-10 2012-05-17 エヌイーシー ヨーロッパ リミテッド 基盤ネットワーク上で少なくとも1つの仮想ネットワークを動作させる方法および仮想ネットワーク環境
JP2012519458A (ja) * 2009-03-30 2012-08-23 アマゾン テクノロジーズ インコーポレイテッド 管理されたコンピュータネットワークのための論理ネットワーキング機能の提供
JP2014039097A (ja) * 2012-08-13 2014-02-27 Nippon Telegr & Teleph Corp <Ntt> ネットワーク構成システム、ネットワーク構成装置、ネットワーク構成方法、及びネットワーク構成プログラム
US9268603B2 (en) 2011-09-15 2016-02-23 Fujitsu Limited Virtual machine management device, and virtual machine move control method
JP2018530256A (ja) * 2015-09-29 2018-10-11 ニュー エイチ3シー テクノロジーズ カンパニー,リミティド ユーザの移行
JP2021168483A (ja) * 2009-04-01 2021-10-21 ニシラ, インコーポレイテッド 仮想スイッチを実現し且つ管理する方法及び装置

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009267625A (ja) * 2008-04-23 2009-11-12 Ntt Docomo Inc 仮想ネットワークシステム、仮想ネットワーク構築方法
JP2009302847A (ja) * 2008-06-12 2009-12-24 Toshiba Corp ネットワーク仮想化システムおよびプログラム
JP4703689B2 (ja) * 2008-06-12 2011-06-15 株式会社東芝 ネットワーク仮想化システムおよびプログラム
JP2010103633A (ja) * 2008-10-21 2010-05-06 Toshiba Corp 通信制御方法、通信装置、および通信システム
JP2014090501A (ja) * 2008-12-10 2014-05-15 Nec Europe Ltd 基盤ネットワーク上で少なくとも1つの仮想ネットワークを動作させる方法および仮想ネットワーク環境
JP2012511292A (ja) * 2008-12-10 2012-05-17 エヌイーシー ヨーロッパ リミテッド 基盤ネットワーク上で少なくとも1つの仮想ネットワークを動作させる方法および仮想ネットワーク環境
US8745211B2 (en) 2008-12-10 2014-06-03 Nec Europe Ltd. Method for operating at least one virtual network on a substrate network and a virtual network environment
JP2010226545A (ja) * 2009-03-25 2010-10-07 Nec Corp ネットワークノード、ネットワーク及びそれらに用いるトンネルスイッチング方法
US9106540B2 (en) 2009-03-30 2015-08-11 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
US10644933B2 (en) 2009-03-30 2020-05-05 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
US11909586B2 (en) 2009-03-30 2024-02-20 Amazon Technologies, Inc. Managing communications in a virtual network of virtual machines using telecommunications infrastructure systems
JP2012519458A (ja) * 2009-03-30 2012-08-23 アマゾン テクノロジーズ インコーポレイテッド 管理されたコンピュータネットワークのための論理ネットワーキング機能の提供
US11477076B2 (en) 2009-03-30 2022-10-18 Amazon Technologies, Inc. Network accessible service for hosting a virtual computer network of virtual machines over a physical substrate network
JP2016171591A (ja) * 2009-03-30 2016-09-23 アマゾン テクノロジーズ インコーポレイテッド 管理されたコンピュータネットワークのための論理ネットワーキング機能の提供
US11108626B2 (en) 2009-03-30 2021-08-31 Amazon Technologies, Inc. Rewriting communication headers to manage virtual networks of virtual machines
JP7228315B2 (ja) 2009-04-01 2023-02-24 ニシラ, インコーポレイテッド 仮想ネットワークを実装する方法、媒体、コンピュータプログラム、コンピューティングデバイス
JP2021168483A (ja) * 2009-04-01 2021-10-21 ニシラ, インコーポレイテッド 仮想スイッチを実現し且つ管理する方法及び装置
WO2012029146A1 (ja) * 2010-09-01 2012-03-08 富士通株式会社 管理装置、管理プログラムおよび管理方法
US9319271B2 (en) 2010-09-01 2016-04-19 Fujitsu Limited Management device and management method
JP5408359B2 (ja) * 2010-09-01 2014-02-05 富士通株式会社 管理装置、管理プログラムおよび管理方法
US9268603B2 (en) 2011-09-15 2016-02-23 Fujitsu Limited Virtual machine management device, and virtual machine move control method
JP2014039097A (ja) * 2012-08-13 2014-02-27 Nippon Telegr & Teleph Corp <Ntt> ネットワーク構成システム、ネットワーク構成装置、ネットワーク構成方法、及びネットワーク構成プログラム
US10791167B2 (en) 2015-09-29 2020-09-29 New H3C Technologies Co., Ltd User migration
JP2018530256A (ja) * 2015-09-29 2018-10-11 ニュー エイチ3シー テクノロジーズ カンパニー,リミティド ユーザの移行

Also Published As

Publication number Publication date
JP4279300B2 (ja) 2009-06-17

Similar Documents

Publication Publication Date Title
JP4279300B2 (ja) ネットワーク仮想化装置及びネットワーク仮想化プログラム
US8549120B2 (en) System and method for location based address assignment in the distribution of traffic in a virtual gateway
Kim et al. Floodless in seattle: a scalable ethernet architecture for large enterprises
CN107181688B (zh) 一种sdn网络中实现服务器端跨域数据传输优化的系统和方法
JP5837989B2 (ja) コントローラでネットワークハードウェアアドレス要求を管理するためのシステム及び方法
KR102018395B1 (ko) 분할 아키텍쳐 네트워크에서의 패킷 방송 메카니즘
US9391886B2 (en) Identification of the paths taken through a network of interconnected devices
RU2441331C2 (ru) Соединение ячеистых сетей с множеством узлов-ретрансляторов с использованием сетевого моста подуровня управления доступом к среде передачи
US20070195794A1 (en) Virtual lan system and node device
US20160248669A1 (en) Systems and methods of inter data center out-bound traffic management
US20130176861A1 (en) Control apparatus, a communication system, a communication method and a recording medium having recorded thereon a communication program
US11923963B2 (en) Managing satellite devices within a branch network
JP2006262193A (ja) 制御装置、パケット転送方法およびパケット処理装置
US8612626B2 (en) Group member detection among nodes of a network
US7796614B1 (en) Systems and methods for message proxying
JP4011528B2 (ja) ネットワーク仮想化システム
WO2019240158A1 (ja) 通信システム及び通信方法
US11218339B2 (en) Gateway selection method, device, and system
JP4490990B2 (ja) ピアツーピア通信確立装置及びプログラム
JP2008054214A (ja) ネットワーク仮想化システム及びネットワーク仮想化プログラム
CN108259292B (zh) 建立隧道的方法及装置
EP3562101A1 (en) Bras management method, packet forwarding method, packet forwarding controller, and bras
CN102420832A (zh) 一种应用于云环境网络交互引擎及实现方法
JP2022044029A (ja) データ伝送方法、装置、およびネットワークデバイス
CN117857392A (zh) 一种基于ovs物理机检测云主机网络连通的机制方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090311

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees