(57)【特許請求の範囲】
【請求項１】
データを中継する複数のスイッチと、前記複数のスイッチを制御する中継制御装置とを含むネットワークシステムであって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のＭＡＣアドレス及びＩＰアドレスと、該データの宛先となる宛先端末のＭＡＣアドレス及びＩＰアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のＭＡＣアドレス及びＩＰアドレスと、該入力データの宛先端末のＭＡＣアドレス及びＩＰアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、
前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部と、
所定の端末の通信相手先となる通信相手先端末のＭＡＣアドレスを取得するための取得要求であって、該通信相手先端末のＩＰアドレスを含む取得要求を前記所定の端末から受信した場合に、該取得要求を受信したポートのポート識別子と、該取得要求に含まれるＩＰアドレスとを前記中継制御装置に通知し、該取得要求に対する応答として、前記中継制御装置から送信された経路情報に含まれる前記通信相手先端末のＭＡＣアドレスを前記所定の端末へ送信する通知部と
を備え、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のＭＡＣアドレス及びＩＰアドレス、又は、該ポートと接続される他のスイッチのＭＡＣアドレスとを記憶する接続情報記憶部と、
前記通知部によって通知された前記ポート識別子及び前記通信相手先端末のＩＰアドレスを受け付ける受付部と、
前記受付部によって受け付けられたポート識別子及び前記通信相手先端末のＩＰアドレスを用いて、前記所定の端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記所定の端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索部と、
前記経路探索部によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のＭＡＣアドレス及びＩＰアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新部と
を備えたことを特徴とするネットワークシステム。
【請求項２】
データを中継する複数のスイッチを制御する中継制御装置であって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のＭＡＣアドレス及びＩＰアドレスと、該データの宛先となる宛先端末のＭＡＣアドレス及びＩＰアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のＭＡＣアドレス及びＩＰアドレスと、該入力データの宛先端末のＭＡＣアドレス及びＩＰアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、
前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部と、
所定の端末の通信相手先となる通信相手先端末のＭＡＣアドレスを取得するための取得要求であって、該通信相手先端末のＩＰアドレスを含む取得要求を前記所定の端末から受信した場合に、該取得要求を受信したポートのポート識別子と、該取得要求に含まれるＩＰアドレスとを前記中継制御装置に通知し、該取得要求に対する応答として、前記中継制御装置から送信された経路情報に含まれる前記通信相手先端末のＭＡＣアドレスを前記所定の端末へ送信する通知部と
を備え、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のＭＡＣアドレス及びＩＰアドレス、又は、該ポートと接続される他のスイッチのＭＡＣアドレスとを記憶する接続情報記憶部と、
所定のスイッチから、端末と接続されている該所定のスイッチのポートを示すポート識別子と、該端末の通信相手先端末のＩＰアドレスとを受け付ける受付部と、
前記受付部によって受け付けられたポート識別子及び前記通信相手先端末のＩＰアドレスを用いて、前記端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索部と、
前記経路探索部によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のＭＡＣアドレス及びＩＰアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新部と
を備えたことを特徴とする中継制御装置。
【請求項３】
データを中継する複数のスイッチと、前記複数のスイッチを制御する中継制御装置とを含むネットワークシステムで実行される中継制御方法であって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のＭＡＣアドレス及びＩＰアドレスと、該データの宛先となる宛先端末のＭＡＣアドレス及びＩＰアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルとを備え、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のＭＡＣアドレス及びＩＰアドレスと、該入力データの宛先端末のＭＡＣアドレス及びＩＰアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得工程と、
前記取得工程によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信工程と、
所定の端末の通信相手先となる通信相手先端末のＭＡＣアドレスを取得するための取得要求であって、該通信相手先端末のＩＰアドレスを含む取得要求を前記所定の端末から受信した場合に、該取得要求を受信したポートのポート識別子と、該取得要求に含まれるＩＰアドレスとを前記中継制御装置に通知し、該取得要求に対する応答として、前記中継制御装置から送信された経路情報に含まれる前記通信相手先端末のＭＡＣアドレスを前記所定の端末へ送信する通知工程と
を含み、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のＭＡＣアドレス及びＩＰアドレス、又は、該ポートと接続される他のスイッチのＭＡＣアドレスとを記憶する接続情報部を備え、
前記通知工程によって通知された前記ポート識別子及び前記通信相手先端末のＩＰアドレスを受け付ける受付工程と、
前記受付工程によって受け付けられたポート識別子及び前記通信相手先端末のＩＰアドレスを用いて、前記所定の端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記所定の端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索工程と、
前記経路探索工程によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のＭＡＣアドレス及びＩＰアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新工程と
を含んだことを特徴とする中継制御方法。
【請求項４】
データを中継する複数のスイッチを制御する中継制御装置で実行される中継制御方法であって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のＭＡＣアドレス及びＩＰアドレスと、該データの宛先となる宛先端末のＭＡＣアドレス及びＩＰアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のＭＡＣアドレス及びＩＰアドレスと、該入力データの宛先端末のＭＡＣアドレス及びＩＰアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、
前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部と、
所定の端末の通信相手先となる通信相手先端末のＭＡＣアドレスを取得するための取得要求であって、該通信相手先端末のＩＰアドレスを含む取得要求を前記所定の端末から受信した場合に、該取得要求を受信したポートのポート識別子と、該取得要求に含まれるＩＰアドレスとを前記中継制御装置に通知し、該取得要求に対する応答として、前記中継制御装置から送信された経路情報に含まれる前記通信相手先端末のＭＡＣアドレスを前記所定の端末へ送信する通知部と
を備え、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のＭＡＣアドレス及びＩＰアドレス、又は、該ポートと接続される他のスイッチのＭＡＣアドレスとを記憶する接続情報記憶部を備え、
所定のスイッチから、端末と接続されている該所定のスイッチのポートを示すポート識別子と、該端末の通信相手先端末のＩＰアドレスとを受け付ける受付工程と、
前記受付工程によって受け付けられたポート識別子及び前記通信相手先端末のＩＰアドレスを用いて、前記端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索工程と、
前記経路探索工程によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のＭＡＣアドレス及びＩＰアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新工程と
を含んだことを特徴とする中継制御方法。
【請求項５】
コンピュータを請求項２に記載の中継制御装置として機能させるための中継制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムに関する。
【背景技術】
【０００２】
従来、公衆電話網やインターネットなどのアクセスネットワークを利用して、複数箇所に散在する拠点間を接続する技術が提案されている。そして、この技術を用いて複数の拠点間を接続することにより、各拠点に散在するユーザ間で同時に音声や画像のやり取りを可能とする音声（電話）会議やテレビ会議、ＷＥＢ会議などのサービスの提供も行われている。
【０００３】
また、近年では、企業内ネットワークなどに、複数の仮想ネットワークを形成するＶＬＡＮ（Virtual  Local  Area  Network）やタグＶＬＡＮ等の技術が知られている。このようなＶＬＡＮ等の技術が適用されたネットワークでは、仮想ネットワーク内における特定のユーザ間によるデータ通信を可能とする。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Tony  Jeffree  et  al,  "IEEE  Standard  for  Local  and  metropolitan  area  networks  Virtual  Bridged  Local  Area  Networks",  IEEE  Std  802.1Q-2005,  ［online］,［平成２３年５月３１日検索］、インターネット＜http://standards.ieee.org/getieee802/download/802.1Q-2005.pdf＞
【非特許文献２】Tony  Jeffree  et  al,  "IEEE  Standard  for  Local  and  metropolitan  area  networks  Virtual  Bridged  Local  Area  Networks  Amendment  4:  Provider  Bridges",  IEEE  Std  802.1ad-2005,  ［online］,［平成２３年５月３１日検索］、インターネット＜http://standards.ieee.org/getieee802/download/802.1ad-2005.pdf＞
【非特許文献３】Tony  Jeffree  et  al,  "IEEE  Standard  for  Local  and  metropolitan  area  networks  Virtual  Bridged  Local  Area  Networks  Amendment  7:  Provider  Backbone  Bridges",  IEEE  Std  802.1ah-2008,  ［online］,［平成２３年５月３１日検索］、インターネット＜http://standards.ieee.org/getieee802/download/802.1ah-2008.pdf＞
【非特許文献４】OpenFlow  Switching  Consortium,  "Open  Flow",  ［online］,［平成２３年５月３１日検索］、インターネット＜http://www.openflow.org/＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の仮想ネットワークに関する従来技術では、仮想ネットワークを構築するための作業コストが増大する場合がある。例えば、ＶＬＡＮにより仮想ネットワークを構築する場合には、スイッチ等の中継装置にＶＬＡＮテーブル等を設定することを要する。このような中継装置はネットワーク内に複数存在するので、設定作業にかかる作業コストが増大する。
【０００６】
本発明は、上記に鑑みてなされたものであって、仮想ネットワークにおけるデータ通信を容易に実現することを可能にするネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態に係るネットワークシステムは、データを中継する複数のスイッチを含むネットワークシステムであって、前記スイッチは、他のスイッチ又は端末と接続される複数のポートと、他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のＭＡＣアドレス及びＩＰアドレスと、該データの宛先となる宛先端末のＭＡＣアドレス及びＩＰアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のＭＡＣアドレス及びＩＰアドレスと、該入力データの宛先端末のＭＡＣアドレス及びＩＰアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部とを備えることを特徴とする。
【０００８】
また、実施形態に係る中継制御装置は、データを中継する複数のスイッチを制御する中継制御装置であって、前記スイッチは、他のスイッチ又は端末と接続される複数のポートと、他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のＭＡＣアドレス及びＩＰアドレスと、該データの宛先となる宛先端末のＭＡＣアドレス及びＩＰアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のＭＡＣアドレス及びＩＰアドレスと、該入力データの宛先端末のＭＡＣアドレス及びＩＰアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子が示す出力ポートから前記入力データを送信する送信部とを備え、前記中継制御装置は、前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のＭＡＣアドレス及びＩＰアドレス、又は、該ポートと接続される他のスイッチのＭＡＣアドレスとを記憶する接続情報記憶部と、所定のスイッチから、端末と接続されている該所定のスイッチのポートを示すポート識別子と、該端末の通信相手先端末のＩＰアドレスとを受け付ける受付部と、前記受付部によって受け付けられたポート識別子及び前記通信相手先端末のＩＰアドレスを用いて、前記端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索部と、前記経路探索部によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のＭＡＣアドレス及びＩＰアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新部とを備えることを特徴とする。
【発明の効果】
【０００９】
実施形態に係るネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムは、仮想ネットワークにおけるデータ通信を容易に実現することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るネットワークシステムの物理的な構成例を示す図である。
【図２】図２は、実施例１に係るネットワークシステムの論理的な構成例を示す図である。
【図３】図３は、実施例１における中継制御装置の構成例を示すブロック図である。
【図４】図４は、実施例１における接続情報記憶部の一例を示す図である。
【図５】図５は、実施例１におけるスイッチが有するフローテーブルの一例を示す図である。
【図６】図６は、実施例１におけるスイッチが有するフローテーブルの一例を示す図である。
【図７】図７は、実施例１におけるスイッチが有するフローテーブルの一例を示す図である。
【図８】図８は、実施例１におけるスイッチの構成例を示すブロック図である。
【図９】図９は、実施例１に係るネットワークシステムによる中継制御手順を示すシーケンス図である。
【図１０】図１０は、中継制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明に係るネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。
【実施例１】
【００１２】
［ネットワークシステムの構成］
まず、図１を用いて、実施例１に係るネットワークシステムの構成について説明する。図１は、実施例１に係るネットワークシステムの物理的な構成例を示す図である。図１に例示するように、実施例１に係るネットワークシステムＮ１には、スイッチ１０、２０及び３０と、端末Ｍ１１〜Ｍ１７と、中継制御装置１００とが含まれる。
【００１３】
スイッチ１０、２０及び３０は、端末間で送受信されるデータを中継する中継装置である。図１に例示するように、スイッチ１０は、ネットワークポート（以下、「ＮＷポート」と表記する場合がある）１１〜１４を有する。かかるＮＷポート１１〜１４は、他のスイッチであるスイッチ２０や端末Ｍ１１〜Ｍ１３との間でデータ（パケット等）を送受信する。具体的には、ＮＷポート１１は、端末Ｍ１１と接続されており、端末Ｍ１１との間でデータを送受信する。同様に、ＮＷポート１２は、端末Ｍ１２との間でデータを送受信し、端末Ｍ１３は、端末Ｍ１３との間でデータを送受信する。また、ＮＷポート１４は、後述するスイッチ２０が有するＮＷポート２３と接続されており、ＮＷポート２３との間でデータを送受信する。
【００１４】
スイッチ２０は、ＮＷポート２１〜２４を有する。ＮＷポート２１は、端末Ｍ１４との間でデータを送受信し、ＮＷポート２２は、端末Ｍ１５との間でデータを送受信する。また、ＮＷポート２３は、上記の通り、スイッチ１０のＮＷポート１４との間でデータを送受信する。また、ＮＷポート２４は、後述するスイッチ３０が有するＮＷポート３３と接続されており、ＮＷポート３３との間でデータを送受信する。
【００１５】
スイッチ３０は、ＮＷポート３１〜３３を有する。ＮＷポート３１は、端末Ｍ１６との間でデータを送受信し、ＮＷポート３２は、端末Ｍ１７との間でデータを送受信する。また、ＮＷポート３３は、上記の通り、スイッチ２０のＮＷポート２４との間でデータを送受信する。
【００１６】
端末Ｍ１１〜Ｍ１７は、例えば、ＰＣ（Personal  Computer）等の情報処理装置であり、スイッチ１０、２０又は３０を介して、他の端末との間で通信を行う。例えば、端末Ｍ１１は、スイッチ１０、２０及び３０を介して、端末Ｍ１６との間で通信を行う場合がある。
【００１７】
中継制御装置１００は、スイッチ１０、２０及び３０による中継処理を制御する。ここで、実施例１に係るネットワークシステムＮ１は、かかる中継制御装置１００のよる制御の下、仮想的なネットワーク（以下、「グループ」と表記する場合もある）を容易に形成することを可能にする。
【００１８】
例えば、実施例１に係るネットワークシステムＮ１のネットワーク管理者等は、仮想ネットワークを形成する場合に、各スイッチが有する各ＮＷポートをいくつかのグループに分ける。このとき、ネットワーク管理者は、ＶＬＡＮ等を用いた場合には、スイッチ１０、２０及び３０の各々にＶＬＡＮテーブル等を設定することを要する。このため、ネットワーク管理者の作業コストが増大する。しかし、実施例１に係るネットワークシステムＮ１においては、ネットワーク管理者は、各スイッチの各ＮＷポートが属するグループに関するグループ情報を中継制御装置１００に登録するだけで、ネットワークシステムＮ１内に上記グループＲ及びグループＢを形成することができる。
【００１９】
具体的には、中継制御装置１００は、ネットワーク管理者から受け付けたグループ情報を保持する。そして、中継制御装置１００は、スイッチ１０、２０又は３０から所定の端末間における通信経路の探索要求を受け付けた場合に、ネットワーク管理者から受け付けたグループ情報に基づいて、同一のグループに属するＮＷポートのみを経由するように、かかる端末間の通信経路を決定する。
【００２０】
そして、中継制御装置１００は、決定した通信経路を用いて、スイッチ１０、２０及び３０がデータの中継処理を行う際に用いるテーブル（後述するフローテーブル）に記憶されるフローテーブル情報を生成する。このとき、実施例１における中継制御装置１００は、データが入力される「入力ポート」と、データの送信元端末の「送信元ＭＡＣ（Media  Access  Control）アドレス」と、データの宛先端末の「宛先ＭＡＣアドレス」と、送信元端末の「送信元ＩＰ（Internet  Protocol）アドレス」と、宛先端末の「宛先ＩＰアドレス」と、データが出力される「出力ポート」とを含むフローテーブル情報を生成する。中継制御装置１００は、このようにして生成したフローテーブル情報をスイッチ１０、２０及び３０に登録する。
【００２１】
そして、実施例１におけるスイッチ１０、２０及び３０は、これらの「入力ポート」、「送信元ＭＡＣアドレス」、「宛先ＭＡＣアドレス」、「送信元ＩＰアドレス」、「宛先ＩＰアドレス」、「出力ポート」の組合せに基づいて、データの中継処理を行う。具体的には、スイッチ１０等は、データを受信した場合に、データを受信した「入力ポート」と、かかるデータに設定されている「送信元ＭＡＣアドレス」、「宛先ＭＡＣアドレス」、「送信元ＩＰアドレス」及び「宛先ＩＰアドレス」とに対応する「出力ポート」を特定し、特定した出力ポートにかかるデータを送信する。
【００２２】
図１に示した例を用いて、より具体的に説明する。図１に示した例では、ネットワーク管理者は、横線を付した矩形によって示したＮＷポート１１、１２、２１及び３１が属するグループ（以下、「グループＲ」とする）と、縦線を付した矩形によって示したＮＷポート１３、２２及び３２が属するグループ（以下、「グループＢ」とする）とを形成するものとする。すなわち、図１に示した例のように各端末がＮＷポートに接続されている場合には、端末Ｍ１１、Ｍ１２、Ｍ１４及びＭ１６が互いに通信を行うことが許可され、端末Ｍ１３、Ｍ１５及びＭ１７が互いに通信を行うことが許可されることとなる。なお、実施例１では、図１に示したＮＷポート１４、２３、２４及び３３のようにスイッチ間を接続するＮＷポートは、特定のグループに属さず、いずれのグループ（グループＲ及びグループＢ）内の通信においてもデータの送受信が行えるものとする。
【００２３】
上記例の場合に、実施例１における中継制御装置１００は、ＮＷポート１１、１２、２１及び３１がグループＲに属し、ＮＷポート１３、２２及び３２がグループＢに属することを示すグループ情報をネットワーク管理者から受け付ける。そして、中継制御装置１００は、各端末が他の端末との間で通信を行う場合に、スイッチ１０、２０又は３０から端末間における通信経路の探索要求を受け付ける。例えば、中継制御装置１００は、端末Ｍ１１とＭ１６とが初めて通信を行う場合等に、スイッチ１０から端末Ｍ１１とＭ１６との間における通信経路の探索要求を受け付ける。
【００２４】
かかる場合には、中継制御装置１００は、端末Ｍ１１とＭ１６との間におけるデータを送受信するＮＷポートとして、スイッチ１０のＮＷポート１１及び１４と、スイッチ２０のＮＷポート２３及び２４と、スイッチ３０のＮＷポート３３及び３１とを選択する。このとき、中継制御装置１００は、端末Ｍ１１の接続先のＮＷポート１１と端末Ｍ１６の接続先のＮＷポート３１とがグループＲに属するので、グループＲに属するＮＷポートの中から、端末Ｍ１１と端末Ｍ１６とが通信可能となるＮＷポートを選択する。そして、中継制御装置１００は、このように選択したＮＷポートに基づいて、スイッチ１０、２０及び３０に登録するためのフローテーブル情報を生成する。
【００２５】
具体的には、中継制御装置１００は、スイッチ１０に登録するフローテーブル情報として、端末Ｍ１１から送信される端末Ｍ１６宛のデータをＮＷポート１１が受信した場合に、かかるデータをＮＷポート１４に出力することを示す情報を生成する。さらに、中継制御装置１００は、スイッチ１０に登録するフローテーブル情報として、端末Ｍ１６から端末Ｍ１１宛のデータをＮＷポート１４が受信した場合に、かかるデータをＮＷポート１１に出力することを示す情報を生成する。
【００２６】
また、中継制御装置１００は、スイッチ２０に登録するフローテーブル情報として、端末Ｍ１１から端末Ｍ１６宛のデータをＮＷポート２３が受信した場合に、かかるデータをＮＷポート２４に出力することを示す情報を生成する。さらに、中継制御装置１００は、スイッチ２０に登録するフローテーブル情報として、端末Ｍ１６から端末Ｍ１１宛のデータをＮＷポート２４が受信した場合に、かかるデータをＮＷポート２３に出力することを示す情報を生成する。
【００２７】
また、中継制御装置１００は、スイッチ３０に登録するフローテーブル情報として、端末Ｍ１１から端末Ｍ１６宛のデータをＮＷポート３３が受信した場合に、かかるデータをＮＷポート３１に出力することを示す情報を生成する。さらに、中継制御装置１００は、スイッチ３０に登録するフローテーブル情報として、端末Ｍ１６から端末Ｍ１１宛のデータをＮＷポート３１が受信した場合に、かかるデータをＮＷポート３３に出力することを示す情報を生成する。
【００２８】
そして、中継制御装置１００は、このようにして生成したフローテーブル情報をスイッチ１０、２０及び３０に登録する。これにより、スイッチ１０、２０及び３０は、中継制御装置１００によって登録されたフローテーブル情報を用いて、端末Ｍ１１と端末Ｍ１６との間で送受信されるデータを中継することができる。
【００２９】
同様にして、中継制御装置１００は、端末Ｍ１１とＭ１４とが最初に通信を行う場合や、端末Ｍ１２とＭ１６とが最初に通信を行う場合や、端末Ｍ１２とＭ１４とが最初に通信を行う場合等についても、各スイッチ用のフローテーブル情報を生成し、生成したフローテーブル情報を各スイッチに登録する。また、中継制御装置１００は、端末Ｍ１３、Ｍ１５及びＭ１７が最初に相互通信を行う場合等についても、各スイッチにフローテーブル情報を登録する。スイッチ１０、２０及び３０は、中継制御装置１００によって生成されたフローテーブル情報に従って、データの中継処理を行うので、互いに通信を行うことが許可されていない端末間の通信を成立させることはない。このようにして、中継制御装置１００は、ネットワークシステムＮ１にグループ（仮想ネットワーク）を形成することができる。
【００３０】
なお、上記例では、中継制御装置１００が、スイッチ１０等から探索要求を受け付けた場合に、各スイッチにフローテーブル情報を登録する例を示した。しかし、この例に限られず、中継制御装置１００は、スイッチ１０等から探索要求を受け付けない場合であっても、各スイッチにフローテーブル情報を登録してもよい。例えば、中継制御装置１００は、ネットワークシステムＮ１が構築された時や、ネットワークシステムＮ１にスイッチが追加された場合や、スイッチに端末が接続された時等に、各スイッチにフローテーブル情報を登録してもよい。
【００３１】
ここで、図２に、実施例１に係るネットワークシステムＮ１の論理的な構成例を示す。図２に示したスイッチＲは、グループＲに属する仮想的なスイッチを示し、物理的なスイッチとしては、スイッチ１０のＮＷポート１１及び１２と、スイッチ２０のＮＷポート２１と、スイッチ３０のＮＷポート３１を示す。また、図２に示したスイッチＢは、グループＢに属する仮想的なスイッチを示し、物理的なスイッチとしては、スイッチ１０のＮＷポート１３と、スイッチ２０のＮＷポート２２と、スイッチ３０のＮＷポート３２を示す。すなわち、実施例１におけるネットワークシステムＮ１においては、図２に示したように、中継制御装置１００によって、端末Ｍ１１、Ｍ１２、Ｍ１４及びＭ１６がスイッチＲを介して相互に通信を行うことができるグループＲと、端末Ｍ１３、Ｍ１５及びＭ１７がスイッチＢを介して相互に通信を行うことができるグループＢとが形成される。
【００３２】
以上のように、実施例１に係るネットワークシステムＮ１では、ネットワーク管理者が中継制御装置１００にグループ情報を登録するだけで、中継制御装置１００が、グループ情報に基づいて各スイッチ用のフローテーブル情報を生成することで、仮想ネットワークを形成する。これにより、実施例１に係るネットワークシステムＮ１において、ネットワーク管理者は、仮想ネットワークを容易に形成することが可能になる。例えば、ネットワーク管理者は、ＶＬＡＮ等の技術を用いて図２に例示した仮想ネットワークを形成する場合には、各スイッチにＶＬＡＮテーブルを設定する作業を要する。しかし、実施例１に係るネットワークシステムＮ１では、ネットワーク管理者は、中継制御装置１００にグループ情報を登録するだけで、図２に例示した仮想ネットワークを形成することができる。
【００３３】
なお、上述してきたスイッチ、端末、ＮＷポートの数は、図１に示した例に限られない。例えば、実施例１に係るネットワークシステムＮ１は、４台以上のスイッチを有してもよいし、６台以下の端末や８台以上の端末を有してもよい。また、各スイッチは、図１に例示した数と異なる数のＮＷポートを有してもよい。また、図１に示した例では、ネットワークシステムＮ１に端末が含まれる例を示したが、かかる端末は、サーバ等であってもよい。
【００３４】
［中継制御装置の構成］
次に、図３を用いて、図１に示した中継制御装置１００の構成について説明する。図３は、実施例１における中継制御装置１００の構成例を示すブロック図である。図３に例示するように、実施例１における中継制御装置１００は、接続情報記憶部１１０と、登録部１２１と、受付部１２２と、経路探索部１２３と、更新部１２４とを有する。
【００３５】
接続情報記憶部１１０は、各スイッチが有する各ＮＷポートのグループ情報や、各ＮＷポートと接続される端末又はスイッチに関する端末情報等を記憶する。具体的には、接続情報記憶部１１０は、各スイッチが有するポート毎に、かかるポートが属するグループに関するグループ情報と、かかるポートと接続される端末や他のスイッチのＭＡＣアドレスやＩＰアドレスを記憶する。
【００３６】
ここで、図４に、実施例１における接続情報記憶部１１０の一例を示す。図４に示した例では、接続情報記憶部１１０は、「スイッチ名」、「ＮＷポート」、「グループ」、「ＭＡＣアドレス」、「ＩＰアドレス」といった項目を有する。
【００３７】
「スイッチ名」は、ネットワークシステムＮ１に含まれるスイッチを識別するための情報である。図４に示した例において、接続情報記憶部１１０の「スイッチ名」には、図１に示したスイッチに付した符号の先頭に「ＳＷ」を付与した情報が記憶されるものとする。例えば、接続情報記憶部１１０は、スイッチ１０の「スイッチ名」として「ＳＷ１０」を記憶し、スイッチ２０の「スイッチ名」として「ＳＷ２０」を記憶する。
【００３８】
「ＮＷポート」は、各スイッチが有するＮＷポートを識別するための情報（以下、「ポート識別子」と表記する場合がある）である。図４に示した例において、接続情報記憶部１１０の「ＮＷポート」には、図１に示したＮＷポートに付した符号の１の位（下１桁の数値）が記憶されるものとする。例えば、接続情報記憶部１１０は、ＮＷポート１１の「ＮＷポート」としてポート識別子「１」を記憶し、ＮＷポート１２の「ＮＷポート」としてポート識別子「２」を記憶する。同様に、接続情報記憶部１１０は、ＮＷポート２１の「ＮＷポート」としてポート識別子「１」を記憶し、ＮＷポート２２の「ＮＷポート」としてポート識別子「２」を記憶する。
【００３９】
「グループ」は、各ＮＷポートが属するグループを識別するための情報（以下、「グループ識別子」と表記する場合がある）である。図４に示した例において、接続情報記憶部１１０の「グループ」には、図１に示したグループに付した符号「Ｒ」又は「Ｂ」のいずれかが記憶されるものとする。例えば、接続情報記憶部１１０は、ＮＷポート１１の「グループ」としてグループ識別子「Ｒ」を記憶し、ＮＷポート１３の「グループ」としてグループ識別子「Ｂ」を記憶する。なお、接続情報記憶部１１０の「グループ」に記憶されている「Ｕ」は、特定のグループを示さず、いずれのグループであってもよいことを示す。例えば、スイッチ間を接続するＮＷポート１４、２３、２４及び３３の「グループ」には、グループ識別子「Ｕ」が記憶される。
【００４０】
「ＭＡＣアドレス」は、各ＮＷポートに接続されている端末又はスイッチのＭＡＣアドレスである。図４に示した例において、接続情報記憶部１１０の「ＭＡＣアドレス」には、図１に示した端末に付した符号の一の位の数値（下１桁の数値）の先頭に「ｍ」を付与した情報、又は、図１に示したスイッチ１０に付した符号の十の位の数値の先頭に「ＳＷ」を付与した情報が記憶されるものとする。例えば、接続情報記憶部１１０は、端末Ｍ１１の「ＭＡＣアドレス」として「ｍ１」を記憶し、端末Ｍ１２の「ＭＡＣアドレス」として「ｍ２」を記憶し、スイッチ１０の「ＭＡＣアドレス」として「ＳＷ１」を記憶する。
【００４１】
「ＩＰアドレス」は、各ＮＷポートに接続されている端末のＩＰアドレスである。図４に示した例において、接続情報記憶部１１０の「ＩＰアドレス」には、図１に示した端末に付した符号の１の位（下１桁の数値）の先頭に「ｉ」を付与した情報が記憶されるものとする。例えば、接続情報記憶部１１０は、端末Ｍ１１の「ＩＰアドレス」として「ｉ１」を記憶し、端末Ｍ１２の「ＩＰアドレス」として「ｉ２」を記憶する。
【００４２】
上記の各項目のうち、「スイッチ名」、「ＮＷポート」及び「グループ」は、ネットワーク管理者等によって事前に登録されるグループ情報である。また、「ＭＡＣアドレス」及び「ＩＰアドレス」は、中継制御装置１００が各スイッチから受け付ける情報であり、後述する登録部１２１によって登録される。
【００４３】
図３の説明に戻って、登録部１２１は、各スイッチから、かかるスイッチが有するＮＷポートと接続されている端末やスイッチのＭＡＣアドレスやＩＰアドレスを受信した場合に、受信したＭＡＣアドレスやＩＰアドレスを接続情報記憶部１１０に登録する。
【００４４】
具体的には、ネットワークシステムＮ１に含まれる各端末は、自装置と接続されているＮＷポートがリンクアップした場合に、リンクアップしたＮＷポートに対して、自装置（端末）のＭＡＣアドレス及びＩＰアドレスを含むＧｒａｔｕｉｔｏｕｓ  ＡＲＰ（Address  Resolution  Protocol）を送信する。同様に、ネットワークシステムＮ１に含まれる各スイッチは、自装置と接続されている他のスイッチのＮＷポートがリンクアップした場合に、リンクアップしたＮＷポートに対して、自装置（スイッチ）のＭＡＣアドレスを送信する。そして、実施例１における各スイッチは、端末や他のスイッチからＭＡＣアドレスやＩＰアドレスを受信した場合に、かかるＭＡＣアドレスやＩＰアドレスを受信したＮＷポートのポート識別子と、かかるＭＡＣアドレスやＩＰアドレスとを中継制御装置１００に通知する。このときに、中継制御装置１００の登録部１２１は、各スイッチから受信したポート識別子に対応する接続情報記憶部１１０のＭＡＣアドレスやＩＰアドレスに、受信したＭＡＣアドレスやＩＰアドレスを登録する。
【００４５】
例えば、図１に示したスイッチ１０のＮＷポート１１がリンクアップしたものとする。かかる場合に、端末Ｍ１１は、ＮＷポート１１に対して、端末Ｍ１１のＭＡＣアドレス「ｍ１」及びＩＰアドレス「ｉ１」を含むＧｒａｔｕｉｔｏｕｓ  ＡＲＰを送信する。そして、スイッチ１０は、端末Ｍ１１から受信したＭＡＣアドレス「ｍ１」及びＩＰアドレス「ｉ１」と、かかるＭＡＣアドレス等を受信したＮＷポート１１のポート識別子「１」とを中継制御装置１００に通知する。かかる場合に、登録部１２１は、図４に示した例のように、スイッチ１０を示すスイッチ名「ＳＷ１０」と、ＮＷポート「１」とに対応するＭＡＣアドレスに「ｍ１」を登録するとともに、ＩＰアドレスに「ｉ１」を登録する。このようにして、接続情報記憶部１１０は、登録部１２１によってＭＡＣアドレス及びＩＰアドレスが登録されることで、図４に例示した各種情報を保持することになる。
【００４６】
図３の説明に戻って、受付部１２２は、スイッチ１０、２０又は３０から、端末間における通信経路の探索要求を受け付ける。具体的には、受付部１２２は、スイッチ１０、２０又は３０から、所定の端末と接続されているＮＷポートのポート識別子と、かかる端末の通信相手先の端末のＩＰアドレスとを受け付ける。
【００４７】
例えば、図１に例示した端末Ｍ１１は、端末Ｍ１６との間で通信を開始する場合に、端末Ｍ１６のＭＡＣアドレスを取得するために、端末Ｍ１６のＩＰアドレス「ｉ６」を含むＡＲＰ要求をスイッチ１０のＮＷポート１１に送信する。このとき、実施例１におけるスイッチ１０は、かかるＡＲＰ要求を各端末に転送せずに、中継制御装置１００に対して、端末Ｍ１１と端末Ｍ１６との間における通信経路の探索要求を送信する。具体的には、スイッチ１０は、ＡＲＰ要求を受信したＮＷポート１１のポート識別子「１」と、端末Ｍ１６のＩＰアドレス「ｉ６」とを含む探索要求を中継制御装置１００に送信する。中継制御装置１００の受付部１２２は、このような探索要求を受け付ける。
【００４８】
なお、上記例において、スイッチ１０は、ＡＲＰ要求を受信した場合に、端末Ｍ１６のＩＰアドレス「ｉ６」を保持している場合には、中継制御装置１００に探索要求を送信しない。この点については、後述する。
【００４９】
経路探索部１２３は、受付部１２２によって探索要求が受け付けられた場合に、かかる探索要求に含まれる各種情報と、接続情報記憶部１１０に記憶されている各種情報とを用いて、端末間の通信経路を探索する。具体的には、経路探索部１２３は、探索要求に含まれる「ポート識別子」が示すＮＷポートから、探索要求に含まれる「通信相手先端末のＩＰアドレス」が示す端末までの通信経路を探索する。このとき、経路探索部１２３は、同一のグループに属するＮＷポートを経由する通信経路となるように、ＮＷポートを選択する。
【００５０】
例えば、上記例のように、受付部１２２によって、ＮＷポート１１のポート識別子「１」と端末Ｍ１６のＩＰアドレス「ｉ６」とを含む探索要求が受け付けられたものとする。また、接続情報記憶部１１０には図４に例示した各種情報が記憶されているものとする。かかる場合に、経路探索部１２３は、スイッチ１０からスイッチ３０までの経路探索を行う。
【００５１】
具体的には、経路探索部１２３は、図４に例示した接続情報記憶部１１０の４行目のレコードに基づいて、スイッチ１０のＮＷポート１４とスイッチ２０とが接続されていることを取得する。また、経路探索部１２３は、接続情報記憶部１１０の７行目のレコードに基づいて、スイッチ２０のＮＷポート２３とスイッチ１０とが接続されていることを取得する。すなわち、経路探索部１２３は、接続情報記憶部１１０の４及び７行目のレコードに基づいて、スイッチ１０のＮＷポート１４とスイッチ２０のＮＷポート２３とが接続されていることを取得する。
【００５２】
さらに、経路探索部１２３は、接続情報記憶部１１０の８行目のレコードに基づいて、スイッチ２０のＮＷポート２４とスイッチ３０とが接続されていることを取得し、接続情報記憶部１１０の１１行目のレコードに基づいて、スイッチ３０のＮＷポート３３とスイッチ２０とが接続されていることを取得する。すなわち、経路探索部１２３は、接続情報記憶部１１０の８及び１１行目のレコードに基づいて、スイッチ２０のＮＷポート２４とスイッチ３０のＮＷポート３３とが接続されていることを取得する。
【００５３】
これにより、経路探索部１２３は、ＮＷポート１１から端末Ｍ１６までの通信経路として、スイッチ１０が有するＮＷポート１２〜１４から、スイッチ２０と接続され、かつ、グループ「Ｒ」又は「Ｕ」であるＮＷポート１４を選択することができる。さらに、経路探索部１２３は、ＮＷポート１４と接続され、かつ、グループ「Ｒ」又は「Ｕ」であるスイッチ２０のＮＷポート２３を選択することができる。さらに、経路探索部１２３は、スイッチ２０が有するＮＷポート２１、２２、２４から、スイッチ３０と接続され、かつ、グループ「Ｒ」又は「Ｕ」であるＮＷポート２４を選択することができる。さらに、経路探索部１２３は、ＮＷポート２４と接続され、かつ、グループ「Ｒ」又は「Ｕ」であるスイッチ３０のＮＷポート３３を選択することができる。そして、経路探索部１２３は、スイッチ３０が有するＮＷポート３１、３２から、ＩＰアドレス「ｉ６」の端末Ｍ１６と接続され、かつ、グループ「Ｒ」又は「Ｕ」であるＮＷポート３１を選択することができる。
【００５４】
なお、上記例では、経路探索部１２３が、ＮＷポート１１から端末Ｍ１６までの通信経路として、スイッチ１０が有するＮＷポート１２〜１４から、スイッチ２０と接続され、かつ、グループ「Ｒ」又は「Ｕ」であるＮＷポート１４を選択することを示した。この点について具体的に説明すると、経路探索部１２３は、ＮＷポート１１を有するスイッチ１０内に端末Ｍ１６と接続されているＮＷポートが存在しないので、自スイッチ１０と接続されている他のスイッチ（スイッチ２０）に対して、端末Ｍ１６と接続されているＮＷポートが存在するかを探索するために、スイッチ２０と接続されるＮＷポート１４を選択する。さらに、経路探索部１２３は、スイッチ２０内に端末Ｍ１６と接続されているＮＷポートが存在しないので、スイッチ２０と接続されている他のスイッチ（スイッチ３０）に端末Ｍ１６と接続されているＮＷポートが存在するかを探索するために、スイッチ３０と接続されるスイッチ２０のＮＷポート２４を選択する。このように、経路探索部１２３は、探索先端末と接続されているＮＷポートを有するスイッチに辿り着くまで、他のスイッチ内を探索する処理を繰り返し行う。
【００５５】
更新部１２４は、経路探索部１２３によって探索された通信経路に基づいて、各スイッチのフローテーブル情報を生成し、生成したフローテーブル情報を各スイッチに送信することで、各スイッチのフローテーブルを更新する。具体的には、更新部１２４は、経路探索部１２３による経路探索処理によって選択された各ＮＷポートをスイッチ毎に分別する。そして、経路探索部１２３は、分別したポートと、経路探索対象となった双方の端末のＭＡＣアドレス及びＩＰアドレスとを含むフローテーブルを生成する。このとき、経路探索部１２３は、各ポートや端末のＭＡＣアドレス及びＩＰアドレスが送信元及び宛先となるように、フローテーブルを生成する。
【００５６】
例えば、上記例の場合には、経路探索部１２３は、ＮＷポート１１から端末Ｍ１６までの通信経路として、ＮＷポート１１、１４、２３、２４、３３及び３１を選択した。言い換えれば、経路探索部１２３は、ＮＷポート１１と接続されている端末Ｍ１１から端末Ｍ１６までの通信経路として、ＮＷポート１１、１４、２３、２４、３３及び３１を選択した。かかる場合に、更新部１２４は、ＮＷポート１１及び１４と、ＮＷポート２３及び２４と、ＮＷポート３３及び３１に分別する。そして、更新部１２４は、スイッチ１０用のフローテーブル情報として、入力ポート「ＮＷポート１１」と、送信元ＭＡＣアドレス「ｍ１」と、宛先ＭＡＣアドレス「ｍ６」と、送信元ＩＰアドレス「ｉ１」と、宛先ＩＰアドレス「ｉ６」と、出力ポート「ＮＷポート１４」との組合せを生成する。このフローテーブル情報は、送信元ＭＡＣアドレス「ｍ１」、宛先ＭＡＣアドレス「ｍ６」、送信元ＩＰアドレス「ｉ１」、宛先ＩＰアドレス「ｉ６」であるデータがＮＷポート１１によって受け付けられた場合に、スイッチ１０が、かかるデータを出力ポート「ＮＷポート１４」に出力することを意味する。
【００５７】
さらに、更新部１２４は、端末Ｍ１１と端末Ｍ１６との相互通信を可能にするために、スイッチ１０用のフローテーブル情報として、入力ポート「ＮＷポート１４」と、送信元ＭＡＣアドレス「ｍ６」と、宛先ＭＡＣアドレス「ｍ１」と、送信元ＩＰアドレス「ｉ６」と、宛先ＩＰアドレス「ｉ１」と、出力ポート「ＮＷポート１１」との組合せを生成する。そして、更新部１２４は、このようにして生成したフローテーブル情報をスイッチ１０に送信する。同様にして、更新部１２４は、各スイッチ用のフローテーブル情報を生成し、生成したフローテーブル情報を各スイッチに送信することで、各スイッチが保持するフローテーブルを更新する。
【００５８】
ここで、図５〜図７に、実施例１におけるスイッチ１０、２０、３０が有するフローテーブルの一例を示す。図５は、スイッチ１０が有するフローテーブル１０ａの一例を示し、図６は、スイッチ２０が有するフローテーブル２０ａの一例を示し、図７は、スイッチ３０が有するフローテーブル３０ａの一例を示す。なお、図５〜７に示した例では、更新部１２４によって、端末Ｍ１１と端末Ｍ１６との間における通信経路と、端末Ｍ１３と端末Ｍ１７との間における通信経路に対応するフローテーブル情報が生成された例を示している。
【００５９】
図５〜図７に示した「Ｉｎ  Ｐｏｒｔ」は、入力ポートを示し、図４に示した「ＮＷポート」に対応する。また、「Ｓｒｃ  ＭＡＣ」は、送信元ＭＡＣアドレスを示し、図４に示した「ＭＡＣアドレス」に対応する。また、「Ｄｓｔ  ＭＡＣ」は、宛先ＭＡＣアドレスを示し、図４に示した「ＭＡＣアドレス」に対応する。また、「Ｓｒｃ  ＩＰ」は、送信元ＩＰアドレスを示し、図４に示した「ＩＰアドレス」に対応する。また、「Ｄｓｔ  ＩＰ」は、宛先ＩＰアドレスを示し、図４に示した「ＩＰアドレス」に対応する。また、「Ｏｕｔ  Ｐｏｒｔ」は、出力ポートを示し、図４に示した「ＮＷポート」に対応する。
【００６０】
例えば、図５に例示したフローテーブル１０ａの１行目は、端末Ｍ１１から端末Ｍ１６宛のデータを中継する際のフローテーブル情報を示す。また、図５に例示したフローテーブル１０ａの２行目は、端末Ｍ１６から端末Ｍ１１宛のデータを中継する際のフローテーブル情報を示し、３行目は、端末Ｍ１３から端末Ｍ１７宛のデータを中継する際のフローテーブル情報を示し、４行目は、端末Ｍ１７から端末Ｍ１３宛のデータを中継する際のフローテーブル情報を示す。
【００６１】
同様に、図６に例示したフローテーブル２０ａは、端末Ｍ１１から端末Ｍ１６宛のデータ、端末Ｍ１６から端末Ｍ１１宛のデータ、端末Ｍ１３から端末Ｍ１７宛のデータ、端末Ｍ１７から端末Ｍ１３宛のデータを中継する際のフローテーブル情報を記憶する。また、図７に例示したフローテーブル３０ａは、端末Ｍ１１から端末Ｍ１６宛のデータ、端末Ｍ１６から端末Ｍ１１宛のデータ、端末Ｍ１３から端末Ｍ１７宛のデータ、端末Ｍ１７から端末Ｍ１３宛のデータを中継する際のフローテーブル情報を記憶する。
【００６２】
［スイッチの構成］
次に、図８を用いて、図１に示したスイッチ１０、２０、３０の構成について説明する。なお、スイッチ１０、２０、３０は、それぞれ同様の構成を有するので、ここでは、スイッチ１０の構成について説明する。図８は、実施例１におけるスイッチ１０の構成例を示すブロック図である。図８に示したスイッチ１０やスイッチ２０及び３０は、例えば、ＯｐｅｎＦｌｏｗに対応するスイッチである。このようなスイッチ１０は、図８に例示するように、ＮＷポート１１〜１４と、フローテーブル１０ａと、更新部１０ｂと、通信部１０ｃとを有する。
【００６３】
ＮＷポート１１〜１４は、図１に示したように、他のスイッチや端末との間でデータを送受信する。図８に示した例では、ＮＷポート１１〜１４は、他のスイッチや端末から受信したデータを通信部１０ｃに送信する。また、ＮＷポート１１〜１４は、通信部１０ｃからデータを受け付けた場合に、かかるデータを接続先の他のＮＷポートに送信する。
【００６４】
フローテーブル１０ａは、入力ポート、送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、送信元ＩＰアドレス、宛先ＩＰアドレス、出力ポートを対応付けて記憶する。例えば、フローテーブル１０ａは、図５に例示した各種情報を記憶する。かかるフローテーブル１０ａは、入力ポート、送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、送信元ＩＰアドレス、宛先ＩＰアドレスの５個の情報（以下、これらの５個の情報を「５タプル（tuple）」と表記する場合がある）の組合せをキーとして、各種情報を記憶する。なお、フローテーブル１０ａは、後述する通信部１０ｃによってデータの中継処理が行われる場合に用いられる。
【００６５】
更新部１０ｂは、中継制御装置１００からフローテーブル情報を受信した場合に、受信したフローテーブル情報をフローテーブル１０ａに更新する。具体的には、更新部１０ｂは、中継制御装置１００から受信したフローテーブル情報をフローテーブル１０ａに追加することで、フローテーブル１０ａを更新する。このとき、更新部１０ｂは、フローテーブル情報の５タプルの全情報と一致するレコードがフローテーブル１０ａに存在する場合には、かかるレコードを５タプルが一致するフローテーブル情報に更新する。
【００６６】
通信部１０ｃは、各種ＡＲＰパケットの送受信処理や、各種データの中継処理を行う。具体的には、通信部１０ｃは、ＮＷポート１１〜１４のいずれかがリンクアップした場合に、リンクアップしたＮＷポート１１〜１４のいずれかと接続されている端末からＧｒａｔｕｉｔｏｕｓ  ＡＲＰを受信する。かかる場合に、通信部１０ｃは、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰに含まれる端末のＩＰアドレス及びＭＡＣアドレスを中継制御装置１００に送信することで、中継制御装置１００の接続情報記憶部１１０にＩＰアドレス及びＭＡＣアドレスを登録する。
【００６７】
また、通信部１０ｃは、ＮＷポート１１〜１４のいずれかと接続されている端末からＡＲＰ要求を受信した場合に、かかるＡＲＰ要求に含まれるＭＡＣアドレスがフローテーブル１０ａに記憶されているか否かを判定する。ここで、通信部１０ｃは、フローテーブル１０ａにＭＡＣアドレスが記憶されている場合には、かかるＭＡＣアドレスに対応するＩＰアドレスをフローテーブル１０ａから取得し、取得したＩＰアドレスをＡＲＰ要求の送信元である端末に送信する。一方、通信部１０ｃは、ＡＲＰ要求に含まれるＭＡＣアドレスがフローテーブル１０ａに記憶されていない場合には、かかるＡＲＰ要求を各端末に転送せずに、ＡＲＰ要求を受信したＮＷポートのポート識別子と、ＡＲＰ要求に含まれる端末のＩＰアドレスとを含む探索要求を中継制御装置１００に送信する。
【００６８】
また、通信部１０ｃは、中継制御装置１００からフローテーブル情報を受信した場合に、かかるフローテーブル情報を更新部１０ｂに転送する。これにより、更新部１０ｂによってフローテーブル１０ａが更新される。
【００６９】
また、通信部１０ｃは、ＮＷポート１１〜１４を介して、他のスイッチや端末からデータを受信した場合に、フローテーブル１０ａに記憶されている各種情報に基づいて、かかるデータの中継処理を行う。具体的には、通信部１０ｃは、データを受信した場合に、かかるデータの５タプルに対応する「Ｏｕｔ  Ｐｏｒｔ」をフローテーブル１０ａから取得し、取得した「Ｏｕｔ  Ｐｏｒｔ」が示すＮＷポートに対して、受信データを出力する。
【００７０】
例えば、フローテーブル１０ａが、図５に例示した各種情報を記憶するものとする。また、ＮＷポート１１によって、送信元ＭＡＣアドレス「ｍ１」、宛先ＭＡＣアドレス「ｍ６」、送信元ＩＰアドレス「ｉ１」及び宛先ＩＰアドレス「ｉ６」が設定されているデータが受信されたものとする。かかる場合に、通信部１０ｃは、フローテーブル１０ａから、Ｉｎ  Ｐｏｒｔ「１（ＮＷポート１１のポート識別子）」と、Ｓｒｃ  ＭＡＣ「ｍ１」と、Ｄｓｔ  ＭＡＣ「ｍ６」と、Ｓｒｃ  ＩＰ「ｉ１」と、Ｄｓｔ  ＩＰ「ｉ６」に対応するＯｕｔ  Ｐｏｒｔ「４」を取得する。そして、通信部１０ｃは、Ｏｕｔ  Ｐｏｒｔ「４」が示すＮＷポート１４に、受信データを出力する。このように、通信部１０ｃは、５タプルに基づいて、データの中継処理を行う。
【００７１】
［ネットワークシステムによる処理手順］
次に、図９を用いて、実施例１に係るネットワークシステムＮ１による中継制御の手順について説明する。図９は、実施例１に係るネットワークシステムＮ１による中継制御手順を示すシーケンス図である。なお、ここでは、端末Ｍ１１と端末Ｍ１６との間で行われる通信に特化した中継制御手順について説明する。また、ここでは、スイッチ１０、２０及び３０は、フローテーブルに情報を保持していないものとする。
【００７２】
図９に示すように、スイッチ１０のＮＷポート１１がリンクアップした場合に、ＮＷポート１１と接続されている端末Ｍ１１は、端末Ｍ１１のＭＡＣアドレス「ｍ１」及びＩＰアドレス「ｉ１」を含むＧｒａｔｕｉｔｏｕｓ  ＡＲＰをＮＷポート１１に送信する（ステップＳ１０１）。
【００７３】
続いて、スイッチ１０は、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰを受信したＮＷポート１１のポート識別子「１」と、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰに含まれるＭＡＣアドレス「ｍ１」及びＩＰアドレス「ｉ１」とを中継制御装置１００に送信する（ステップＳ１０２）。これにより、中継制御装置１００は、スイッチ１０を示すスイッチ名「ＳＷ１０」と、ＮＷポート「１（ＮＷポート１１のポート識別子）」とに対応する接続情報記憶部１１０のＭＡＣアドレスに「ｍ１」を登録するとともに、ＩＰアドレスに「ｉ１」を登録する。
【００７４】
同様に、スイッチ３０のＮＷポート３１がリンクアップした場合に、端末Ｍ１６は、端末Ｍ１６のＭＡＣアドレス「ｍ６」及びＩＰアドレス「ｉ６」を含むＧｒａｔｕｉｔｏｕｓ  ＡＲＰをＮＷポート３１に送信する（ステップＳ１０３）。続いて、スイッチ３０は、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰを受信したＮＷポート１１のポート識別子「１」と、ＭＡＣアドレス「ｍ６」及びＩＰアドレス「ｉ６」とを中継制御装置１００に送信する（ステップＳ１０４）。これにより、中継制御装置１００は、ＭＡＣアドレスに「ｍ６」とＩＰアドレスに「ｉ６」とを接続情報記憶部１１０に登録する。
【００７５】
続いて、図９に示した例では、端末Ｍ１１は、端末Ｍ１６との間で通信を開始するために、端末Ｍ１６のＩＰアドレス「ｉ６」を含むＡＲＰ要求をスイッチ１０のＮＷポート１１に送信する（ステップＳ１０５）。この段階では、スイッチ１０は、フローテーブル１０ａに各種情報を保持していないので、ＩＰアドレス「ｉ６」に対応するＭＡＣアドレスをフローテーブル１０ａから取得できない。したがって、スイッチ１０は、ＮＷポート１１から受信したＡＲＰ要求をスイッチ２０やスイッチ３０に転送せずに、ＡＲＰ要求を受信したＮＷポートのポート識別子「１」と、ＡＲＰ要求に含まれる端末のＩＰアドレス「ｉ６」とを含む探索要求を中継制御装置１００に送信する（ステップＳ１０６）。
【００７６】
スイッチ１０から探索要求を受信した中継制御装置１００は、接続情報記憶部１１０に記憶されている各種情報を用いて、通信経路の探索処理を行う（ステップＳ１０７）。そして、中継制御装置１００は、探索処理の結果から、スイッチ１０用のフローテーブル情報と、スイッチ２０用のフローテーブル情報と、スイッチ３０用のフローテーブル情報とを生成する。そして、中継制御装置１００は、スイッチ１０用のフローテーブル情報をスイッチ１０に送信することで、スイッチ１０のフローテーブル１０ａにフローテーブル情報を設定する（ステップＳ１０８）。同様に、中継制御装置１００は、スイッチ２０用のフローテーブル情報をスイッチ２０に送信することで、スイッチ２０のフローテーブル２０ａにフローテーブル情報を設定し（ステップＳ１０９）、スイッチ３０用のフローテーブル情報をスイッチ３０に送信することで、スイッチ３０のフローテーブル３０ａにフローテーブル情報を設定する（ステップＳ１１０）。これにより、スイッチ１０、２０及び３０には、少なくとも端末Ｍ１１と端末Ｍ１６との通信を可能にするフローテーブル情報が設定されることになる。
【００７７】
そして、中継制御装置１００は、ステップＳ１０５におけるＡＲＰ要求に対して、端末Ｍ１６の代わりにＭＡＣアドレスを送信する代理応答（Proxy  ARP）を行う（ステップＳ１１１）。具体的には、中継制御装置１００は、かかるＡＲＰ要求に含まれるＩＰアドレス「ｉ６」に対応するＭＡＣアドレス「ｍ６」をフローテーブル１０ａから取得し、取得したＭＡＣアドレス「ｍ６」を端末Ｍ１１に送信する。これにより、端末Ｍ１１は、通信相手先の端末Ｍ１６のＭＡＣアドレスを取得することができる。
【００７８】
その後に、端末Ｍ１１と端末Ｍ１６との間で相互通信が行われる（ステップＳ１１２）。このとき、スイッチ１０、２０及び３０は、端末Ｍ１１と端末Ｍ１６との間で送受信されるデータに含まれる５タプルに基づいて、データの中継先を決定する。
【００７９】
［実施例１の効果］
上述してきたように、実施例１に係るネットワークシステムＮ１において、各スイッチは、他のスイッチ又は端末からデータが入力される入力ポートのポート識別子と、かかるデータの送信元である送信元端末のＭＡＣアドレス及びＩＰアドレスと、かかるデータの宛先となる宛先端末のＭＡＣアドレス及びＩＰアドレスと、かかるデータを出力する出力ポートのポート識別子とが登録されたフローテーブルを有する。また、各スイッチは、他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、かかる所定の入力ポートのポート識別子と、かかる所定の入力ポートに入力された入力データの送信元端末のＭＡＣアドレス及びＩＰアドレスと、かかる入力データの宛先端末のＭＡＣアドレス及びＩＰアドレスとに対応付けてフローテーブルに登録されている出力ポートのポート識別子を取得し、取得したポート識別子が示す出力ポートから入力データを送信する。すなわち、実施例１に係るネットワークシステムＮ１において、各スイッチは、５タプルに基づいて、データの中継処理を行う。
【００８０】
これにより、実施例１における各スイッチは、端末間で送受されるデータを特定の経路に限定することができ、この結果、仮想的なネットワークであるグループ内でデータの中継処理を行うことができる。また、実施例１における各スイッチは、ＶＬＡＮ等の技術を用いないので、ＶＬＡＮタグを付与する処理や、グループ化のためのカプセリングを行うことなく、グループ内でデータの中継処理を低負荷で行うことができる。また、ＶＬＡＮが適用されるネットワークシステムでは、ＶＬＡＮ−ＩＤ数の上限が定められているため、ＶＬＡＮ−ＩＤが枯渇するおそれがあるが、実施例１における各スイッチは、ＶＬＡＮ−ＩＤを用いないので、グループ数が制限されない。
【００８１】
一例を挙げて説明すると、例えば、ネットワークシステムＮ１に仮想的な端末である仮想マシン（ＶＭ：Virtual  Machine）が含まれる場合、複数の仮想マシンに、同一のＭＡＣアドレスが設定される場合がある。これは、仮想ＬＡＮカードによって仮想マシンのＭＡＣアドレスが定義されるためである。従来のスイッチは、このような複数の仮想マシンに重複して定義されたＭＡＣアドレスが設定されたデータを受信した際に、かかるデータを複数のスイッチに中継する場合があるので、端末間で送受されるデータを特定の経路に限定することができない。一方で、実施例１における各スイッチは、上記の通り、５タプルに基づいてデータの中継処理を行うので、端末間で送受されるデータを特定の経路に限定することができる。
【００８２】
また、実施例１に係るネットワークシステムＮ１において、各スイッチは、通信相手先端末のＭＡＣアドレスを取得するためのＡＲＰ要求であって、かかる通信相手先端末のＩＰアドレスを含むＡＲＰ要求を受信した場合に、かかる通信相手先端末のＭＡＣアドレスを保持していない場合には、ＡＲＰ要求を受信したポートのポート識別子と、ＡＲＰ要求に含まれるＩＰアドレスとを含む探索要求を中継制御装置１００に通知する。
【００８３】
これにより、実施例１に係るネットワークシステムＮ１は、ＮＷポートのリンクアップ時に端末からＡＲＰ要求を受信した場合に、かかるＡＲＰ要求をネットワークシステムＮ１内の全端末に送信することを防止でき、この結果、同一のグループに属さない端末間におけるデータの送受信を防止することができる。すなわち、ネットワークシステムＮ１は、ＮＷポートのリンクアップ時においても、グループ内でデータの中継処理を行うことができる。
【００８４】
また、実施例１における中継制御装置１００は、各スイッチが有するポートのポート識別子毎に、かかるポートが属するグループのグループ識別子と、かかるポートと接続される端末のＭＡＣアドレス及びＩＰアドレス、又は、かかるポートと接続される他のスイッチのＭＡＣアドレスとを記憶する接続情報記憶部１１０を保持する。そして、中継制御装置１００は、所定のスイッチから、端末間における通信経路の探索要求を受け付けた場合に、双方の端末が接続されるポートが属するグループに属し、かつ、かかる端末間における通信の経路となるポートのポート識別子を接続情報記憶部１１０から探索する。そして、中継制御装置１００は、探索したポート識別子が示すポートを有するスイッチに対して、かかるポート識別子と双方の端末のＭＡＣアドレス及びＩＰアドレスとを含む経路情報を送信することで、スイッチのフローテーブルを更新する。
【００８５】
これにより、実施例１における中継制御装置１００は、各スイッチによる５タプルに基づく中継処理を実現するためのフローテーブルを生成することができる。すなわち、実施例１に係るネットワークシステムＮ１においては、ネットワーク管理者は、各スイッチの各ＮＷポートが属するグループに関するグループ情報を中継制御装置１００に登録するだけで、ネットワークシステムＮ１内に所望のグループを形成することができる。
【実施例２】
【００８６】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例２では、本発明の他の実施例について説明する。
【００８７】
［システム構成］
上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、図４〜図７等に例示した各種情報は、あくまで一例であって任意の情報に変更することができる。
【００８８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図８に示した通信部１０ｃは、端末からＡＲＰ要求を受信した際に経路探索要求を中継制御装置１００に通知する通知部と、端末や他のスイッチからＮＷポート１１にデータが入力された場合に、入力データに設定されている５タプルに対応する出力ポートのポート識別子をフローテーブル１０ａから取得する取得部と、かかる取得部によって取得されたポート識別子が示す出力ポートから入力データを送信する送信部とに分散されてもよい。
【００８９】
［プログラム］
また、上記実施例において説明した中継制御装置１００が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施例１における中継制御装置１００が実行する処理をコンピュータが実行可能な言語で記述した中継制御プログラムを作成することもできる。この場合、コンピュータが中継制御プログラムを実行することにより、上記実施例と同様の効果を得ることができる。さらに、かかる中継制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された中継制御プログラムをコンピュータに読み込ませて実行することにより上記実施例と同様の処理を実現してもよい。以下に、図３に示した中継制御装置１００と同様の機能を実現する中継制御プログラムを実行するコンピュータの一例を説明する。
【００９０】
図１０は、中継制御プログラムを実行するコンピュータ１０００を示す図である。図１０に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００９１】
メモリ１０１０は、図１０に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１０に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１０に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース１０５０は、図１０に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図１０に例示するように、例えばディスプレイ１０６１に接続される。
【００９２】
ここで、図１０に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の中継制御プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。例えば、図３に例示した登録部１２１と同様の情報処理を実行する登録手順と、図３に例示した受付部１２２と同様の情報処理を実行する受付手順と、図３に例示した経路探索部１２３と同様の情報処理を実行する経路探索手順と、図３に例示した更新部１２４と同様の情報処理を実行する更新手順とが記述されたプログラムモジュール１０９３が、ハードディスクドライブ１０３１に記憶される。
【００９３】
また、上記実施例で説明した中継制御装置１００が保持する各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、登録手順、受付手順、経路探索手順、更新手順を実行する。
【００９４】
なお、中継制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、中継制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００９５】
Ｎ１  ネットワークシステム
１０、２０、３０  スイッチ
１０ａ  フローテーブル
１０ｂ  更新部
１０ｃ  通信部
１１〜１４、２１〜２４、３１〜３３  ＮＷポート
１００  中継制御装置
１１０  接続情報記憶部
１２１  登録部
１２２  受付部
１２３  経路探索部
１２４  更新部
【図１】
0005566952.tif 000002
【図２】
0005566952.tif 000003
【図３】
0005566952.tif 000004
【図４】
0005566952.tif 000005
【図５】
0005566952.tif 000006
【図６】
0005566952.tif 000007
【図７】
0005566952.tif 000008
【図８】
0005566952.tif 000009
【図９】
0005566952.tif 000010
【図１０】
0005566952.tif 000011