【文献】
西 佑介 Yusuke NISHI,VXLAN通信経路の高速切り替えを実現するマルチキャストツリー集中管理方式 Centralized Multicast Tree Control for rapid VXLAN path failover,電子情報通信学会技術研究報告 Vol.112 No.134 IEICE Technical Report,日本,一般社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2012年 7月,第112巻
(58)【調査した分野】(Int.Cl.,DB名)
前記マルチキャストマッピング情報共有部は、他のパケット転送装置から、自装置側に保持されているマッピング情報と競合するマッピング情報の変更内容の通知を受け取った場合、所定のルールで調停動作を行う請求項2のパケット転送装置。
前記マルチキャストマッピング部は、前記第2のマルチキャストアドレスとして、外部のマルチキャストマッピング管理装置から提供されたマルチキャストアドレスを用いる請求項1のパケット転送装置。
前記マルチキャストマッピング部は、前記マッピング情報と対応付けて、マルチキャストグループへの参加メンバーを管理し、メンバーが存在しなくなったとき、前記マルチキャストマッピング管理装置に対して、マッピング情報の削除を要求する請求項4のパケット転送装置。
基盤ネットワークを論理的に分割した仮想ネットワークを流れるパケットを、前記基盤ネットワークを介して対向するパケット転送装置に到達できるようカプセリングして通信するパケット転送装置において、
前記仮想ネットワークを流れるパケットがマルチキャスト通信のパケットであるか否かを判定するステップと、
前記仮想ネットワークのマルチキャスト通信に関して、前記論理的に分割された仮想ネットワーク側で用いる第1のマルチキャストアドレスに対して、前記基盤ネットワーク内で使用可能なマルチキャストアドレスから使用する第2のマルチキャストアドレスを割り当てて、前記第1のマルチキャストアドレスと第2のマルチキャストアドレスとを対応付けたマッピング情報として記憶するマルチキャストマッピング情報記憶部にて管理するステップと、
前記仮想ネットワークのマルチキャスト通信のパケットに関して、前記第1のマルチキャストアドレスに対応付けられた第2のマルチキャストアドレスを用いてカプセリングを行うステップと、
前記マッピング情報と対応付けて、マルチキャストグループへの参加メンバーを管理するステップと、
前記マッピング情報の中から、マルチキャストグループに参加しているメンバーが重複するマッピング情報を選択して、前記第2のマルチキャストアドレスを共有するよう統合するステップと、
を含む通信方法。
【発明を実施するための形態】
【0024】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【0025】
本発明は、その一実施形態において、
図1に示すように、基盤ネットワークを含む物理ネットワークを論理的に分割した仮想ネットワークを流れるパケットがマルチキャスト通信のパケットであるか否かを判定するマルチキャスト判定部11と、前記論理的に分割された仮想ネットワーク内の第1のマルチキャストアドレスと前記基盤ネットワーク内で使用可能なマルチキャストアドレスから使用する第2のマルチキャストアドレスとの対応関係を記憶するマルチキャストマッピング情報記憶部13と、新規に発生したマルチキャスト通信の第1のマルチキャストアドレスに対して、前記第2のマルチキャストアドレスを割り当てて管理するマルチキャストマッピング部12と、前記仮想ネットワークを流れるパケットを、前記基盤ネットワークを介して対向するパケット転送装置に到達できるようカプセリングするパケットカプセリング部14と、を備えるパケット転送装置1Aにて実現できる。
【0026】
そして、前記パケットカプセリング部14が、マルチキャスト判定部11及びマルチキャストマッピング部12からの指示に基づき、前記仮想ネットワークのマルチキャスト通信のパケットについて、前記第1のマルチキャストアドレスに対応付けられた第2のマルチキャストアドレスを用いてカプセリングを行う。このようにすることで、仮想ネットワークでマルチキャスト通信が基盤ネットワークに流入する際に、第2のマルチキャストアドレスによるカプセリングが行われる。基盤ネットワークにおいては、カプセリングされた第2のマルチキャストアドレスをベースに既存のグループ管理プロトコル等を用いて、グループ管理とこれに基づく転送が行われる。このため、事前設定をしなくとも、適正な範囲にマルチキャストパケットを転送することが可能となり、基盤ネットワークの通信利用効率の向上が達成される。
【0027】
[第1の実施形態]
続いて、本発明の第1の実施形態について、図面を参照して詳細に説明する。
図2は、本発明の第1の実施形態のパケット転送装置の構成を示す図である。
図2を参照すると、マルチキャスト判定部11と、マルチキャストマッピング部12と、マルチキャストマッピング情報記憶部13と、マルチキャストマッピング情報共有部15と、パケットカプセリング部14と、仮想ネットワーク、基盤ネットワークへそれぞれ通信パケットを送受信する仮想ネットワーク用インタフェース18、基盤ネットワーク用インタフェース19とを備えるパケット転送装置が示されている。
【0028】
マルチキャスト判定部11は、仮想ネットワーク用インタフェース18から通信パケットを受信したとき、当該通信パケットがマルチキャストパケット、または、マルチキャスト制御メッセージかどうかを判定する。仮想ネットワーク用インタフェース18から受信した通信パケットが、マルチキャストパケット、または、マルチキャスト制御メッセージである場合、マルチキャスト判定部11は、マルチキャストマッピング部12に対しマルチキャストパケットの情報を送付し、マッピング処理を要求する。このとき、マルチキャストパケットアドレスが、全マルチキャストドメインアドレス(IP version 4では、224.0.0.1)のように特殊用途のアドレスである場合、マルチキャスト判定部11は、ブロードキャストと同様の扱いにし、マッピング処理の要求対象とはしない。マルチキャストパケット、及び、マルチキャスト制御メッセージのいずれでもないと判定されたパケットは、パケットカプセリング部14に転送される。
【0029】
マルチキャストマッピング部12は、マルチキャストパケットのマッピング処理を要求された場合、マルチキャストマッピング情報記憶部13を参照し、該マルチキャストパケットアドレス(第1のマルチキャストアドレス)に対応する基盤ネットワーク用のマルチキャストアドレス(第2のマルチキャストアドレス)を抽出、又は、決定する。
【0030】
マルチキャストマッピング部12は、マルチキャストマッピング情報記憶部13の参照の結果、基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)を抽出できた場合、パケットカプセリング部14に対し、該抽出した基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)でのカプセリングを依頼する。
【0031】
一方、基盤ネットワーク用マルチキャストアドレスを抽出できなかった場合、即ち、マルチキャストアドレスが前述の全マルチキャストドメインアドレス(IP version 4では、224.0.0.1)である場合、マルチキャストマッピング部12は、パケットカプセリング部14に対し、当該仮想ネットワークを構築する際に設定されている基盤ネットワーク用マルチキャストアドレスでのカプセリングを依頼する。
【0032】
また、マルチキャストマッピング部12は、マルチキャスト判定部11、または、パケットカプセリング部14から、マルチキャスト制御メッセージのマッピング処理を要求された場合、その種類に応じて、次のように処理する。
【0033】
まず、マルチキャスト制御メッセージのうち、マルチキャストグループへの加入メッセージに対するマッピング処理を要求された場合、マルチキャストマッピング部12は、マルチキャストマッピング情報記憶部13を参照し、加入マルチキャストアドレスに対応する基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)を抽出する。対応する基盤ネットワーク用マルチキャストアドレスが抽出できた場合、マルチキャストマッピング部12は、パケットカプセリング部14に対し、基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)でのマルチキャスト加入メッセージの送信を依頼する。
【0034】
一方、加入マルチキャストアドレスに対応する制御基盤ネットワーク用マルチキャストアドレスが抽出できなかった場合、マルチキャストマッピング部12は、新たなマルチキャストマッピング情報を決定し、マルチキャストマッピング情報記憶部13へ対応関係を記録する。記録後、マルチキャストマッピング部12は、マルチキャストマッピング情報共有部15に対し、他のパケット転送装置への対応関係通達を依頼し、共有させる。共有処理後、マルチキャストマッピング部12は、パケットカプセリング部14に対し、基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)でのマルチキャスト制御加入メッセージの送信を依頼する。
【0035】
なお、加入マルチキャストアドレスに対応する制御基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)が抽出できなかった場合の新たなマルチキャストマッピング情報の決定方法としては、予め条件、範囲等を設定しておいた使用可能なマルチキャストアドレスの中から未使用マルチキャストアドレスを選択する方法が挙げられる。
【0036】
次に、マルチキャストマッピング部12が、マルチキャスト制御メッセージの確認メッセージに対応するマッピング処理を要求された場合について説明する。マルチキャスト制御メッセージの確認メッセージに対応するマッピング処理を要求された場合、マルチキャストマッピング部12は、マルチキャストマッピング情報記憶部13を参照し、確認マルチキャストアドレスに対応する仮想ネットワーク用マルチキャストアドレスを抽出する。対応する仮想ネットワーク用マルチキャストアドレスが抽出できた場合、マルチキャストマッピング部12は、パケットカプセリング部14に対し、仮想ネットワーク用マルチキャストアドレスでのマルチキャスト確認メッセージの送信を依頼する。送信後、マルチキャストマッピング部12は、マルチキャスト存在確認シーケンスを実行する(後述)。
【0037】
ここで、対応する仮想ネットワーク用マルチキャストアドレスが抽出できない場合であるが、マルチキャストアドレスが全マルチキャストドメインアドレス(IP version 4 では、224.0.0.1)であった場合、パケットカプセリング部14に対し、マルチキャストアドレスを変更せずにマルチキャスト確認メッセージを送信するよう依頼する。送信後、マルチキャストマッピング部12は、全マッピング情報に対して、マルチキャスト存在確認シーケンスを実行する。マルチキャスト存在確認シーケンスでマルチキャストのクライアントの存在が確認できない場合、マルチキャストマッピング部12は、マルチキャストマッピング情報記憶部13から、対応関係を削除する。前記以外で、対応する仮想ネットワーク用マルチキャストアドレスが抽出できない場合、マルチキャストマッピング部12は、該受信マルチキャスト確認メッセージを破棄する。
【0038】
次に、マルチキャストマッピング部12が、マルチキャスト制御メッセージのグループ離脱メッセージに対するマッピング処理を要求された場合について説明する。この場合、マルチキャストマッピング部12は、マルチキャストマッピング情報記憶部13を参照し、離脱マルチキャストアドレスに対応する基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)を抽出する。離脱マルチキャストアドレスに対応する基盤ネットワーク用マルチキャストアドレスが抽出できた場合は、パケットカプセリング部14に対し、基盤ネットワーク用マルチキャストアドレスでのマルチキャスト離脱メッセージの送信を依頼する。
【0039】
マルチキャストマッピング情報記憶部13は、少なくとも、仮想ネットワーク内のマルチキャストアドレス(第1のマルチキャストアドレス)に対応付けられた基盤ネットワークのマルチキャストアドレス(第2のマルチキャストアドレス)との対応関係を示すマッピング情報を記憶する。
図3は、マルチキャストマッピング情報記憶部13に保持されるマッピング情報の例を示す図である。なお、
図3の例では省略されているが、各マルチキャストアドレスの対に、仮想ネットワークID等を対応付けておいてもよい。
【0040】
パケットカプセリング部14は、基盤ネットワークと仮想ネットワーク間を流れるパケットのカプセリング・デカプセリングを行うことで、TEP装置として機能するパケット転送装置より接続された仮想ネットワーク同士を接続する。具体的には、パケットカプセリング部14は、次の処理を行う。
【0041】
パケットカプセリング部14は、マルチキャスト判定部11からマルチキャスト判定でないパケットを受信した場合、指定された宛先に対応するパケット転送装置へ通達可能な通信アドレスを用いてカプセリングする。具体的には、受信パケットがユニキャストパケットである場合、パケットカプセリング部14は、非特許文献1、2の方法と同様に、相手のいるパケット転送装置(厳密にはTEP装置)へのアドレスとの通信としてカプセリングし、基盤ネットワーク用インタフェース19を介して転送する。また、受信パケットがブロードキャストパケット又はUnknownユニキャストパケットである場合、パケットカプセリング部14は、仮想ネットワークの構築に利用したマルチキャストパケットアドレスでカプセリングし、基盤ネットワーク用インタフェース19を介して転送する。
【0042】
また、パケットカプセリング部14は、マルチキャストマッピング部12からマルチキャストパケットのカプセリングを依頼された場合、マルチキャストマッピング部12から指示された基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)を用いてカプセリングし、基盤ネットワーク用インタフェース19を介して転送する。また、マルチキャストマッピング部12から、マルチキャスト制御メッセージの転送を依頼された場合、パケットカプセリング部14は、当該依頼に従いマルチキャスト制御メッセージを作成し、仮想ネットワーク用インタフェース18、または、基盤ネットワーク用インタフェース19を介して通信する。
【0043】
また、パケットカプセリング部14は、基盤ネットワーク用インタフェース19からパケットを受信したとき、カプセリングされたパケットか否かと、自装置の管理対象の仮想ネットワークであるか否かをそれぞれ確認する。受信パケットが自装置の管理対象の仮想ネットワークに紐づけられたアドレスを持つパケットである場合、受信パケットをデカプセリングし、仮想ネットワーク用インタフェース18を介して通信する。さらに、受信パケットをデカプセリングしたパケットがマッピング情報共有メッセージの場合、パケットカプセリング部14は、マルチキャストマッピング情報共有部15へマッピング情報共有メッセージを転送する。
【0044】
マルチキャストマッピング情報共有部15は、マルチキャストマッピング部12からマルチキャスト情報の共有を依頼されたとき、仮想ネットワークのマルチキャストアドレスと基盤ネットワークのマルチキャストアドレスの対応関係を記したマッピング情報共有メッセージを作成する。マルチキャストマッピング情報共有部15は、該マッピング情報共有メッセージをパケットカプセリング部14へ通知し、デフォルトの仮想ネットワークの構築に利用したマルチキャストパケットアドレスでカプセリングし、送信させる。これにより、他のパケット転送装置とマッピング情報を共有する。
【0045】
マルチキャストマッピング情報共有部15は、パケットカプセリング部14からマッピング情報共有メッセージを受信したときに、マルチキャストマッピング部12を介して、マルチキャストマッピング情報記憶部13に記憶する。マッピング情報共有メッセージにより送信されたマッピング情報が既存のマッピング情報と競合する場合、マルチキャストマッピング情報共有部15は、予め定められた競合解決ルール(競合解決アルゴリズム)により競合状態を解消する。前記競合解決ルールを適用した結果、マッピング情報共有メッセージにより送信されたマッピング情報を登録しない場合がある。この場合、マルチキャストマッピング情報共有部15は、競合解決メッセージを作成し、パケットカプセリング部14を介して、仮想ネットワークの構築に利用したマルチキャストパケットアドレスでカプセリングし、他のパケット転送装置のマルチキャストマッピング情報共有部15へと通知する。
【0046】
仮想ネットワーク用インタフェース18、および、基盤ネットワーク用インタフェース19は、それぞれ、仮想ネットワークのパケット、基盤ネットワークのパケットの送受信を行う。これらは、同一の物理インタフェースとして実現されていても構わない。
【0047】
続いて、本実施形態の動作について図面を参照して詳細に説明する。
図4は、本発明の第1の実施形態のパケット転送装置の動作(仮想ネットワーク用インタフェースからパケット受信時)を表した流れ図である。
図4を参照すると、仮想ネットワーク用インタフェース18は、パケットを受信すると、マルチキャスト判定部11へ受信パケットを渡す。マルチキャスト判定部11は、該受信パケットがマルチキャストパケット、または、マルチキャスト通信制御メッセージかどうかを判定する(ステップS1101)。
【0048】
マルチキャスト通信、及び、マルチキャスト通信制御メッセージのいずれでもない場合(ステップS1101のNo)、マルチキャスト判定部11は、該受信パケットをパケットカプセリング部14へ渡し、カプセリングを行わせる。ユニキャスト通信の通信相手情報を保持している場合、パケットカプセリング部14は、当該通信相手が接続されているパケット転送装置へのユニキャスト通信としてカプセリングし、基盤ネットワーク用インタフェース19へ渡す。それ以外の場合(ブロードキャストパケット又はUnknownユニキャストパケット等)、パケットカプセリング部14は、該当仮想ネットワークの基盤ネットワーク用マルチキャストアドレスを用いてカプセリングし、基盤ネットワーク用インタフェース19へ渡す。基盤ネットワーク用インタフェース19は、基盤ネットワークに、前記カプセリング済みのパケットを送信する(ステップS1106)。
【0049】
一方、該受信パケットが、マルチキャスト通信、または、マルチキャスト通信制御メッセージの場合、マルチキャスト判定部11は、マルチキャストマッピング部12に対し、該パケットを渡す。マルチキャストマッピング部12は、マルチキャストマッピング情報記憶部13を参照し、受信パケットのマルチキャストアドレス(第1のマルチキャストアドレス)と、基盤ネットワークのマルチキャストアドレス(第2のマルチキャストアドレス)とを対応付けたマッピング情報を検索する(ステップS1102)。
【0050】
マルチキャストマッピング部12は、該受信パケットに対応するマッピング情報が見つかった場合(ステップS1103のYES)、パケットカプセリング部14に対し、前記マッピング情報とともに受信パケットを渡し、カプセリングを行わせる。パケットカプセリング部14は、該受信パケットがマルチキャストパケットの場合、前記マッピング情報にて指定された基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)を用いてカプセリングし、基盤ネットワーク用インタフェース19へ渡す。一方、該受信パケットがマルチキャスト制御メッセージの場合、パケットカプセリング部14は、制御マルチキャストアドレス情報を前記マッピング情報にて指定された基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)に置きかえ、基盤ネットワーク用インタフェース19へ渡す。基盤ネットワーク用インタフェース19は、該カプセリング済みパケットを基盤ネットワークに送信する(ステップS1106)。
【0051】
ステップS1103において、受信パケットに対応するマッピング情報が見つからなかった場合、マルチキャストマッピング部12は、メッセージの種別に応じて次の処理を行う。まず、受信パケットがグループ離脱メッセージの場合、マルチキャストマッピング部12は、該パケットを破棄して終了する(ステップS1104のLeave)。
【0052】
また、受信パケットがグループ加入メッセージの場合(ステップS1104のReport(Join))、マルチキャストマッピング部12は、仮想ネットワークのマルチキャストアドレス(第1のマルチキャストアドレス)と基盤ネットワークのマルチキャストアドレス(第2のマルチキャストアドレス)のマッピング情報を作成し、マルチキャストマッピング情報記憶部13へ登録する。マルチキャストマッピング部12は、作成したマッピング情報を共有するためのマッピング情報共有メッセージを作成し、パケットカプセリング部14へ該当仮想ネットワークの基盤ネットワーク用マルチキャストアドレスを用いてカプセリングを依頼する。パケットカプセリング部14は、前記マッピング情報共有メッセージを該当仮想ネットワークの基盤ネットワーク用マルチキャストアドレスでカプセリングし、基盤ネットワーク用インタフェース19を介して基盤ネットワークに対し、該カプセリング済みのパケットを送信する(ステップS1105)。
【0053】
その後、マルチキャストマッピング部12は、パケットカプセリング部14に対し、受信パケットであるマルチキャスト加入メッセージを、前記新規に作成したマッピング情報で変換するよう依頼する。パケットカプセリング部14は、前記マルチキャスト加入メッセージの制御マルチキャストアドレス情報を該マッピング情報にて指定された基盤ネットワーク用マルチキャストアドレス(第2のマルチキャストアドレス)に置きかえ、基盤ネットワーク用インタフェース19を介して基盤ネットワークに送信する(ステップS1106)。
【0054】
前記マルチキャストアドレスのマッピング情報の作成方法の一例としては、事前に使用可能な基盤マルチキャストアドレスを用意しておき、その中から1つ選択する方法が挙げられる。その際に、仮想ネットワーク単位に使用可能範囲を設定しておくことも好ましい。この事前設定の方法自体も、装置個別に設定する方法や、仮想ネットワークの基本設定をする際に外部設定統合コントローラから設定する方法などが挙げられる。
【0055】
また、ステップS1104において、受信パケットがマルチキャスト通信の場合(S1104のMulticast)、マルチキャストマッピング部12は、パケットカプセリング部14へ該当仮想ネットワークの基盤ネットワーク用マルチキャストアドレスを用いてカプセリングを依頼する。パケットカプセリング部14は、受信マルチキャストパケットを該当仮想ネットワークの基盤ネットワーク用マルチキャストアドレスでカプセリングし、基盤ネットワーク用インタフェース19を介して基盤ネットワークに、前記カプセリング済みパケットを送信する(ステップS1106)。
【0056】
以上の処理により、仮想ネットワークからの受信パケットのカプセリング制御が実現される。
【0057】
続いて、基盤ネットワーク用インタフェース19からパケットを受信した際のパケット転送装置の動作について説明する。
図5は、本発明の第1の実施形態のパケット転送装置の動作(基盤ネットワーク用インタフェースからパケット受信時)を表した流れ図である。
【0058】
図5を参照すると、基盤ネットワーク用インタフェース19は、基盤ネットワーク側からパケットを受信すると、パケットカプセリング部14に対し、受信パケットを渡す。パケットカプセリング部14は、該受信パケットがカプセリングされているかどうかを確認する(ステップS1201)。
【0059】
パケットカプセリング部14は、受信パケットがカプセリングされていない場合(ステップS1201のNo)、マルチキャスト制御メッセージかどうかを確認する(ステップS1202)。受信パケットがカプセリングされておらず、マルチキャスト制御メッセージでもない場合、パケットカプセリング部14は、受信パケットを破棄する(ステップS1202のNo)。
【0060】
一方、受信パケットがマルチキャスト制御メッセージの場合(ステップS1202のYes)、パケットカプセリング部14は、該マルチキャストマッピング部12へ該受信パケットを渡し、受信パケットのマルチキャストアドレスに対応するマッピング情報の検索を依頼する。マルチキャストマッピング部12は、マルチキャストマッピング情報記憶部13を参照し、該受信パケットのマルチキャストアドレスに対応するマッピング情報を検索する(ステップS1203)。
【0061】
受信パケットのマルチキャストアドレスに対応するマッピング情報が見つかった場合、マルチキャストマッピング部12は、パケットカプセリング部14に対し、該受信パケットとマッピング情報を転送する。また、受信パケットのマルチキャストアドレスが全マルチキャストドメインアドレス(例えば、前述のIP version 4 では、224.0.0.1)である場合も同様に、マルチキャストマッピング部12は、パケットカプセリング部14に対し、該受信パケットのアドレスの変換せずに転送することを依頼する。
【0062】
パケットカプセリング部14は、マッピング情報に基づいて、受信パケット(マルチキャスト制御メッセージ)の制御対象マルチキャストアドレスを、仮想ネットワーク用マルチキャストアドレス(第1のマルチキャストアドレス)へ変更する。マルチキャストマッピング部12は、仮想ネットワーク用インタフェース18を介し、仮想ネットワークへ該変更後のマルチキャスト制御メッセージを送信する。このとき、マルチキャスト制御メッセージが確認メッセージ(Query)である場合、パケットカプセリング部14は、マルチキャスト存在確認シーケンスを実行する(ステップS1204のYes〜S1205)。
【0063】
マルチキャストマッピング部12は、該受信パケットに対応するマルチキャストマッピング情報が抽出できない場合、該受信パケットを破棄して終了する(ステップS1204 No)。
【0064】
ステップS1201において、受信パケットがカプセリングされていた場合(ステップS1201のYes)、パケットカプセリング部14は、受信パケットをデカプセリングし、内部メッセージを取り出す(ステップS1206)。
【0065】
パケットカプセリング部14は、該デカプセリング後のパケットがマルチキャスト共有メッセージであるか否かを確認する。パケットがマルチキャスト共有メッセージでない場合(ステップS1207のNo)、パケットカプセリング部14は、仮想ネットワーク用インタフェース18を介し、仮想ネットワークへ該デカプセリングパケットを送信する(ステップS1208)。
【0066】
一方、デカプセリング後のパケットがマルチキャスト共有メッセージである場合ステップS1207のYes)、パケットカプセリング部14は、マルチキャストマッピング情報共有部15へ通知する。マルチキャストマッピング情報共有部15は、該マルチキャスト共有メッセージを元に、マルチキャストマッピング部12に、マルチキャストマッピング情報記憶部13へのマッピング情報を登録させる。このとき、マルチキャストマッピング情報共有部15は、マッピング情報の調停アルゴリズムを動作させることができる。調停アルゴリズムによる調停の結果、自装置のマッピング情報を優先するとき、マルチキャストマッピング情報共有部15は、再び、他のパケット転送装置のマッピング情報共有部15に対し、自装置側のマッピング情報の送信を行う。具体的には、マルチキャストマッピング情報共有部15からの指示に基づきパケットカプセリング部14が、該当仮想ネットワークの基盤ネットワーク用マルチキャストアドレスを用いてマルチキャスト共有メッセージをカプセリングし、送信する(ステップS1209)。
【0067】
マッピング情報の調停アルゴリズムの一例としては、識別子による優先度を設定し、優先度の高いマッピング情報を選択する方法が挙げられる。識別子の例としては、装置ID、装置IFアドレス、装置設定優先度、マッピング情報の利用マルチキャストアドレス、マッピング情報作成時間のうち少なくとも1つ以上を用い、順序づけられた中で優先されるマッピング情報を選択する方法が挙げられる。
【0068】
以上のように、基盤ネットワークから受信したパケットのデカプセリング制御が実現される。
【0069】
続いて、
図6〜
図17を参照して、第1の実施形態の構成による具体的な動作を説明する。図中の用語やメッセージの表記について説明する。
図6〜
図17のVideo VM 1、Video VM 2はストリーミングサーバであり、Client VM 1−1、1−2、2−1、2−2は、このストリーミングサーバからストリーミングデータを受信するクライアントであり、Router300は、IPマルチキャスト機能を備えたルータ(以下、「マルチキャストルータ」とも記載)であり、基盤ネットワークに少なくとも1つ配置されている。また、
図6〜
図17のTEP(装置)301〜303は、それぞれ上記した第1の実施形態のパケット転送装置1によって構成されている。なお、以下の説明において、Video VM及びClient VMは、それぞれTEP(装置)に接続されたサーバ上で、サーバ仮想化技術を用いて動作する仮想的なエンティティである。
【0070】
ここでは、ストリーミングサーバ311は、クライアント312及び313に対してマルチキャストでストリーミングデータを送信する。このときのマルチキャストアドレスは、225.0.0.1とする。同様に、ストリーミングサーバ321は、クライアント322、323に対してマルチキャストでストリーミングデータを送信する。このときのマルチキャストアドレスは、226.0.0.1とする。前記2台のストリーミングサーバ及び4台のクライアントは、同一グループとして、単一仮想ネットワークを構築している。このときの仮想ネットワーク用マルチキャストアドレスとして、239.0.0.1が設定されているものとする。また、マッピング使用マルチキャストアドレスは、238.0.0.1から随時使用する。
【0071】
また、以下の説明では、マルチキャストグループの管理プロトコルとして、IGMP(Internet Group Management Protocol)を用いるものとし、そのマルチキャスト制御メッセージを、『IGMP [メッセージタイプ] [対象IPアドレス]』として表記する。それぞれに付属する付加情報は省略する。メッセージタイプは、加入メッセージを『Report(join)』、確認メッセージを『Query』、離脱メッセージを『Leave』としてそれぞれ表記する。Leaveに対する離脱確認メッセージGroupSpecificQueryは確認メッセージと同じで『Query』として扱うが、実現方式に応じて別々に扱ってよいことは明白であることをここに記載しておく。
【0072】
通信メッセージは、『[アドレス] { [メッセージ] } 』で表現する。アドレスは送信先アドレスのみを記載する。実際には送信元アドレスや属性情報などが付随するが本例では省略する。カプセリングした場合は、この通信メッセージがメッセージボディとなるため、『[カプセリングアドレス] { [被カプセリングアドレス] {メッセージ} }』と表記される。マッピング情報共有メッセージは、『Shared Inner [仮想ネットワークアドレス] Outer [基盤ネットワークアドレス]』として表現する。また、アプリケーションが実際に扱うデータは『DATA』として表現する。
【0073】
[マルチキャストグループの作成、マッピング、カプセリング]
まず、マルチキャストサービスの開始に当たり、ストリーミングサーバ311は、マルチキャスト加入メッセージとして、IGMP Report(join)の225.0.0.1を送信する。該パケットを受信したTEP(パケット転送装置)301は、該パケットを仮想ネットワークからのパケット受信として扱う(
図4の処理開始)。TEP(パケット転送装置)301のマルチキャスト判定部11は、該パケットをマルチキャスト制御メッセージと判断し、マルチキャストマッピング部12へマッピング情報の検索を依頼する(
図4のステップS1101〜S1102)。
【0074】
マルチキャストマッピング部12は、該当するマッピング情報を発見できなかったため、メッセージ種別を把握し、加入メッセージ(Report)であることを確認する。このため、マルチキャストマッピング部12は、マッピング使用マルチキャストアドレスから、基盤ネットワーク用マルチキャストアドレスとして、238.0.0.1を選択し、マッピング情報を作成する。マルチキャストマッピング部12は、前記作成したマッピング情報をマルチキャストマッピング情報記憶部13に記憶する(
図3の1番目のエントリ参照)。
【0075】
マルチキャストマッピング部12は、マルチキャストマッピング情報共有部15に前記作成したマッピング情報を渡し、他のTEP(パケット転送装置)へのマッピング情報共有を依頼する。マルチキャストマッピング情報共有部15は、マッピング情報共有メッセージ『Shared Inner 225.0.0.1 Outer 238.0.0.1』を作成し、パケットカプセリング部14へ仮想ネットワーク構築用マルチキャストアドレスでの転送を依頼する。
【0076】
パケットカプセリング部14は、仮想ネットワーク構築用マルチキャストアドレス239.0.0.1でカプセリングし、マルチキャスト通信をする。マルチキャストルータ300は、仮想ネットワークに属する他のTEP装置302、および、303へとカプセリング済みマッピング情報共有メッセージを転送する(
図4のステップS1103〜S1105)。
【0077】
該カプセリングされたマッピング情報共有メッセージを受信したTEP装置302、303は、マッピング情報共有メッセージを基盤ネットワークからのパケット受信として扱う(
図5の処理開始)。パケットカプセリング部14は、対象がカプセリング済みパケットであるため、デカプセリングを行い、マッピング情報共有メッセージ『Shared Inner 225.0.0.1 Outer 238.0.0.1』を取り出す(
図5のS1201〜S1206)。パケットカプセリング部14は、デカプセリング結果がマッピング情報共有メッセージであるため、マルチキャストマッピング部12へ通知し、マッピング情報をマルチキャストマッピング情報記憶部13に記憶させる(
図5のS1207〜S1209)。これらにより、マルチキャストマッピング情報が共有される。
図6は、上記ストリーミングサーバ311からのマルチキャスト加入メッセージ(IGMP Report(join))の送信により、マッピング情報が生成され、マッピング情報共有メッセージで他のTEP(パケット転送装置)と共有されるまでの流れを表している。
【0078】
さらに、TEP(パケット転送装置)301のマルチキャストマッピング部12は、受信パケット『IGMP Report(join) 225.0.0.1』と作成したマッピング情報をパケットカプセリング部14へ渡す。パケットカプセリング部14は、受け取った情報を元にマルチキャスト制御情報を基盤ネットワーク側マルチキャストアドレスに変換し、『IGMP Report(join) 238.0.0.1』を作成する。パケットカプセリング部14は、該変換後マルチキャスト制御メッセージを基盤ネットワーク側に送信する。
図7は、TEP(パケット転送装置)301が、基盤ネットワーク側に、変換後のマルチキャスト制御メッセージを送信した状態を示している。
【0079】
以上により、仮想ネットワークのマルチキャストアドレス225.0.0.1は、基盤ネットワークの238.0.0.1に関連付けられ、マルチキャストルータ300からはTEP装置301のみが属していることとなる。
【0080】
その後、
図8に示すように、ストリーミングサーバ311が、ストリーミングデータを流そうとすると、メッセージ『225.0.0.1 {DATA}』が流れ、TEP(パケット転送装置)301に到着する。該パケットを受信したTEP(パケット転送装置)301は、該パケットを仮想ネットワークからのパケット受信として扱う(
図4の処理開始)。
【0081】
TEP(パケット転送装置)301のマルチキャスト判定部11は、該パケットをマルチキャスト制御メッセージと判断し、マルチキャストマッピング部12へマッピング情報の検索を依頼する(
図4のステップS1101〜S1102)。ここでは、前記作成したマッピング情報が見つかるため、マルチキャストマッピング部12は、該マッピング情報と受信パケットを、パケットカプセリング部14へ渡す。パケットカプセリング部14は、受け取った情報を元にカプセリングし、メッセージ『238.0.0.1{ 225.0.0.1 { DATA } }』を作成し、基盤ネットワークへと送出する。マルチキャストルータ300は、マルチキャストグループ238.0.0.1には、TEP(パケット転送装置)301しか属していないため、新たな転送は行わない(
図8参照)。
【0082】
次に、クライアント312が、ストリーミングサーバ311からのマルチキャストデータの受信を希望したとする。クライアント312は、マルチキャスト加入メッセージとして、IGMP Report(join)の225.0.0.1を送信する。このパケットを受信したTEP(パケット転送装置)302は、該パケットを仮想ネットワークからのパケット受信として扱う(
図4の処理開始)。TEP(パケット転送装置)302のマルチキャスト判定部11は、該パケットをマルチキャスト制御メッセージと判断し、マルチキャストマッピング部12へマッピング情報の検索を依頼する(
図4のステップS1101〜S1102)。マルチキャストマッピング部12は、該当するマッピング情報が見つかったため、マッピング情報をパケットカプセリング部14へ渡す。パケットカプセリング部14は、受け取った情報を元にマルチキャスト制御情報のマルチキャストアドレスを基盤ネットワーク側マルチキャストアドレスに変換し、『IGMP Report(join) 238.0.0.1』を作成する。パケットカプセリング部14は、基盤ネットワーク側に変換後のマルチキャスト制御メッセージを送出する。これにより、TEP装置302もマルチキャストグループ238.0.0.1に加入する(
図9参照)。
【0083】
上記の後、ストリーミングサーバ311が送出するストリーミングデータ『225.0.0.1 {DATA}』は、
図10に示すように、TEP(パケット転送装置)301でカプセリングされ、メッセージ『238.0.0.1{ 225.0.0.1 { DATA } }』となり、マルチキャストルータ300を通して、TEP装置302へと到達するようになる。
【0084】
カプセリングされたメッセージ『238.0.0.1{ 225.0.0.1 { DATA } }』を受信したTEP(パケット転送装置)302は、基盤ネットワークからのパケット受信として扱う(
図5の処理開始)。パケットカプセリング部14は、対象がカプセリング済みパケットであるため、デカプセリングを行い、マルチキャスト通信メッセージ『225.0.0.1 { DATA }』を取り出す(
図5のS1201〜S1206)。パケットカプセリング部14は、デカプセリング結果がマッピング情報共有メッセージでないため、仮想ネットワークへと送出する(
図5のS1207〜S1208)。これにより、ストリーミングサーバ311が送出するストリーミングデータが、クライアント312に、同一仮想ネットワークのマルチキャストデータとして届くことになる(
図10参照)。
【0085】
以上の流れと同様に、ストリーミングサーバ321が加入し、クライアント323が加入するマルチキャストアドレス226.0.0.1を持つグループは、基盤ネットワークのマルチキャストアドレス238.0.0.2に対応付けられる(例えば、
図3の2番目のエントリ参照)。
図11は、上記2つの仮想ネットワーク側のマルチキャストアドレスが、入り口側のTEP(パケット転送装置)でそれぞれ基盤ネットワークのマルチキャストアドレスでカプセリングされた後、宛先のTEP(パケット転送装置)に転送されて、再度、デカプセリングされてクライアントに届けられている状態を示している。
図11に示すように、新たなマルチキャストアドレス226.0.0.1を持つマルチキャストグループの通信は、TEP(パケット転送装置)301と303の間にのみ転送され、TEP(パケット転送装置)302へは流れない。
【0086】
このように、仮想ネットワーク側のマルチキャスト通信を、基盤ネットワークにおけるマルチキャスト通信と同様に制御することができる。また、基盤ネットワークにおけるマルチキャストアドレスは、仮想ネットワーク全体は239.0.0.1、ストリーミングサーバ311のストリーミングは、238.0.0.1、ストリーミングサーバ321のストリーミングは、238.0.0.2と区別可能なため、負荷分散やQoS制御として利用できることが分かる。
【0087】
[マルチキャストグループの維持管理]
次に、マルチキャストグループの維持について、
図12を用いて説明する。IGMPでは、マルチキャストルータは、全マルチキャストドメインアドレス(IP version 4 では、224.0.0.1)に対して、Queryを出すことで、加入メッセージIGMP Reportの通信を促す。マルチキャストルータ300は、
図12に示すように、宛先アドレスを224.0.0.1とした『IGMP Query 0.0.0.0』を作成し、全TEP(パケット転送装置)へと送信する。
【0088】
TEP(パケット転送装置)301、302、303は、前記マルチキャスト制御メッセージを、基盤ネットワークからのパケット受信として扱う(
図5の処理開始)。パケットカプセリング部14は、受信パケットがカプセリング済みパケットでないため、マルチキャストマッピング部12へマッピング情報の抽出を依頼する(
図5のS1201〜S1203)。マルチキャストマッピング部12は、パケットカプセリング部14に対し、マッピング情報が存在しないことを報告する。しかし、パケットカプセリング部14は、全マルチキャストアドレス224.0.0.1であるため、そのままの情報として扱うようにし、仮想ネットワークへと送信する(
図5のS1204〜S1205)。これにより、各端末、もしくは、仮想ネットワークの任意の端末に、Queryメッセージを届け、Reportの送信をさせることができる。また、マルチキャストマッピング部12は、マルチキャスト存在確認シーケンスを実行する。マルチキャスト存在確認シーケンスでマルチキャストのクライアントの存在が確認できない場合、すなわち、Reportでの報告がないグループの場合、マルチキャストマッピング情報記憶部13から、該当するマッピング情報を削除する。
【0089】
[マルチキャストグループからの離脱]
次に、マルチキャストグループからの離脱について、
図13〜
図14を用いて説明する。IGMP v2以降からは、マルチキャスト通信から離脱するとき、離脱メッセージを送信する。ここでは、
図13に示すように、クライアント312が離脱をするため、『IGMP Leave 225.0.0.1』を送信したものとする。該パケットを受信したTEP(パケット転送装置)302は、該パケットを仮想ネットワークからのパケット受信として扱う(
図4の処理開始)。TEP(パケット転送装置)302のマルチキャスト判定部11は、該パケットをマルチキャスト制御メッセージと判断し、マルチキャストマッピング部12へマッピング情報の検索を依頼する(
図4のステップS1101〜S1102)。マルチキャストマッピング部12は、該当するマッピング情報が見つかったため、パケットカプセリング部14に対しマッピング情報を渡す。パケットカプセリング部14は、受け取った情報を元にマルチキャスト制御情報を基盤ネットワーク側マルチキャストアドレスに変換し、『IGMP Leave 238.0.0.1』を作成する。パケットカプセリング部14は、該変換後マルチキャスト制御メッセージを基盤ネットワーク側に送出する。これにより、マルチキャストルータ300は、マルチキャストグループ238.0.0.1における離脱の契機を受信する(
図13参照)。
【0090】
マルチキャスト離脱メッセージを受信したマルチキャストルータ300は、応答として、該当グループにメンバーが存在するか否かを確認する存在確認メッセージ『IGMP Query 238.0.0.1』を送信する。該離脱確認メッセージを受信したTEP(パケット転送装置)302は、該パケットを基盤ネットワークからのパケット受信として扱う(
図5の処理開始)。パケットカプセリング部14は、受信パケットがカプセリング済みパケットでないため、マルチキャストマッピング部12へマッピング情報の検索を依頼する(
図5のS1201〜S1203)。マルチキャストマッピング部12は、該当するマッピング情報を見つけ、パケットカプセリング部14へと通知する。パケットカプセリング部14は、前記マッピング情報を用いて、マルチキャスト制御アドレスを仮想ネットワーク側のマルチキャストアドレスとして扱うようにメッセージ変換を行う。ここでは、パケットカプセリング部14は、
図14に示すように、『IGMP Query 225.0.0.1』との離脱確認メッセージに変換し仮想ネットワークへと送信する。(S1204〜S1205)。これにより、各端末、もしくは、仮想ネットワークの任意の端末にReportの送信をさせることができる。また、マルチキャストマッピング部12は、このタイミングでも、マルチキャスト存在確認シーケンスを実行する。マルチキャスト存在確認シーケンスでクライアントの存在が確認できないマルチキャストグループがあった場合、すなわち、Reportでの報告がない場合、マルチキャストマッピング情報記憶部13から、該当するマッピング情報を削除する(例えば、
図3の1番目のエントリを削除)。
【0091】
[マッピング情報の調停]
次に、
図15〜
図17を用いてマッピング情報の調停の具体例について説明する。前記クライアント312の離脱後、新たに、クライアント313がマルチキャストアドレス225.0.0.1のグループに加入してきたとする。このとき、すでにマッピング情報は削除されているため、新たに、TEP(パケット転送装置)302は、238.0.0.3にマッピングしたとする。TEP(パケット転送装置)302は、
図15に示すように、TEP(パケット転送装置)301、303に対して、マッピング情報共有メッセージ『Shared Inner 225.0.0.1 Outer 238.0.0.3』を送信する(
図15参照)。しかしながら、実際に当該グループに属しているホスト(この場合、ストリーミングサーバ311)が存在しているTEP(パケット転送装置)301などでは、マッピング情報の削除は行われていないため、衝突する。このときに、TEP(パケット転送装置)301は、前述の調停ルール乃至調停アルゴリズムに基づき、優先されるマッピング情報を選択する。今回は、マルチキャストアドレス順として、238.0.0.1が優先されるとする。TEP(パケット転送装置)301は、TEP(パケット転送装置)302、303に対して、再びマッピング情報共有メッセージ『Shared Inner 225.0.0.1 Outer 238.0.0.1』を送信する(
図16参照)。これによりTEP(パケット転送装置)302は、マッピング情報を更新する。その後、TEP(パケット転送装置)302は、新たなマルチキャストグループに、クライアント313を再加入させることで整合を取ることができる(
図17の状態)。
【0092】
なお、上記した具体例では、マルチキャストルータ300としたが、複数のマルチキャストルータ群として実現することもできる。マルチキャストルータ300は、またIGMP snoopingやCGMP(Cisco Group Management Protocol)などを利用してIGMPメッセージに対して通信範囲を特定可能なL2スイッチを含んだネットワーク装置群として実現することもできる。
【0093】
本実施形態の効果について総括する。上記のように、TEP(パケット転送装置)において、仮想ネットワークと基盤ネットワークのマルチキャストアドレスをマッピングする機能を追加することで、仮想ネットワークのマルチキャスト空間を、基盤ネットワークのマルチキャスト空間にマッピングすることができ、マルチキャスト通信の回線利用の範囲を必要な範囲に制限することができる。これにより、通信の回線利用の効率が向上する。また、2次的効果として、基盤ネットワーク側のマルチキャストアドレスで、仮想ネットワークのマルチキャスト通信を分別することが可能になる。そのため、マルチキャストアドレスの違いを用いた、基盤ネットワークでの負荷分散機能、QoS制御機能を有効にすることができる。また、アドレスの違いから、同様に、基盤ネットワークでの障害解析や性能解析等にも活用することができる。
【0094】
[第2の実施形態]
続いて、個々のパケット転送装置に代わって、マッピング情報とメンバー情報を集中して管理する装置を追加した第2の実施形態について図面を参照して詳細に説明する。
図18は、本発明の第2の実施形態のパケット転送装置とマルチキャストマッピング管理装置の構成を示す図である。
図18を参照すると、マルチキャストマッピング情報共有部15に代わって、マルチキャストマッピング管理装置26がパケット転送装置の外部に追加された構成が示されている。その他パケット転送装置1Bの構成は、第1の実施形態のパケット転送装置1とほぼ共通するため、以下、その相違点を中心に説明する。
【0095】
第2の実施形態のマルチキャストマッピング部22は、マッピング情報を作成する必要があるときに、マルチキャストマッピング管理装置26へマッピング情報の問合せを依頼する。
【0096】
また、第2の実施形態のマルチキャストマッピング部22は、マッピング情報を削除するときは、マルチキャストマッピング管理装置26に対し、マッピング情報の削除を依頼する。
【0097】
マルチキャストマッピング管理装置26は、
図19に示すようなマッピング情報を用いて、メンバー情報を対応付けたマッピング情報の維持管理を行う。例えば、マルチキャストマッピング管理装置26は、パケット転送装置1Bを含む任意のパケット転送装置のマルチキャストマッピング部22からマッピング情報の問合せを依頼されたとき、該当するマッピング情報を保持していない場合、基盤ネットワークで使用可能なマルチキャストアドレスの中から任意の1つを選択し、依頼元仮想ネットワークのマルチキャストアドレスとのマッピング情報を作成する。また、前記作成したマッピング情報のメンバーフィールドに依頼元のメンバーを追記する。そして、作成したマッピング情報を依頼元のパケット転送装置のマルチキャストマッピング部22へ通達する。
【0098】
また、マルチキャストマッピング管理装置26は、任意のパケット転送装置のマルチキャストマッピング部22からマッピング情報の問合せを依頼されたとき、該当するマッピング情報を保持している場合は、該マッピング情報のメンバーフィールドに依頼元のメンバーを追記する。そして、該マッピング情報を依頼元のパケット転送装置のマルチキャストマッピング部22へ通達する。
【0099】
また、マルチキャストマッピング管理装置26は、任意のパケット転送装置のマルチキャストマッピング部22からマッピング情報の解除を依頼されたときは、記憶しているマッピング情報のメンバーフィールドから、依頼元のメンバーを削除する。該マッピング情報のメンバーフィールドのすべてのメンバーがいなくなったとき、マルチキャストマッピング管理装置26は、該マッピング情報を削除する。
【0100】
なお、上記マッピング情報の問合せ、削除の依頼は、基盤ネットワークの通信を用いて実現することができる。
【0101】
以上のように、マッピング管理情報の集約管理点として機能するマルチキャストマッピング管理装置26を配置することにより、マッピング作業の共有作業、調停作業を除くことができる。
【0102】
続いて、本実施形態の動作について図面を参照して詳細に説明する。
図20は、本発明の第2の実施形態のパケット転送装置1Bの動作(仮想ネットワーク用インタフェースからパケット受信時)を表した流れ図である。
図20に示すパケット転送装置の動作は、
図4に示す流れ図とほぼ同様である。相違点は、ステップS1105におけるマッピング情報の作成、共有が、マルチキャストマッピング管理装置26に対するマッピング情報の問い合わせ、応答受信となる点である(ステップS1105A参照)。
【0103】
図21は、前記マッピング情報の問い合わせを受けた場合のマルチキャストマッピング管理装置の動作を表した流れ図である。
図20を参照すると、マルチキャストマッピング部22は、マルチキャスト加入メッセージを受信すると、このマルチキャスト加入メッセージで指定されたマルチキャストアドレスに対応するマッピング情報が存在しない場合、マルチキャストマッピング管理装置26に対しマッピング情報の問合せを行う(
図21の処理開始)。問合せ情報は、仮想ネットワーク識別子と仮想ネットワークのマルチキャストアドレスを少なくとも含む。
【0104】
マルチキャストマッピング管理装置26は、依頼元の仮想ネットワークのマルチキャストアドレスに対応するマッピング情報を保持していない場合(ステップS2101のNo)、新たに、基盤ネットワークで使用可能なマルチキャストアドレスの中から任意の1つを選択し、依頼元仮想ネットワークのマルチキャストアドレスとのマッピング情報を作成する(
図21のステップS2102)。
【0105】
次に、マルチキャストマッピング管理装置26は、既存のマッピング情報(ステップS2101のYes)、または、前記ステップS2102で作成したマッピング情報に対して、依頼元のパケット転送装置の識別子をメンバー(利用者)として登録する(ステップS2103)。
【0106】
次に、マルチキャストマッピング管理装置26は、依頼元のパケット転送装置のマルチキャストマッピング部22に対して、前記既存のマッピング情報(ステップS2101のYes)、または、前記ステップS2102で作成したマッピング情報を応答する(ステップS2104)。
【0107】
マッピング情報を応答されたマルチキャストマッピング部22は、マッピング情報をマルチキャストマッピング情報記憶装置13へ記憶する。その後、受信パケットと応答されたマッピング情報を元に、パケットカプセリング部14へパケットのメッセージ変換を依頼する(
図20のステップS1106)。
【0108】
以上の処理により、マルチキャストマッピング部22は、マッピング情報の作成、および、マッピング情報の共有をマルチキャストマッピング管理装置26に任せることができる。
【0109】
続いて、基盤ネットワーク用インタフェース19からパケットを受信した際のパケット転送装置1Bの動作について説明する。
図22は、本発明の第2の実施形態のパケット転送装置の動作(基盤ネットワーク用インタフェースからパケット受信時)を表した流れ図である。
図5に示した第1の実施形態のパケット転送装置の動作との違いは、
図5のステップ1209で示されていたマッピング情報調停処理が削除され、また、ステップS1205のマルチキャスト確認シーケンスの実行の結果、自装置側のマッピング情報を削除した場合にマルチキャストマッピング管理装置26に対してマッピング情報の削除を要求するステップS1210が追加されている点である。
【0110】
上述した第1の実施形態と同様に、本実施形態においてもマルチキャストマッピング部22は、メンバーの存在を確認できないマルチキャストグループを検知すると、マルチキャストマッピング情報記憶部13からマッピング情報を削除する。その後、マルチキャストマッピング部22は、マルチキャストマッピング管理装置26に対し、マッピング情報の削除を要求する(
図23の処理開始)。なお、前記マッピング情報の削除を要求には、少なくともパケット転送装置1B側で削除したマッピング情報が含まれている。
【0111】
図23は、前記マッピング情報の削除要求を受けた場合のマルチキャストマッピング管理装置の動作を表した流れ図である。
図23を参照すると、マルチキャストマッピング管理装置26は、自身が保持しているマッピング情報のメンバーフィールドから、メンバー(利用者)として登録されていた依頼元のパケット転送装置の識別子を削除する(ステップS2201)。
【0112】
次に、マルチキャストマッピング管理装置26は、前記削除後のマッピング情報のメンバーフィールドに、別のメンバーが存在しなくなった場合(ステップS2202のNo)、マッピング情報を削除する(ステップS2203)。
【0113】
以上の処理により、マルチキャストマッピング管理装置26において不要となったマッピング情報が整理される。
【0114】
続いて、
図24〜
図30を参照して、第2の実施形態の構成による具体的な動作を説明する。第1の実施形態と同様に、Video VM 1、Video VM 2はストリーミングサーバであり、Client VM 1−1、1−2、2−1、2−2は、このストリーミングサーバからストリーミングデータを受信するクライアントであり、Router400は、IPマルチキャスト機能を備えたマルチキャストルータである。また、
図24〜
図30のTEP(装置)401〜403は、それぞれ上記した第2の実施形態のパケット転送装置1Bによって構成されている。第1の実施形態との大きな違いは、マルチキャストマッピング管理装置26として機能するConnection Server(以下、「接続サーバ」と記す。)409が追加されている点である。
【0115】
本例では、新たなメッセージの表現として、マッピング情報の問合せを『Shared query [仮想ネットワークマルチキャストアドレス]』、その応答を『Shared map [仮想ネットワークマルチキャストアドレス] [基盤ネットワークマルチキャストアドレス]』として表現する。今回は分かりやすくするために、仮想ネットワークは1つとし、メッセージ表現としては省略する。また、その他用語やメッセージの表現は第1の実施形態と同様であるので、説明を省略する。
【0116】
図24に示すように、ストリーミングサーバ411が225.0.0.1でマルチキャストグループに加入しようとすると(『IGMP Report(join) 225.0.0.1』)、TEP(パケット転送装置)401は、マルチキャストアドレスのマッピング処理を行う。しかし、この時点ではマッピング情報を保持していないため、TEP(パケット転送装置)401のマルチキャストマッピング部22は、接続サーバ409へマッピング情報の問合せを行うため、問合せメッセージ『Shared query 225.0.0.1』を送信する(
図24参照)。
【0117】
接続サーバ409は、未だマッピング情報を保持していないため、基盤ネットワークで利用可能なマルチキャストとして238.0.0.1を選択し、マッピング情報を作成する(
図21のステップS2101のNo〜S2102)。また、接続サーバ409は、作成したマッピング情報のメンバーとして、TEP(パケット転送装置)401を記憶する(ステップS2103)。接続サーバ409は、TEP(パケット転送装置)401に対し、前記作成したマッピング情報を応答するために、マッピング情報応答メッセージ『Shared map 225.0.0.1 238.0.0.1』を作成して送信する(
図25参照)。
【0118】
TEP(パケット転送装置)401は、マッピング情報を入手したため、自装置のマルチキャストマッピング情報記憶部13に記憶する。さらに、TEP(パケット転送装置)401は、加入メッセージを『IGMP Report(join) 238.0.0.1』に変換して基盤ネットワーク側に送信する。これにより、TEP(パケット転送装置)401は、基盤ネットワークとしては、238.0.0.1のマルチキャストアドレスに加入したことになる(
図26参照)。
【0119】
その後、クライアント412が225.0.0.1でマルチキャストグループに加入しようとすると(『IGMP Report(join) 225.0.0.1』)、TEP(パケット転送装置)402は、マルチキャストアドレスのマッピング処理を行う。しかし、この時点では、TEP(パケット転送装置)402は、該当マッピング情報を保持していない。このため、TEP(パケット転送装置)402のマルチキャストマッピング部22は、接続サーバ409に対して、問合せメッセージ『Shared query 225.0.0.1』を送信してマッピング情報の問合せを行う(
図27参照)。
【0120】
前記問い合わせを受けた接続サーバ409は、対応するマッピング情報を保持しているため、該マッピング情報のメンバーとして、TEP(パケット転送装置)402を追加する(
図21のステップS2101のNo〜S2103、
図19の1番目のエントリ参照)。接続サーバ409は、TEP(パケット転送装置)402に対して、該マッピング情報を応答するために、マッピング情報応答メッセージ『Shared map 225.0.0.1 238.0.0.1』を作成して送信する(
図28参照)。
【0121】
TEP(パケット転送装置)402は、マッピング情報を入手したため、自装置のマルチキャストマッピング情報記憶部13に記憶する。さらに、TEP(パケット転送装置)402は、加入メッセージを『IGMP Report(join) 238.0.0.1』に変換して基盤ネットワーク側に送信する。これにより、TEP(パケット転送装置)402は、基盤ネットワークとしては、238.0.0.1のマルチキャストアドレスに加入したことになる(
図29参照)。
【0122】
以上の処理により、その後のストリーミングサーバ411の225.0.0.1を用いてのマルチキャスト通信は、入り口側のTEP(パケット転送装置)401で基盤ネットワークのマルチキャストアドレスでカプセリングされた後、宛先のTEP(パケット転送装置)402に転送されて、再度、デカプセリングされてクライアントに届けられることになる(
図30参照)。
【0123】
以上のように、本実施形態によれば、第1の実施の形態の効果に加え、マッピング情報の共有の負荷、及び、調停の負荷を削減することができる。その理由は、マルチキャストマッピング管理装置26を設け、マッピング情報に集約管理させる構成を採用したことにある。
【0124】
[第3の実施形態]
続いて、上記した第1の実施形態にマッピング情報の統合機能を追加した第3の実施形態について説明する。
図31は、本発明の第3の実施形態のパケット転送装置の構成を示す図である。
図31を参照すると、
図2に示した第1の実施形態のパケット転送装置の構成に、マッピング情報統合部37が追加された構成が示されている。
【0125】
マッピング情報統合部37は、所定の契機で、マルチキャストマッピング情報記憶部13に記憶されているマッピング情報の統合を行う。
【0126】
マルチキャストマッピング部12は、予め設定されたマッピング情報を共有するパケット転送装置の情報に基づいて、マルチキャストマッピング情報共有部15を介して、他のパケット転送装置と、マルチキャスト情報の同期した登録、削除を行う。
【0127】
マッピング情報統合部37は、マルチキャストマッピング情報記憶部13を参照し、利用しているパケット転送装置の組が共通するマッピング情報を探索し、検索されたマッピング情報同士を統合する。また、マッピング情報の統合を行った場合、マッピング情報統合部37は、マルチキャストマッピング部12に対し、統合の結果、変更されたマッピング情報を通知する。
【0128】
以下に、統合できる例を示す。
(1)マルチキャストの通達範囲が同一のマッピング情報は、どちらかの基盤ネットワークのマルチキャストアドレスに統一することができる。
(2)マルチキャストの通達範囲が他より狭いマッピング情報は、マルチキャストの通達範囲が広い基盤ネットワークのマルチキャストアドレスに統一することができる。
【0129】
また、前記所定の契機(統合タイミング)としては、以下のものが挙げられる。
(1)定期的チェック
(2)基盤マルチキャストアドレスが枯渇したとき、または、使用可能な基盤マルチキャストアドレスの数が一定以下になったとき
(3)マッピング情報が更新されたとき
【0130】
マルチキャストマッピング部12は、マッピング情報統合部37から統合により変更されたマッピング情報を伝えられた場合、マルチキャストマッピング情報記憶部13のマッピング情報を更新するとともに、マルチキャストマッピング情報共有部15を通じて、他のパケット転送装置に対してマッピング情報の同期更新を要求する。また、マルチキャストマッピング部12は、統合により変更されたマッピング情報に基づいて、マルチキャスト加入アドレスの変更を行う。
【0131】
さらに、マルチキャストマッピング部12は、加入アドレスの変更に伴い、同一の基盤マルチキャストアドレスを利用している他のマッピング情報が存在しなくなった場合、基盤マルチキャストアドレスを設定した離脱メッセージを出力する。
【0132】
以上のように、本実施形態によれば、第1の実施形態の効果に加えて、基盤マルチキャストアドレスが枯渇する状態の発生を抑止することが可能となる。
【0133】
[第4の実施形態]
続いて、上記した第2の実施形態にマッピング情報の統合機能を追加した第4の実施形態について説明する。
図32は、本発明の第4の実施形態のパケット転送装置と外部装置の構成を示す図である。
図32を参照すると、
図18と同様のパケット転送装置1Dとマルチキャストマッピング管理装置46を接続した構成に、マッピング情報統合装置47が追加された構成が示されている。なお、
図32の例では、マルチキャストマッピング管理装置46と、マッピング情報統合装置47とをそれぞれ別の装置として示しているが、両者を統合し同一の装置で実現してもよい。
【0134】
マッピング情報統合装置47は、マルチキャストマッピング管理装置46からマッピング情報を取得し、グループに参加しているパケット転送装置の組が共通するマッピング情報を検索する。グループに参加しているパケット転送装置の組が共通するマッピング情報が見つかった場合、マッピング情報統合装置47は、マルチキャストマッピング管理装置46に対しマッピング情報の統合を要求する。
【0135】
マルチキャストマッピング管理装置46は、マッピング情報の統合を行った場合、当該マッピング情報の統合により影響を受けるパケット転送装置のマルチキャストマッピング部22に対し、統合の結果、変更されたマッピング情報を通知する。
【0136】
前記通知を受けたマルチキャストマッピング部22は、マルチキャストマッピング情報記憶部13のマッピング情報を更新する。また、マルチキャストマッピング部22は、変更されたマッピング情報に基づいて、マルチキャスト加入アドレスの変更を行う。
【0137】
続いて、
図33〜
図36を参照して、第4の実施形態の構成による具体的な動作を説明する。第1の実施形態と同様に、Video VM 1、Video VM 2、Video VM 3はストリーミングサーバであり、Client VM 1−1、2−1、2−2、3−1は、これらストリーミングサーバからストリーミングデータを受信するクライアントであり、Router500は、IPマルチキャスト機能を備えたマルチキャストルータである。また、
図33〜
図36のTEP(装置)501〜503は、それぞれ上記した第4の実施形態のパケット転送装置1Dによって構成されている。Connection Server(以下、「接続サーバ」と記す。)509は、マルチキャストマッピング管理装置46及びマッピング情報統合装置47として機能する。また、その他用語やメッセージの表現は第1の実施形態と同様であるので、説明を省略する。
【0138】
各ストリーミングのためのマルチキャスト通信制御が行われた時、接続サーバ509のマルチキャストマッピング管理装置46が記憶しているマッピング情報は、
図33の通りとなる。すなわち、225.0.0.1は、238.0.0.1にマッピングされ、TEP(パケット転送装置)501、502が属する。226.0.0.1は、238.0.0.2にマッピングされ、TEP(パケット転送装置)501、503が属する。227.0.0.1は、238.0.0.3にマッピングされ、TEP(パケット転送装置)501、502が属する。
【0139】
接続サーバ509のマッピング情報統合装置47は、マルチキャストマッピング管理装置46からマッピング情報を受け取って統合できるマッピング情報を探す。その結果、本例では、225.0.0.1に対するマッピング情報と227.0.0.1に対するマッピング情報が、メンバーが等しいために統合可能と判定されることになる。接続サーバ509のマッピング情報統合装置47は、これら2つのマッピング情報を統合対象として選択すると、接続サーバ509のマルチキャストマッピング管理装置46に対し、マッピング情報の統合を要求する。本例では、227.0.0.1に対するマッピング情報に、225.0.0.1に対するマッピング情報を同一の基盤マルチキャストアドレスに統合するよう要求したものとする。
【0140】
接続サーバ509のマルチキャストマッピング管理装置46は、マッピング情報の統合を行うと、統合前後のマッピング情報のメンバーであるTEP(パケット転送装置)501、502に対し、マッピング情報の更新メッセージ『Shared change 227.0.0.1 238.0.0.1』を送信する。TEP(パケット転送装置)501、502のマルチキャストマッピング部22は、それぞれマッピング情報の更新メッセージに基づいて、マッピング情報を更新する。これにより、225.0.0.1、及び227.0.0.1に関するカプセル化が238.0.0.1に統一される。(
図34参照)。
【0141】
その後、TEP(パケット転送装置)501、502のマルチキャストマッピング部22は、マッピング情報の更新を契機に、元の227.0.0.1で利用していた238.0.0.3のメンバーがいなくなるので、パケットカプセリング部14を介して、離脱メッセージ『IGMP Leave 238.0.0.3』を送信することで、離脱処理を開始することができる(
図35参照)。
【0142】
結果として、
図36のように、225.0.0.1、および、227.0.0.1にマッピングする基盤マルチキャストアドレスが238.0.0.1に統一される。このようにして、仮想ネットワークの異なるマルチキャストアドレスのマルチキャスト通信のうち、通信範囲が重複するものについて、基盤ネットワーク側では、同一マルチキャストアドレスで通信することができる。
【0143】
なお、
図36では、クライアント512、532がそれぞれ自身のマルチキャスト通信のみを受信するように書いているが、このような通信制御は、IGMP snooping技術をTEP装置に装備することで実現することができる。
【0144】
以上のように、本実施形態によれば、第3の実施形態と同様に、基盤マルチキャストアドレスが枯渇する状態の発生を抑止することが可能となる。
【0145】
最後に、上記開示した構成を、さらに効果的に活用するための外部装置との組み合わせを述べる。IPマルチキャストでは、一般的にグローバルIPマルチキャストアドレス領域など利用目的が定義付けられている。このような領域を使用するとき、外部との通信との影響が問題となる可能性が出てくる。このような場合、マルチキャストルータには、特定のマルチキャスト通信のみを外部ネットワークと接続し、マッピング目的を利用しているマルチキャストアドレスなどをDropさせるフィルタ設定をすることで、外部マシンとの影響度を切り離すことができる。これにより、グローバルIPマルチキャストアドレス領域をマッピング用途として利用しても問題ないことは明白である。
【0146】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成、メッセージの表現形態は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【0147】
なお、上記したパケット転送装置1、1A〜1Dは、非特許文献3のオープンフロースイッチにて実現することもできる。この場合、上記したパケット転送装置1、1A〜1Dの各機能は、集中制御装置が、各装置に制御情報を設定することにより実現する。例えば、上記したマルチキャストパケットかどうかを判断する機能は、パケット転送装置1、1A〜1Dに、マルチキャストパケットを識別するマッチ条件と、その際の動作(インストラクション)とを対応付けたフローエントリを設定することにより実現できる。
【0148】
また、各図に示したパケット転送装置の各部(処理手段)は、パケット転送装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【0149】
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点によるパケット転送装置参照)
[第2の形態]
第1の形態のパケット転送装置において、
さらに、
他のパケット転送装置に対して、前記マルチキャストマッピング情報記憶部に記憶されているマッピング情報の変更内容を通知するマルチキャストマッピング情報共有部を備えるパケット転送装置。
[第3の形態]
第2の形態のパケット転送装置において、
前記マルチキャストマッピング情報共有部は、他のパケット転送装置から、自装置側に保持されているマッピング情報と競合するマッピング情報の変更内容の通知を受け取った場合、所定のルールで調停動作を行うパケット転送装置。
[第4の形態]
第1の形態のパケット転送装置において、
前記マルチキャストマッピング部は、前記第2のマルチキャストアドレスとして、外部のマルチキャストマッピング管理装置から提供されたマルチキャストアドレスを用いるパケット転送装置。
[第5の形態]
第4の形態のパケット転送装置において、
前記マルチキャストマッピング部は、前記マッピング情報と対応付けて、マルチキャストグループへの参加メンバーを管理し、メンバーが存在しなくなったとき、前記マルチキャストマッピング管理装置に対して、マッピング情報の削除を要求するパケット転送装置。
[第6の形態]
第1から第4いずれか一の形態のパケット転送装置において、
前記マルチキャストマッピング部は、前記マッピング情報と対応付けて、マルチキャストグループへの参加メンバーを管理し、
前記パケット転送装置は、さらに、
前記マッピング情報の中から、マルチキャストグループに参加しているメンバーが重複するマッピング情報を選択して、前記第2のマルチキャストアドレスを共有するよう統合するマッピング情報統合部を備えるパケット転送装置。
[第7の形態]
(上記第2の視点による制御装置参照)
[第8の形態]
(上記第3の視点による通信システム参照)
[第9の形態]
(上記第4の視点による通信方法参照)
[第10の形態]
(上記第5の視点によるプログラム参照)
なお、上記第7〜第10の形態は、第1の形態と同様に、第2〜第6の形態に展開することが可能である。
【0150】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。