説明

サーバ装置、パケット伝送システム、パケット伝送方法及びプログラム

【課題】大規模な数のサーバを配置した場合でも、高信頼性を実現する。
【解決手段】複数のサーバ装置100は、それぞれ、NWエミュレーション処理等のネットワーク処理を実施するNWCと、仮想SWと、複数のVMと、を備え、各サーバ装置100間でオーバーレイネットワークを構築する。伝送SW装置200は、受信したパケットを、伝送ルールを基に転送先ノードに転送し、伝送NWC300は、伝送ルールを生成し、伝送SW装置200に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ装置、パケット伝送システム、パケット伝送方法及びプログラムに関する。
【背景技術】
【0002】
インターネットサービスの利用形態として、クラウドコンピューティングがある。クラウドコンピューティングにおいて、システムの信頼性を向上するために、各サーバの負荷を分散する方法が検討されている。
【0003】
高い信頼性を実現するシステムとして、特許文献1は、負荷分散装置を二重化することで信頼性を高めるシステムを開示している。また、特許文献2は、クライアントから要求を受けると、次回以降は異なるサーバにアクセスするようにクライアントに指示を出すことで負荷の分散を実現するシステムを開示している。
【0004】
特許文献1と2が開示するシステムは、信頼性が高くなるものの、システムをスケールアウトする場合、システム構成が複雑となる問題点がある。
【0005】
このような問題を解決するため、近年、OpenFlowと呼ばれる技術が提案されている(非特許文献1参照)。OpenFlow技術を採用したシステムは、一般的に、図14に示すような構成となる。
【0006】
例えば、サーバ1300からサーバ1300へパケットを送信する場合、パケットは、スイッチ装置1200を介してサーバ1300へ到達する。このとき、スイッチ装置1200は、フローエントリと呼ばれる伝送ルールを参照して、パケットを転送する。なお、スイッチ装置1200は、複数配置されていても良く、この構成の場合、パケットは、複数のスイッチ装置1200を介してサーバ1300へ到達しても良い。
【0007】
フローエントリとは、MACアドレス、IPアドレス、ポート番号等の情報をキーにしたテーブルであり、パケットの経路制御を行うためのものである。通常、ルータ等のパケットを転送する機器は、送信先IPアドレスを参照してパケットを転送するが、OpenFlowでは、上述のように、複数のパラメータをフローとして定義し、スイッチ装置1200はそのフロー単位でパケットの経路制御を行う。
【0008】
スイッチ装置1200には、制御装置1100から送信された上述のフローエントリが記憶されている。フローエントリを参照してもパケットの転送先が不明である場合、またはロードバランサやファイアウォール等のネットワーク処理が必要な場合、スイッチ装置1200は、制御装置1100にパケットを転送し、その後の処理を一任する。すなわち、制御装置1100は、ロードバランサやファイアウォール等の処理を実行することが可能である。
【0009】
このように、OpenFlowを採用したシステムは、スイッチ装置1200がフロー単位でパケットの経路制御を行うため、システム内を分割する必要がない。よって、複数のシステムを同一基盤で動作させることが容易になり、さらに、ユーザが自由にネットワークを構成することができる。また、スイッチ装置1200を1台の制御装置1100で設定することができるため、スイッチ装置1200を自由に増設することができ、機器設定の手間を緩和することができる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2006−235837号公報
【特許文献2】特開2007−219964号公報
【非特許文献】
【0011】
【非特許文献1】Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, Jonathan Turner "OpenFlow: Enabling Innovation in Campus Networks"
【発明の概要】
【発明が解決しようとする課題】
【0012】
図14に示すようなOpenFlow技術を採用したシステムは、大規模な数のサーバを配置した場合を考えると、いくつかの問題点が挙げられる。
【0013】
まず、1台の制御装置1100がロードバランサやファイアウォール等のネットワーク処理を実行するため、このような処理の負荷は制御装置1100に集中することになる。このため、制御装置1100に障害が発生した際の影響が大きい。さらに、制御装置1100の上述の処理が間に合わない場合がある。
【0014】
さらに、上述のような制御装置1100への転送が必要なパケットは、スイッチ装置1200からネットワークを介して制御装置1100に送信されるため、スイッチ装置1200と制御装置1100間の帯域が不足する可能性がある。
【0015】
また、サーバの数の分だけFlood処理(ARP等のブロードキャスト処理時に用いられることが多いOpenFlow特有の処理)が増加し、帯域の不足や各装置の負荷が増大する、といった問題もある。さらに、サーバの数の分だけのフローエントリ数が必要となり、メモリ不足等の理由でスイッチ装置1200がフローエントリを記憶できない問題が発生する。
【0016】
本発明は、上記実情に鑑みてなされたものであり、大規模な数のサーバを配置した場合でも、高信頼性を実現することができるサーバ装置、パケット伝送システム、パケット伝送方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
上記目的を達成するため、本発明の第1の観点に係るサーバ装置は、
ノードからパケットを受信し、前記受信パケットのヘッダに基づいたノードに前記受信パケットを転送する仮想スイッチ手段と、
前記仮想スイッチ手段から自己宛にパケットが転送されてきた場合に、前記パケットを受信し、前記受信パケットのヘッダに従って、前記受信パケットのヘッダを書き換える、また、ネットワークプロトコルに従った処理を実行するネットワーク制御手段と、
仮想的に構築されたネットワークの情報を記憶する記憶手段と、を備え、
前記ネットワーク制御手段は、
前記記憶手段に記憶されたネットワークの情報を基に、前記仮想的に構築されたネットワーク上で、前記受信パケットを模擬的に通過させるエミュレーション手段と、
前記受信パケットに自装置が属するシステム独自のヘッダが付与されている場合、前記独自のヘッダを削除し、前記受信パケットに前記独自のヘッダが付与されていない場合、前記独自のヘッダを付与するオーバーレイ処理手段と、
前記受信パケットがノードに対するアドレス要求パケットである場合に、前記記憶手段に記憶されたネットワークの情報を基に、前記アドレス要求パケットを送信したノードにアドレス応答パケットを返送するアドレス解決手段と、を備える、
ことを特徴とする。
【0018】
また、前記エミュレーション手段は、前記記憶手段に記憶されたネットワークの情報を基に、前記受信パケットが仮想的に構築されたネットワーク上に配置されているノードを通過するか否かを判別し、通過すると判別した場合、該ネットワークノードに相当する処理を前記受信パケットに適用しても良い。
【0019】
また、前記オーバーレイ処理手段は、前記受信パケットに前記独自のヘッダを付与する場合、前記記憶手段に記憶されたネットワークの情報を基に、前記受信パケットに、送信先MAC(Media Access Control)アドレスが送信先ノードのMACアドレスであり、送信元MACアドレスが送信先ノードと隣接するノードを一意に識別する識別子を示すMACアドレスであるEthernet(登録商標)ヘッダを付与しても良い。
【0020】
また、前記アドレス解決手段は、前記アドレス要求パケットと前記記憶手段に記憶されたネットワークの情報を基に、アドレス要求先のノードを判別し、アドレス要求先のノードのMACアドレスを含めたアドレス応答パケットをアドレス要求元のノードに返送しても良い。
【0021】
また、前記オーバーレイ処理手段は、前記受信パケットに前記独自のヘッダを付与する場合、送信先及び送信元MACアドレスの値以外で、通信に影響を与えない部分以外は0としたTCP(Transmission Control Protocol)ヘッダ、IP(Internet Protocol)ヘッダ、Ethernet(登録商標)ヘッダを付与しても良い。
【0022】
また、任意のコンピュータの動作を模倣することで仮想的な機器の動作を実現する複数の仮想機器をさらに備え、
前記仮想機器は、パケットを送信する場合、送信先MACアドレスが前記仮想的に構築されたネットワーク上で隣接するノードのMACアドレスであるEthernet(登録商標)ヘッダを付与したパケットを送信しても良い。
【0023】
また、前記記憶手段は、自サーバ装置が有する前記複数の仮想機器の情報をさらに記憶し、
前記ネットワーク制御手段は、前記記憶手段に記憶された前記ネットワークの情報を基に、前記受信パケットの送信元又は送信先ノードのホスト名を取得し、前記取得した送信先ノードのホスト名が前記記憶手段に記憶されたか否か判別し、前記送信先ノードのホスト名が記憶されていた場合、前記受信パケットが、自サーバ装置が有する前記仮想機器宛のパケットであると判別し、前記送信先ノードのホスト名が記憶されていない場合、前記受信パケットが、他の前記サーバ装置が有する前記仮想機器宛のパケットであると判別しても良い。
【0024】
上記目的を達成するため、本発明の第2の観点に係るパケット伝送システムは、
パケットを送受信する複数のサーバ装置と、パケットを転送する複数の伝送スイッチ装置と、前記複数の伝送スイッチ装置を制御する伝送ネットワーク制御装置と、を備えるパケット伝送システムであって、
前記サーバ装置と前記伝送スイッチ装置及び前記伝送ネットワーク制御装置は、それぞれネットワークを介して相互に接続され、
前記伝送ネットワーク制御装置は、
パケットのヘッダ情報と転送先ノードの情報とを関連付けた伝送ルールを生成する伝送ルール生成手段と、
前記伝送ルール生成手段に生成された伝送ルールを前記複数の伝送スイッチ装置に送信する伝送ルール送信手段と、を備え、
前記伝送スイッチ装置は、それぞれ、
前記伝送ネットワーク制御装置が送信した前記伝送ルールを受信し、受信した伝送ルールを記憶する伝送ルール記憶手段と、
ノードからパケットを受信し、前記伝送ルール記憶手段に記憶された前記伝送ルールと前記受信パケットのヘッダ情報とに基づいて転送先ノードを求め、求めた転送先ノードに前記受信パケットを転送するパケット転送手段と、を備え、
前記サーバ装置は、それぞれ、
ノードからパケットを受信し、前記受信パケットのヘッダに基づいたノードに前記受信パケットを転送する仮想スイッチ手段と、
前記仮想スイッチ手段から自己宛にパケットが転送されてきた場合に、前記パケットを受信し、前記受信パケットのヘッダに従って、前記受信パケットのヘッダを書き換える、また、ネットワークプロトコルに従った処理を実行するネットワーク制御手段と、を備える、
ことを特徴とする。
【0025】
また、前記サーバ装置は、それぞれ、
仮想的に構築されたネットワークの情報を記憶する記憶手段をさらに備え、
前記ネットワーク制御手段は、
前記記憶手段に記憶されたネットワークの情報を基に、前記仮想的に構築されたネットワーク上で、前記受信パケットを模擬的に通過させるエミュレーション手段と、
前記受信パケットに自装置が属するシステム独自のヘッダが付与されている場合、前記独自のヘッダを削除し、前記受信パケットに前記独自のヘッダが付与されていない場合、前記独自のヘッダを付与するオーバーレイ処理手段と、
前記受信パケットがノードに対するアドレス要求パケットである場合に、前記記憶手段に記憶されたネットワークの情報を基に、前記アドレス要求パケットを送信したノードにアドレス応答パケットを返送するアドレス解決手段と、を備えていても良い。
【0026】
また、前記伝送ルール生成手段は、送信先又は送信元MACアドレスの情報と転送先のノードの情報とを関連付けた伝送ルールを生成し、
前記伝送ルール記憶手段は、前記伝送ルール生成手段が生成した前記伝送ルールを受信し、受信した前記伝送ルールを記憶し、
前記パケット転送手段は、ノードから受信したパケットの送信先又は送信元MACアドレスと前記伝送ルール記憶手段に記憶された伝送ルールとを基に転送先ノードを求め、求めた転送先ノードに前記受信パケットを転送しても良い。
【0027】
また、前記パケット伝送システムは、任意のデータを記憶する記憶装置をさらに備え、
前記記憶装置は、前記サーバ装置と前記伝送スイッチ装置及び前記伝送ネットワーク制御装置とそれぞれネットワークを介して相互に接続され、
前記伝送ネットワーク制御装置は、ユーザが仮想的に構築したネットワークの情報を前記記憶装置に記憶する仮想ネットワーク記憶手段をさらに備え、
前記記憶手段は、前記記憶装置から前記仮想的に構築されたネットワークの情報を取得し、取得したネットワークの情報を記憶しても良い。
【0028】
また、前記仮想ネットワーク記憶手段は、前記ユーザが仮想的に構築したネットワークの情報を日時と共に前記記憶装置に記憶し、
前記記憶手段は、前記ネットワークの情報を日時と共に記憶し、前記記憶装置から前記ネットワークの情報を取得する場合、前記記憶装置に記憶された前記ネットワークの情報の更新日時と既に記憶している前記ネットワークの情報の更新日時とを比較し、既に記憶している前記ネットワークの情報の更新日時の方が古い場合、前記記憶装置から前記ネットワークの情報を取得し、取得したネットワークの情報を記憶しても良い。
【0029】
また、前記アドレス解決手段は、前記記憶手段に記憶されたネットワークの情報を基に、アドレス要求先のノードを判別できない場合、前記記憶装置を参照し、最新の前記ネットワークの情報を取得し、再度アドレス要求先のノードを判別しても良い。
【0030】
また、前記記憶装置は、分散データベースであっても良い。
【0031】
上記目的を達成するため、本発明の第3の観点に係るパケット伝送システムは、
パケットを送受信する複数のサーバ装置と、パケットを転送する複数の伝送スイッチ装置と、を備えるパケット伝送システムであって、
前記サーバ装置と前記伝送スイッチ装置はそれぞれネットワークを介して相互に接続され、
前記サーバ装置は、送信先MACアドレスが送信先ノードのMACアドレスであり、送信元MACアドレスが送信先ノードと隣接するノードを一意に識別する識別子を示すMACアドレスであるEthernet(登録商標)ヘッダを付与してパケットを送信し、
前記伝送スイッチ装置は、前記サーバ装置または他の前記伝送スイッチ装置からパケットを受信し、前記受信パケットのEthernet(登録商標)ヘッダの送信元及び送信先MACアドレスと、予め記憶しているパケットのヘッダ情報と転送先ノードの情報とを関連付けた伝送ルールと、を基に転送先ノードを求め、求めた転送先ノードに前記受信パケットを転送する、
ことを特徴とする。
【0032】
上記目的を達成するため、本発明の第4の観点に係るパケット伝送方法は、
パケットを送受信する複数のサーバ装置と、パケットを転送する複数の伝送スイッチ装置と、前記複数の伝送スイッチ装置を制御する伝送ネットワーク制御装置と、を備え、前記サーバ装置と前記伝送スイッチ装置及び前記伝送ネットワーク制御装置がそれぞれネットワークを介して相互に接続されているシステムでパケットを伝送する方法であって、
前記伝送ネットワーク制御装置がパケットのヘッダ情報と転送先ノードの情報とを関連付けた伝送ルールを生成する伝送ルール生成ステップと、
前記伝送ネットワーク制御装置が前記伝送ルール生成ステップで生成された伝送ルールを前記複数の伝送スイッチ装置に送信する伝送ルール送信ステップと、
前記伝送スイッチ装置が前記伝送ルール送信ステップで送信された前記伝送ルールを受信し、受信した伝送ルールを記憶する伝送ルール記憶ステップと、
前記伝送スイッチ装置がノードからパケットを受信し、前記伝送ルール記憶ステップで記憶された前記伝送ルールと前記受信パケットのヘッダ情報とに基づいて転送先ノードを求め、求めた転送先ノードに前記受信パケットを転送するパケット転送ステップと、
前記サーバ装置がノードからパケットを受信し、前記受信パケットのヘッダに基づいたノードに前記受信パケットを転送する仮想スイッチステップと、
前記サーバ装置が前記仮想スイッチステップで自己宛にパケットが転送された場合に、前記パケットを受信し、前記受信パケットのヘッダに従って、前記受信パケットのヘッダを書き換える、また、ネットワークプロトコルに従った処理を実行するネットワーク制御ステップと、を備える、
ことを特徴とする。
【0033】
上記目的を達成するため、本発明の第5の観点に係るプログラムは、
コンピュータを、
ノードからパケットを受信し、前記受信パケットのヘッダに基づいたノードに前記受信パケットを転送する仮想スイッチ手段、
前記仮想スイッチ手段から自己宛にパケットが転送されてきた場合に、前記パケットを受信し、前記受信パケットのヘッダに従って、前記受信パケットのヘッダを書き換える、また、ネットワークプロトコルに従った処理を実行するネットワーク制御手段、
仮想的に構築されたネットワークの情報を記憶する記憶手段、
前記記憶手段に記憶されたネットワークの情報を基に、前記仮想的に構築されたネットワーク上で、前記受信パケットを模擬的に通過させるエミュレーション手段、
前記受信パケットに自装置が属するシステム独自のヘッダが付与されている場合、前記独自のヘッダを削除し、前記受信パケットに前記独自のヘッダが付与されていない場合、前記独自のヘッダを付与するオーバーレイ処理手段、
前記受信パケットがノードに対するアドレス要求パケットである場合に、前記記憶手段に記憶されたネットワークの情報を基に、前記アドレス要求パケットを送信したノードにアドレス応答パケットを返送するアドレス解決手段、として機能させる、
ことを特徴とする。
【発明の効果】
【0034】
本発明によれば、大規模な数のサーバを配置した場合でも、高信頼性を実現することができる。
【図面の簡単な説明】
【0035】
【図1】本発明の実施形態に係るパケット伝送システム構成の一例を示すブロック図である。
【図2】本発明の実施形態に係る各装置のハードウェア構成の一例を示すブロック図である。
【図3】本発明の実施形態に係るパケット伝送システムの各装置の構成の一例を示すブロック図である。
【図4】ハイパーバイザを説明するための図である。
【図5】論理マップを説明するための図である。
【図6】論理マップのテーブル構成を説明するための図である。
【図7】オーバーレイネットワークを説明するための図である。
【図8】本実施形態に係るサーバ装置のパケット送信処理の一例を示すフロー図である。
【図9】本実施形態に係るサーバ装置のNWエミュレーション処理の一例を示すフロー図である。
【図10】本実施形態に係るサーバ装置のオーバーレイ処理の一例を示すフロー図である。
【図11】本実施形態に係るサーバ装置のアドレス解決処理の一例を示すフロー図である。
【図12】本実施形態に係るサーバ装置のパケット受信処理の一例を示すフロー図である。
【図13】本実施形態に係るパケット伝送システムのパケット経路を説明するための図である。
【図14】従来のOpenFlowシステムを説明するための図である。
【発明を実施するための形態】
【0036】
本発明の実施形態に係るパケット伝送システムについて、図面を参照して説明する。
【0037】
パケット伝送システム1は、図1に示すように、サーバ装置100A、100B・・・、伝送スイッチ装置(以下、伝送SW装置とする)200・・・200、伝送ネットワークコントローラ(以下、伝送NWCとする)300、データベース(以下、DBとする)400、レイヤー2装置(以下、L2装置とする)500、マスター装置600、ゲートウェイ装置(以下、GW装置とする)700、アクセス回線網800、作業PC900、から構成されている。
【0038】
なお、サーバ装置100A、100B・・・はパケット伝送システム1内に複数台あっても良い。以下の説明でサーバ装置100と称する場合は、パケット伝送システム1内の全てのサーバ装置についての説明とする。また、伝送SW装置200・・・200も、パケット伝送システム1内に複数台あっても良い。以下の説明で伝送SW装置200と称する場合は、パケット伝送システム1内の全ての伝送SW装置についての説明とする。
【0039】
サーバ装置100は、伝送SW装置200、L2装置500、と接続し、複数の仮想機器(Virtual Machine、以下、VMとする)と、ネットワークコントローラ(Network Controller、以下、NWCとする)を有する。VMは、サーバ装置100上で稼動する仮想的なコンピュータ(ノード)であり、それぞれ任意のサービスを提供する。NWCは、受信したパケットに対して、後述するネットワークエミュレーション等の各種処理を実行する。
【0040】
伝送SW装置200は、伝送SW装置200同士と接続し、また、サーバ装置100、L2装置500、GW装置700と接続する。伝送SW装置200は、記憶している伝送ルールを基に、パケットを転送する。なお、伝送ルールとは、パケットを転送するためのルールであり、パケットに付与されているヘッダのフィールドの値と転送先ノードの情報とを関連付けているものである。
【0041】
伝送NWC300は、L2装置500と接続し、L2装置500を介してサーバ装置100、伝送SW装置200と通信する。伝送NWC300は、どの伝送SW装置200にどのサーバ装置100が接続されているか、等のパケット伝送システム1のネットワーク構成を記憶している。
【0042】
DB400は、L2装置500と接続し、各種のデータやテーブルを記憶している。パケット伝送システム1を構成する各装置は、DB400と通信することで各情報を取得する。DB400は、通常のデータベースで構築しても良いが、単一故障点の無い分散データベースを採用するとパケット伝送システム1を頑健にすることができる。
【0043】
なお、本実施形態では、DB400は装置として独立しているため、各装置はコマンドや命令等をDB400に送信し、DB400がそれに応答することで各種データの参照や書き込みをすることができる。以下の説明では、上述のようなコマンドや命令の送受信によって各装置がDB400からデータを参照、書き込みしていることとする。
【0044】
L2装置500は、パケット伝送システム1内の各装置それぞれと接続しており、ある装置から送信されたデータを、送信先MAC(Media Access Control)アドレスを基に、送信先の装置に転送する。L2装置500は、例えば、一般的なL2スイッチであり、パケット伝送システム1内の装置数以上の十分なポート数を有している。L2装置500が十分なポート数を有していない場合、L2装置500は複数配置されても良い。
【0045】
マスター装置600は、L2装置500と接続し、DB400を参照して各装置を監視し、各装置が正常であるか、異常であるかを判別する。マスター装置600は、パケット伝送システム1の信頼性を高めるための装置であり、必ずしもパケット伝送システム1に配置する必要はない。
【0046】
GW装置700は、伝送SW装置200、アクセス回線網800と接続し、アクセス回線網800からのデータを受信し、パケット伝送システム1内からのデータをアクセス回線網800に送信する。GW装置700は、複数台の伝送SW装置200と接続していても良い。
【0047】
作業PC900は、L2装置500と接続し、システム管理者等が操作するPCである。作業PC900は、作業の際にL2装置500と接続されていれば良く、常にパケット伝送システム1に配置している必要はない。
【0048】
なお、本実施形態では、パケット伝送システム1内に配置される各装置、サーバ装置100が有するVM等のそれぞれを「ノード」と称する。一般的にノードとは、ネットワークの節点を意味し、本実施形態でもこの定義に従う。
【0049】
以上が、パケット伝送システム1の構成である。
【0050】
続いて、パケット伝送システム1を構成する各装置のハードウェア構成について説明する。
【0051】
パケット伝送システム1を構成する各装置は、例えば、それぞれ図2に示すように、制御部11と、主記憶部12と、外部記憶部13と、操作部14と、表示部15と、送受信部16と、から構成されている。主記憶部12と、外部記憶部13と、操作部14と、表示部15と、送受信部16とは、いずれも内部バス10を介して制御部11と接続している。
【0052】
送受信部16は、ネットワークに接続する網終端装置または無線通信装置と、それに接続するシリアルインタフェースまたはLAN(Local Area Network)インタフェースから構成されている。送受信部16は、図1に示す各装置からネットワークを介して送信されたデータ等を受信する。また、送受信部16は、受信したデータ等を、制御部11に供給する。
【0053】
外部記憶部13は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random−Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成され、後述する各処理を制御部11に行わせるためのプログラム19を予め記憶し、また、制御部11の指示に従って、外部記憶部13が記憶するデータを制御部11に供給し、制御部11から供給されたデータを記憶する。
【0054】
主記憶部12は、RAM(Random−Access Memory)等から構成され、外部記憶部13に記憶されているプログラム19を読み込み、さらに制御部11の作業領域としても使用される。
【0055】
制御部11は、CPU(Central Processing Unit)等から構成され、外部記憶部13に記憶されているプログラム19に従って、後述する各処理を実行する。
【0056】
操作部14は、キーボードやマウス、操作キーやタッチパネルなどの入力デバイス等と、入力デバイス等を内部バス10に接続するインタフェース装置から構成されている。操作部14は、ユーザの指示を処理する機能を備え、ユーザの操作によって入力されたデータを制御部11に供給する。
【0057】
表示部15は、LCD(Liquid Crystal Display)または有機EL(Electro Luminescence)等から構成されている。表示部15は、各データや情報等を表示する。
【0058】
パケット伝送システム1内の各装置は、必ずしも上述の構成要素を備えている必要は無い。上述のハードウェア構成は一般的な情報処理装置の一例であり、例えば、伝送SW装置200、L2装置500等は操作部14、表示部15を必ずしも備える必要は無い。
【0059】
以上が、パケット伝送システム1を構成する各装置のハードウェア構成である。
【0060】
続いて、サーバ装置100、伝送SW装置200、伝送NWC300の詳細な構成について説明する。
【0061】
サーバ装置100は、図3に示すように、NWC110、仮想スイッチ(以下、仮想SWとする)120、VM130・・・130、記憶部140を備えている。なお、以下の説明でVM130と称する場合、サーバ装置100内の全てのVM130についての説明とする。
【0062】
NWC110は、ネットワークエミュレーション(以下、NWエミュレーションとする)部111、オーバーレイ処理部112、アドレス解決部113、を備え、仮想SW120を介してVM130と接続している。NWC110は、パケットのヘッダを書き換え、また、ネットワークプロトコルに従った処理を実行する。
【0063】
NWエミュレーション部111は、後述する論理マップを基に、パケットのヘッダの書き換え、また、パケットの廃棄等の処理をする。NWエミュレーションとは、あたかもパケットが仮想的なネットワークを通過したかのようにパケットのヘッダを書き換える処理のことである。NWエミュレーション処理の詳細については後述する。
【0064】
オーバーレイ処理部112は、受信したパケットにパケット伝送システム1独自のヘッダを付与して送信、または受信したパケットの独自のヘッダを削除する。この処理によって、各サーバ装置100間はオーバーレイネットワークとなる。なお、本実施形態では、理解を容易にするため、上述のパケット伝送システム1独自のヘッダのことを「オーバーレイヘッダ」と称する。
【0065】
アドレス解決部113は、ARP(Address Resolution Protocol)の処理を実行する。ただし、通常のARP処理とは異なり、NWC110は論理マップを参照して、本来応答すべきノードの代わりに応答する。
【0066】
仮想SW120は、仮想的なスイッチの動作を実現する。すなわち、仮想SW120は、送信されたパケットをヘッダに従ってNWC110又は後述するVM130にパケットを転送する。仮想SW120は、公知の方法で実現される。
【0067】
VM130は、仮想的な機器の動作を実現するものであり、他のコンピュータを模倣する。すなわち、VM130はソフトウェアであり、任意のコンピュータの動作を模倣するプログラムを実行する。各VM130には、ホスト名や、それぞれのVM130を一意の識別できるMACアドレス等が付与されている。このMACアドレスは、パケット伝送システム1内で重複しないものであり、伝送NWC300が発行する。
【0068】
ところで、一つの装置内で仮想的に複数の機器の動作を実現する手法として、ハイパーバイザと呼ばれるものがある。ハイパーバイザとは、すなわち制御プログラムのことである。例えば、図4に示すように、まずハードウェアリソース上でハイパーバイザが起動し、ハイパーバイザの上位でホストOSやゲストOSが起動する。複数のゲストOSを起動させることで、仮想的な複数の機器(VM)の動作を実現することができる。なお、本実施形態に係るサーバ装置100ではハイパーバイザを採用するが、仮想的に複数の機器の動作を実現できればこれに限定されない。
【0069】
なお、NWC110、仮想SW120及びVM130は、プログラム19により提供され、制御部11及び主記憶部12が協働して動作することで実現される機能部である。
【0070】
図3に戻り、記憶部140は、DB400から取得したデータを記憶する。記憶部140は、自装置が属している論理マップと、自装置のVM130の情報(属する論理マップの情報、ホスト名、割り当てるリソース等)、自装置に関する情報等を記憶している。
【0071】
自装置に関する情報とは、自装置のMACアドレスや、隣接する伝送SW装置200の識別子等の情報である。本実施形態では、伝送SW装置200に、物理的なMACアドレスの他に、パケット伝送システム1内で伝送SW装置200を一意に識別する識別子を付与する。この識別子は、伝送NWC300がMACアドレス形式で発行する。本実施形態では、物理的なMACアドレスと区別するため、上述の識別子を「識別MACアドレス」と称する。なお、サーバ装置100においても、上述のように識別子を付与しても良い。
【0072】
伝送SW装置200は、伝送ルール記憶部210と、パケット転送部220と、を備えている。
【0073】
伝送ルール記憶部210は、伝送NWC300から送信された伝送ルールを記憶するものであり、データベースの形態でも良い。
【0074】
パケット転送部220は、伝送ルール記憶部210に記憶された伝送ルールとパケットのヘッダ情報を基に転送先ノードを求め、求めた転送先ノードにパケットを転送する。
【0075】
なお、伝送ルール記憶部210、パケット転送部220は、プログラム19により提供され、制御部11及び主記憶部12が協働して動作することで実現される機能部である。
【0076】
伝送NWC300は、データ生成部310と、データ送信部320と、を備えている。
【0077】
データ生成部310は、伝送ルール等の各種データを生成し、データ送信部320は、生成した各種データを伝送SW装置200やDB400に送信する。なお、データ生成部310は、自動的に各種データを生成しても良く、ユーザの指示に従って各種データを生成しても良い。
【0078】
なお、データ生成部310及びデータ送信部320は、プログラム19により提供され、制御部11及び主記憶部12が協働して動作することで実現される機能部である。
【0079】
また、伝送NWC300はサーバ装置100内のNWC110と同等の機能も有している。本実施形態に係るパケット伝送システム1では、伝送NWC300のパケットに係る処理の負荷を分散するため、各サーバ装置100にNWC110を配置している。
【0080】
以上が、サーバ装置100、伝送SW装置200、伝送NWC300の詳細な構成である。
【0081】
続いて、論理マップについて説明する。
【0082】
本実施形態に係るパケット伝送システム1では、論理マップという概念を採用する。論理マップとは、図5に示すような、仮想的に構築したネットワークのことであり、作業者は、作業PC900を使用して論理マップを作成し、DB400は作成した論理マップをテーブル情報として記憶する。
【0083】
例えば、作業者が図5に示すような論理マップを作成した場合、Region1は、アクセス回線網からHost1、2までの経路に、複数のL2SW(L2スイッチ)と、FW(Fire Wall)と、L3(ルータ等)と、が配置されているネットワーク構成を表している。また、スーパノードは、DHCP(Dynamic Host Configuration Protocol)、DNS(Domain Name System)、NTP(Network Time Protocol)等の機能を有するノードを意味している。
【0084】
同様に、Region2は、アクセス回線網からHost3、4までの経路に、複数のL2SWと、FWと、LB(ロードバランサ、負荷分散装置)と、が配置されているネットワーク構成を表している。
【0085】
作業者は、作業PC900を用いて、例えばGUI(Graphical User Interface)を使用してこのような論理マップを作成するが、GUIに限られず、ファイルに記述する等して論理マップを作成しても良い。また、作業者は、複数のシステム領域を一つの論理マップとして作成して一度にDB400に記憶させても良く、複数の論理マップを随時作成してDB400に記憶させても良い。
【0086】
このようにして作成された論理マップは、例えば、図6に示すようにテーブル化されてDB400に記憶される。なお、テーブルの形式はこれに限られず、論理マップの構成が維持できる形式であれば任意である。
【0087】
論理マップは、NWエミュレーションを実行する際に使用される。すなわち、サーバ装置100のNWエミュレーション部111が、論理マップを基にNWエミュレーションを実行する。例えば、図5に示すRegion1を基にNWエミュレーションを実行した場合、パケットは、あたかもFWやルータを通過したようにHost1又はHost2に送信される。なお、Host1、2は、サーバ装置100のVM130のことである。
【0088】
ここで、図5のRegion1に示すHost2がサーバ装置100AのVM130Aを示しているとする。サーバ装置100Aがアクセス回線網からパケットを受信した場合、また、VM130Aがアクセス回線網にパケットを送信する場合、サーバ装置100AのNWエミュレーション部111によって、パケットは、仮想的に「アクセス回線網〜L2SW1〜FW1〜L2SW2〜L3〜L2SW3〜Host2」、という経路を通過することとなる。
【0089】
DB400は、論理マップと共に、その論理マップが更新された日時を記憶する。各サーバ装置100のNWC110は、定期的にDB400に記憶されている論理マップの更新日時を参照し、自装置に関する論理マップが更新されている場合、更新された論理マップを記憶部140に記憶する。
【0090】
各サーバ装置100は、自装置に関する論理マップのみを記憶していれば良く、全ての論理マップについて記憶している必要は無い。すなわち、Host1が属するサーバ装置100は、Region1に関する論理マップのみを記憶していればよく、Host3が属するサーバ装置100は、Region2に関する論理マップを記憶していれば良い。なお、各サーバ装置100は、複数の論理マップを記憶することも可能である。
【0091】
以上が、パケット伝送システム1の論理マップについての説明である。
【0092】
続いて、サーバ装置100間のオーバーレイネットワークについて説明する。
【0093】
本実施形態に係るパケット伝送システム1では、サーバ装置100間の通信を容易にするため、図7に示すように、各サーバ装置100間にオーバーレイネットワークを構築している。
【0094】
この場合、例えば、サーバ装置100A内のVM130Aが、サーバ装置100B内のVM130BにパケットAを送信すると、まずNWC110AがパケットAを受信する。このとき、VM130Aは、送信パケットAの送信元MACアドレスをVM130AのMACアドレス、送信先MACアドレスを論理マップ上に存在するVM130Aと隣接するノードのMACアドレス、として送信する。
【0095】
NWC110AがパケットAを受信すると、NWエミュレーション部111がNWエミュレーション処理を実行した後、オーバーレイ処理部112Aは、パケットAにオーバーレイヘッダを付与し、パケットBを生成する。本実施形態では、オーバーレイヘッダの構成は、TCP(Transmission Control Protocol)ヘッダ、IP(Internet Protocol)ヘッダ、Ethernet(登録商標)ヘッダからなるが、これに限られず、パケット伝送システム1内で整合性が取れれば任意である。
【0096】
オーバーレイヘッダの各パラメータは、各サーバ装置100間で整合性が取れていれば任意である。本実施形態に係るオーバーレイ処理部112は、TCPヘッダの送信先・送信元ポート、IPヘッダの送信先・送信元アドレスを一律で0とし、Ethernet(登録商標)ヘッダの送信元MACアドレスを最後に通過する伝送SW装置200(図7の場合、伝送SW装置200)の識別MACアドレス、送信先MACアドレスを送信先のサーバ装置100BのMACアドレスとする。なお、オーバーレイ処理部112は、記憶部140やDB400等を参照することで、ネットワーク上で隣接していない装置の送信先・送信元のMACアドレスを認識することができる。送信先サーバ装置100のMACアドレスは、物理的なMACアドレスでも良く、上述の識別MACアドレスでも良い。
【0097】
なお、MACアドレス以外の各パラメータの情報は、記憶部140が記憶していても良く、ハードコーディングしても良い。
【0098】
オーバーレイ処理部112AがパケットBを送信すると、各伝送SW装置200は、オーバーレイヘッダの情報、及び伝送ルールを基に、パケットBを転送する。このとき、伝送SW装置200は、送信先IPアドレスや送信先ポートは参照せず、パケットBの送信先、送信元MACアドレスを基に、パケットBを転送する。
【0099】
サーバ装置100BがパケットBを受信すると、オーバーレイ処理部112Bは、付与されたオーバーレイヘッダを削除し、元の送信パケットAを取得する。
【0100】
そして、オーバーレイ処理部112Bが取得した送信パケットAをVM130Bに出力することで、サーバ装置100A、100B間の通信が可能となる。
【0101】
ところで、上述で説明した通り、伝送SW装置200は、伝送NWC300から設定された伝送ルールに従ってパケットを転送する。本来、伝送ルールは、各サーバ装置100が有するVM130の数の分だけ、伝送SW装置200に適用しておく必要がある。このため、サーバ装置100やVM130の増加に従って、伝送ルールの数も増えてしまう。
【0102】
例えば、各サーバ装置100が有するVM130がN個ある場合、N個が相互に通信可能となるエントリが必要となるため、伝送ルール数は、最低でもN×Nのエントリ数が必要となる。仮に1万個のVM130をパケット伝送システム1内に配置した場合、各伝送SW装置200が保持する伝送ルール数は最低でも1億となり、メモリの制限や、公知のルール検索方法(線形検索やハッシュ検索)を考慮すると、非現実的な値となる。
【0103】
また、通常、伝送ルールは、送信先IPアドレスや、送信先ポート番号等、様々な条件(12tuple)を組み合わせて作成するものであるため、伝送ルール数はN×N以上の数になるのが一般的である。しかしながら本実施形態では、サーバ装置100間にオーバーレイネットワークを構築しているため、IPアドレスやポート番号を参照する必要は無く、サーバ装置100間の通信の場合はMACアドレスのみ参照すれば良い。つまり、ほとんどの場合、各サーバ装置100のMACアドレスを組み合わせて伝送ルールを作成すれば正常にパケットを転送することができる。すなわち、サーバ装置100間にオーバーレイネットワークを構築することで、伝送ルールの数は大幅に減少することとなる。
【0104】
以上が、サーバ装置100間のオーバーレイネットワークについての説明である。
【0105】
続いて、サーバ装置100がパケットを送信する際の動作の一例について、図面を参照して説明する。以下の説明では、サーバ装置100のVM130が、他ノードにパケットを送信する際の動作について説明する。
【0106】
まず、図8に示すように、サーバ装置100のVM130がパケットを送信すると(S101)、仮想SW120を介してパケットをNWC110に転送する。なお、上述の通り、VM130は、パケットを送信する際、送信先MACアドレスを、論理マップ上で隣接するノードのMACアドレスを設定する。
【0107】
NWC110は、VM130が送信したパケットを受信すると、NWエミュレーション部111が記憶部140に記憶されている論理マップを基に、NWエミュレーション処理を実施する(S102)。NWエミュレーション処理の詳細は後述する。なお、送信パケットは、NWエミュレーション処理によって廃棄される場合がある(例えば、FWルールが適用された場合)。
【0108】
次に、NWC110は、送信パケットの送信先を判別する。まず、NWC110は、送信パケットのヘッダを参照し、送信パケットがARP要求であるか否か、また、DHCPのパケットであるか否か等、すなわち、パケットが上位アプリケーション向けであるか否かを判別する(S103)。なお、送信パケットがARP要求パケットである場合、パケットのEthernet(登録商標)ヘッダのTypeフィールドは0x0806である。NWC110は、このように、ヘッダの値を参照してパケットの種類を判別する。
【0109】
パケットが上位アプリケーション向けである場合(S103;YES)、NWC110は、上述のように、パケットがARPパケットであるか否かを判別する(S104)。
【0110】
パケットがARPパケットで無い場合(S104;NO)、NWC110は、送信パケットに従った上位アプリケーションの処理(DHCP等)を実施し、送信元のVM130に仮想SW120を介して応答し(S105)、処理を終了する。
【0111】
パケットがARPパケットである場合(S104;YES)、アドレス解決部113は、アドレス解決処理を実施し(S106)、処理を終了する。なお、詳細なアドレス解決処理については、後述する。
【0112】
パケットが上位アプリケーション向けでは無い場合(S103;NO)、NWC110は、記憶部140が記憶している論理マップを参照し、送信先MACアドレスが同一サーバ装置100の他のVM130であるか否か、すなわち、パケットが同一サーバ向けか否かを判別する(S107)。
【0113】
ここで、論理マップは、上述で説明したように、同一仮想システム内に存在しているVM130の情報(ホスト名等、図6参照)を有している。さらに記憶部140は、自装置のVM130の情報を記憶している。つまり、送信先MACアドレスを基に論理マップからホスト名を取得し、取得したホスト名が自装置情報に記憶されている場合、NWC110は、同一サーバ向けのパケットであると判別する。なお、MACアドレスを基に判別しても良い。
【0114】
パケットが同一サーバ向けの場合(S107;YES)、NWC110は、仮想SW120を介して送信先のVM130にパケットを送信し(S108)、処理を終了する。
【0115】
パケットが同一サーバ向けでは無い場合(S107;NO)、NWC110は、再度論理マップを参照し、送信先MACアドレスがアクセス回線網のMACアドレスか否か、すなわち、パケットがアクセス回線網向けか否かを判別する(S109)。
【0116】
パケットがアクセス回線網向けの場合(S109;YES)、NWC110は、仮想SW120を介して伝送SW装置200にパケットを送信し(S110)、処理を終了する。そして、パケットを受信した伝送SW装置200は、伝送ルールを基に、GW装置700を介して、パケットをアクセス回線網800へと転送することとなる。
【0117】
パケットがアクセス回線網向けでは無い場合(S109;NO)、パケットが他のサーバ装置100向けであるということになるため、オーバーレイ処理部112は、オーバーレイ処理を実行し(S111)、パケットを送信して処理を終了する。なお、詳細なオーバーレイ処理については後述する。
【0118】
以上が、サーバ装置100がパケットを送信する際の動作の一例である。
【0119】
続いて、NWエミュレーション部111のNWエミュレーション処理(図8、ステップS102)の一例について説明する。
【0120】
NWエミュレーション部111は、NWエミュレーション処理を実行すると、図9に示すように、記憶部140から論理マップを取得する(S201)。
【0121】
NWエミュレーション部111は、取得した論理マップ、またはパケットが経由した仮想SW120のポート情報、もしくはパケットの送信元MACアドレス等から、パケットを送信したホスト(VM130)、またはアクセス回線網を判別する(S202)。例えば、パケットが、仮想SW120のポート5を経由したパケットであり、仮想SW120のポート5がVM130Eと接続していれば、NWエミュレーション部111は、VM130Eがパケットを送信したと判別することができる。この処理によって、NWエミュレーション部111は、論理マップ上でのスタート地点を判別することができる。
【0122】
次にNWエミュレーション部111は、論理マップを基に、パケットが論理マップ上でFWを通過するか否かを判別する(S203)。
【0123】
パケットが論理マップ上でFWを通過する場合(S203;YES)、NWエミュレーション部111は、論理マップを基に、パケットにFW情報を適用する(S204)。例えば、FW情報が、「送信先ポート番号が8080のパケットは全て廃棄」というルールである場合、NWエミュレーション部111は、パケットがこのルールと一致するか否かを判別する。
【0124】
NWエミュレーション部111は、上述のようにパケットが通過可能か否かを判別し(S205)、通過不可である場合(S205;NO)、パケットを廃棄し(S206)、処理を終了する。例えば、上述の例の場合、パケットの送信先ポート番号が8080の場合、パケットは、廃棄されることとなる。
【0125】
パケットが通過可能である場合(S205;YES)、また、パケットが論理マップ上でFWを通過しない場合(S203;NO)、NWエミュレーション部111は、パケットが論理マップ上でL3を通過するか否かを判別する(S207)。
【0126】
パケットが論理マップ上でL3を通過する場合(S207;YES)、NWエミュレーション部111は、論理マップを基に、パケットにルーティング情報を適用する(S208)。例えば、ルーティング情報が、「送信先IPアドレスA.B.C.Dの場合、IPアドレスE.F.G.Hの装置に転送」というルールである場合、NWエミュレーション部111は、パケットがこのルールと一致するか否かを判別する。
【0127】
仮に、パケットの送信先IPアドレスが、全てのルーティング情報と一致しない場合、NWエミュレーション部111は、送信元のノード(VM130やアクセス回線網)にICMP(Internet Control Message Protocol)Destination Unreachableを送信する等の処理をする。
【0128】
パケットが論理マップ上でL3を通過しない場合(S207;NO)、また、L3の処理を実行した後、NWエミュレーション部111は、パケットが論理マップ上でLBを通過するか否か判別する(S209)。
【0129】
パケットが論理マップ上でLBを通過する場合(S209;YES)、NWエミュレーション部111は、論理マップを基に、パケットにLB情報を適用する(S210)。例えば、LB情報が「ポート80番のパケットはIPアドレスA.B.C.Dに振り分ける」というルールである場合、NWエミュレーション部111は、パケットがこのルールと一致するか否かを判別する。
【0130】
仮に、パケットの送信先ポート番号が80番である場合、NWエミュレーション部111は、送信先IPアドレスをA.B.C.Dに書き換え、次の処理に進む。また、パケットが全てのLB情報と一致しない場合、NWエミュレーション部111は、送信元のノードにICMPを送信する等の処理をする。
【0131】
パケットが論理マップ上でLBを通過しない場合(S209;NO)、また、LBの処理を実行した後、NWエミュレーション部111は、パケットが論理マップ上で送信先のノードに到着したか否か判別する(S211)。
【0132】
パケットが論理マップ上で送信先のノードに到着した場合(S211;YES)、NWエミュレーション部111は、処理を終了する。パケットが論理マップ上で送信先のノードに到着していない場合、NWエミュレーション部111は、ステップS203に戻り、再度処理を続ける。
【0133】
上述では、NWエミュレーション部111の処理の一例について説明したが、処理内容はこれに限定されず、論理マップに基づいてパケットをエミュレーションできれば任意である。論理マップを作成するにあたり、FWやLB以外にもVPN(Virtual Private Network)等のネットワーク装置を論理マップに配置することも考えられる。この場合、NWエミュレーション部111は、各ネットワーク装置に従った処理を実行することとなる。
【0134】
以上が、NWエミュレーション部111のNWエミュレーション処理の一例である。
【0135】
続いて、オーバーレイ処理部112のオーバーレイ処理(図8、ステップS111)の一例について説明する。
【0136】
オーバーレイ処理部112は、オーバーレイ処理を開始すると、図10に示すように、自装置発のパケットであるか否かを判別する(S301)。
【0137】
パケットが自装置発のパケット、すなわち、送信するパケットである場合(S301;YES)、オーバーレイ処理部112は、送信元ポート番号が0、送信先ポート番号が0、その他のフィールドが任意であるTCPヘッダを生成する(S302)。なお、その他のフィールドは、通信に影響を与えない値とする。
【0138】
オーバーレイ処理部112は、TCPヘッダを生成した後、送信パケットにTCPヘッダを付与し(S303)、送信元IPアドレスが全て0、送信先IPアドレスが全て0、TOS(Type Of Service)が0、プロトコルが6(TCP)、その他のフィールドが任意であるIPヘッダを生成する(S304)。なお、その他のフィールドは、通信に影響を与えない値とする。
【0139】
オーバーレイ処理部112は、生成したIPヘッダを送信パケットに付与し(S305)、記憶部140に記憶されている情報を基に、送信元MACアドレスが送信先ノードと隣接する伝送SW装置200の識別MACアドレス、送信先MACアドレスが送信先サーバ装置100のMACアドレス、Ether Typeが0x0800(IP)であるEthernet(登録商標)ヘッダを生成する(S306)。
【0140】
オーバーレイ処理部112は、生成したEthernet(登録商標)ヘッダを送信パケットに付与し(S307)、オーバーレイヘッダを付与した送信パケットを、仮想SW120を介して伝送SW装置200に送信し(S308)、処理を終了する。
【0141】
オーバーレイ処理部112は、ステップS301での判別の際、上述までで説明したようなオーバーレイヘッダが付与されているパケットの場合は受信パケット、付与されていない場合は送信パケット、と判別することができる。例えば、IPヘッダの送信元アドレスが0のパケットの場合はオーバーレイヘッダが付与されたパケットである、と判別することができる。
【0142】
オーバーレイ処理部112は、自装置発のパケットではない、すなわち、オーバーレイヘッダが付与されたパケットを受信したと判別した場合(S301;NO)、受信パケットから、Ethernet(登録商標)ヘッダを削除し(S311)、IPヘッダを削除し(S312)、TCPヘッダを削除(S313)、すなわち、オーバーレイヘッダを削除する。
【0143】
そして、オーバーレイ処理部112は、元のパケットのヘッダを参照し、本来の転送先へパケットを転送する(S314)。
【0144】
上述では、オーバーレイ処理部112の処理の一例について説明したが、処理内容や生成するオーバーレイヘッダの内容はこれに限定されず、サーバ装置100間でオーバーレイネットワークを構築でき、パケット伝送システム1内の各装置が認識できる形態であれば、任意である。
【0145】
以上が、オーバーレイ処理部112のオーバーレイ処理の一例である。
【0146】
続いて、アドレス解決部113のアドレス解決処理(図8、ステップS106)の一例について説明する。
【0147】
アドレス解決部113は、アドレス解決処理を開始すると、図11に示すように、記憶部140から論理マップを取得する(S401)。
【0148】
アドレス解決部113は、ARP要求パケットの送信先IPアドレス、すなわち、MACアドレスを知りたいノードのIPアドレスが、論理マップ上に存在するか否かを判別する(S402)。
【0149】
ARP要求パケットの送信先IPアドレスが論理マップ上に存在しない場合(S402;NO)、アドレス解決部113は、DB400を参照して最新の論理マップを更新する(S403)。アドレス解決部113は、再度ARP要求パケットの送信先IPアドレスが論理マップ上に存在するか否かを判別し(S404)、最新の論理マップでも存在しない場合(S404;NO)、処理を終了する。
【0150】
ARP要求パケットの送信先IPアドレスが論理マップ上に存在する場合(S402;YES、S404;YES)、アドレス解決部113は、論理マップを基に、ARP応答を返送するべきノードを判別する(S405)。
【0151】
アドレス解決部113は、論理マップを基に、ARP応答パケットを生成し(S406)、あたかもARP要求先のノードが応答したように、ARP要求パケットを送信したVM130にARP応答パケットを送信し(S407)、処理を終了する。
【0152】
上述では、アドレス解決部113の処理の一例について説明したが、処理内容はこれに限定されず、同一サーバ装置100上のVM130からのARP要求を、同一サーバ装置100上のアドレス解決部113が処理できれば任意である。
【0153】
以上が、アドレス解決部113のアドレス解決処理の一例である。
【0154】
続いて、サーバ装置100がパケットを受信する際の動作の一例について、図面を参照して説明する。以下の説明では、サーバ装置100が、他装置からパケットを受信した際の動作の一例について説明する。
【0155】
まず、図12に示すように、サーバ装置100がパケットを受信すると(S501)、仮想SW120を介してNWC110がパケットを受信し、NWC110は、受信パケットがオーバーレイパケットであるか否かを判別する(S502)。
【0156】
受信パケットがオーバーレイパケットである場合(S502;YES)、オーバーレイ処理部112は、オーバーレイ処理を実行し(S503)、処理を終了する。この場合のオーバーレイ処理は、例えば、図10のステップS311からステップS314までの処理となる。
【0157】
次に、NWC110は、受信パケットがアクセス回線網からのパケットか否かを判別する(S504)。
【0158】
受信パケットがアクセス回線網からのパケットである場合(S504;YES)、NWエミュレーション部111は、論理マップを基に、NWエミュレーション処理を実行する(S505)。ここでの処理は、上述で説明した図9に示すNWエミュレーション処理と同様である。
【0159】
そして、NWC110は、受信パケットが同一サーバ向けか否かを判別する(S506)。この判別方法は、上述で説明した図8のステップS107での判別方法と同様である。
【0160】
受信パケットが同一サーバ向けである場合(S506;YES)、NWC110は、仮想SW120を介して送信先のVM130にパケットを送信し(S507)、処理を終了する。
【0161】
受信パケットが同一サーバ向けでない場合(S506;NO)、オーバーレイ処理部112は、オーバーレイ処理を実施し(S508)、受信パケットを伝送SW装置200に転送して処理を終了する。この場合、受信パケットは、オーバーレイネットワークを介して別サーバ装置100に転送されることとなる。
【0162】
受信パケットがアクセス回線網からのパケットでは無い場合(S504;NO)、NWC110は処理を終了する。
【0163】
以上が、サーバ装置100が、他装置からパケットを受信した際の動作の一例である。
【0164】
続いて、理解を容易にするために、パケット伝送システム1に係るパケットの経路について図面を参照して説明する。
【0165】
VM130間で通信をする場合、図13の実線で示すように、パケットの経路は、「VM130A〜NWC110A〜複数の伝送SW装置200〜NWC110B〜VM130B」となる。なお、上述で説明した通り、サーバ装置100Aとサーバ装置100B間はオーバーレイネットワークとなっている。また、VM130A、130Bと、NWC110A、110Bとは、仮想SW120を介して接続している。
【0166】
同一サーバ装置100内でVM130とNWC110とが通信する場合、パケットの経路は、破線で示すように、仮想SW120を介して同一サーバ装置100内で完結する。
【0167】
VM130とアクセス回線網のノードとが通信する場合、一点鎖線で示すように、パケットの経路は、「VM130〜NWC110〜複数の伝送SW装置200〜GW装置700〜アクセス回線網800」となる。なお、アクセス回線網800から受信したパケット、また、アクセス回線網800に送信するパケットについては、オーバーレイネットワークを介さずに送信する。
【0168】
以上が、パケット伝送システム1に係るパケットの経路についての説明である。
【0169】
以上説明したように、本実施形態に係るパケット伝送システム1によれば、パケット伝送システム1内に複数配置している各サーバ装置100がNWC110を有しているため、伝送NWC300の負荷を軽減することができ、さらに、各NWC110の負荷も分散することができる。
【0170】
また、同一サーバ装置100内に、ホスト(VM130)とNWCが属しているため、ホスト−NWC間の通信帯域の制限が実質的に無くなる。すなわち、ホスト−NWC間で通信が輻輳することは無い。
【0171】
また、ホストから送信されたARP要求は、同一サーバ装置100内のNWCが処理するため、パケット伝送システム1内に大規模な数のホスト(VM)を配置した場合でも、システム内でARPパケットが氾濫することは無くなり、各伝送SW装置200の負荷を軽減することができる。
【0172】
また、各サーバ装置100間でオーバーレイネットワークを構築しているため、伝送SW装置200が保持する伝送ルールは、オーバーレイネットワークに従った伝送ルールを保持していれば良い。すなわち、オーバーレイネットワークを適用した本実施形態に係る伝送ルール数は、オーバーレイネットワークを適用しない通常の伝送ルール数(12tupleの伝送ルール)と比較すると、大幅に削減することができる。
【0173】
また、伝送NWC300によって複数の伝送SW装置200の設定を投入することができるため、容易に伝送SW装置200を増設することができる。
【0174】
(変形例)
本発明は、上記実施形態に限定されず、種々の変形例及び応用が可能である。本実施形態に係るパケット伝送システム1は、各装置の障害監視機能も搭載することができる。
【0175】
この場合、各サーバ装置100のNWC110は、自装置のVM130に定期的に監視パケットを送信し、応答がこなかった場合に異常と判断し、DB400の障害監視テーブルを更新する。また、各サーバ装置100のNWC110は、定期的にDB400の障害監視テーブルを更新する。
【0176】
マスター装置600は、DB400の障害監視テーブルを定期的に参照し、異常と判断されているVM130がある場合、また、一定期間以上更新していないNWC110がある場合、管理者等にこれらの障害の情報を通知する。
【0177】
このようにして、パケット伝送システム1における障害監視を実現することができる。
【0178】
また、NWエミュレーション部111は、LBの処理を実行した際、パケットの送信先アドレスを書き換える。例えば、その後、送信先アドレスを書き換えたサーバ装置100とは別のサーバ装置100が送信したパケットに対する応答を受信した場合、NATの戻りパケットとして、送信元アドレスを書き換える必要があるが、どのアドレスに書き換えれば良いか不明となってしまう。
【0179】
このような問題を避けるため、本実施形態に係るパケット伝送システム1では、例えばNAT情報のような各サーバ装置100間で共有しておく必要がある情報を、オーバーレイネットワークを介して送受信することも可能である。この場合、各サーバ装置100は、オーバーレイパケットにその情報を含めて送信し、受信したサーバ装置100はその情報を記憶部140に記憶する。
【0180】
また、DB400に各種共有情報を記憶させることも可能である。この場合、各サーバ装置100は、随時DB400を参照し、共有情報を自装置の記憶部140に記憶し、または処理時に随時DB400を参照する。
【0181】
本実施形態に係るパケット伝送システム1では、上述で説明したオーバーレイネットワークを構築することで、伝送SW装置200が保持する伝送ルールの大幅な削減を実現しているが、これに限られず、MPLS(Multi−Protocol Label Switching)技術を適用することも可能である。
【0182】
この場合、サーバ装置100は、パケット送信時にラベルヘッダと呼ばれる識別子を付与して送信し、伝送SW装置200は、受信したパケットのラベルヘッダを基に、保持しているラベルテーブル(ラベル情報と転送先ノードの情報とを関連付けているテーブル)に従ってパケットのルーティングを行う。すなわち、サーバ装置100のオーバーレイ処理部112は、ラベルヘッダの付与・削除の処理を実施し、伝送SW装置200の伝送ルール記憶部210は、ラベル情報と転送先ノードとの情報を関連付けた伝送ルールを記憶する。このような構成を採用しても、サーバ装置100の数に比例した数の伝送ルールを伝送SW装置200に記憶させる必要がなくなり、伝送SW装置200が保持する伝送ルールの大幅な削減を実現することができる。
【0183】
また、上記実施形態では、複数の装置によって構成されるパケット伝送システム1について説明したが、これに限られず、複数の装置を物理的に一つの装置で実現しても良い。
【0184】
また、本実施形態に係るパケット伝送システム1を構成する各装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、上述の動作を実行するためのプログラム19を、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、このプログラム19をコンピュータにインストールすることにより、上述の処理を実行するパケット伝送システム1を構成する各装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置にこのプログラム19を格納しておき、通常のコンピュータシステムがダウンロード等することでパケット伝送システム1を構成する各装置を構成してもよい。
【0185】
また、パケット伝送システム1を構成する各装置の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【0186】
また、搬送波にプログラム19を重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)にこのプログラム19を掲示し、ネットワークを介してプログラム19を配信してもよい。そして、このプログラム19を起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【0187】
なお、本発明は、本発明の広義の趣旨及び範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【0188】
1 パケット伝送システム
100 サーバ装置
110 NWC
111 NWエミュレーション部
112 オーバーレイ処理部
113 アドレス解決部
200 伝送SW装置
300 伝送NWC
400 DB
500 L2装置
600 マスター装置
700 GW装置
800 アクセス回線網
1100 制御装置
1200 スイッチ装置
1300 サーバ
10 内部バス
11 制御部
12 主記憶部
13 外部記憶部
14 操作部
15 表示部
16 送受信部
19 プログラム

【特許請求の範囲】
【請求項1】
ノードからパケットを受信し、前記受信パケットのヘッダに基づいたノードに前記受信パケットを転送する仮想スイッチ手段と、
前記仮想スイッチ手段から自己宛にパケットが転送されてきた場合に、前記パケットを受信し、前記受信パケットのヘッダに従って、前記受信パケットのヘッダを書き換える、また、ネットワークプロトコルに従った処理を実行するネットワーク制御手段と、
仮想的に構築されたネットワークの情報を記憶する記憶手段と、を備え、
前記ネットワーク制御手段は、
前記記憶手段に記憶されたネットワークの情報を基に、前記仮想的に構築されたネットワーク上で、前記受信パケットを模擬的に通過させるエミュレーション手段と、
前記受信パケットに自装置が属するシステム独自のヘッダが付与されている場合、前記独自のヘッダを削除し、前記受信パケットに前記独自のヘッダが付与されていない場合、前記独自のヘッダを付与するオーバーレイ処理手段と、
前記受信パケットがノードに対するアドレス要求パケットである場合に、前記記憶手段に記憶されたネットワークの情報を基に、前記アドレス要求パケットを送信したノードにアドレス応答パケットを返送するアドレス解決手段と、を備える、
ことを特徴とするサーバ装置。
【請求項2】
前記エミュレーション手段は、前記記憶手段に記憶されたネットワークの情報を基に、前記受信パケットが仮想的に構築されたネットワーク上に配置されているノードを通過するか否かを判別し、通過すると判別した場合、該ネットワークノードに相当する処理を前記受信パケットに適用する、
ことを特徴とする請求項1に記載のサーバ装置。
【請求項3】
前記オーバーレイ処理手段は、前記受信パケットに前記独自のヘッダを付与する場合、前記記憶手段に記憶されたネットワークの情報を基に、前記受信パケットに、送信先MAC(Media Access Control)アドレスが送信先ノードのMACアドレスであり、送信元MACアドレスが送信先ノードと隣接するノードを一意に識別する識別子を示すMACアドレスであるEthernet(登録商標)ヘッダを付与する、
ことを特徴とする請求項1又は2に記載のサーバ装置。
【請求項4】
前記アドレス解決手段は、前記アドレス要求パケットと前記記憶手段に記憶されたネットワークの情報を基に、アドレス要求先のノードを判別し、アドレス要求先のノードのMACアドレスを含めたアドレス応答パケットをアドレス要求元のノードに返送する、
ことを特徴とする請求項1乃至3のいずれか1項に記載のサーバ装置。
【請求項5】
前記オーバーレイ処理手段は、前記受信パケットに前記独自のヘッダを付与する場合、送信先及び送信元MACアドレスの値以外で、通信に影響を与えない部分以外は0としたTCP(Transmission Control Protocol)ヘッダ、IP(Internet Protocol)ヘッダ、Ethernet(登録商標)ヘッダを付与する、
ことを特徴とする請求項1乃至4のいずれか1項に記載のサーバ装置。
【請求項6】
任意のコンピュータの動作を模倣することで仮想的な機器の動作を実現する複数の仮想機器をさらに備え、
前記仮想機器は、パケットを送信する場合、送信先MACアドレスが前記仮想的に構築されたネットワーク上で隣接するノードのMACアドレスであるEthernet(登録商標)ヘッダを付与したパケットを送信する、
ことを特徴とする請求項1乃至5のいずれか1項に記載のサーバ装置。
【請求項7】
前記記憶手段は、自サーバ装置が有する前記複数の仮想機器の情報をさらに記憶し、
前記ネットワーク制御手段は、前記記憶手段に記憶された前記ネットワークの情報を基に、前記受信パケットの送信元又は送信先ノードのホスト名を取得し、前記取得した送信先ノードのホスト名が前記記憶手段に記憶されたか否か判別し、前記送信先ノードのホスト名が記憶されていた場合、前記受信パケットが、自サーバ装置が有する前記仮想機器宛のパケットであると判別し、前記送信先ノードのホスト名が記憶されていない場合、前記受信パケットが、他の前記サーバ装置が有する前記仮想機器宛のパケットであると判別する、
ことを特徴とする請求項6に記載のサーバ装置。
【請求項8】
パケットを送受信する複数のサーバ装置と、パケットを転送する複数の伝送スイッチ装置と、前記複数の伝送スイッチ装置を制御する伝送ネットワーク制御装置と、を備えるパケット伝送システムであって、
前記サーバ装置と前記伝送スイッチ装置及び前記伝送ネットワーク制御装置は、それぞれネットワークを介して相互に接続され、
前記伝送ネットワーク制御装置は、
パケットのヘッダ情報と転送先ノードの情報とを関連付けた伝送ルールを生成する伝送ルール生成手段と、
前記伝送ルール生成手段に生成された伝送ルールを前記複数の伝送スイッチ装置に送信する伝送ルール送信手段と、を備え、
前記伝送スイッチ装置は、それぞれ、
前記伝送ネットワーク制御装置が送信した前記伝送ルールを受信し、受信した伝送ルールを記憶する伝送ルール記憶手段と、
ノードからパケットを受信し、前記伝送ルール記憶手段に記憶された前記伝送ルールと前記受信パケットのヘッダ情報とに基づいて転送先ノードを求め、求めた転送先ノードに前記受信パケットを転送するパケット転送手段と、を備え、
前記サーバ装置は、それぞれ、
ノードからパケットを受信し、前記受信パケットのヘッダに基づいたノードに前記受信パケットを転送する仮想スイッチ手段と、
前記仮想スイッチ手段から自己宛にパケットが転送されてきた場合に、前記パケットを受信し、前記受信パケットのヘッダに従って、前記受信パケットのヘッダを書き換える、また、ネットワークプロトコルに従った処理を実行するネットワーク制御手段と、を備える、
ことを特徴とするパケット伝送システム。
【請求項9】
前記サーバ装置は、それぞれ、
仮想的に構築されたネットワークの情報を記憶する記憶手段をさらに備え、
前記ネットワーク制御手段は、
前記記憶手段に記憶されたネットワークの情報を基に、前記仮想的に構築されたネットワーク上で、前記受信パケットを模擬的に通過させるエミュレーション手段と、
前記受信パケットに自装置が属するシステム独自のヘッダが付与されている場合、前記独自のヘッダを削除し、前記受信パケットに前記独自のヘッダが付与されていない場合、前記独自のヘッダを付与するオーバーレイ処理手段と、
前記受信パケットがノードに対するアドレス要求パケットである場合に、前記記憶手段に記憶されたネットワークの情報を基に、前記アドレス要求パケットを送信したノードにアドレス応答パケットを返送するアドレス解決手段と、を備える、
ことを特徴とする請求項8に記載のパケット伝送システム。
【請求項10】
前記伝送ルール生成手段は、送信先又は送信元MACアドレスの情報と転送先のノードの情報とを関連付けた伝送ルールを生成し、
前記伝送ルール記憶手段は、前記伝送ルール生成手段が生成した前記伝送ルールを受信し、受信した前記伝送ルールを記憶し、
前記パケット転送手段は、ノードから受信したパケットの送信先又は送信元MACアドレスと前記伝送ルール記憶手段に記憶された伝送ルールとを基に転送先ノードを求め、求めた転送先ノードに前記受信パケットを転送する、
ことを特徴とする請求項8又は9に記載のパケット伝送システム。
【請求項11】
前記パケット伝送システムは、任意のデータを記憶する記憶装置をさらに備え、
前記記憶装置は、前記サーバ装置と前記伝送スイッチ装置及び前記伝送ネットワーク制御装置とそれぞれネットワークを介して相互に接続され、
前記伝送ネットワーク制御装置は、ユーザが仮想的に構築したネットワークの情報を前記記憶装置に記憶する仮想ネットワーク記憶手段をさらに備え、
前記記憶手段は、前記記憶装置から前記仮想的に構築されたネットワークの情報を取得し、取得したネットワークの情報を記憶する、
ことを特徴とする請求項9に記載のパケット伝送システム。
【請求項12】
前記仮想ネットワーク記憶手段は、前記ユーザが仮想的に構築したネットワークの情報を日時と共に前記記憶装置に記憶し、
前記記憶手段は、前記ネットワークの情報を日時と共に記憶し、前記記憶装置から前記ネットワークの情報を取得する場合、前記記憶装置に記憶された前記ネットワークの情報の更新日時と既に記憶している前記ネットワークの情報の更新日時とを比較し、既に記憶している前記ネットワークの情報の更新日時の方が古い場合、前記記憶装置から前記ネットワークの情報を取得し、取得したネットワークの情報を記憶する、
ことを特徴とする請求項11に記載のパケット伝送システム。
【請求項13】
前記アドレス解決手段は、前記記憶手段に記憶されたネットワークの情報を基に、アドレス要求先のノードを判別できない場合、前記記憶装置を参照し、最新の前記ネットワークの情報を取得し、再度アドレス要求先のノードを判別する、
請求項11又は12に記載のパケット伝送システム
【請求項14】
前記記憶装置は、分散データベースである、
ことを特徴とする請求項11又は12に記載のパケット伝送システム。
【請求項15】
パケットを送受信する複数のサーバ装置と、パケットを転送する複数の伝送スイッチ装置と、を備えるパケット伝送システムであって、
前記サーバ装置と前記伝送スイッチ装置はそれぞれネットワークを介して相互に接続され、
前記サーバ装置は、送信先MACアドレスが送信先ノードのMACアドレスであり、送信元MACアドレスが送信先ノードと隣接するノードを一意に識別する識別子を示すMACアドレスであるEthernet(登録商標)ヘッダを付与してパケットを送信し、
前記伝送スイッチ装置は、前記サーバ装置または他の前記伝送スイッチ装置からパケットを受信し、前記受信パケットのEthernet(登録商標)ヘッダの送信元及び送信先MACアドレスと、予め記憶しているパケットのヘッダ情報と転送先ノードの情報とを関連付けた伝送ルールと、を基に転送先ノードを求め、求めた転送先ノードに前記受信パケットを転送する、
ことを特徴とするパケット伝送システム。
【請求項16】
パケットを送受信する複数のサーバ装置と、パケットを転送する複数の伝送スイッチ装置と、前記複数の伝送スイッチ装置を制御する伝送ネットワーク制御装置と、を備え、前記サーバ装置と前記伝送スイッチ装置及び前記伝送ネットワーク制御装置がそれぞれネットワークを介して相互に接続されているシステムでパケットを伝送する方法であって、
前記伝送ネットワーク制御装置がパケットのヘッダ情報と転送先ノードの情報とを関連付けた伝送ルールを生成する伝送ルール生成ステップと、
前記伝送ネットワーク制御装置が前記伝送ルール生成ステップで生成された伝送ルールを前記複数の伝送スイッチ装置に送信する伝送ルール送信ステップと、
前記伝送スイッチ装置が前記伝送ルール送信ステップで送信された前記伝送ルールを受信し、受信した伝送ルールを記憶する伝送ルール記憶ステップと、
前記伝送スイッチ装置がノードからパケットを受信し、前記伝送ルール記憶ステップで記憶された前記伝送ルールと前記受信パケットのヘッダ情報とに基づいて転送先ノードを求め、求めた転送先ノードに前記受信パケットを転送するパケット転送ステップと、
前記サーバ装置がノードからパケットを受信し、前記受信パケットのヘッダに基づいたノードに前記受信パケットを転送する仮想スイッチステップと、
前記サーバ装置が前記仮想スイッチステップで自己宛にパケットが転送された場合に、前記パケットを受信し、前記受信パケットのヘッダに従って、前記受信パケットのヘッダを書き換える、また、ネットワークプロトコルに従った処理を実行するネットワーク制御ステップと、を備える、
ことを特徴とするパケット伝送方法。
【請求項17】
コンピュータを、
ノードからパケットを受信し、前記受信パケットのヘッダに基づいたノードに前記受信パケットを転送する仮想スイッチ手段、
前記仮想スイッチ手段から自己宛にパケットが転送されてきた場合に、前記パケットを受信し、前記受信パケットのヘッダに従って、前記受信パケットのヘッダを書き換える、また、ネットワークプロトコルに従った処理を実行するネットワーク制御手段、
仮想的に構築されたネットワークの情報を記憶する記憶手段、
前記記憶手段に記憶されたネットワークの情報を基に、前記仮想的に構築されたネットワーク上で、前記受信パケットを模擬的に通過させるエミュレーション手段、
前記受信パケットに自装置が属するシステム独自のヘッダが付与されている場合、前記独自のヘッダを削除し、前記受信パケットに前記独自のヘッダが付与されていない場合、前記独自のヘッダを付与するオーバーレイ処理手段、
前記受信パケットがノードに対するアドレス要求パケットである場合に、前記記憶手段に記憶されたネットワークの情報を基に、前記アドレス要求パケットを送信したノードにアドレス応答パケットを返送するアドレス解決手段、として機能させる、
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate