(57)【要約】【課題】各スイッチのＭＡＣアドレステーブル更新に際して、ＣＰＵの負荷増大とブロードキャストトラフィックの増大を抑制する。【解決手段】ＭＡＣアドレステーブル更新システム１のＴｏＲスイッチ２０ａ（第１のスイッチ）は、新たに収容する仮想マシンからフレームを受信すると、ＭＡＣアドレステーブル更新通知をＳＤＮコントローラ１０に送信し、ＳＤＮコントローラ１０は、受信したＭＡＣアドレステーブル更新通知およびトポロジ情報を用いて、Ｌ２ドメイン内のＴｏＲスイッチ２０ａおよび上位スイッチ２０Ａ（第２のスイッチ）それぞれに適した新たなＭＡＣエントリを作成する。そして、ＳＤＮコントローラ１０は、ＴｏＲスイッチ２０ａおよび上位スイッチ２０ＡそれぞれのＭＡＣアドレステーブルを参照し、新たなＭＡＣエントリの追加指示を含むＭＡＣアドレステーブルの変更情報を作成してそれぞれに送信する。【選択図】図１
2017108264.tif 000002
【特許請求の範囲】
【請求項１】
物理サーバ上の１つ以上の仮想マシンと直接接続されることにより前記仮想マシンを収容する第１のスイッチと、１つ以上の前記第１のスイッチと接続されてフレームを転送する第２のスイッチと、Ｌ２（Layer ２）ドメイン内の１つ以上の前記第１のスイッチおよび１つ以上の前記第２のスイッチのそれぞれと接続されるＳＤＮ（Software Defined Network）コントローラと、を備えるＭＡＣアドレステーブル更新システムであって、
前記第１のスイッチは、
新たに収容する仮想マシンからフレームを受信すると、当該仮想マシンのＭＡＣアドレスを用いて、自身のＭＡＣアドレステーブルを更新するＭＡＣテーブル更新部と、
前記ＭＡＣアドレステーブルの更新を、前記ＳＤＮコントローラにＭＡＣアドレステーブル更新通知として送信するＭＡＣテーブル更新通知部と、
前記ＳＤＮコントローラからＭＡＣアドレステーブル参照要求を受信すると、自身のＭＡＣアドレステーブルに格納されているＭＡＣエントリの情報を返信するＭＡＣテーブル情報通知部と、
前記ＳＤＮコントローラから、ＭＡＣアドレステーブルの変更情報を受信し、自身のＭＡＣアドレステーブルに格納されるＭＡＣエントリを新たなＭＡＣエントリに変更するＭＡＣテーブル変更部と、を備え、
前記第２のスイッチは、
前記ＭＡＣテーブル情報通知部と、前記ＭＡＣテーブル変更部と、を備え、
前記ＳＤＮコントローラは、
受信した前記ＭＡＣアドレステーブル更新通知に含まれる更新されたＭＡＣアドレスおよびそのポートの情報と、前記Ｌ２ドメイン内の前記第１のスイッチおよび前記第２のスイッチそれぞれの接続関係を示すトポロジ情報とを用いて、前記第１のスイッチおよび前記第２のスイッチそれぞれについて、前記更新されたＭＡＣアドレスおよびそのポートの情報に対応する前記新たなＭＡＣエントリを作成するＭＡＣテーブルエントリ作成部と、
前記ＭＡＣアドレステーブル参照要求を送信することにより、前記第１のスイッチおよび前記第２のスイッチそれぞれのＭＡＣアドレステーブルを参照し、前記第１のスイッチおよび前記第２のスイッチそれぞれに、そのＭＡＣアドレステーブルに格納される、前記新たなＭＡＣエントリと同一のＭＡＣアドレスを含むＭＡＣエントリの削除指示、および、前記新たなＭＡＣエントリの追加指示、を示す前記ＭＡＣアドレステーブルの変更情報を送信するＭＡＣテーブル設定指示部と、を備えること
を特徴とするＭＡＣアドレステーブル更新システム。
【請求項２】
物理サーバ上の１つ以上の仮想マシンと直接接続されることにより前記仮想マシンを収容する第１のスイッチと、１つ以上の前記第１のスイッチと接続されてフレームを転送する第２のスイッチと、Ｌ２ドメイン内の１つ以上の前記第１のスイッチおよび１つ以上の前記第２のスイッチのそれぞれと接続されるＳＤＮコントローラと、を備えるＭＡＣアドレステーブル更新システムのＭＡＣアドレス更新方法であって、
前記第１のスイッチは、
新たに収容する仮想マシンからフレームを受信すると、当該仮想マシンのＭＡＣアドレスを用いて、自身のＭＡＣアドレステーブルを更新するステップと、
前記ＭＡＣアドレステーブルの更新を、前記ＳＤＮコントローラにＭＡＣアドレステーブル更新通知として送信するステップと、を実行し、
前記ＳＤＮコントローラは、
受信した前記ＭＡＣアドレステーブル更新通知に含まれる更新されたＭＡＣアドレスおよびそのポートの情報と、前記Ｌ２ドメイン内の前記第１のスイッチおよび前記第２のスイッチそれぞれの接続関係を示すトポロジ情報とを用いて、前記第１のスイッチおよび前記第２のスイッチそれぞれについて、前記更新されたＭＡＣアドレスおよびそのポートの情報に対応する新たなＭＡＣエントリを作成するステップと、
前記第１のスイッチおよび前記第２のスイッチそれぞれに、前記ＭＡＣアドレステーブルの参照を要求するＭＡＣアドレステーブル参照要求を送信して、前記ＭＡＣアドレステーブルに格納されているＭＡＣエントリの情報を取得するステップと、
前記第１のスイッチおよび前記第２のスイッチそれぞれのＭＡＣアドレステーブルを参照し、前記第１のスイッチおよび前記第２のスイッチそれぞれに、そのＭＡＣアドレステーブルに格納される、前記新たなＭＡＣエントリと同一のＭＡＣアドレスを含むＭＡＣエントリの削除指示、および、前記新たなＭＡＣエントリの追加指示、を示すＭＡＣアドレステーブルの変更情報を送信するステップと、を実行し、
前記第１のスイッチおよび前記第２のスイッチは、
前記ＳＤＮコントローラから、前記ＭＡＣアドレステーブルの変更情報を受信し、自身のＭＡＣアドレステーブルに格納されるＭＡＣエントリを前記新たなＭＡＣエントリに変更するステップを実行すること
を特徴とするＭＡＣアドレステーブル更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｌ２（Layer ２：レイヤ２）ネットワークにおける各スイッチのＭＡＣ（Media Access Control）アドレステーブルを更新する、ＭＡＣアドレステーブル更新システムおよびＭＡＣアドレステーブル更新方法に関する。
【背景技術】
【０００２】
データセンタにおける物理リソースの有効利用と運用性向上を図るため、リソースの仮想化が推進されてきている。リソースの仮想化とは、物理的なＣＰＵ（Central Processing Unit）やメモリ等を論理的に分割し、サービス若しくはユーザ単位に提供することである。リソースの仮想化により、システムの自由度や柔軟性が向上するというメリットがあるが、システムが大規模化するに従って従来の技術では、以下に示すような問題が発生する。
【０００３】
データセンタ内でサーバ仮想化を実現することにより、仮想マシンは物理サーバ間を自由に移動することが可能となる。また、ライブマイグレーションを行うことでシステムを停止させることなくメンテナンス作業等を実行することができる。ライブマイグレーション等の仮想マシンの自由な移動を実現するためには、移動元のサーバと移動先のサーバが同一Ｌ２ネットワーク上に存在する必要がある。ネットワークが大規模になった場合、比例してブロードキャストドメインも広がることとなり、物理サーバを収容するＴｏＲ（Top of Rack）スイッチはＬ２ネットワーク上に接続された全ノードのＭＡＣアドレスを学習する必要があるため、ＭＡＣアドレステーブルが肥大することとなる。つまり、図６に示すように、仮想マシンには、１つ１つ異なるＭＡＣアドレスが設定される。そして、ＴｏＲスイッチ（以下、各図において「ＴｏＲ ＳＷ」と記載する。）は、フレームを転送する際に、物理サーバ（以下、各図において「サーバ」と記載する。）の物理ＮＩＣ宛にフォワーディングするのではなく、各仮想マシン宛てにフォワーディングを行う。よって、物理サーバ上の仮想マシンが増加するほど、ＭＡＣアドレステーブル（以下、各図において「ＭＡＣテーブル」と記載することがある。）が肥大することになる。なお、このＭＡＣアドレステーブルには、受信したデータの送信元ＭＡＣアドレスと、受信したポートのポート番号とが、エントリ（ＭＡＣエントリ）として格納される。
【０００４】
ＴｏＲスイッチのＭＡＣアドレステーブルが肥大すると、具体的には次の問題が発生する。
（問題１）頻繁なＭＡＣアドレステーブルの更新によるＣＰＵ負荷の増大
（問題２）ブロードキャストトラフィックの増大
【０００５】
（問題１）の「頻繁なＭＡＣアドレステーブルの更新によるＣＰＵ負荷の増大」について説明する。
ＭＡＣアドレステーブルの更新では、各スイッチがフレームを受信した際に自身のＭＡＣアドレステーブルのエントリをすべて検索し、フレームの送信元ＭＡＣアドレスの有無を確認する必要がある。そのため、頻繁にＭＡＣアドレステーブルが更新されると、各スイッチのＣＰＵの負荷が増大する。
【０００６】
（問題２）の「ブロードキャストトラフィックの増大」について説明する。
あるスイッチ（ＴｏＲスイッチ）配下にある物理サーバ上に仮想マシンが移動する等により、スイッチのＭＡＣアドレステーブルが更新されると、その仮想マシンは、Ｌ２ブロードキャストドメインにＲＡＲＰ（Reverse Address Resolution Protocol）を送信し、上位スイッチのＭＡＣアドレステーブルを更新する。この処理のため、ブロードキャストトラフィックが増大し帯域を圧迫する。
【０００７】
例えば、図７に示すように、物理サーバ「２」上の仮想マシンＸが物理サーバ「１」に移動した場合、仮想マシンＸがＬ２ブロードキャストドメインにＲＡＲＰを送信する。これにより、まず、その仮想マシンＸを収容するＴｏＲスイッチ「１」がＲＡＰＰを受信し、ＭＡＣアドレステーブルを更新する。そして、そのＴｏＲスイッチ「１」は、Ｌ２ブロードキャストドメインの上位スイッチ（以下、各図において単に「ＳＷ」と記載する。図７では、ＳＷ「１」およびＳＷ「２」）にＲＡＰＰを送信（転送）してＭＡＣアドレステーブルを更新する。続いて、上位スイッチに接続される他のＴｏＲスイッチ（図７では、ＴｏＲスイッチ「２」およびＴｏＲスイッチ「３」）のＭＡＣアドレステーブルが更新される。このようなＭＡＣアドレステーブルの更新処理が増加すると、それに伴いブロードキャストトラフィックが増大するため帯域を圧迫することになる。
【０００８】
上記した問題を解消するための従来の代表的な手法として、以下の２つの手法が挙げられる。
（手法１）高性能スイッチの導入
ＭＡＣアドレステーブルの容量が大きく、テーブル処理能力が高い高価なスイッチを導入する。
（手法２）ＳＤＮ（Software Defined Network）コントローラによるOpenFlow制御
仮想マシンが移動した際に、OpenFlowでのフロー制御を実行する（非特許文献１参照）。
【０００９】
図８は、仮想マシンが移動した際のOpenFlowによるフロー制御を説明するための図である。
図８に示すように、仮想マシンＸがサーバ「２」からサーバ「１」に移動すると（ステップＳ１）、仮想マシンＸは、自身を収容するＴｏＲスイッチ「１」宛にフレームを送信する（ステップＳ２）。なお、この際、仮想マシンＸからＬ２ブロードキャストドメインにＲＡＲＰは送信しない設定にしておく。ＴｏＲスイッチ「１」は、自身のＭＡＣアドレステーブルを更新し（ステップＳ３）、その更新をＳＤＮコントローラに送信する（ステップＳ４）。ＴｏＲスイッチ「１」から送信されるＭＡＣアドレステーブルの更新情報は、例えば、「移動ＭＡＣアドレス：ＸＸ」「ＶＬＡＮ ＩＤ：１」「移動元ポート番号：ａ１，ａ２」「移動先ポート番号：ａ３」である。
【００１０】
ＭＡＣアドレステーブルの更新情報を受信したＳＤＮコントローラは、各上位スイッチに対してフロールールを設定して送信する（ステップＳ５）。例えば、上位スイッチ「１」に対しては、フロールールとして「Match（条件）：フローの宛先ＭＡＣ＝ＸＸ」「Action：（宛先ＭＡＣ＝ＸＸのフレームの）出力ポートをＴｏＲスイッチ「１」と接続するポート：Ａ１に指定」が送信される。また、上位スイッチ「２」に対しては、フロールールとして「Match（条件）：フローの宛先ＭＡＣ＝ＸＸ」「Action：（宛先ＭＡＣ＝ＸＸのフレームの）出力ポートをＴｏＲスイッチ「１」と接続するポート：Ｂ１に指定」が送信される。
このようにすることにより、各スイッチにおいてＭＡＣアドレステーブルが更新されるまでの間のフローが適切に制御される。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】「OpenFlow」、一般社団法人日本ネットワークインフォメーションセンタ、ニュースレターNo.52、2012年11月、［online］、［平成27年11月27日検索］、インターネット<ＵＲＬ: https://www.nic.ad.jp/ja/newsletter/No52/0800.html>
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記した問題を解消するための従来の（手法１）では、スイッチが高価なため導入コストが増大してしまう。（手法２）では、ネットワークを構成するスイッチがOpenFlow対応のスイッチ（OpenFlowスイッチ）であり、ＳＤＮコントローラがOpenFlow対応のコントローラ（OpenFlowコントローラ）であることが必須条件となる。また、OpenFlowではフロー制御は可能となるが、ＭＡＣアドレステーブルの直接の更新をすることはできない。そのため、自律的なＭＡＣアドレステーブル更新により仮想マシンの移動に追随する場合には、従来通りのＭＡＣアドレステーブルの更新が必要となり根本的な問題の解消とはならない。
【００１３】
このような背景を鑑みて本発明がなされたのであり、本発明は、各スイッチのＭＡＣアドレステーブル更新に際して、ＣＰＵの負荷増大とブロードキャストトラフィックの増大を抑制する、ＭＡＣアドレステーブル更新システムおよびＭＡＣアドレステーブル更新方法を提供することを課題とする。
【課題を解決するための手段】
【００１４】
前記した課題を解決するため、請求項１に記載の発明は、物理サーバ上の１つ以上の仮想マシンと直接接続されることにより前記仮想マシンを収容する第１のスイッチと、１つ以上の前記第１のスイッチと接続されてフレームを転送する第２のスイッチと、Ｌ２（Layer ２）ドメイン内の１つ以上の前記第１のスイッチおよび１つ以上の前記第２のスイッチのそれぞれと接続されるＳＤＮ（Software Defined Network）コントローラと、を備えるＭＡＣアドレステーブル更新システムであって、前記第１のスイッチが、新たに収容する仮想マシンからフレームを受信すると、当該仮想マシンのＭＡＣアドレスを用いて、自身のＭＡＣアドレステーブルを更新するＭＡＣテーブル更新部と、前記ＭＡＣアドレステーブルの更新を、前記ＳＤＮコントローラにＭＡＣアドレステーブル更新通知として送信するＭＡＣテーブル更新通知部と、前記ＳＤＮコントローラからＭＡＣアドレステーブル参照要求を受信すると、自身のＭＡＣアドレステーブルに格納されているＭＡＣエントリの情報を返信するＭＡＣテーブル情報通知部と、前記ＳＤＮコントローラから、ＭＡＣアドレステーブルの変更情報を受信し、自身のＭＡＣアドレステーブルに格納されるＭＡＣエントリを新たなＭＡＣエントリに変更するＭＡＣテーブル変更部と、を備え、前記第２のスイッチが、前記ＭＡＣテーブル情報通知部と、前記ＭＡＣテーブル変更部と、を備え、前記ＳＤＮコントローラが、受信した前記ＭＡＣアドレステーブル更新通知に含まれる更新されたＭＡＣアドレスおよびそのポートの情報と、前記Ｌ２ドメイン内の前記第１のスイッチおよび前記第２のスイッチそれぞれの接続関係を示すトポロジ情報とを用いて、前記第１のスイッチおよび前記第２のスイッチそれぞれについて、前記更新されたＭＡＣアドレスおよびそのポートの情報に対応する前記新たなＭＡＣエントリを作成するＭＡＣテーブルエントリ作成部と、前記ＭＡＣアドレステーブル参照要求を送信することにより、前記第１のスイッチおよび前記第２のスイッチそれぞれのＭＡＣアドレステーブルを参照し、前記第１のスイッチおよび前記第２のスイッチそれぞれに、そのＭＡＣアドレステーブルに格納される、前記新たなＭＡＣエントリと同一のＭＡＣアドレスを含むＭＡＣエントリの削除指示、および、前記新たなＭＡＣエントリの追加指示、を示す前記ＭＡＣアドレステーブルの変更情報を送信するＭＡＣテーブル設定指示部と、を備えることを特徴とするＭＡＣアドレステーブル更新システムとした。
【００１５】
また、請求項２に記載の発明は、物理サーバ上の１つ以上の仮想マシンと直接接続されることにより前記仮想マシンを収容する第１のスイッチと、１つ以上の前記第１のスイッチと接続されてフレームを転送する第２のスイッチと、Ｌ２ドメイン内の１つ以上の前記第１のスイッチおよび１つ以上の前記第２のスイッチのそれぞれと接続されるＳＤＮコントローラと、を備えるＭＡＣアドレステーブル更新システムのＭＡＣアドレス更新方法であって、前記第１のスイッチが、新たに収容する仮想マシンからフレームを受信すると、当該仮想マシンのＭＡＣアドレスを用いて、自身のＭＡＣアドレステーブルを更新するステップと、前記ＭＡＣアドレステーブルの更新を、前記ＳＤＮコントローラにＭＡＣアドレステーブル更新通知として送信するステップと、を実行し、前記ＳＤＮコントローラが、受信した前記ＭＡＣアドレステーブル更新通知に含まれる更新されたＭＡＣアドレスおよびそのポートの情報と、前記Ｌ２ドメイン内の前記第１のスイッチおよび前記第２のスイッチそれぞれの接続関係を示すトポロジ情報とを用いて、前記第１のスイッチおよび前記第２のスイッチそれぞれについて、前記更新されたＭＡＣアドレスおよびそのポートの情報に対応する新たなＭＡＣエントリを作成するステップと、前記第１のスイッチおよび前記第２のスイッチそれぞれに、前記ＭＡＣアドレステーブルの参照を要求するＭＡＣアドレステーブル参照要求を送信して、前記ＭＡＣアドレステーブルに格納されているＭＡＣエントリの情報を取得するステップと、前記第１のスイッチおよび前記第２のスイッチそれぞれのＭＡＣアドレステーブルを参照し、前記第１のスイッチおよび前記第２のスイッチそれぞれに、そのＭＡＣアドレステーブルに格納される、前記新たなＭＡＣエントリと同一のＭＡＣアドレスを含むＭＡＣエントリの削除指示、および、前記新たなＭＡＣエントリの追加指示、を示すＭＡＣアドレステーブルの変更情報を送信するステップと、を実行し、前記第１のスイッチおよび前記第２のスイッチが、前記ＳＤＮコントローラから、前記ＭＡＣアドレステーブルの変更情報を受信し、自身のＭＡＣアドレステーブルに格納されるＭＡＣエントリを前記新たなＭＡＣエントリに変更するステップを実行することを特徴とするＭＡＣアドレステーブル更新方法とした。
【００１６】
このように、本発明のＭＡＣアドレステーブル更新システムにおいて、ＭＡＣアドレステーブルを更新するのは、収容する仮想マシンからフレーム受信した第１のスイッチ（ＴｏＲスイッチ）のみとなる。そして、Ｌ２ドメイン内の他の第１のスイッチや第２のスイッチ（上位スイッチ）は、ＳＤＮコントローラが生成したＭＡＣアドレステーブルの変更情報を用いて、ＭＡＣエントリを変更するだけでよい。
よって、各スイッチ（第１のスイッチおよび第２のスイッチ）は、従来技術のようにＭＡＣアドレステーブルの更新を行う必要がないため、ＣＰＵの処理負荷の増大を抑制することができる。また、Ｌ２ブロードキャストドメインにＲＡＲＰを送信する必要もないため、ブロードキャストトラフィックの増大を抑制することができる。したがって、システムが大規模化しても、処理能力の高い高価なスイッチを導入する必要をなくし、低廉なスイッチでネットワークを構成することが可能となる。
【発明の効果】
【００１７】
本発明によれば、各スイッチのＭＡＣアドレステーブル更新に際して、ＣＰＵの負荷増大とブロードキャストトラフィックの増大を抑制する、ＭＡＣアドレステーブル更新システムおよびＭＡＣアドレステーブル更新方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態に係るＭＡＣアドレステーブル更新システムの全体構成と処理の概要を示す図である。
【図２】本実施形態に係るＳＤＮコントローラの構成を示す機能ブロック図である。
【図３】本実施形態に係る物理トポロジＤＢのデータ構成例を示す図である。
【図４】本実施形態に係るスイッチの構成を示す機能ブロック図である。
【図５】本実施形態に係るＭＡＣアドレステーブル更新システムが実行する処理の流れを示すフローチャートである。
【図６】従来技術における、ＭＡＣアドレステーブルが肥大する問題を説明するための図である。
【図７】従来技術における、ＭＡＣアドレステーブルの更新手法を説明するための図である。
【図８】仮想マシンが移動した際のOpenFlowによるフロー制御を説明するための図である。
【発明を実施するための形態】
【００１９】
次に、本発明を実施するための形態（以下、「本実施形態」という。）における、ＭＡＣアドレステーブル更新システム１およびＭＡＣアドレステーブル更新方法について説明する。
【００２０】
＜発明の概要＞
まず、ＭＡＣアドレステーブル更新システム１の全体構成と処理の概要を説明する。
図１は、本実施形態に係るＭＡＣアドレステーブル更新システム１の全体構成と処理の概要を示す図である。
図１に示すように、ＭＡＣアドレステーブル更新システム１は、仮想マシンが設定される各物理サーバ３０に通信接続される複数のＴｏＲスイッチ２０ａ（第１のスイッチ）（図１においては、ＴｏＲ ＳＷ「１」,「２」,「３」）と、各ＴｏＲスイッチ２０ａに通信接続される複数の上位スイッチ２０Ａ（第２のスイッチ）（図１においては、ＳＷ「１」,「２」）と、各ＴｏＲスイッチ２０ａおよび各上位スイッチ２０Ａに通信接続され、Ｌ２ドメインの外部に配置されるＳＤＮコントローラ１０と、を含んで構成される。
【００２１】
ここで、ＴｏＲスイッチ２０ａ（第１のスイッチ）および上位スイッチ２０Ａ（第２のスイッチ）は、同じＬ２ドメイン内の同じＶＬＡＮ（Virtual LAN）に属するＬ２対応のスイッチであるものとする。なお、ＴｏＲスイッチ２０ａおよび上位スイッチ２０Ａを区別しない場合は、スイッチ２０と記載して説明する。
ＳＤＮコントローラ１０は、Ｌ２ドメインの外部に配置されるＳＤＮ対応のコントローラであり、Ｌ２ドメイン内のネットワークを外部制御する。このＳＤＮコントローラ１０と接続される各スイッチ２０（ＴｏＲスイッチ２０ａおよび上位スイッチ２０Ａ）もＳＤＮ対応のスイッチである。
【００２２】
このＭＡＣアドレステーブル更新システム１の処理の概要を説明する。
図１に示すように、仮想マシンＸが上位オペレーションシステム等の指示によりサーバ「２」からサーバ「１」に移動する（ステップＳ１０）。
仮想マシンＸは、自身が直接接続する（自身を収容する）ＴｏＲスイッチ「１」宛にフレームを送信する（ステップＳ１１）。
【００２３】
続いて、フレームを受信したＴｏＲスイッチ「１」は、受信したフレームに基づき、自身のＭＡＣアドレステーブル２００を更新する（ステップＳ１２）。このとき、仮想マシンＸは、従来技術（図７参照）のように、Ｌ２ブロードキャストドメインにＲＡＲＰを送信することにより、各スイッチ２０のＭＡＣアドレステーブル２００を更新する処理を行わず、仮想マシンＸ自身を収容するＴｏＲスイッチ「１」に対して上記フレームを送信することにより、ＴｏＲスイッチ「１」のＭＡＣアドレステーブル２００のみを更新する。
続いて、ＴｏＲスイッチ「１」は、自身のＭＡＣアドレステーブル２００を更新したことを示すＭＡＣアドレステーブル更新通知をＳＤＮコントローラ１０に送信する（ステップＳ１３）。
【００２４】
ＭＡＣアドレステーブル更新通知を受け取ったＳＤＮコントローラ１０は、ＭＡＣアドレステーブル更新通知を送信してきたＴｏＲスイッチ「１」以外のスイッチ２０（ＴｏＲスイッチ２０ａおよび上位スイッチ２０Ａ）それぞれについてのＭＡＣアドレステーブルの変更情報（後記する「新たなＭＡＣエントリ」）を作成（ステップＳ１４）し、各スイッチ２０に送信する。
【００２５】
Ｌ２ドメイン内の各スイッチ２０は、ＳＤＮコントローラ１０からＭＡＣアドレステーブルの変更情報を受信し、自身のＭＡＣアドレステーブル２００を書き換える（ステップＳ１５）。
【００２６】
このようにすることにより、本実施形態に係るＭＡＣアドレステーブル更新システム１およびＭＡＣアドレステーブル更新方法によれば、ＭＡＣアドレステーブル２００の更新するのは、移動等してきた仮想マシンＸを収容するＴｏＲスイッチ「１」のみである。そして、他のスイッチ２０は、ＳＤＮコントローラ１０が生成したＭＡＣアドレステーブルの変更情報を用いて、ＭＡＣエントリを書き換えるだけで済む。よって、従来のように、自身のＭＡＣアドレステーブル２００のエントリをすべて検索し、送信元ＭＡＣアドレスの有無を確認するような処理を行う必要がないため、各スイッチ２０におけるＣＰＵの処理負荷の増大を抑制することができる。また、移動等してきた仮想マシンＸは、従来のように、Ｌ２ブロードキャストドメインにＲＡＲＰを送信しない、よって、仮想マシンＸを収容するＴｏＲスイッチ「１」は、ＲＡＲＰをＬ２ブロードキャストドメインに送信（転送）する必要がなく、ブロードキャストトラフィックの増大を抑制することができる。
【００２７】
＜ＭＡＣアドレステーブル更新システムの構成＞
次に、本実施形態に係るＭＡＣアドレステーブル更新システム１を構成する各装置（ＳＤＮコントローラ１０およびスイッチ２０）について詳細に説明する。まず、ＳＤＮコントローラ１０について説明する。
【００２８】
≪ＳＤＮコントローラ≫
本実施形態に係るＳＤＮコントローラ１０（図１参照）は、Ｌ２ドメイン内のネットワークを外部制御する装置であり、トラヒック量の収集や障害情報の把握等を行い、それらの情報に基づき各装置の設定変更や上位オペレーションシステム等との連携することによりネットワークを管理する。
図２は、本実施形態に係るＳＤＮコントローラ１０の構成を示す機能ブロック図である。
このＳＤＮコントローラ１０は、移動してきた仮想マシンや新たに設定された仮想マシンを収容するＴｏＲスイッチ２０ａから、ＭＡＣアドレステーブル更新通知を受け取り、各スイッチ２０に対応するＭＡＣアドレステーブルの変更情報（新たなＭＡＣエントリ）を生成して送信する。これにより、ＳＤＮコントローラ１０は、各スイッチのＭＡＣアドレステーブル２００の書き換えを実行する。
【００２９】
このＳＤＮコントローラ１０は、不図示の、制御手段と、通信手段と、記憶手段とを備えるコンピュータである。
通信手段は、各装置（スイッチ２０や不図示の上位オペレーションシステム等）との間で通信接続を行うための通信インタフェース等から構成される。
また、記憶手段は、ハードディスクやフラッシュメモリ、ＲＡＭ（Random Access Memory）等からなり、後記する物理トポロジＤＢ（DataBase）１００（図２，図３参照）等が格納される。
【００３０】
制御手段は、ＳＤＮコントローラ１０全体の制御を司り、図２に示すように、通知受信部１１と、通知送信部１２と、物理トポロジ管理部１３と、指示受信部１４と、装置設定部１５と、ＭＡＣテーブルエントリ作成部１６と、ＭＡＣテーブル設定指示部１７とを含んで構成される。
なお、ＳＤＮコントローラ１０が備える機能のうち、本発明について直接関係しない機能（例えば、経路計算部、リソース計算部等）については、記載を省略する。
【００３１】
通知受信部１１は、ネットワークを構成する各スイッチ２０からの各種通知を受信する。
通知送信部１２は、ＳＤＮコントローラ１０の制御手段が処理した結果や、ネットワークを構成する各スイッチ２０に関する情報を不図示の上位オペレーションシステム（図２において「上位システム」と記載する。）等に通知する。
【００３２】
物理トポロジ管理部１３は、スイッチ２０からの各種通知に基づき、各スイッチ２０間の接続関係を示す物理トポロジをデータベース化し、物理トポロジＤＢ１００として保持する。
【００３３】
図３は、本実施形態に係る物理トポロジＤＢ１００のデータ構成例を示す図である。
物理トポロジＤＢ１００は、ＴｏＲスイッチ２０ａのポートと、それに通信接続される上位スイッチ２０Ａのポートとが対応付けられる情報である。この物理トポロジＤＢ１００には、図３に示すように、ＴｏＲスイッチ２０ａの識別番号１０１、そのＴｏＲスイッチ２０ａのポートのポート番号１０２、そのＴｏＲスイッチａに対向する上位スイッチ２０Ａの識別番号１０３、その上位スイッチ２０Ａのポートのポート番号１０４、そのＴｏＲスイッチ２０ａと対向する上位スイッチ２０Ａの接続状態１０５が格納される。接続状態１０５には、接続ありの場合に「１」が格納され、接続なしの場合に「０」が格納される。
例えば、図３の１行目は、ＴｏＲスイッチ「１」のポート番号「ａ１」のポートと、上位スイッチ「２」のポート番号「Ｂ１」のポートとが通信接続され、接続状態が「１」（接続あり）であることを示している。
この物理トポロジＤＢ１００により、ＳＤＮコントローラ１０（物理トポロジ管理部１３）は、Ｌ２ドメイン内の各スイッチ２０の接続関係（結線状態）を管理する。
【００３４】
図２に戻り、指示受信部１４は、上位オペレーションシステムからの指示を受信する。
装置設定部１５は、上位オペレーションシステムからの指示（設定変更等）に基づき、スイッチ２０それぞれに対するコマンドを生成して、その設定変更等の情報を各スイッチ２０に送信する。また、装置設定部１５は、ＭＡＣテーブル設定指示部１７が指示したスイッチ２０ごとのＭＡＣアドレステーブルの変更情報（新たなＭＡＣエントリ）を、各スイッチ２０に送信する。
【００３５】
ＭＡＣテーブルエントリ作成部１６は、ＭＡＣアドレステーブル２００を更新したことを示すＭＡＣアドレステーブル更新通知を、通知受信部１１を介してＴｏＲスイッチ２０ａから受信し、スイッチ２０それぞれに設定する（新たな）ＭＡＣエントリを作成する。
【００３６】
具体的には、ＭＡＣテーブルエントリ作成部１６は、まず、ＴｏＲスイッチ２０ａから受信したＭＡＣアドレステーブル更新通知に含まれる「ＭＡＣアドレス」「ＶＬＡＮ ＩＤ」「追加・移動先ポート」の情報（以下これらの情報を「更新情報」と称する。）を読み取る。
ここで、「ＭＡＣアドレス」は、ライブマイグレーション等により移動してきた仮想マシンのＭＡＣアドレスや、新たに設定された仮想マシンのＭＡＣアドレスである。「ＶＬＡＮ ＩＤ」は、ＭＡＣアドレステーブル更新通知を送信してきたＴｏＲスイッチ２０ａが属するＶＬＡＮのＩＤである。「追加・移動先ポート」は、ＴｏＲスイッチ２０ａがＭＡＣアドレステーブル更新通知を送信してきたポートのポート番号である。
【００３７】
ＭＡＣテーブルエントリ作成部１６は、次に、物理トポロジ管理部１３を介して、物理トポロジＤＢ１００のトポロジ情報を取得し、ＭＡＣアドレステーブル更新通知を送信してきたＴｏＲスイッチ２０ａに結線しているスイッチ２０の識別番号の情報とポート番号の情報とを読み取る。これにより、ＭＡＣテーブルエントリ作成部１６は、同一のＶＬＡＮ内で接続関係にあるスイッチ２０の情報（以下、このトポロジの情報を「接続関係情報」と称する。）を取得する。
【００３８】
ＭＡＣテーブルエントリ作成部１６は、読み取った更新情報（「ＭＡＣアドレス」「ＶＬＡＮ ＩＤ」「追加・移動先ポート」）と接続関係情報を用いて、Ｌ２ドメイン内（かつ同一ＶＬＡＮ）に位置し、ＭＡＣアドレステーブル更新通知を送信してきたスイッチ２０（ＴｏＲスイッチ２０ａ）以外のスイッチ２０を、設定対象となるスイッチ２０として抽出する。そして、ＭＡＣテーブルエントリ作成部１６は、設定対象となるスイッチ２０ごとに、ＭＡＣアドレステーブル変更用のＭＡＣエントリを作成する。そして、ＭＡＣテーブルエントリ作成部１６は、設定対象となるスイッチ２０毎に作成したＭＡＣエントリを、ＭＡＣテーブル設定指示部１７に出力する。
【００３９】
ＭＡＣテーブル設定指示部１７は、ＭＡＣテーブルエントリ作成部１６から取得した、スイッチ２０毎のＭＡＣエントリを、設定対象となるスイッチ２０に対し設定するように、装置設定部１５に指示情報を出力する。
【００４０】
具体的には、ＭＡＣテーブル設定指示部１７は、設定対象となる各スイッチ２０に対し、ＭＡＣアドレステーブル２００の参照を要求する、ＭＡＣアドレステーブル参照要求を送信することにより、各スイッチ２０のＭＡＣアドレステーブル２００を参照する。
そして、ＭＡＣテーブル設定指示部１７は、参照した各ＭＡＣアドレステーブル２００それぞれについて、ＭＡＣテーブルエントリ作成部１６から取得した（新たな）ＭＡＣエントリと同一のＭＡＣアドレスのエントリが存在するか否かを探索する。
【００４１】
ＭＡＣテーブル設定指示部１７は、同一のＭＡＣアドレスのエントリが存在した場合には、そのＭＡＣアドレステーブル２００を備えるスイッチ２０に対する当該エントリの削除指示を出力するとともに、ＭＡＣテーブルエントリ作成部１６が作成したエントリ（新たなＭＡＣエントリ）の追加指示を、ＭＡＣアドレステーブルの変更情報としてそのスイッチ２０に送信するように装置設定部１５に出力する。一方、ＭＡＣテーブル設定指示部１７は、同一のＭＡＣアドレスのエントリが存在しない場合には、そのＭＡＣアドレステーブル２００を備えるスイッチ２０に対して、ＭＡＣテーブルエントリ作成部１６が作成したエントリ（新たなＭＡＣエントリ）の追加指示を、ＭＡＣアドレステーブルの変更情報として送信するように、装置設定部１５に出力する。
【００４２】
このようにすることにより、ＳＤＮコントローラ１０は、各スイッチ２０それぞれに適したＭＡＣアドレステーブル２００の変更情報としての（新たな）ＭＡＣエントリを作成し、各スイッチ２０の送信することができる。
【００４３】
≪スイッチ≫
次に、本実施形態に係るスイッチ２０について説明する。
本実施形態に係るスイッチ２０は、ＴｏＲスイッチ２０ａ（第１のスイッチ）や上位スイッチ２０Ａ（第２のスイッチ）により構成され（図１参照）、Ｌ２ドメイン内のフレームを送受信するＳＤＮ対応のスイッチである。
図４は、本実施形態に係るスイッチ２０の構成を示す機能ブロック図である。
このスイッチ２０は、不図示の、制御手段と、通信手段と、記憶手段とを備えるコンピュータである。
通信手段は、各装置（自身以外の他のスイッチ２０や、仮想サーバ、ＳＤＮコントローラ１０等）との間で通信接続を行うための通信インタフェース等から構成される。
また、記憶手段は、ハードディスクやフラッシュメモリ、ＲＡＭ等からなり、ＭＡＣアドレステーブル２００等が格納される。
【００４４】
制御手段は、スイッチ２０全体の制御を司り、図４に示すように、通知受信部２１と、通知送信部２２と、ＭＡＣテーブル管理部２３と、を含んで構成される。
なお、スイッチ２０が備える機能のうち、本発明について直接関係しない機能については記載を省略する。
【００４５】
通知受信部２１は、自身以外の他のスイッチ２０や、仮想サーバ、ＳＤＮコントローラ１０等からの情報を受信する。
また、通知送信部２２は、ＭＡＣテーブル管理部２３等が処理した結果や、外部の装置から受信したフレーム等を、宛先となる装置に出力する。
【００４６】
ＭＡＣテーブル管理部２３は、ＭＡＣアドレステーブル２００に格納されるＭＡＣエントリの追加や更新等に関する処理の全般を司り、図４に示すように、ＭＡＣテーブル更新部２３１、ＭＡＣテーブル更新通知部２３２、ＭＡＣテーブル情報通知部２３３、ＭＡＣテーブル変更部２３４を含む。
【００４７】
ＭＡＣテーブル更新部２３１は、自身が収容する仮想テーブルからのフレームを受信した場合に、そのフレームに付された送信元ＭＡＣアドレス等の情報に基づき、ＭＡＣアドレステーブル２００を更新する。
具体的には、ＭＡＣテーブル更新部２３１は、そのＭＡＣアドレステーブル２００のＭＡＣエントリに、送信元ＭＡＣアドレスと一致するＭＡＣアドレスが登録されていなければ、新たなＭＡＣエントリを生成し、ＭＡＣアドレステーブル２００に格納する。また、ＭＡＣテーブル更新部２３１は、送信元ＭＡＣアドレスと一致するＭＡＣアドレスのＭＡＣエントリにおいて、異なったポート番号の情報が記載されている場合には、そのＭＡＣエントリを削除した上で、新たなＭＡＣエントリを生成し、ＭＡＣアドレステーブル２００に格納する。
【００４８】
ＭＡＣテーブル更新通知部２３２は、ＭＡＣテーブル更新部２３１がＭＡＣアドレステーブル２００を更新した場合に、ＭＡＣアドレステーブル更新通知を生成し、ＳＤＮコントローラ１０に送信する。
このＭＡＣアドレステーブル更新通知には、前記したように、ＭＡＣアドレステーブル２００の更新情報（「ＭＡＣアドレス」「ＶＬＡＮ ＩＤ」「追加・移動先ポート」の情報）が含まれる。
【００４９】
ＭＡＣテーブル情報通知部２３３は、ＳＤＮコントローラ１０からＭＡＣアドレステーブル参照要求を受信した場合に、ＭＡＣアドレステーブル２００に格納されているＭＡＣエントリの情報を取得し、ＳＤＮコントローラ１０に送信する。
【００５０】
また、ＭＡＣテーブル変更部２３４は、ＳＤＮコントローラ１０からＭＡＣアドレステーブル２００に格納されたＭＡＣエントリの削除指示を受信した場合に、そのＭＡＣエントリを削除する。
さらに、ＭＡＣテーブル変更部２３４は、ＳＤＮコントローラ１０からＭＡＣアドレステーブルの変更情報として、新たなＭＡＣエントリを受信した場合には、そのＭＡＣエントリをＭＡＣアドレステーブル２００に格納する。
【００５１】
なお、このＭＡＣテーブル管理部２３の各機能のうち、ＴｏＲスイッチ２０ａは、少なくとも、ＭＡＣテーブル更新部２３１、ＭＡＣテーブル更新通知部２３２、ＭＡＣテーブル情報通知部２３３、ＭＡＣテーブル変更部２３４を含む。また、上位スイッチ２０Ａは、少なくとも、ＭＡＣテーブル情報通知部２３３、ＭＡＣテーブル変更部２３４を含む。
【００５２】
このようにすることにより、スイッチ２０は、ＳＤＮコントローラ１０が生成したＭＡＣアドレステーブルの変更情報を用いて、ＭＡＣエントリを書き換えるだけで済む。よって、従来のように、自身のＭＡＣアドレステーブル２００のエントリをすべて検索し、送信元ＭＡＣアドレスの有無を確認するような処理を行う必要がないため、各スイッチ２０におけるＣＰＵの処理負荷の増大を抑制することができる。また、移動等してきた仮想マシンＸを収容するスイッチ２０（ＴｏＲスイッチ２０ａ）は、従来のように、Ｌ２ブロードキャストドメインにＲＡＲＰを送信（転送）する必要がないため、ブロードキャストトラフィックの増大を抑制することができる。
【００５３】
＜処理の流れ＞
次に、ＭＡＣアドレステーブル更新システム１が実行する処理について、図５を参照して説明する。
図５は、本実施形態に係るＭＡＣアドレステーブル更新システム１が実行する処理の流れを示すフローチャートである。
【００５４】
まず、仮想マシンが上位オペレーションシステム（不図示）等の指示により他の物理サーバ３０上に移動されたり、新たな仮想マシンが物理サーバ３０上に設定されたりする（ステップＳ１００）。
【００５５】
続いて、移動された仮想マシンまたは新たに設定された仮想マシンが、その仮想マシンを収容するＴｏＲスイッチ２０ａに対して、自身のＭＡＣアドレスが付されたフレームを、ユニキャストで送信する（ステップＳ１０１）。
【００５６】
フレームを受信したＴｏＲスイッチ２０ａ（ＭＡＣテーブル更新部２３１）は、フレームに付された送信元のＭＡＣアドレスに基づき、自身のＭＡＣアドレステーブル２００を更新する（ステップＳ１０２）。
【００５７】
続いて、仮想マシンからのフレームを受信したＴｏＲスイッチ２０ａのＭＡＣテーブル更新通知部２３２は、ＭＡＣアドレステーブル更新通知を生成し、ＳＤＮコントローラ１０に送信する（ステップＳ１０３）。
【００５８】
次に、ＭＡＣアドレステーブル更新通知を受信したＳＤＮコントローラ１０のＭＡＣテーブルエントリ作成部１６は、受信したＭＡＣアドレステーブル更新通知に含まれる「ＭＡＣアドレス」「ＶＬＡＮ ＩＤ」「追加・移動先ポート」の情報（更新情報）を読み取る（ステップＳ１０４）。
【００５９】
そして、ＭＡＣテーブルエントリ作成部１６は、読み取った更新情報と、物理トポロジ管理部１３を介して取得した物理トポロジＤＢ１００（図３参照）のトポロジ情報とを用いて、設定対象となるスイッチ２０を抽出し、その設定対象となるスイッチ２０ごとに、ＭＡＣアドレステーブル変更用の（新たな）ＭＡＣエントリを作成する（ステップＳ１０５）。
【００６０】
続いて、ＳＤＮコントローラ１０のＭＡＣテーブル設定指示部１７は、設定対象となるスイッチ２０に対し、ＭＡＣアドレステーブル参照要求を送信することにより、各スイッチ２０のＭＡＣアドレステーブル２００のＭＡＣエントリを参照する（ステップＳ１０６）。
【００６１】
次に、ＭＡＣテーブル設定指示部１７は、ＭＡＣテーブルエントリ作成部１６が作成した（新たな）ＭＡＣエントリごとに、次のステップＳ１０７の判定処理を実行する。
ステップＳ１０７において、ＭＡＣテーブル設定指示部１７は、作成した（新たな）ＭＡＣエントリに含まれるＭＡＣアドレスと、同一のＭＡＣアドレスのエントリが、参照したスイッチ２０のＭＡＣアドレステーブル２００に存在するか否かを判定する。
【００６２】
ここで、ＭＡＣテーブル設定指示部１７は、同一のＭＡＣアドレスのエントリが存在する場合には（ステップＳ１０７→Ｙｅｓ）、次のステップＳ１０８に進む。一方、ＭＡＣテーブル設定指示部１７は、同一のＭＡＣアドレスのエントリが存在しない場合には（ステップＳ１０７→Ｎｏ）、次のステップＳ１０９に進む。
【００６３】
ステップＳ１０８において、ＭＡＣテーブル設定指示部１７は、参照したスイッチ２０における同一のＭＡＣアドレスのエントリの削除指示を、そのスイッチ２０に送信するとともに、作成した（新たな）ＭＡＣエントリの追加指示を、ＭＡＣアドレステーブルの変更情報として、そのスイッチ２０に送信する。
【００６４】
一方、ステップＳ１０９において、ＭＡＣテーブル設定指示部１７は、作成した（新たな）ＭＡＣエントリの追加指示を、ＭＡＣアドレステーブルの変更情報として、そのスイッチ２０に送信する。
【００６５】
続いて、各スイッチ２０のＭＡＣテーブル変更部２３４は、ＳＤＮコントローラ１０から取得した情報を用いて、自身のＭＡＣアドレステーブル２００を変更し（ステップＳ１１０）、ＭＡＣアドレステーブル２００の更新処理を終了する。
具体的には、各スイッチ２０のＭＡＣテーブル変更部２３４は、ステップＳ１０８の処理が実行された場合には、ＳＤＮコントローラ１０からの削除指示に基づきＭＡＣアドレステーブル２００に格納されているＭＡＣエントリを削除した上で、ＭＡＣアドレステーブルの変更情報に基づき新たなＭＡＣエントリを追加する。
また、各スイッチ２０のＭＡＣテーブル変更部２３４は、ステップＳ１０９の処理が実行された場合に、ＳＤＮコントローラ１０から取得したＭＡＣアドレステーブルの変更情報に基づき新たなＭＡＣエントリをＭＡＣアドレステーブル２００に追加する。
【００６６】
以上説明したように、本実施形態に係るＭＡＣアドレステーブル更新システム１およびＭＡＣアドレステーブル更新方法によれば、ＭＡＣアドレステーブル２００の更新するのは、移動または新たに設定された仮想マシンを収容するスイッチ２０（ＴｏＲスイッチ２０ａ）のみである。そして、他のスイッチ２０は、ＳＤＮコントローラ１０が生成したＭＡＣアドレステーブルの変更情報を用いて、ＭＡＣエントリを書き換えるだけで済む。これにより、各スイッチ２０におけるＣＰＵの処理負荷の増大を抑制することができる。また、移動または新たに設定された仮想マシンを収容するスイッチ２０は、従来技術のように、Ｌ２ブロードキャストドメインにＲＡＲＰを送信（転送）する必要がないため、ブロードキャストトラフィックの増大を抑制することができる。よって、ライブマイグレーションが頻繁に行われたり、新たな仮想マシンが大量に設定されたりするようなネットワーク環境においても、処理能力の高い高価なスイッチを導入する必要をなくし、低廉なスイッチ２０でネットワークを構成することが可能となる。
また、本発明のＳＤＮコントローラ１０およびスイッチ２０は、OpenFlowに限定されることなく、ＳＤＮ対応のコントローラおよびスイッチであれば本発明を実行することが可能となり、汎用性の高いシステムを構築することができる。
【符号の説明】
【００６７】
１      ＭＡＣアドレステーブル更新システム
１０    ＳＤＮコントローラ
１１，２１  通知受信部
１２，２２  通知送信部
１３    物理トポロジ管理部
１４    指示受信部
１５    装置設定部
１６    ＭＡＣテーブルエントリ作成部
１７    ＭＡＣテーブル設定指示部
２０    スイッチ
２０ａ  ＴｏＲスイッチ（第１のスイッチ）
２０Ａ  上位スイッチ（第２のスイッチ）
２３    ＭＡＣテーブル管理部
３０    物理サーバ
１００  物理トポロジＤＢ
２００  ＭＡＣアドレステーブル
２３１  ＭＡＣテーブル更新部
２３２  ＭＡＣテーブル更新通知部
２３３  ＭＡＣテーブル情報通知部
２３４  ＭＡＣテーブル変更部
【図１】
2017108264.tif 000003
【図２】
2017108264.tif 000004
【図３】
2017108264.tif 000005
【図４】
2017108264.tif 000006
【図５】
2017108264.tif 000007
【図６】
2017108264.tif 000008
【図７】
2017108264.tif 000009
【図８】
2017108264.tif 000010