(57)【要約】【課題】仮想化環境において大規模ネットワーク論理分割技術によって多数の論理的なネットワークを構築し、経路障害が発生した際や仮想サーバが物理サーバを移動する際に通信を継続可能とする。【解決手段】上記実現のため、仮想スイッチとネットワーク装置の接続を管理するシステム構成情報管理部と、仮想サーバの通信がマルチキャスト通信に変換される際に宛先アドレスとして使用されるマルチキャストアドレスを管理するサーバ情報管理部と、複数の物理経路上にマルチキャストパケットの転送経路を計算するマルチキャストツリー管理部と、仮想スイッチやネットワーク装置に、マルチキャストツリー管理部が計算したマルチキャストパケットの転送経路を通知することで、マルチキャストパケットの転送経路を制御するスイッチ制御部と、を備える管理装置を提供する。【選択図】図１
2014007681.tif 000002
【特許請求の範囲】
【請求項１】
複数の中継スイッチと複数の物理サーバ装置とがネットワークで接続され、前記物理サーバ上に、仮想サーバと、前記仮想サーバの通信をマルチキャスト通信に変換する機能を有する仮想スイッチと、が構成されるネットワークシステムにおいて、前記中継スイッチと前記物理サーバ装置とに、管理用ネットワークで接続される管理装置であって、
前記仮想スイッチと前記中継スイッチとの接続構成、および前記中継スイッチ間の接続構成、および、前記仮想サーバと前記仮想スイッチとの接続構成を管理し、
前記仮想サーバの送信フレームが前記仮想スイッチにおいてマルチキャストパケットに変換される際に宛先アドレスとなるマルチキャストアドレスを管理し、
前記接続構成と、前記マルチキャストアドレスと、を用いて、前記ネットワーク上に一つのマルチキャストツリーを構築するための、複数の経路を用いる設定を求め、
前記仮想スイッチ、および／または、前記中継スイッチに、前記求めたマルチキャストツリーを構築するための設定を通知する
ことを特徴とする管理装置。
【請求項２】
請求項１に記載の管理装置であって、
前記仮想サーバを前記物理サーバ上に構成する前に、前記仮想サーバを構成することにより新たに構築されるマルチキャストツリーを構築するための設定を求め、
求めた当該設定の追加を、前記仮想スイッチ、および／または、前記中継スイッチに指示する
ことを特徴とする管理装置。
【請求項３】
請求項１または２に記載の管理装置であって、
新たな中継スイッチが追加された場合に、追加された前記中継スイッチを経由する新たなマルチキャストツリーを構築するための設定を求め、
求めた当該設定の追加を、前記仮想スイッチ、および／または、前記中継スイッチに指示する
ことを特徴とする管理装置。
【請求項４】
請求項１から３のいずれか一に記載の管理装置であって、
前記マルチキャストツリーを構築するための設定として、マルチキャストアドレスと、前記マルチキャストアドレスを宛先アドレスとするマルチキャストパケットを出力するポートと、を指定する
ことを特徴とする管理装置。
【請求項５】
請求項１から３のいずれか一に記載の管理装置であって、
複数の前記マルチキャストツリーを構築するための設定を前記仮想スイッチや前記ネットワーク装置に通知するとき、マルチキャストツリー構築パケットを出力するポートを指定し、
前記マルチキャストツリーを構成する前記仮想スイッチ、および／または、仮想サーバの通信をマルチキャスト通信に変換する機能を有する中継スイッチに、前記マルチキャストツリー構築パケットの送信を指示する
ことを特徴とする管理装置。
【請求項６】
仮想サーバと、前記仮想サーバの通信をマルチキャスト通信に変換する機能を有する仮想スイッチと、が構成される物理サーバとネットワークで接続され、ネットワークシステムを構成する中継スイッチであって、
管理装置からのマルチキャストツリーを構築するための設定の通知を受信し、
前記設定指示を実行する
ことを特徴とする中継スイッチ。
【請求項７】
請求項６に記載の中継スイッチであって、
前記管理装置からマルチキャストアドレスと前記マルチキャストアドレスを宛先アドレスとするマルチキャストパケットを出力するポートを通知された場合、前記マルチキャストアドレスを宛先アドレスとしたマルチキャストパケットは、通知された前記ポートから出力する
ことを特徴とする中継スイッチ。
【請求項８】
請求項６に記載の中継スイッチであって、
前記管理装置から、マルチキャストツリー構築パケットを出力するポートを通知された場合、受信した前記マルチキャストツリー構築パケットを転送する際は、通知された前記ポートから出力する
ことを特徴とする中継スイッチ。
【請求項９】
請求項８に記載の中継スイッチであって、
前記管理装置から、前記マルチキャストツリー構築パケットの送信を指示された場合、前記マルチキャストツリー構築パケットを生成し、通知された前記ポートから送信する
ことを特徴とする中継スイッチ。
【請求項１０】
中継スイッチとネットワークで接続され、ネットワークシステムを構成する物理サーバにおいて、前記物理サーバに構成される仮想サーバの通信をマルチキャスト通信に変換する機能を有する、前記物理サーバに構成される仮想スイッチであって、
管理装置からのマルチキャストツリーを構築するための設定の通知を受信し、
前記設定指示を実行する
ことを特徴とする仮想スイッチ。
【請求項１１】
請求項１０に記載の仮想スイッチであって、
前記管理装置からマルチキャストアドレスと前記マルチキャストアドレスを宛先アドレスとするマルチキャストパケットを出力するポートを通知された場合、前記マルチキャストアドレスを宛先アドレスとしたマルチキャストパケットは、通知された前記ポートから出力する
ことを特徴とする仮想スイッチ。
【請求項１２】
請求項１０に記載の仮想スイッチであって、
前記管理装置から、マルチキャストツリー構築パケットを出力するポートを通知された場合、受信した前記マルチキャスト構築パケットを転送する際は、通知された前記ポートから出力し、
前記管理装置から、前記マルチキャストツリー構築パケットの送信を指示された場合、前記マルチキャストツリー構築パケットを生成し、通知された前記ポートから送信する
ことを特徴とする仮想スイッチ。
【請求項１３】
複数の中継スイッチと複数の物理サーバ装置とがネットワークで接続され、前記物理サーバ上に、仮想サーバと、前記仮想サーバの通信をマルチキャスト通信に変換する機能を有する仮想スイッチと、が構成され、管理装置が、前記中継スイッチと前記物理サーバ装置とに、管理用ネットワークで接続されるネットワークシステムであって、
前記管理装置は、
前記仮想スイッチと前記中継スイッチの接続構成、および前記中継スイッチ間の接続構成、および、前記仮想サーバと前記仮想スイッチとの接続構成を管理し、
前記仮想サーバの送信フレームが前記仮想スイッチにおいてマルチキャストパケットに変換される際に宛先アドレスとなるマルチキャストアドレスを管理し、
前記接続構成と、前記マルチキャストアドレスと、を用いて、前記ネットワーク上に一つのマルチキャストツリーを構築するための、複数の経路を用いる設定を求め、
前記仮想スイッチ、および／または、前記中継スイッチに、前記求めたマルチキャストツリーを構築するための設定を通知し、
前記中継スイッチは、
管理装置からのマルチキャストツリーを構築するための設定の通知を受信し、
前記設定指示を実行し、
前記仮想スイッチは、
前記管理装置からのマルチキャストツリーを構築するための設定の通知を受信し、
前記設定指示を実行する
ことを特徴とするネットワークシステム。
【請求項１４】
請求項１３に記載のネットワークシステムであって、
前記管理装置は、
前記仮想サーバを前記物理サーバ上に構成する前に、前記仮想サーバを構成することにより新たに構築されるマルチキャストツリーを構築するための設定を求め、
求めた当該設定の追加を、前記仮想スイッチ、および／または、前記中継スイッチに指示する
ことを特徴とするネットワークシステム。
【請求項１５】
請求項１３または１４に記載のネットワークシステムであって、
前記管理装置は、
新たな中継スイッチが追加された場合に、追加された前記中継スイッチを経由する新たなマルチキャストツリーを構築するための設定を求め、
求めた当該設定の追加を、前記仮想スイッチ、および／または、前記中継スイッチに指示する
ことを特徴とするネットワークシステム。
【請求項１６】
請求項１３から１５のいずれか一に記載のネットワークシステムであって、
前記管理装置は、求めた前記マルチキャストツリーを構築するための設定を前記仮想スイッチや前記中継スイッチに通知するとき、マルチキャストアドレスと前記マルチキャストアドレスを宛先アドレスとするマルチキャストパケットを出力するポートを指定し、
前記中継スイッチは、前記管理装置からマルチキャストアドレスと前記マルチキャストアドレスを宛先アドレスとするマルチキャストパケットを出力するポートを通知された場合、前記マルチキャストアドレスを宛先アドレスとしたマルチキャストパケットを出力する際、通知された前記ポートから送信し、
前記仮想スイッチは、前記管理装置からマルチキャストアドレスと前記マルチキャストアドレスを宛先アドレスとするマルチキャストパケットを出力するポートを通知された場合、前記マルチキャストアドレスを宛先アドレスとしたマルチキャストパケットを出力する際、通知された前記ポートから送信する
ことを特徴とするネットワークシステム。
【請求項１７】
請求項１３から１５のいずれか一に記載のネットワークシステムであって、
前記管理装置は、求めた前記マルチキャストツリーを構築するための設定を前記仮想スイッチや前記中継スイッチに通知するとき、マルチキャストツリー構築パケットを出力するポートを指定し、マルチキャスト通信を利用する前記仮想スイッチに前記マルチキャストツリー構築パケットの送信を指示し、
前記中継スイッチは、前記管理装置からマルチキャストツリー構築パケットを出力するポートを通知された場合、受信した前記マルチキャストツリー構築パケットを転送する際は、通知された前記ポートから送信し、
前記仮想スイッチは、
前記管理装置からマルチキャストツリー構築パケットを出力するポートを通知された場合、受信した前記マルチキャストツリー構築パケットを転送する際は、通知された前記ポートから送信し、
前記管理装置から、前記マルチキャストツリー構築パケットの送信を指示された場合、前記マルチキャストツリー構築パケットを生成し、通知された前記ポートから送信する
ことを特徴とするネットワークシステム。
【請求項１８】
請求項１７に記載のネットワークシステムであって、
前記中継スイッチは、前記管理装置から、前記マルチキャストツリー構築パケットの送信を指示された場合、前記マルチキャストツリー構築パケットを生成し、通知された前記ポートから送信する
ことを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、ネットワークシステムにおける集中管理型のマルチキャストツリー管理技術に関する。
【背景技術】
【０００２】
近年、コンピュータリソースの仮想化技術によって、一つの物理サーバ上で複数の仮想サーバを実行することが可能となっている。データセンタでは、多数の仮想サーバを実行することで、多数の顧客システムすなわちテナントを同一インフラに収容している。各テナントはネットワークリソースを共用しているが、例えばデータパケットの不正傍受防止を目的として、テナント毎にネットワークを論理的に分割することが望ましい。
【０００３】
非特許文献1に約1600万の論理的なネットワークが構築可能な大規模ネットワーク論理分割技術が記載されている。非特許文献1に記載の技術によれば、各物理サーバ内の仮想スイッチ等に仮想ネットワーク終端部を設け、仮想ネットワーク終端部がMAC（Media Access Control）フレームをUDP/IP（User Datagram Protocol/Internet Protocol）パケットでカプセル化し、カプセル化したパケットを宛先仮想サーバが属する仮想ネットワーク終端部（宛先仮想ネットワーク終端部）に送信する。カプセル化の際、テナントを特定する識別子（テナント識別子）がパケット内に追加される。パケットを受信した宛先仮想ネットワーク終端部が、テナント識別子と被カプセル化MACフレームの宛先アドレスの組み合わせを検証しフィルタリングすることで、テナント毎のネットワークを論理的に分割する。また、マルチキャストフレーム及びブロードキャストフレームは、仮想ネットワーク終端部でマルチキャストパケットにカプセル化される。仮想ネットワーク終端部間でマルチキャスト通信を用いることで、送信元仮想サーバと同一テナントの仮想サーバを有する仮想ネットワーク終端部にのみデータを送信し、テナント毎のネットワーク論理分割を実現している。
【０００４】
マルチキャスト通信とは特定の複数モジュールに同一のデータパケットを一斉送信する技術である。各スイッチやルータにおいてマルチキャストアドレス毎に転送すべきポートを定めることで、ネットワーク上にマルチキャストパケットの転送経路すなわちマルチキャストツリーが構築される。マルチキャストツリーを制御する方式の一つとして、IGMP（Internet Group Management Protocol）やIGMP Snoopingが知られている。IGMP及びIGMP Snoopingによれば、スイッチまたはルータによる問い合わせパケットや、マルチキャストパケットの受信モジュールによるマルチキャストツリーへの参加要求パケットのやり取りにより、スイッチやルータが転送すべきマルチキャストアドレスと転送ポートを学習する。この学習をすべてのスイッチやルータが行うことで、ネットワーク上にマルチキャストアドレス毎のマルチキャストツリーが構築され、マルチキャストパケットの受信を希望するモジュールにのみマルチキャストパケットを転送することが可能となる。
【０００５】
IGMP及びIGMP Snoopingにより構築されるマルチキャストツリーは冗長構成となっていないため、経路に障害が発生した場合、新たに問い合わせパケット及び参加要求パケットをやり取りしてマルチキャストツリーを再構築する必要がある。マルチキャスト通信を利用するモジュールが多数存在する場合、ルータやスイッチが参加要求パケットを大量に処理する必要があり、処理が完了するまでの間、マルチキャストツリーが再構築されず通信障害が発生する可能性がある。
【０００６】
特許文献1では、複数のマルチキャストツリーを構築する技術が開示されている。特許文献1に記載の技術によれば、隣接するスイッチやルータが独自のプロトコルによって、接続している端末や現在中継しているマルチキャストパケットを互いに通知する。スイッチやルータは、通知された情報を用いて参加要求パケットを送信するスイッチまたはルータを選択する。この選択によりスイッチやルータにおけるマルチキャストパケットの転送ポートが決定し、こうしたやり取りをすべてのスイッチやルータが行うことで、ネットワーク上にマルチキャストツリーが構築される。またこのとき、参加要求パケットを拡張しマルチキャストツリーに識別子を持たせることで、同一マルチキャストアドレスに対し複数のマルチキャストツリーを構築することを可能とする。
【０００７】
さらに特許文献2では、マルチキャストに関するネットワークリソースを集中管理装置が管理する技術が開示されている。特許文献2に記載の技術によれば、集中管理装置がマルチキャストアドレスやマルチキャストアドレスのマルチキャストツリーを管理する。モジュールがマルチキャスト通信を開始したい場合、集中管理装置へマルチキャスト通信のセッション要求を行う。集中管理装置はセッション要求に基づき、使用するマルチキャストアドレスをモジュールに通知する。通知されるマルチキャストアドレスは、セッション要求を満たすマルチキャストツリーが既に構築されているものでも良いし、集中管理装置がセッション要求を満たすように、新たにスイッチやルータにマルチキャストパケットの転送ポートを設定し、マルチキャストツリーを構築したものでも良い。このとき、集中管理装置により構築されるマルチキャストツリーはあらかじめ非経路障害時用と経路障害時用の経路が設定されており、通常時は非経路障害時用の経路を利用し、非経路障害時用の経路に障害が発生した場合は経路障害時用の経路を利用することで冗長化が実現されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】US 2007/0177594 A1
【特許文献２】US 2004/0258066 A1
【非特許文献】
【０００９】
【非特許文献１】"A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks"、[online]、2011/8/26、[2012/5/29検索]、インターネット＜URL：http://tools.ietf.org/id/draft-mahalingam-dutt-dcops-vxlan-01.txt＞
【非特許文献２】"VMware vMotion for Live Migration of Virtual Machines"、[online]、[2012/6/19 検索]、インターネット＜URL：http://www.vmware.com/products/vmotion/overview.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献1に記載の技術は、マルチキャストツリーに識別子を設けることで、マルチキャストアドレス毎に複数のマルチキャストツリーを構築している。しかし、通信に用いられるマルチキャストアドレスの数が増えると、マルチキャストアドレスの数以上にマルチキャストツリーの数が増加し、スイッチやルータにおけるマルチキャストパケットの転送ポートの学習量が多くなる。スイッチやルータにおけるマルチキャストパケットの転送ポートの学習用メモリには制限があるため、利用できるマルチキャストアドレスの数が制限され、大規模ネットワーク論理分割技術において多数のテナントを収容することが困難となる。
【００１１】
特許文献2に記載の技術は、集中管理装置がネットワークリソースを一元管理することで、モジュールから受けたセッション要求を満たす冗長化したマルチキャストツリーが構築されたマルチキャストアドレスをモジュールに割り当てる。しかし、データセンタでは、非特許文献2のように大規模ネットワーク論理分割技術においてマルチキャスト通信を利用するきっかけとなる仮想サーバは物理サーバを移動することが可能である。特許文献2では、仮想サーバが物理サーバを移動しマルチキャスト通信を行うためには、仮想サーバの移動後に新たに集中管理装置へセッション要求を行い、マルチキャストアドレスの割り当てを待つ必要がある。この間、仮想サーバは利用可能なマルチキャストアドレスが存在しないためマルチキャスト通信が利用できず、通信障害が発生する可能性がある。
【００１２】
したがって、より改善されたマルチキャストツリーの管理技術が求められている。
【課題を解決するための手段】
【００１３】
本明細書では、以上の点が考慮され、仮想化環境において大規模ネットワーク論理分割技術によって多数の論理的なネットワークを構築することが可能で、経路障害が発生した際や仮想サーバが物理サーバを移動する際に通信を継続可能とする、集中管理型のマルチキャストツリーの管理システム及びその方法が開示される
本明細書は上記課題を解決する態様を複数含んでいるが、その一例は、複数の中継スイッチと複数の物理サーバ装置とがネットワークで接続され、物理サーバ上に、仮想サーバと、仮想サーバの通信をマルチキャスト通信に変換する機能を有する仮想スイッチと、が構成され、管理装置が、中継スイッチと物理サーバ装置とに、管理用ネットワークで接続されるネットワークシステムであって、
管理装置は、仮想スイッチと中継スイッチの接続構成、および中継スイッチ間の接続構成、および、仮想サーバと仮想スイッチとの接続構成を管理し、仮想サーバの送信フレームが仮想スイッチにおいてマルチキャストパケットに変換される際に宛先アドレスとなるマルチキャストアドレスを管理し、接続構成と、マルチキャストアドレスと、を用いて、ネットワーク上に一つのマルチキャストツリーを構築するための、複数の経路を用いる設定を求め、仮想スイッチ、および／または、中継スイッチに、求めたマルチキャストツリーを構築するための設定を通知し、中継スイッチは、管理装置からのマルチキャストツリーを構築するための設定の通知を受信し、設定指示を実行し、仮想スイッチは、管理装置からのマルチキャストツリーを構築するための設定の通知を受信し、設定指示を実行することを特徴とする。
【００１４】
なお、上述のネットワーク上に一つのマルチキャストツリーを構築するための、複数の経路を用いる設定とは、例えば、異なるスイッチを経由する複数の設定であっても良い。  さらに、管理装置は、仮想サーバを物理サーバ上に構成する前に、仮想サーバを構成することにより新たに構築されるマルチキャストツリーを構築するための設定を求め、求めた当該設定の追加を、仮想スイッチ、および／または、中継スイッチに指示するように構成してもよい。
【００１５】
さらに、管理装置は、新たな中継スイッチが追加された場合に、追加された中継スイッチを経由する新たなマルチキャストツリーを構築するための設定を求め、求めた当該設定の追加を、仮想スイッチ、および／または、中継スイッチに指示するように構成してもよい。
【００１６】
さらに、管理装置は、求めたマルチキャストツリーを構築するための設定を仮想スイッチや中継スイッチに通知するとき、マルチキャストアドレスとマルチキャストアドレスを宛先アドレスとするマルチキャストパケットを出力するポートを指定し、中継スイッチは、管理装置からマルチキャストアドレスとマルチキャストアドレスを宛先アドレスとするマルチキャストパケットを出力するポートを通知された場合、マルチキャストアドレスを宛先アドレスとしたマルチキャストパケットを出力する際、通知されたポートから送信し、仮想スイッチは、管理装置からマルチキャストアドレスとマルチキャストアドレスを宛先アドレスとするマルチキャストパケットを出力するポートを通知された場合、マルチキャストアドレスを宛先アドレスとしたマルチキャストパケットを出力する際、通知されたポートから送信するように構成してもよい。
【００１７】
または、管理装置は、求めたマルチキャストツリーを構築するための設定を仮想スイッチや中継スイッチに通知するとき、マルチキャストツリー構築パケットを出力するポートを指定し、マルチキャスト通信を利用する仮想スイッチにマルチキャストツリー構築パケットの送信を指示し、中継スイッチは、管理装置からマルチキャストツリー構築パケットを出力するポートを通知された場合、受信したマルチキャストツリー構築パケットを転送する際は、通知されたポートから送信し、仮想スイッチは、管理装置からマルチキャストツリー構築パケットを出力するポートを通知された場合、受信したマルチキャストツリー構築パケットを転送する際は、通知されたポートから送信し、管理装置から、マルチキャストツリー構築パケットの送信を指示された場合、マルチキャストツリー構築パケットを生成し、通知されたポートから送信するように構成してもよい。
【００１８】
さらに、中継スイッチは、管理装置から、マルチキャストツリー構築パケットの送信を指示された場合、マルチキャストツリー構築パケットを生成し、通知されたポートから送信するように構成してもよい。
【００１９】
上記態様によれば、例えば、経路の障害発生時やマルチキャスト通信を行う仮想サーバが別の物理サーバに移動した際に、マルチキャストツリーを再構築することなく通信を行うことができる。
【発明の効果】
【００２０】
開示によれば、多数の論理的なネットワークを構築することが可能であり、通信障害がより起こりにくいマルチキャストツリーの管理技術を提供可能になる。
【００２１】
上記以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２２】
【図１】第1の実施形態及び第2の実施形態に関するネットワークシステムの構成を例示する図である。
【図２】第1の実施形態及び第2の実施形態に関する管理装置の機能構成を例示する図である。
【図３】第1の実施形態に関する中継スイッチの機能構成を例示する図である。
【図４】第1の実施形態に関する物理サーバの構成を例示する図である。
【図５】第1の実施形態及び第2の実施形態に関する管理装置が保持するシステム構成情報管理テーブルの構成を例示する図である。
【図６】第1の実施形態及び第2の実施形態に関する管理装置が保持する仮想サーバ管理テーブルの構成を例示する図である。
【図７】第1の実施形態及び第2の実施形態に関する管理装置が保持するマルチキャストツリー構成管理テーブルの構成を例示する図である。
【図８（ａ）】第1の実施形態及び第2の実施形態に関する中継スイッチが保持するマルチキャストパケット転送経路テーブルの構成を例示する図である。
【図８（ｂ）】第1の実施形態及び第2の実施形態に関する仮想スイッチが保持するマルチキャストパケット転送経路テーブルの構成を例示する図である。
【図９】第1の実施形態に関する管理装置が中継スイッチ及び仮想スイッチに送信するマルチキャストツリー設定パケットのパケット形式を例示するブロック図である。
【図１０】第1の実施形態に関する仮想サーバが物理サーバを移動する際の通信のシーケンスを例示する図である。
【図１１】第1の実施形態に関する中継スイッチが追加される際の通信のシーケンスを例示する図である。
【図１２】第1の実施形態に関する仮想サーバが物理サーバを移動する際の管理装置のマルチキャストツリーを計算し、中継スイッチや仮想スイッチにマルチキャストパケットの転送経路を通知する処理手順を例示するフローチャートである。
【図１３】第1の実施形態に関する管理装置の中継スイッチ及び仮想スイッチにおけるマルチキャストパケット転送ポートの選択処理手順を例示するフローチャートである。
【図１４】第1の実施形態に関する管理装置のマルチキャストツリー構成管理テーブルの更新とマルチキャストツリー設定パケット送信処理手順を例示するフローチャートである。
【図１５】第1の実施形態に関する中継スイッチ及び仮想スイッチのマルチキャストパケット転送経路テーブルの更新処理手順を例示するフローチャートである。
【図１６】第1の実施形態に関する中継スイッチが追加される際の管理装置のマルチキャストツリーを計算し、中継スイッチや仮想スイッチにマルチキャストパケットの転送経路を通知する処理手順を例示するフローチャートである。
【図１７】第2の実施形態に関する中継スイッチの構成を例示する図である。
【図１８】第2の実施形態に関する物理サーバの構成を例示する図である。
【図１９（ａ）】第2の実施形態に関する中継スイッチが保持するマルチキャストツリー構築パケット転送経路テーブルの構成を例示する図である。
【図１９（ｂ）】第2の実施形態に関する仮想スイッチが保持するマルチキャストツリー構築パケット転送経路テーブルの構成を例示する図である。
【図２０】第2の実施形態に関する管理装置が中継スイッチ及び仮想スイッチに送信するマルチキャストツリー構築パケット転送経路設定パケットのパケット形式を例示するブロック図である。
【図２１】第2の実施形態に関する管理装置が中継スイッチ及び仮想スイッチに送信するマルチキャストツリー構築パケット送信指示パケットのパケット形式を例示するブロック図である。
【図２２】第2の実施形態に関する仮想サーバが物理サーバを移動する際の通信のシーケンスを例示する図である。
【図２３】第2の実施形態に関する中継スイッチが追加される際の通信のシーケンスを例示する図である。
【図２４】第2の実施形態に関する管理装置のマルチキャストツリー構成管理テーブルの更新とマルチキャストツリー設定パケット送信処理手順を例示するフローチャートである。
【図２５】第2の実施形態に関する中継スイッチや仮想スイッチのマルチキャストツリー構築パケット転送経路テーブルの更新処理手順を例示するフローチャートである。
【図２６】第2の実施形態に関する中継スイッチや仮想スイッチのマルチキャストツリー構築パケットの送信処理手順を例示するフローチャートである。
【発明を実施するための形態】
【００２３】
以降、実施形態を、図を参照して詳細に説明する。なお、以下の説明は一例であり、実施例の構成に限られるものではない。
【実施例１】
【００２４】
図1〜図16を参照して第1の実施形態を説明する。
【００２５】
図1は、全体として第1の実施形態によるネットワークシステム10Aを示す。
【００２６】
本実施形態では、ネットワークシステム10Aを管理装置100と中継スイッチ200a〜中継スイッチ200eと物理サーバ300a〜物理サーバ300dにより構成する。以下、中継スイッチ200a〜中継スイッチ200eを特に区別しない場合は中継スイッチ200、物理サーバ300a〜物理サーバ300dを特に区別しない場合は物理サーバ300という。
【００２７】
管理装置100は、例えば、物理的なコンピュータハードウェアである計算機上に実現される。管理ネットワーク20により、中継スイッチ200a〜中継スイッチ200eおよび物理サーバ300a〜物理サーバ300dと接続しており、例えば中継スイッチ200のネットワーク設定を変更したり、物理サーバ300における仮想サーバの移動を指示したりする。
【００２８】
中継スイッチ200は、例えばレイヤ2スイッチやレイヤ3スイッチである。中継スイッチ200a、200bは、中継スイッチ200c、200dと、フレームやパケットの送受信に用いるネットワークで接続され、中継スイッチ200c、200dは、物理サーバ300a〜物理サーバ300dと、同じくフレームやパケットの送受信に用いるネットワークで接続されており、各中継スイッチ200は受信したフレームやパケットをその転送経路を判断して送信する。中継スイッチ200のP1〜P4は物理的なあるいは論理的な通信ポートを示す。
【００２９】
また本実施例では、中継スイッチ200eは、物理サーバ300dの通信に関して大規模ネットワーク論理分割技術における仮想ネットワーク終端部の機能を果たす。仮想ネットワーク終端部の機能を果たす中継スイッチ200eは、物理サーバ300dから受信したマルチキャストフレーム及びブロードキャストフレームを、あらかじめ登録されたサーバIDとテナントIDとマルチキャストアドレスを対応付けたテーブル（不図示）を元に、マルチキャストパケットにカプセル化して中継スイッチ200dに転送する。
【００３０】
物理サーバ300a、物理サーバ300cはそれぞれ、仮想スイッチ400aと仮想サーバ500aと仮想サーバ500b、仮想スイッチ400cと仮想サーバ500cを備える。物理サーバ300bは、仮想スイッチ400bを備える。物理サーバ300dは、仮想スイッチや仮想サーバを配備しておらず、テナントBにより利用されている物理サーバとする。以下、仮想スイッチ400a〜仮想スイッチ400cを特に区別しない場合は仮想スイッチ400、仮想サーバ500a〜仮想サーバ500cを特に区別しない場合は、仮想サーバ500という。物理サーバ300は、例えば物理的なコンピュータハードウェアである計算機上に実現される。物理サーバ300は、管理装置100及び中継スイッチ200と接続され、中継スイッチ200やデータ転送用ネットワーク50を介して相互に通信可能である。
【００３１】
仮想スイッチ400は、物理サーバ300上でプログラムが実行されることにより実現されるもので、例えば中継スイッチと同様に振舞う。仮想スイッチ400は、仮想サーバ500や例えば物理サーバ300の物理NICを介して中継スイッチ200と接続しており、受信したフレームやパケットの転送経路を判断して送信する。仮想スイッチ400のvP1〜vP3は論理的なポートを示す。また本実施例では、仮想スイッチ400は仮想サーバ500の通信に関して大規模ネットワーク論理分割技術における仮想ネットワーク終端部の機能を果たす。仮想ネットワーク終端部の機能を果たす仮想スイッチ400は、仮想サーバ500から受信したマルチキャストフレーム及びブロードキャストフレームを、あらかじめ登録された仮想サーバIDとテナントIDとマルチキャストアドレスを対応付けたテーブル（不図示）を元に、マルチキャストパケットにカプセル化して中継スイッチ200に転送する。
【００３２】
仮想サーバ500は、物理サーバ300上でプログラムが実行されることにより実現されるもので、例えば計算機と同様に振舞う。仮想サーバ500上には任意のオペレーティングシステムやアプリケーションプログラムなどが動作している。仮想サーバ500a、仮想サーバ500b、仮想サーバ500cはそれぞれ、テナントA、テナントB、テナントAにより利用される仮想サーバとする。
【００３３】
図1の管理ネットワーク20は、管理装置100と中継スイッチ200、物理サーバ300を接続するネットワークである。例えば、管理装置100が中継スイッチ200や仮想スイッチ400にマルチキャストツリー構築に関する指示を通知するためのマルチキャストツリー設定パケット1やマルチキャストツリー構築パケット転送経路設定パケット2やマルチキャストツリー構築パケット送信指示パケット3を管理ネットワーク20により送信する。
【００３４】
図1の矢印30は、仮想サーバ500aが、物理サーバ300aから物理サーバ300bに移動することを示している。
【００３５】
図1のマルチキャストツリー40は、仮想サーバ500aが物理サーバ300aから物理サーバ300bに移動する直前における、仮想ネットワーク終端部間のテナントAのマルチキャストツリーを示している。
【００３６】
例えば、物理サーバ300aに仮想サーバ500aが存在するとき、仮想サーバ500cがテナントAの仮想サーバ500にブロードキャストフレームを送信すると、当該フレームは仮想スイッチ400cに送信され、仮想スイッチ400cの仮想ネットワーク終端部機能によりテナントAに対応するマルチキャストアドレスを宛先とするマルチキャストパケットにカプセル化される。当該パケットは仮想スイッチ400cから中継スイッチ200dに送信される。
【００３７】
中継スイッチ200dでは、中継スイッチ200cまでのマルチキャストパケット転送ポートとして、通信ポートP1と通信ポートP2の2つが存在するが、例えばECMP（Equal Cost Multi Path）技術といったスイッチの転送機能によって当該パケットを送信する転送ポートを選択する。なお、このときすべての転送ポートを選択しても良い。ここでは、中継スイッチ200dから中継スイッチ200aへ当該パケットを転送するとし、当該パケットは中継スイッチ200dから中継スイッチ200aを経由し中継スイッチ200cへ送信される。
【００３８】
中継スイッチ200cは仮想スイッチ400aと仮想スイッチ400bへ当該パケットを転送する。仮想スイッチ400aは、仮想ネットワーク終端部機能によって、配下に転送すべきテナントAの仮想サーバ500が存在するか否か判断し、肯定結果を受け当該パケットをデカプセル化し、仮想サーバ500aに仮想サーバ500cが送信したブロードキャストフレームを送信する。仮想スイッチ400bは、仮想ネットワーク終端部機能によって配下に転送すべきテナントAの仮想サーバ500が存在するか否か判断し、否定判断を受け当該パケットを破棄する。
【００３９】
図1のデータ転送用ネットワーク50は、中継スイッチ200間、および、中継スイッチ200と物理サーバ300と、を接続するネットワークである。例えば、物理サーバ300や仮想サーバ500が送信したデータフレームやデータパケットは、データ転送用ネットワーク50により、他の物理サーバ300や仮想サーバ500に転送される。
【００４０】
本実施形態では、管理装置100が中継スイッチ200および物理サーバ300と、中継スイッチ200と物理サーバ300が直接接続しているが、スイッチやリピーターが介在していてもよい。
【００４１】
また、図1のネットワークシステムの装置構成数や装置間の接続リンク数は、あくまで一例であり、この構成に限定されず様々な数の装置や接続を用いてもよい。
【００４２】
以下、中継スイッチ200と仮想スイッチ400を特に区別しない場合は単に、スイッチという。また、物理サーバ300と仮想サーバ500を計算機として特に区別しない場合は単に、サーバという。
【００４３】
図2は、管理装置100の機能構成を示した図である。管理装置100は、例えば、入力部110と、出力部120と、演算部130と、ネットワークインターフェース140と、記憶部150を備える。
【００４４】
入力部110は、例えばキーボードやマウスといった装置により入力されるユーザの入力情報を演算部130に送る。
【００４５】
出力部120は、例えばディスプレイといった装置に、ユーザからの入力に対する出力情報を通知する。
【００４６】
演算部130は、記憶部150に記憶されているオペレーティングシステムや、以下に説明する処理部を実現するプログラムなどを実行する。
【００４７】
ネットワークインターフェース140は、例えばNIC（Network interface Card）のような装置で構成され、他の機器と接続する。
【００４８】
記憶部150は、例えばフラッシュメモリ、HDD（Hard Disc Drive）のような記憶装置であり、オペレーティングシステム（不図示）、システム構成情報管理部151、サーバ情報管理部152、マルチキャストツリー管理部153、スイッチ制御部154などの各処理部を実現するプログラム、システム構成情報管理テーブル155、サーバ情報管理テーブル156、マルチキャストツリー構成管理テーブル157を記憶する。
【００４９】
システム構成情報管理部151は、例えば、中継スイッチ200や物理サーバ300や仮想スイッチ400や仮想サーバ500の追加、または、削除、または、移動を決定し、中継スイッチ200や仮想スイッチ400の接続構成を、図5に示すシステム構成情報管理テーブル155に格納し、管理する。中継スイッチ200や物理サーバ300や仮想スイッチ400や仮想サーバ500の追加、または、削除、または、移動は、各装置を管理する他の管理システム（不図示）により決定されても良く、このときシステム構成情報管理部151は他の管理システムと連携して各装置の追加、または、削除、または、移動を検知し、中継スイッチ200や仮想スイッチ400の接続構成をシステム構成情報管理テーブル155に格納する。
【００５０】
サーバ情報管理部152は、サーバに対応するテナントIDと、仮想ネットワーク終端部（不図示）において当該サーバが送信するマルチキャストフレーム及びブロードキャストフレームがカプセル化される際に宛先アドレスとなるマルチキャストアドレスと、仮想ネットワーク終端部機能を果たすスイッチと、を決定し、図6に示すサーバ情報管理テーブル156に格納し、管理する。
【００５１】
ただし、サーバに対応するテナントIDや、当該サーバの送信フレームがカプセル化される際に宛先アドレスとなるマルチキャストアドレスや、仮想ネットワーク終端部機能を果たすスイッチは、他の管理システム（不図示）によって決定されても良く、このときサーバ情報管理部152は他の管理システムと連携してサーバに対応するテナントIDと、マルチキャストアドレスと、仮想ネットワーク終端部機能を果たすスイッチと、を管理し、サーバ情報管理テーブル156に格納する。
【００５２】
マルチキャストツリー管理部153は、システム構成情報管理テーブル155に格納された中継スイッチ200や仮想スイッチ400の接続構成と、サーバ情報管理テーブル156に格納されているサーバのテナントIDと仮想ネットワーク終端部機能を果たすスイッチと、を用いて、テナント毎のマルチキャストツリー（すなわち、マルチキャストパケットの転送経路）の構築に必要な設定内容を求める。具体的には、例えば、マルチキャストアドレスに対する中継スイッチ200や仮想スイッチ400のマルチキャストパケットの転送ポートを求め、図7に示すマルチキャストツリー構成管理テーブル157に格納する。
【００５３】
スイッチ制御部154は、中継スイッチ200や仮想スイッチ400に、マルチキャストツリーの構築に関する設定の指示を、例えばマルチキャストツリー設定パケット1によって通知する。
【００５４】
システム構成情報管理テーブル155は、ネットワークシステム10Aを構成するすべての中継スイッチ200、仮想スイッチ400について、接続ポート及び当該接続ポートで接続する装置を格納する。
【００５５】
サーバ情報管理テーブル156は、各サーバについて、テナントID及びカプセル化の際宛先アドレスとなるマルチキャストアドレス及び仮想ネットワーク終端部機能を果たすスイッチを格納する。
【００５６】
マルチキャストツリー構成管理テーブル157は、ネットワークシステム10A上に構築されているマルチキャストツリーを管理するため、マルチキャストアドレスとそのマルチキャストアドレスを宛先とするマルチキャストパケットを転送する中継スイッチ200や仮想スイッチ400、及びその転送ポートを格納する。
【００５７】
図3は、中継スイッチ200の機能構成を示した図である。中継スイッチ200は、例えば、入力部210と、出力部220と、演算部230と、スイッチング部240と、通信ポート250−1〜250−nと記憶部260を備える。以下、通信ポート250−1〜250−nを特に区別しない場合は、通信ポート250という。
【００５８】
入力部210は、例えばキーボードやマウスといった入力装置により入力されるユーザの入力情報を演算部230に送る。
【００５９】
出力部220は、例えばディスプレイといった出力装置にユーザからの入力に対する出力情報を通知する。
【００６０】
演算部230は、記憶部260に記憶されているオペレーティングシステムや、以下に説明する処理部を実現するプログラムなどを実行する。
【００６１】
スイッチング部240は、例えば、通信ポート250からフレームやパケットを受信したり、通信ポート250へフレームやパケットを送信したり、フレームやパケットを破棄するなど、パケットの送受信等を制御する。
【００６２】
通信ポート250は、他の機器と通信を行うための接続インターフェースである。
【００６３】
記憶部260は、例えばオペレーティングシステム（不図示）と、通信制御部261、管理装置連携部263などの各処理部を実現するプログラムと、フォワーディングテーブル262、マルチキャストパケット転送経路テーブル264を記憶する。
【００６４】
通信制御部261は、例えば、受信したパケットに格納される宛先アドレスがフォワーディングテーブル262に登録されていない場合、フォワーディングテーブル262に、当該パケットを受信したポート及び当該パケットの宛先アドレスとなるMACアドレスやIPアドレスを登録する。また、例えば、受信したフレームのカプセル化やデカプセル化を行い、大規模ネットワーク論理分割技術における仮想ネットワーク終端部の機能を果たす。
【００６５】
フォワーディングテーブル262（詳細内容は不図示）は、例えば宛先アドレス（例えばMACアドレスやIPアドレス）に基づいたフレームやパケットの転送ポート情報等が記録される。
【００６６】
管理装置連携部263は、管理装置100のスイッチ制御部154から送信されたマルチキャストツリー構築に関する通知を受信して通知における指示を実行する。例えばマルチキャストツリー設定パケット1によって通知されるマルチキャストアドレスに対する転送ポートをマルチキャストパケット転送経路テーブル264に格納する。
【００６７】
マルチキャストパケット転送経路テーブル264は、マルチキャストアドレスに対する転送ポートを格納する。
【００６８】
図4は、物理サーバ300を示した図である。物理サーバ300は、例えば、入力部310と、出力部320と、演算部330と、ネットワークインターフェース340と、記憶部350を備える。
【００６９】
入力部310は、例えばキーボードやマウスといった装置により入力されるユーザの入力情報を演算部330に送る。
【００７０】
出力部320は、例えばディスプレイといった装置に、ユーザからの入力に対する出力情報を通知する。
【００７１】
演算部330は、記憶部350に記憶されているオペレーティングシステムなどを実行し、各処理部、仮想スイッチ400、仮想サーバ500を動作させる。
【００７２】
ネットワークインターフェース340は、例えばNICのような装置で構成され、他の機器と接続する。
【００７３】
記憶部350は、例えばフラッシュメモリ、HDDのような記憶装置であり、例えばオペレーティングシステム（不図示）、仮想スイッチ400、仮想サーバ500を記憶する。
【００７４】
仮想スイッチ400は、例えば通信制御部410、フォワーディングテーブル420、仮想通信ポート430a〜仮想通信ポート430n、管理装置連携部440、マルチキャストパケット転送経路テーブル450を備える。以下、各々の仮想通信ポートを特に区別しない場合は、仮想通信ポート430という。
【００７５】
通信制御部410は、例えば、ネットワークインターフェース340からフレームやパケットを受信したり、ネットワークインターフェース340へフレームやパケットを送信したり、フレームやパケットを破棄するなど、パケットの送受信等を制御する。また、例えば受信したパケットに格納される宛先アドレスがフォワーディングテーブル420に登録されていない場合、フォワーディングテーブル420に、当該パケットを受信したポート及び当該パケットの宛先アドレスとなるMACアドレスやIPアドレスを登録する。また、例えば、受信したフレームのカプセル化やデカプセル化を行い、大規模ネットワーク論理分割技術における仮想ネットワーク終端部の機能を果たす。
【００７６】
フォワーディングテーブル420（詳細内容は不図示）は、例えば宛先アドレス（例えばMACアドレスやIPアドレス）に基づいたパケットの転送仮想ポート情報等が記録される。  仮想通信ポート430は、他の機器、例えばネットワークインターフェース340や仮想サーバ500と通信を行うための接続インターフェースである。
【００７７】
管理装置連携部440は、管理装置100のスイッチ制御部154から送信されたマルチキャストツリー構築に関する通知を受信して通知における指示を実行する。例えばマルチキャストツリー設定パケット1によって通知されるマルチキャストアドレスに対する転送ポートをマルチキャストパケット転送経路テーブル450に格納する。
【００７８】
マルチキャストパケット転送経路テーブル450は、マルチキャストアドレスに対する転送ポートを格納する。
【００７９】
仮想サーバ500は、仮想化されたコンピュータであり、例えば仮想ネットワークインターフェース510を備える。仮想サーバ500上では任意のオペレーティングシステム（不図示）やアプリケーションプログラム（不図示）などが動作する。
【００８０】
仮想ネットワークインターフェース510は、例えば仮想NICのような機能で構成され、仮想スイッチ400と接続する。
【００８１】
図5は、管理装置100に格納されているシステム構成情報管理テーブル155の一例を示す図である。
【００８２】
管理対象スイッチID欄155Aには管理装置100の管理対象スイッチ、例えば中継スイッチ200、仮想スイッチ400のIDが格納される。接続ポート欄155Bには管理対象スイッチの接続ポート、例えば通信ポート250や仮想通信ポート430の識別番号が格納される。接続先スイッチID欄155Cには接続ポートが接続するスイッチ、例えば中継スイッチ200、仮想スイッチ400のIDが格納される。
【００８３】
図5の場合、例えば中継スイッチ200aは、通信ポートP2によって中継スイッチ200cと接続していることが示されている。
【００８４】
図6は、管理装置100に格納されているサーバ情報管理テーブル156の一例を示す図である。
【００８５】
サーバID欄156Aには、管理装置100が管理しているサーバのIDが格納される。テナントID欄156Bには、サーバのテナントIDが格納される。マルチキャストアドレス欄156Cには、サーバの送信フレームが仮想ネットワーク終端部でカプセル化される際に宛先アドレスとなるマルチキャストアドレスが格納される。仮想ネットワーク終端部欄156Dには、サーバの送信フレームをカプセル化する仮想ネットワーク終端部を持つスイッチが格納される。
【００８６】
図6の場合、例えば仮想サーバ500aは、テナントAに属する仮想サーバであり、マルチキャストフレームやブロードキャストフレームを送信する際、仮想ネットワーク終端部である仮想スイッチ400aあるいは仮想スイッチ400bで宛先アドレスが239．1．1．1であるマルチキャストパケットにカプセル化されることが示されている。なお、仮想サーバ500aのエントリーが複数あることは、仮想サーバ500aが移動することを示す。各エントリーは、管理装置100が仮想サーバ移動時に自動で格納してもよいし、管理者が手動で格納しても良い。また、マルチキャストアドレス欄156Cに格納されるアドレスは、MACアドレスであってもよいしIPアドレスであっても良いし、その他のマルチキャストに用いられるアドレスであっても良い。
【００８７】
図7は、管理装置100に格納されているマルチキャストツリー構成管理テーブル157の一例を示す図である。
【００８８】
マルチキャストアドレス欄157Aには、仮想ネットワーク終端部でカプセル化する際に宛先アドレスとなりうるマルチキャストアドレスが格納される。スイッチID欄157Bには、マルチキャストパケットを転送する中継スイッチ200や仮想スイッチ400のIDが格納される。転送ポート欄157Cには、中継スイッチ200や仮想スイッチ400におけるマルチキャストパケットを転送するための転送ポートの識別番号、例えば通信ポート250やネットワークインターフェース340の識別番号が格納される。
【００８９】
図7の場合、例えばマルチキャストアドレス「239．1．1．1」のマルチキャストツリーは、中継スイッチ200aの通信ポートP2とP3、中継スイッチ200bの通信ポートP2とP3、中継スイッチ200cの通信ポートP1とP2とP3、中継スイッチ200dの通信ポートP1とP2とP3、仮想スイッチ400aの仮想通信ポートvP1、仮想スイッチ400cの仮想通信ポートvP1上に構築されていることを示す。
【００９０】
図8（a）は中継スイッチ200に格納されているマルチキャストパケット転送経路テーブル264を示す。
【００９１】
マルチキャストアドレス欄264Aには、マルチキャストアドレスが格納される。転送ポート264Bには、マルチキャストアドレス欄264Aに格納されているマルチキャストアドレスを宛先とするマルチキャストパケットを転送するポートの識別番号、例えば通信ポート250の識別番号が格納される。
【００９２】
例えば、図8（a）の場合、一般的なマルチキャストパケットの転送ルールに従い、マルチキャストアドレス「239．1．1．1」を宛先アドレスとするマルチキャストパケットを転送する場合、通信ポートP1とP2とP3のうち、マルチキャストパケットを受信した通信ポート以外の通信ポートから送信することを示す。
【００９３】
図8（b）は仮想スイッチ400に格納されているマルチキャストパケット転送経路テーブル450を示す。マルチキャストアドレス欄450Aには、マルチキャストアドレスが格納される。転送ポート450Bには、マルチキャストアドレス欄450Aに格納されているマルチキャストアドレスを宛先とするマルチキャストパケットを転送するポートの識別番号、例えば仮想通信ポート430の識別番号が格納される。
【００９４】
図9は、管理装置100がスイッチにマルチキャストツリーを構築するための設定を通知するパケットであるマルチキャストツリー設定パケット1の一例を示した図である。
【００９５】
例えば、宛先アドレスフィールド1Aにはマルチキャストツリーを設定するスイッチのMACアドレスが格納される。送信元アドレスフィールド1Bには管理装置のMACアドレスが格納される。マルチキャストツリー構築指示フィールド1Cには、「追加」や「削除」といったマルチキャストツリーの構築に関する設定の指示が格納される。転送ポート番号フィールド1Dにはマルチキャストツリー構築指示フィールド1Cに格納された指示を反映させる転送ポート番号が格納される。マルチキャストアドレスフィールド1Eにはマルチキャストツリー構築指示フィールド1Cに格納された指示を反映させるマルチキャストアドレスが格納される。
【００９６】
図10、図11は、第1の実施形態におけるマルチキャストツリー構築処理を示すシーケンス図である。
【００９７】
図10のシーケンスQ1〜シーケンスQ7は、図1のネットワークシステム10Aにおいて仮想サーバ500aが物理サーバ300aから物理サーバ300bへ移動する場合の、各スイッチにおけるマルチキャストパケット転送経路テーブル264やマルチキャストパケット転送経路テーブル450の更新から、仮想サーバ500aが移動を完了しデータ通信を開始する処理を示す。
【００９８】
従来環境と異なり、本実施例で前提とする大規模ネットワーク論理分割技術では、マルチキャスト通信により転送されるデータの受信者とマルチキャストツリーの末端は、例えば、それぞれサーバ、スイッチであり両者が異なる。このため、本実施例によると、以下に示す通り、仮想サーバの移動前に、移動先のスイッチにマルチキャストツリーを構築することが可能となる。
【００９９】
シーケンスQ1において、管理装置100は、仮想サーバ500aを物理サーバ300aから物理サーバ300cへ移動することを決定し、システム構成情報管理テーブル155及びサーバ情報管理テーブル156に新たなシステム構成情報を格納する。なお、この決定は他の管理システム（不図示）によって行われ、管理装置100のシステム構成情報管理部151に通知されても良い。
【０１００】
シーケンスQ2において、管理装置100は、仮想サーバ500aの送信フレームが仮想ネットワーク終端部でカプセル化される際に宛先アドレスとなるマルチキャストアドレスをサーバ情報管理テーブル156から検索する。次にシステム構成情報管理テーブル155とサーバ情報管理テーブル156を用いて、当該マルチキャストアドレスのマルチキャストツリーを、仮想ネットワーク終端部（すなわち、仮想スイッチ400や中継スイッチ200e）間を接続するネットワーク上に構成されるように計算する。
【０１０１】
シーケンスQ3において、管理装置100は、計算したマルチキャストツリーを元に、中継スイッチ200cに、通信ポートP4を新たに当該マルチキャストアドレスの転送ポートとするよう、宛先アドレスフィールド1Aに「中継スイッチ200cのMACアドレス」、送信元アドレスフィールド1Bに「管理装置のMACアドレス」、マルチキャストツリー構築指示フィールド1Cに「追加」、転送ポート番号フィールド1Dに「P4」、マルチキャストアドレスフィールド1Eに「239．1．1．1」とするマルチキャストツリー設定パケット1を送信する。
【０１０２】
シーケンスQ4において、管理装置100は、計算したマルチキャストツリーを元に、仮想スイッチ400bに、仮想通信ポートvP1を新たに当該マルチキャストアドレスの転送ポートとするよう、宛先アドレスフィールド1Aに「仮想スイッチ400bのMACアドレス」、送信元アドレスフィールド1Bに「管理装置のMACアドレス」、マルチキャストツリー構築指示フィールド1Cに「追加」、転送ポート番号フィールド1Dに「vP1」、マルチキャストアドレスフィールド1Eに「239．1．1．1」が格納されたマルチキャストツリー設定パケット1を送信する。
【０１０３】
シーケンスQ5において、管理装置100は、例えば公知の技術を用いて、仮想サーバ500aを物理サーバ300bへ移動する。
【０１０４】
シーケンスQ6において、仮想サーバ500aの物理サーバ300bへの移動が完了する。
【０１０５】
シーケンスQ7において、仮想サーバ500aは、データフレームの送信を開始する。
【０１０６】
なお、図10は、仮想サーバ500が物理サーバ300を移動する場合について記載しているが、仮想サーバ500が新たに物理サーバ300に追加される場合や仮想サーバ500が物理サーバ300から削除される場合も同様のシーケンス図となる。
【０１０７】
図11のシーケンスQ11〜シーケンスQ21は、図1において、管理装置100、中継スイッチ200a、中継スイッチ200c〜中継スイッチ200e、物理サーバ300a〜300dが存在する際に中継スイッチ200bを新たに追加した場合の、各スイッチにおけるマルチキャストパケット転送経路テーブル264やマルチキャストパケット転送経路テーブル450の更新処理、及び中継スイッチ200b追加後に中継スイッチ200aに障害が起きた場合のマルチキャストパケット通信の継続処理を示す。
【０１０８】
なお、図11では簡単のため、仮想サーバ500a（不図示）の送信フレームが仮想スイッチ400aの仮想ネットワーク終端部でマルチキャストパケットにカプセル化される際に宛先アドレスとなるマルチキャストアドレスに着目し、当該マルチキャストアドレスのマルチキャストツリーが構築されるときの中継スイッチ200a〜中継スイッチ200c及び仮想スイッチ400aにおける処理について記載する。
【０１０９】
シーケンスQ11において、中継スイッチ200bは、例えば管理装置100の指示によって、新たに中継スイッチ200cと中継スイッチ200dと管理装置100とネットワークにより接続される。
【０１１０】
シーケンスQ12において、中継スイッチ200bは、例えばSNMP（Simple Network Management Protocol）を用いてスイッチとの接続が完了したことを管理装置100に通知する。当該通知は、他の管理システム（不図示）から管理装置100に通知されても良い。
【０１１１】
シーケンスQ13において、管理装置100は、仮想サーバ500aの送信フレームが仮想ネットワーク終端部でカプセル化される際に宛先アドレスとなるマルチキャストアドレスを、サーバ情報管理テーブル156を検索して取得し、当該マルチキャストアドレスのマルチキャストツリーが、中継スイッチ200bが追加された新たなネットワーク上に構成されるように計算する。
【０１１２】
シーケンスQ14において、管理装置100は、計算したマルチキャストツリーを元に、中継スイッチ200bへ、仮想スイッチ400aが仮想ネットワーク終端部においてカプセル化される際に宛先アドレスとなるマルチキャストアドレスの転送ポートとして通信ポートP2とP3を新たに追加するよう、宛先アドレスフィールド1Aに「中継スイッチ200bのMACアドレス」、送信元アドレスフィールド1Bに「管理装置のMACアドレス」、マルチキャストツリー構築指示フィールド1Cに「追加」、転送ポート番号フィールド1Dに「P2」「P3」、マルチキャストアドレスフィールド1Eに「239．1．1．1」が格納されたマルチキャストツリー設定パケット1を送信する。
【０１１３】
シーケンスQ15において、管理装置100は、計算したマルチキャストツリーを元に、中継スイッチ200cに、通信ポートP2を新たに当該マルチキャストアドレスの転送ポートに追加するよう、宛先アドレスフィールド1Aに「中継スイッチ200cのMACアドレス」、送信元アドレスフィールド1Bに「管理装置のMACアドレス」、マルチキャストツリー構築指示フィールド1Cに「追加」、転送ポート番号フィールド1Dに「P2」、マルチキャストアドレスフィールド1Eに「239．1．1．1」が格納されたマルチキャストツリー設定パケット1を送信する。
【０１１４】
シーケンスQ16において、中継スイッチ200cは、受信したマルチキャストツリー設定パケット1に基づき、マルチキャストパケット転送経路テーブル264へ、当該マルチキャストアドレスの転送ポートとして既に格納されていた中継スイッチ200aへの転送ポートである通信ポートP1に加え、新たに中継スイッチ200bへの転送ポートである通信ポートP2を追加する。
【０１１５】
シーケンスQ17において、中継スイッチ200aの通信ポートP2及び通信ポートP3に通信障害が発生する。
【０１１６】
シーケンスQ18において、中継スイッチ200cは、例えば中継スイッチ200aと接続していた通信ポートP1から定期パケットが受信されないことを契機として中継スイッチ200aの障害を検知する。なお、中継スイッチ200aの障害は、他のネットワーク管理システム（不図示）により通知されても良い。
【０１１７】
シーケンスQ19において、中継スイッチ200cは、マルチキャストパケット転送経路テーブル264に格納していたマルチキャストパケットの転送ポートである通信ポートP1を削除し、当該マルチキャストアドレスを宛先アドレスとするマルチキャストパケットの転送ポートを通信ポートP2に切り替える。
【０１１８】
シーケンスQ20において、仮想スイッチ400aは、仮想サーバ500a（不図示）の送信フレームをマルチキャストパケットにカプセル化し、マルチキャストパケット転送経路テーブル450に格納されている転送ポートである仮想通信ポートvP1より中継スイッチ200cに当該マルチキャストパケットを送信する。
【０１１９】
シーケンスQ21において、中継スイッチ200cは、マルチキャストパケット転送経路テーブル264に格納されている転送ポートである通信ポートP2から中継スイッチ200bに当該マルチキャストパケットを送信する。
【０１２０】
なお、図11は、中継スイッチ200が新たに追加される場合について記載しているが、中継スイッチ200が削除される場合、及び仮想スイッチ400が追加、削除される場合も同様のシーケンス図となる。
【０１２１】
図12は、図10におけるシーケンスQ2とシーケンスQ3、すなわち仮想サーバ移動時の管理装置100におけるマルチキャストツリーの計算とマルチキャストツリー設定パケット1の送信処理手順を示すフローチャートである。
【０１２２】
ステップS1100において、管理装置100は、移動する仮想サーバ500をキーとしてマルチキャストアドレスをサーバ情報管理テーブル156から検索する。
【０１２３】
ステップS1200において、管理装置100は、ステップS1100で検索した中で、マルチキャストツリーの構築を行うマルチキャストアドレスを一つ選択する。
【０１２４】
ステップS1300において、管理装置100は、S1200で選択したマルチキャストアドレスのマルチキャストツリーを構築するため、システム構成情報管理テーブル155やサーバ情報管理テーブル156を用いて、各スイッチにおける当該マルチキャストアドレスを宛先アドレスとするマルチキャストパケットの転送ポートのリストを計算する。
【０１２５】
ステップS1400において、管理装置100は、ステップS1300で計算したマルチキャストツリーを構築するスイッチの転送ポートをマルチキャストツリー構成管理テーブル157に登録し、マルチキャストツリーを構成するスイッチにマルチキャストツリー設定パケット1を送信して転送ポートを通知する。
【０１２６】
ステップS1500において、管理装置100は、ステップS1100で検索したすべてのマルチキャストアドレスについてマルチキャストツリーを計算したか否か判断する。管理装置100は、ステップS1500の判断で否定結果を得ると、ステップS1200を繰り返し、ステップS1500の判断で肯定結果を得ると、図12の処理を終了する。
【０１２７】
図13は、図12におけるステップS1300、すなわち管理装置におけるマルチキャストツリーを構築するための各スイッチの転送ポートの計算処理手順を示すフローチャートである。
【０１２８】
ステップS1301において、管理装置100は、ステップS1200で選択したマルチキャストアドレスをキーとしてサーバ情報管理テーブル156から仮想ネットワーク終端部を検索する。
【０１２９】
ステップS1302において、管理装置100は、S1301で検索した仮想ネットワーク終端部の中から、マルチキャストツリーを構築する仮想ネットワーク終端部の組み合わせを一つ選択する。
【０１３０】
ステップS1303において、管理装置100は、選択した仮想ネットワーク終端部間のパスを、例えばシステム構成情報管理テーブル155を用いて全探索する。なお、当該パスの特定はIS−ISといったパスを計算する公知技術を用いても良い。
【０１３１】
例えば、管理装置100は、仮想スイッチ400bと仮想スイッチ400cの間のパスについて、システム構成情報管理テーブル155に格納されているスイッチの接続構成を見て、仮想スイッチ400bの仮想通信ポートvP1と、中継スイッチ200cの通信ポートP4と通信ポートP2と、中継スイッチ200aの通信ポートP2と通信ポートP3と、中継スイッチ200dの通信ポートP1と通信ポートP3と、仮想スイッチ400cの仮想通信ポートvP1からなるパスと、仮想スイッチ400bの仮想通信ポートvP1と、中継スイッチ200cの通信ポートP4と通信ポートP2と、中継スイッチ200bの通信ポートP2と通信ポートP3と、中継スイッチ200dの通信ポートP2と通信ポートP3と、仮想スイッチ400cの仮想通信ポートvP1からなるパスを探索する。
【０１３２】
ステップS1304において、管理装置100は、ステップS1303で特定したパスが複数あるか否か、すなわちマルチパスとなっているか否か、を判断する。管理装置100は、ステップS1304の判断で肯定結果を得るとステップS1305の処理を行い、ステップS1304の判断で否定結果を得るとステップS1306の処理を行う。
【０１３３】
例えば、管理装置100は、移動した後の物理サーバ300b上にある仮想サーバ500aが接続する仮想スイッチ400bと仮想サーバ500cが接続する仮想スイッチ400cの間のパスについて、中継スイッチ200cと中継スイッチ200dの間で、中継スイッチ200aを経由するパスと中継スイッチ200bを経由するパスが存在しマルチパスとなっているため、ステップS1305の判断で肯定結果を得て、ステップS1306の処理を行う。
【０１３４】
ステップS1305において、管理装置100は、経路障害が発生した場合にマルチキャストツリーを再構築することなく他のパスによって通信を継続することを可能にするため、当該マルチキャストアドレスの一つのマルチキャストツリーを、複数のパス(経路)上に、すなわち、マルチパス上に構築するよう、マルチパスを構成する中継スイッチ200の通信ポート250や仮想スイッチ400の仮想通信ポート430を転送ポートとしてリストに追加する。なお、マルチパス上にマルチキャストツリーを構築する際、すべてのマルチパス上にマルチキャストツリーを構成するよう転送ポートをリストに追加しても良いし、一部のマルチパス上にマルチキャストツリーを構成するよう転送ポートをリストに追加しても良い。
【０１３５】
例えば、管理装置100は、移動した後の物理サーバ300b上にある仮想サーバ500aが接続する仮想スイッチ400bと仮想サーバ500cが接続する仮想スイッチ400cの間で、マルチパス上にマルチキャストツリーを構築するため、当該マルチキャストアドレスを転送するポートとして、仮想スイッチ400bの仮想通信ポートvP1と、中継スイッチ200cの通信ポートP1〜P4と、中継スイッチ200aの通信ポートP2と通信ポートP3と、中継スイッチ200bの通信ポートP2と通信ポートP3と、中継スイッチ200dの通信ポートP1〜P3と、仮想スイッチ400cの仮想通信ポートvP1をリストに追加する。ここで、仮想スイッチ400cからテナントAへのマルチキャストパケットが、仮想スイッチ400cの仮想通信ポートvP1を経由し、中継スイッチ200dの通信ポートP3と通信ポートP1を経由し、中継スイッチ200aの通信ポートP3と通信ポートP2を経由し、中継スイッチ200cの通信ポートP3と通信ポートP4を経由し、仮想スイッチ400bの仮想通信ポートvP1に転送される場合に、中継スイッチ200aの通信ポートP3と中継スイッチ200dの通信ポートP1間の通信経路に障害が起きると、中継スイッチ200dは、当該マルチキャストパケットの転送ポートとなっている通信ポートP2をパケット転送として利用するよう切り替えることで通信を再開し、マルチキャストツリーを再構築することなく高速に障害から復旧する。
【０１３６】
ステップS1306において、管理装置100は、例えば「マルチパスが存在しない」旨のメッセージを出力部120に返す。
【０１３７】
ステップS1307において、管理装置100は、シングルパス上に当該マルチキャストアドレスのマルチキャストツリーが構築されるように、シングルパスを構成する中継スイッチ200の通信ポート250や仮想スイッチ400の仮想通信ポート430を転送ポートとリストに追加する。
【０１３８】
ステップS1308において、管理装置100は、S1301で検索した仮想ネットワーク終端部のすべての組み合わせについてパスを探索したか否かを判断する。管理装置100は、ステップS1308の判断で否定結果を得るとステップS1302の処理を繰り返し、ステップS1308の判断で肯定結果を得ると図13の処理を終了する。
【０１３９】
図14は、図12におけるステップS1400、すなわちマルチキャストツリーを構築するスイッチの転送ポートをマルチキャストツリー構成管理テーブル157に登録し、マルチキャストツリー設定パケット1を用いて各スイッチにマルチキャストツリーを構成する転送ポートを通知する処理手順を示すフローチャートである。
【０１４０】
ステップS1401において、管理装置100は、ステップS1200で選択したマルチキャストアドレスをキーとして、マルチキャストツリー構成管理テーブル157からスイッチと転送ポートの組み合わせをリストとして抽出する。
【０１４１】
ステップS1402において、管理装置100は、スイッチの転送ポートをキーとして、ステップS1401で抽出したリストと、ステップS1300で計算したリストの差分を抽出する。
【０１４２】
ステップS1403において、管理装置100は、ステップS1402で抽出した結果、ステップS1300で計算したリストに新たに中継スイッチ200や仮想スイッチ400、転送ポートの追加があるか否かを判断する。管理装置100は、ステップS1403の判断で肯定結果を得るとステップS1404の処理を行い、ステップS1403の判断で否定結果を得るとステップS1406の処理を行う。
【０１４３】
ステップS1404において、管理装置100は、マルチキャストツリー構成管理テーブル157に新たに追加されたスイッチと転送ポートを登録する。
【０１４４】
ステップS1405において、管理装置100は、ステップS1404で新たに転送ポートを追加したスイッチにマルチキャストツリー設定パケット1を送信する。マルチキャストツリー設定パケット1の宛先アドレスフィールド1Aには新たに転送ポートを追加したスイッチのMACアドレスが格納され、送信元アドレスフィールド1Bに管理装置のMACアドレスが格納され、マルチキャストツリー構築指示フィールド1Cには「追加」が格納され、転送ポート番号フィールド1DにはステップS1404で追加した転送ポートが格納され、マルチキャストアドレスフィールド1EにはステップS1200で選択したマルチキャストアドレスが格納される。
【０１４５】
ステップS1406において、管理装置100は、ステップS1402で抽出した結果、ステップS1401で検索したリストの中で削除されたスイッチや転送ポートがあるか否かを判断する。管理装置100は、ステップS1406の判断で肯定結果を得るとステップS1407の処理を行い、ステップS1406の判断で否定結果を得るとこの図の処理を終了する。
【０１４６】
ステップS1407において、管理装置100は、マルチキャストツリー構成管理テーブル157から、ステップS1401で検索したリストの中で削除されたスイッチや転送ポートを削除する。
【０１４７】
ステップS1408において、管理装置100は、転送ポートを削除したスイッチにマルチキャストツリー設定パケット1を送信し、この図の処理を終了する。マルチキャストツリー設定パケット1の宛先アドレスフィールド1AにはステップS1407で削除された転送ポートを持つスイッチのMACアドレスが格納され、送信元アドレスフィールド1Bには管理装置100のMACアドレスが格納され、マルチキャストツリー構築指示フィールド1Cには「削除」が格納され、転送ポート番号フィールド1DにはステップS1407で削除された転送ポートが格納され、マルチキャストアドレスフィールド1EにはステップS1200で選択したマルチキャストアドレスが格納される。
【０１４８】
図15は、図10においてシーケンスQ3後の中継スイッチ200cの処理、すなわちスイッチにおけるマルチキャストパケット転送経路テーブル264やマルチキャストパケット転送経路テーブル450の更新処理手順を示すフローチャートである。
【０１４９】
ステップS2100において、スイッチは、受信したマルチキャストツリー設定パケット1のマルチキャストツリー構築指示フィールド1Cが「追加」か否かを判断する。スイッチは、ステップS2100の判断で肯定結果を得るとステップS2200の処理を行い、ステップS2100の判断で否定結果を得るとステップS2300の処理を行う。
【０１５０】
ステップS2200において、スイッチは、マルチキャストパケット転送経路テーブル264及びまたはマルチキャストパケット転送経路テーブル450に、受信したマルチキャストツリー設定パケット1のマルチキャストアドレスフィールド1Eに格納されているマルチキャストアドレスと転送ポート番号フィールド1Dに格納されている転送ポート番号を登録し、この図の処理を終了する。
【０１５１】
ステップS2300において、スイッチは、受信したマルチキャストツリー設定パケット1のマルチキャストツリー構築指示フィールド1Cが「削除」か否か判断する。スイッチは、ステップS2300の判断で肯定結果を得るとステップS2400の処理を行い、ステップS2300の判断で否定結果を得るとS2500の処理を行う。
【０１５２】
ステップS2400において、中継端末は、マルチキャストパケット転送経路テーブル264及びまたはマルチキャストパケット転送経路テーブル450から、受信したマルチキャストツリー設定パケット1のマルチキャストアドレスフィールド1Eに格納されているマルチキャストアドレスに関して、転送ポート番号フィールド1Dに格納されている転送ポート番号を削除し、この図の処理を終了する。
【０１５３】
ステップS2500において、スイッチは、例えば「エラーパケットを受信した」旨のメッセージを出力部220や出力部320に返し、この図の処理を終了する。
【０１５４】
図16は、図11におけるシーケンスQ13〜シーケンスQ15、すなわち中継スイッチ200追加時の管理装置100におけるマルチキャストツリーの計算とマルチキャストツリー設定パケット1の送信処理手順を示すフローチャートである。
【０１５５】
ステップS3100において、管理装置100は、マルチキャストツリー構成管理テーブル157に格納されているマルチキャストアドレスから、マルチキャストアドレスを一つ選択する。
【０１５６】
ステップS3200において、管理装置100は、S3100で選択したマルチキャストアドレスのマルチキャストツリーを構築するため、システム構成情報管理テーブル155やサーバ情報管理テーブル156を用いて、各スイッチにおける転送ポートを計算する。ステップS3200の詳細は、図13と同様である。
【０１５７】
ステップS3300において、管理装置100は、ステップS3200で計算したマルチキャストツリーを構築するスイッチのポートをマルチキャストツリー構成管理テーブル157に登録し、マルチキャストツリーを構成するスイッチにマルチキャストツリー設定パケット1を送信して転送ポートを通知する。ステップS3300の詳細は、図14と同様である。
【０１５８】
ステップS3400において、管理装置100は、マルチキャストツリー構成管理テーブル157に格納されているすべてのマルチキャストアドレスについてマルチキャストツリーを計算したか否か判断する。管理装置100は、ステップS3400の判断で否定結果を得るとステップS3100の処理を繰り返し、ステップS3400の判断で肯定結果を得ると図16の処理を終了する。
【０１５９】
以上のように本実施形態によれば、集中管理型のマルチキャストツリー構築によってマルチパス上にマルチキャストツリーを構築することが可能となり、経路の障害発生時にマルチキャストツリーを再構築することなく通信を再開させることができる。また、管理装置は、スイッチ管理部を通じて中継スイッチや仮想スイッチの管理装置連携部にマルチキャストツリーの設定を通知するため、配下にサーバが存在しない中継スイッチや仮想スイッチにマルチキャストツリーを構築することが可能となり、仮想サーバが別の物理サーバに移動する前に移動後のシステム構成を考慮してマルチキャストツリーを構築しておくことで、仮想サーバの移動後にマルチキャストツリーを構築することなく通信を行うことができる。
【実施例２】
【０１６０】
図17〜図26を参照して第2の実施形態を説明する。本実施形態は、第1の実施形態の変形例に該当する。従って、第1の実施形態との相違点を中心に説明する。
【０１６１】
図1は、全体として第2の実施形態によるネットワークシステム10Bを示す。
【０１６２】
図17は、中継スイッチ200の内部構成を示した図である。第1の実施形態との差分は、記憶部260にマルチキャストツリー構築パケット転送経路テーブル265を保持することである。マルチキャストツリー構築パケット転送経路テーブル265は、マルチキャストツリー構築パケット、例えばIGMPにおける参加要求パケットや脱退要求パケットを転送する通信ポート250を管理するテーブルである。管理装置100から送信されるマルチキャストツリー構築パケット転送経路設定パケット2に基づき、マルチキャストツリー構築パケット転送経路テーブル265を更新する。
【０１６３】
図18は、物理サーバ300の内部構成を示した図である。第1の実施形態との差分は、仮想スイッチ400にマルチキャストツリー構築パケット転送経路テーブル460を保持することである。マルチキャストツリー構築パケット転送経路テーブル460は、マルチキャストツリー構築パケット、例えばIGMPにおける参加要求パケットや脱退要求パケットを転送する仮想通信ポート430を管理するテーブルである。管理装置100から送信されるマルチキャストツリー構築パケット転送経路設定パケット2に基づき、マルチキャストツリー構築パケット転送経路テーブル460を更新する。
【０１６４】
図19（a）は、中継スイッチ200に格納されているマルチキャストツリー構築パケット転送経路テーブル265、図19（b）は仮想スイッチ400に格納されているマルチキャストツリー構築パケット転送経路テーブル460を示す。マルチキャストツリー構築パケット転送ポート欄265A及びマルチキャストツリー構築パケット転送ポート欄460Aには、マルチキャストツリー構築パケットを転送するための転送ポートが格納される。
【０１６５】
例えば、図19（a）では、マルチキャストツリー構築パケット転送経路テーブル265を保持する中継スイッチ200は、例えば参加要求パケットや脱退パケットを受信した場合、通信ポートP1とP2とP3の中で当該パケットを受信した通信ポートを除く通信ポートから転送することを示す。
【０１６６】
図20は、マルチキャストツリー構築パケット転送経路設定パケット2の一例を示した図である。マルチキャストツリー構築パケット転送経路設定パケット2は、管理装置100がスイッチに例えばマルチキャストツリー構築パケットを転送するポートを追加、削除するよう指示するためのパケットである。
【０１６７】
宛先アドレスフィールド2AにはスイッチのMACアドレスが格納される。送信元アドレスフィールド2Bには管理装置のMACアドレスが格納される。マルチキャストツリー構築パケット転送経路指示フィールド2Cには例えば「追加」や「削除」といったマルチキャストツリー構築パケットの転送経路に関する指示が格納される。転送ポート番号フィールド2Dにはマルチキャストツリー構築パケット転送経路指示フィールド2Cに格納された指示を反映させる転送ポート番号が格納される。
【０１６８】
図21は、マルチキャストツリー構築パケット送信指示パケット3の一例を示した図である。マルチキャストツリー構築パケット送信指示パケット3は、管理装置100がスイッチに例えば参加要求パケットや脱退要求パケットの送信を指示するためのパケットである。
【０１６９】
宛先アドレスフィールド3Aには例えばスイッチのMACアドレスが格納される。送信元アドレスフィールド3Bには例えば管理装置のMACアドレスが格納される。マルチキャストツリー構築パケット送信指示フィールド3Cには例えば「参加要求」や「脱退要求」といったマルチキャストツリー構築パケットの種類に関する指示が格納される。マルチキャストアドレスフィールド3Dには参加または脱退するマルチキャストツリーのマルチキャストアドレスが格納される。
【０１７０】
次に、本構成におけるマルチキャストツリー構築手順について説明する。
【０１７１】
図22、図23は、第2の実施形態におけるマルチキャストツリー構築を示すシーケンス図である。
【０１７２】
図22のシーケンスQ31〜シーケンスQ39は、図1のネットワークシステム10Bにおいて仮想サーバ500aが物理サーバ300aから物理サーバ300bへ移動する場合の、各スイッチにおけるマルチキャストパケット転送経路テーブル264、マルチキャストパケット転送経路テーブル450の更新から、仮想サーバ500aが移動を完了し、データ通信を開始する処理を示す。
【０１７３】
従来環境と異なり、本実施例で前提とする大規模ネットワーク論理分割技術では、マルチキャスト通信により転送されるデータの受信者とマルチキャストツリーの末端は、例えば、それぞれサーバ、スイッチであり両者が異なる。このため、本実施例によると、以下に示す通り、仮想サーバの移動前に、移動先のスイッチにマルチキャストツリーを構築することが可能となる。
【０１７４】
シーケンスQ31、Q32は、図10における第1の実施形態のシーケンスQ1、Q2と同様である。また、シーケンスQ32の詳細は第1の実施形態と同様であり、図12、図13に記載されている。
【０１７５】
シーケンスQ33において、管理装置100は、計算したマルチキャストツリーを元に、仮想スイッチ400bへ、仮想通信ポートvP1を新たにマルチキャストツリー構築パケットの転送ポートとするよう、宛先アドレスフィールド2Aに「仮想スイッチ400bのMACアドレス」、送信元アドレスフィールド2Bに「管理装置のMACアドレス」、マルチキャストツリー構築パケット転送経路指示フィールド2Cに「追加」、転送ポート番号フィールド2Dに「vP1」を格納したマルチキャストツリー構築パケット転送経路設定パケット2を送信する。このとき管理装置100は、例えばマルチキャストツリー構成管理テーブル157により、当該仮想通信ポートにマルチキャストツリーが構築されており、すでに当該仮想通信ポートがマルチキャストツリー構築パケットの転送ポートとして設定されていると確認できる場合、マルチキャストツリー構築パケット転送経路設定パケット2を送信しなくても良い。
【０１７６】
シーケンスQ34において、管理装置100は、移動した後の仮想サーバ500aを管理する仮想ネットワーク終端部を持つ仮想スイッチ400bにマルチキャストツリー構築パケットの送信を指示するため、例えば宛先アドレスフィールド3Aに「仮想スイッチ400bのMACアドレス」、送信元アドレスフィールド3Bに「管理装置のMACアドレス」、マルチキャストツリー構築パケット送信指示フィールド3Cに「参加要求」、マルチキャストアドレスフィールド3Dに「239．1．1．1」を格納したマルチキャストツリー構築パケット送信指示パケット3を送信する。
【０１７７】
シーケンスQ35において、仮想スイッチ400bは、受信したマルチキャストツリー構築パケット送信指示パケット3の指示に従い、シーケンスQ34で学習したマルチキャストツリー構築パケットの転送ポートである仮想通信ポートvP1から中継スイッチ200cへ、例えば公知技術であるIGMPを用いてマルチキャストツリー構築パケットであるマルチキャストアドレス「239．1．1．1」の「参加要求」パケットを生成し、送信する。なお、マルチキャストツリー構築パケットはPIM（Protocol Independent Multicast）といった他の公知技術を用いても良いし、独自に定義したプロトコルを用いても良い。
【０１７８】
シーケンスQ36において、中継スイッチ200cは、マルチキャストツリー構築パケット転送経路テーブル265に格納された転送ポートのうち、マルチキャストツリー構築パケットを受信した通信ポートP4を除く通信ポートから受信したマルチキャストツリー構築パケットを転送する。
【０１７９】
シーケンスQ37において、管理装置100は、仮想サーバ500aに物理サーバ300bへの移動を指示する。
【０１８０】
シーケンスQ38において、仮想サーバ500aは、物理サーバ300bへの移動を行う。
【０１８１】
シーケンスQ39において、仮想サーバ500aは、データフレームの送信を開始する。
【０１８２】
なお、図22は、仮想サーバ500が物理サーバ300を移動する場合について記載しているが、仮想サーバ500が新たに物理サーバ300に追加される場合や仮想サーバ500が物理サーバ300から削除される場合も同様のシーケンス図となる。
【０１８３】
図23のシーケンスQ41〜シーケンスQ54は、図1のネットワークシステム10Bにおいて管理装置100、中継スイッチ200a、中継スイッチ200c〜中継スイッチ200e、物理サーバ300a〜300dが存在する際に中継スイッチ200bを新たに追加した場合の、各スイッチにおけるマルチキャストパケット転送経路テーブル264、マルチキャストパケット転送経路テーブル450の更新処理である。なお、図23では簡単のため、仮想サーバ500a（不図示）の送信フレームが仮想スイッチ400aの仮想ネットワーク終端部でマルチキャストパケットにカプセル化される際に宛先アドレスとなるマルチキャストアドレスに着目し、当該マルチキャストアドレスのマルチキャストツリーが構築されるときの中継スイッチ200a〜200c及び仮想スイッチ400aにおける処理について記載する。
【０１８４】
シーケンスQ41〜シーケンスQ43は、図11における第1の実施形態のシーケンスQ11〜シーケンスQ13と同様である。また、シーケンスQ43の詳細は第1の実施形態と同様であり、図16に記載されている。
【０１８５】
シーケンスQ44において、管理装置100は、計算したマルチキャストツリーを元に、中継スイッチ200bに、通信ポートP2と通信ポートP3を新たにマルチキャストツリー構築パケットの転送ポートとするよう、宛先アドレスフィールド2Aに「中継スイッチ200bのMACアドレス」、送信元アドレスフィールド2Bに「管理装置のMACアドレス」、マルチキャストツリー構築パケット転送経路指示フィールド2Cに「追加」、転送ポート番号フィールド2Dに「P2」「P3」を格納したマルチキャストツリー構築パケット転送経路設定パケット2を送信する。
【０１８６】
シーケンスQ45において、管理装置100は、計算したマルチキャストツリーを元に、中継スイッチ200cに、通信ポートP2を新たにマルチキャストツリー構築パケットの転送ポートとするよう、宛先アドレスフィールド2Aに「中継スイッチ200cのMACアドレス」、送信元アドレスフィールド2Bに「管理装置のMACアドレス」、マルチキャストツリー構築パケット転送経路指示フィールド2Cに「追加」、転送ポート番号フィールド2Dに「P2」を格納したマルチキャストツリー構築パケット転送経路設定パケット2を送信する。
【０１８７】
シーケンスQ46において、管理装置100は、仮想ネットワーク終端部を持つすべてのスイッチに参加要求パケットを送信するよう指示するためマルチキャストツリー構築パケット送信指示パケット3を送信する。例えば、管理装置100は、仮想スイッチ400aに参加要求パケットを送信するよう指示するため、宛先アドレスフィールド3Aに「仮想スイッチ400aのMACアドレス」、送信元アドレスフィールド3Bに「管理装置のMACアドレス」、マルチキャストツリー構築パケット送信指示フィールド3Cに「参加要求」、マルチキャストアドレスフィールド3Dに「239．1．1．1」を格納したマルチキャストツリー構築パケット送信指示パケット3を送信する。
【０１８８】
シーケンスQ47において、仮想スイッチ400aは、受信したマルチキャストツリー構築パケット送信指示パケット3の指示に従い、例えば公知技術であるIGMPを用いてマルチキャストツリー構築パケット、すなわちマルチキャストアドレス「239．1．1．1」の「参加要求」パケットを生成し、マルチキャストツリー構築パケット転送経路テーブル460に格納されている転送ポートから送信する。なお、マルチキャストツリー構築パケットはPIM（Protocol Independent Multicast）といった他の公知技術を用いても良いし、独自に定義したプロトコルを用いても良い。
【０１８９】
シーケンスQ48及びシーケンスQ49において、中継スイッチ200cは、例えば公知技術であるIGMPを用いて、受信したマルチキャストツリー構築パケットからマルチキャストパケット転送経路テーブル264にマルチキャストアドレスの転送ポートを学習する。学習後、マルチキャストツリー構築パケット転送経路テーブル265に格納された転送ポートのうち、マルチキャストツリー構築パケットを受信した通信ポートP3を除く通信ポートから受信したマルチキャストツリー構築パケットを転送する。
【０１９０】
シーケンスQ50〜シーケンスQ54は、中継スイッチ200aの通信ポートP2及び通信ポートP3に通信障害が発生した場合における、中継スイッチ200cでのマルチキャストパケット転送ポートの切り替え処理とその後のマルチキャストパケット転送処理を示す。シーケンスQ50〜シーケンスQ54の処理は、図11のシーケンスQ17〜シーケンスQ21と同様である。  なお、図23は、中継スイッチ200が新たに追加される場合について記載しているが、中継スイッチ200が削除される場合、及び仮想スイッチ400が追加、削除される場合も同様のシーケンス図となる。
【０１９１】
図24は、図22のシーケンスQ33及び図23のシーケンスQ44とシーケンスQ45、すなわち管理装置におけるマルチキャストツリー構築パケット転送経路設定パケット2の送信処理手順を示す図である。
【０１９２】
ステップS1401〜ステップS1404、ステップS1406及びステップS1407は、図14と同様であり説明は省略する。
【０１９３】
ステップS1409において、管理装置100は、ステップS1404で新たに転送ポートを追加したスイッチにマルチキャストツリー構築パケット転送経路設定パケット2を送信する。マルチキャストツリー構築パケット転送経路設定パケット2の宛先アドレスフィールド1Aには新たに転送ポートを追加したスイッチのMACアドレスが格納され、送信元アドレスフィールド1Bに管理装置のMACアドレスが格納され、マルチキャストツリー構築指示フィールド1Cには「追加」が格納され、転送ポート番号フィールド1DにはステップS1404で追加した転送ポートが格納される。
【０１９４】
ステップS1410において、管理装置100は、転送ポートを削除したマルチキャストツリー構築パケット転送経路設定パケット2を送信し、この図の処理を終了する。マルチキャストツリー構築パケット転送経路設定パケット2の宛先アドレスフィールド1AにはステップS1407で削除された転送ポートを持つスイッチのMACアドレスが格納され、送信元アドレスフィールド1Bには管理装置100のMACアドレスが格納され、マルチキャストツリー構築指示フィールド1Cには「削除」が格納され、転送ポート番号フィールド1DにはステップS1407で削除された転送ポートが格納される。
【０１９５】
図25は、図22のシーケンスQ33及び図23のシーケンスQ44とシーケンスQ45、すなわちスイッチにおけるマルチキャストツリー構築パケット転送経路設定パケット2を受信した際のマルチキャストツリー構築パケット転送経路テーブル265やマルチキャストツリー構築パケット転送経路テーブル460の更新処理手順を示すフローチャートである。
【０１９６】
ステップS4100において、スイッチは、受信したマルチキャストツリー構築パケット転送経路設定パケット2のマルチキャストツリー構築パケット転送経路指示フィールド2Cにおける指示が「追加」か否か判断する。スイッチは、ステップS4100の判断で肯定結果を得るとステップS4200の処理を行い、ステップS4100の判断で否定結果を得るとステップS4300の処理を行う。
【０１９７】
ステップS4200において、スイッチは、マルチキャストツリー構築パケット転送経路テーブル265やマルチキャストツリー構築パケット転送経路テーブル460へ、転送ポート番号フィールド2Dに格納されている転送ポート番号を追加し、図25の処理を終了する。
【０１９８】
ステップS4300において、スイッチは、受信したマルチキャストツリー構築パケット転送経路設定パケット2のマルチキャストツリー構築パケット転送経路指示フィールド2Cの指示が「削除」か否か判断する。スイッチは、ステップS4300の判断で肯定結果を得るとステップS4400の処理を行い、ステップS4300の判断で否定結果を得るとステップS4500の処理を行う。
【０１９９】
ステップS4400において、スイッチは、マルチキャストツリー構築パケット転送経路テーブル265やマルチキャストツリー構築パケット転送経路テーブル460から、転送ポート番号フィールド2Dに格納されているポート番号を削除し、図25の処理を終了する。
【０２００】
ステップS4500において、スイッチは、例えば「エラーパケットを受信した」旨のメッセージを出力部220や出力部320に返し、図25の処理を終了する。
【０２０１】
図26は、図22のシーケンスQ34及び図23のシーケンスQ46、すなわちスイッチにおいてマルチキャストツリー構築パケット送信指示パケット3を受信した際のマルチキャストツリー構築パケットの送信処理手順を示すフローチャートである。
【０２０２】
ステップS5100において、スイッチは、受信したマルチキャストツリー構築パケット送信指示パケット3のマルチキャストツリー構築パケット送信指示フィールド3Cが「参加要求」か否か判断する。スイッチは、ステップS5100の判断で肯定結果を得るとステップS5200の処理を行い、ステップS5100の判断で否定結果を得るとステップS5300の処理を行う。
【０２０３】
ステップS5200において、スイッチは、例えば公知技術であるIGMPを用いて、マルチキャストツリー構築パケット転送経路テーブル265やマルチキャストツリー構築パケット転送経路テーブル460に格納されている転送ポートから、マルチキャストツリー構築パケット送信指示パケット3のマルチキャストアドレスフィールド3Dに格納されているマルチキャストアドレスのマルチキャストツリーへの参加要求パケットを生成して送信し、図26の処理を終了する。
【０２０４】
ステップS5300において、スイッチは、受信したマルチキャストツリー構築パケット送信指示パケット3のマルチキャストツリー構築パケット送信指示フィールド3Cが「脱退要求」か否か判断する。スイッチは、ステップS5300の判断で肯定結果を得るとステップS5400の処理を行い、ステップS5300の判断で否定結果を得るとステップS5500の処理を行う。
【０２０５】
ステップS5400において、スイッチは、例えば公知技術であるIGMPを用いて、マルチキャストツリー構築パケット転送経路テーブル265、マルチキャストツリー構築パケット転送経路テーブル460に格納されている転送ポートから、マルチキャストツリー構築パケット送信指示パケット3のマルチキャストアドレスフィールド3Dに格納されているマルチキャストアドレスのマルチキャストツリーへの脱退要求パケットを生成して送信し、図26の処理を終了する。
【０２０６】
ステップS5500において、スイッチは、例えば「エラーパケットを受信した」旨のメッセージを出力部220や出力部320に返し、図26の処理を終了する。
【０２０７】
以上のように本実施の形態によれば、公知技術であるIGMPやPIMを利用した集中管理型のマルチキャストツリー構築が可能となり、既存のスイッチを中継スイッチ200として利用した場合に新たな機能を実装する必要がなく、マルチパス上にマルチキャストツリーを構築することができる。
【符号の説明】
【０２０８】
10：ネットワークシステム、20：管理ネットワーク、30：矢印、40：マルチキャストツリー、50：データ転送用ネットワーク、100：管理装置、110：入力部、120：出力部、130：演算部、140：ネットワークインターフェース、150：記憶部、151：システム構成情報管理部、152：サーバ情報管理部、153：マルチキャストツリー管理部、154：スイッチ制御部、155：システム構成情報管理テーブル、156：サーバ情報管理テーブル、157：マルチキャストツリー構成管理テーブル、200：中継スイッチ、210：入力部、220：出力部、230：演算部、240：スイッチング部、250：通信ポート、260：記憶部、261：通信制御部、262：フォワーディングテーブル、263：管理装置連携部、264：マルチキャストパケット転送経路テーブル、265：マルチキャストツリー構築パケット転送経路テーブル、300：物理サーバ、310：入力部、320：出力部、330：演算部、340：ネットワークインターフェース、350：記憶部、400：仮想スイッチ、410：通信制御部、420：フォワーディングテーブル、430：仮想通信ポート、440：管理装置連携部、450：マルチキャストパケット転送経路テーブル、460：マルチキャストツリー構築パケット転送経路テーブル、500：仮想サーバ、510：仮想ネットワークインターフェース。
【図１】
2014007681.tif 000003
【図２】
2014007681.tif 000004
【図３】
2014007681.tif 000005
【図４】
2014007681.tif 000006
【図５】
2014007681.tif 000007
【図６】
2014007681.tif 000008
【図７】
2014007681.tif 000009
【図８（ａ）】
2014007681.tif 000010
【図８（ｂ）】
2014007681.tif 000011
【図９】
2014007681.tif 000012
【図１０】
2014007681.tif 000013
【図１１】
2014007681.tif 000014
【図１２】
2014007681.tif 000015
【図１３】
2014007681.tif 000016
【図１４】
2014007681.tif 000017
【図１５】
2014007681.tif 000018
【図１６】
2014007681.tif 000019
【図１７】
2014007681.tif 000020
【図１８】
2014007681.tif 000021
【図１９（ａ）】
2014007681.tif 000022
【図１９（ｂ）】
2014007681.tif 000023
【図２０】
2014007681.tif 000024
【図２１】
2014007681.tif 000025
【図２２】
2014007681.tif 000026
【図２３】
2014007681.tif 000027
【図２４】
2014007681.tif 000028
【図２５】
2014007681.tif 000029
【図２６】
2014007681.tif 000030