ネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラム
【課題】仮想ネットワークにおけるデータ通信を容易に実現すること。
【解決手段】実施形態に係るネットワークシステムは、複数のスイッチを含む。かかるスイッチは、端末からデータが入力される入力ポートのポート識別子と、かかるデータの送信元端末のMACアドレス及びIPアドレスと、かかるデータの宛先端末のMACアドレス及びIPアドレスと、かかるデータを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルを有する。また、スイッチは、入力ポートにデータが入力された場合に、かかる入力ポートのポート識別子と、入力データの送信元端末のMACアドレス及びIPアドレスと、宛先端末のMACアドレス及びIPアドレスとに対応付けてフローテーブルに登録されている出力ポートのポート識別子を取得し、取得したポート識別子が示す出力ポートから入力データを送信する。
【解決手段】実施形態に係るネットワークシステムは、複数のスイッチを含む。かかるスイッチは、端末からデータが入力される入力ポートのポート識別子と、かかるデータの送信元端末のMACアドレス及びIPアドレスと、かかるデータの宛先端末のMACアドレス及びIPアドレスと、かかるデータを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルを有する。また、スイッチは、入力ポートにデータが入力された場合に、かかる入力ポートのポート識別子と、入力データの送信元端末のMACアドレス及びIPアドレスと、宛先端末のMACアドレス及びIPアドレスとに対応付けてフローテーブルに登録されている出力ポートのポート識別子を取得し、取得したポート識別子が示す出力ポートから入力データを送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムに関する。
【背景技術】
【0002】
従来、公衆電話網やインターネットなどのアクセスネットワークを利用して、複数箇所に散在する拠点間を接続する技術が提案されている。そして、この技術を用いて複数の拠点間を接続することにより、各拠点に散在するユーザ間で同時に音声や画像のやり取りを可能とする音声(電話)会議やテレビ会議、WEB会議などのサービスの提供も行われている。
【0003】
また、近年では、企業内ネットワークなどに、複数の仮想ネットワークを形成するVLAN(Virtual Local Area Network)やタグVLAN等の技術が知られている。このようなVLAN等の技術が適用されたネットワークでは、仮想ネットワーク内における特定のユーザ間によるデータ通信を可能とする。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Tony Jeffree et al, "IEEE Standard for Local and metropolitan area networks Virtual Bridged Local Area Networks", IEEE Std 802.1Q-2005, [online],[平成23年5月31日検索]、インターネット<http://standards.ieee.org/getieee802/download/802.1Q-2005.pdf>
【非特許文献2】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],[平成23年5月31日検索]、インターネット<http://standards.ieee.org/getieee802/download/802.1ad-2005.pdf>
【非特許文献3】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],[平成23年5月31日検索]、インターネット<http://standards.ieee.org/getieee802/download/802.1ah-2008.pdf>
【非特許文献4】OpenFlow Switching Consortium, "Open Flow", [online],[平成23年5月31日検索]、インターネット<http://www.openflow.org/>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の仮想ネットワークに関する従来技術では、仮想ネットワークを構築するための作業コストが増大する場合がある。例えば、VLANにより仮想ネットワークを構築する場合には、スイッチ等の中継装置にVLANテーブル等を設定することを要する。このような中継装置はネットワーク内に複数存在するので、設定作業にかかる作業コストが増大する。
【0006】
本発明は、上記に鑑みてなされたものであって、仮想ネットワークにおけるデータ通信を容易に実現することを可能にするネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
実施形態に係るネットワークシステムは、データを中継する複数のスイッチを含むネットワークシステムであって、前記スイッチは、他のスイッチ又は端末と接続される複数のポートと、他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部とを備えることを特徴とする。
【0008】
また、実施形態に係る中継制御装置は、データを中継する複数のスイッチを制御する中継制御装置であって、前記スイッチは、他のスイッチ又は端末と接続される複数のポートと、他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子が示す出力ポートから前記入力データを送信する送信部とを備え、前記中継制御装置は、前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のMACアドレス及びIPアドレス、又は、該ポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部と、所定のスイッチから、端末と接続されている該所定のスイッチのポートを示すポート識別子と、該端末の通信相手先端末のIPアドレスとを受け付ける受付部と、前記受付部によって受け付けられたポート識別子及び前記通信相手先端末のIPアドレスを用いて、前記端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索部と、前記経路探索部によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新部とを備えることを特徴とする。
【発明の効果】
【0009】
実施形態に係るネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムは、仮想ネットワークにおけるデータ通信を容易に実現することができるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】図1は、実施例1に係るネットワークシステムの物理的な構成例を示す図である。
【図2】図2は、実施例1に係るネットワークシステムの論理的な構成例を示す図である。
【図3】図3は、実施例1における中継制御装置の構成例を示すブロック図である。
【図4】図4は、実施例1における接続情報記憶部の一例を示す図である。
【図5】図5は、実施例1におけるスイッチが有するフローテーブルの一例を示す図である。
【図6】図6は、実施例1におけるスイッチが有するフローテーブルの一例を示す図である。
【図7】図7は、実施例1におけるスイッチが有するフローテーブルの一例を示す図である。
【図8】図8は、実施例1におけるスイッチの構成例を示すブロック図である。
【図9】図9は、実施例1に係るネットワークシステムによる中継制御手順を示すシーケンス図である。
【図10】図10は、中継制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0011】
以下に、本発明に係るネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。
【実施例1】
【0012】
[ネットワークシステムの構成]
まず、図1を用いて、実施例1に係るネットワークシステムの構成について説明する。図1は、実施例1に係るネットワークシステムの物理的な構成例を示す図である。図1に例示するように、実施例1に係るネットワークシステムN1には、スイッチ10、20及び30と、端末M11〜M17と、中継制御装置100とが含まれる。
【0013】
スイッチ10、20及び30は、端末間で送受信されるデータを中継する中継装置である。図1に例示するように、スイッチ10は、ネットワークポート(以下、「NWポート」と表記する場合がある)11〜14を有する。かかるNWポート11〜14は、他のスイッチであるスイッチ20や端末M11〜M13との間でデータ(パケット等)を送受信する。具体的には、NWポート11は、端末M11と接続されており、端末M11との間でデータを送受信する。同様に、NWポート12は、端末M12との間でデータを送受信し、端末M13は、端末M13との間でデータを送受信する。また、NWポート14は、後述するスイッチ20が有するNWポート23と接続されており、NWポート23との間でデータを送受信する。
【0014】
スイッチ20は、NWポート21〜24を有する。NWポート21は、端末M14との間でデータを送受信し、NWポート22は、端末M15との間でデータを送受信する。また、NWポート23は、上記の通り、スイッチ10のNWポート14との間でデータを送受信する。また、NWポート24は、後述するスイッチ30が有するNWポート33と接続されており、NWポート33との間でデータを送受信する。
【0015】
スイッチ30は、NWポート31〜33を有する。NWポート31は、端末M16との間でデータを送受信し、NWポート32は、端末M17との間でデータを送受信する。また、NWポート33は、上記の通り、スイッチ20のNWポート24との間でデータを送受信する。
【0016】
端末M11〜M17は、例えば、PC(Personal Computer)等の情報処理装置であり、スイッチ10、20又は30を介して、他の端末との間で通信を行う。例えば、端末M11は、スイッチ10、20及び30を介して、端末M16との間で通信を行う場合がある。
【0017】
中継制御装置100は、スイッチ10、20及び30による中継処理を制御する。ここで、実施例1に係るネットワークシステムN1は、かかる中継制御装置100のよる制御の下、仮想的なネットワーク(以下、「グループ」と表記する場合もある)を容易に形成することを可能にする。
【0018】
例えば、実施例1に係るネットワークシステムN1のネットワーク管理者等は、仮想ネットワークを形成する場合に、各スイッチが有する各NWポートをいくつかのグループに分ける。このとき、ネットワーク管理者は、VLAN等を用いた場合には、スイッチ10、20及び30の各々にVLANテーブル等を設定することを要する。このため、ネットワーク管理者の作業コストが増大する。しかし、実施例1に係るネットワークシステムN1においては、ネットワーク管理者は、各スイッチの各NWポートが属するグループに関するグループ情報を中継制御装置100に登録するだけで、ネットワークシステムN1内に上記グループR及びグループBを形成することができる。
【0019】
具体的には、中継制御装置100は、ネットワーク管理者から受け付けたグループ情報を保持する。そして、中継制御装置100は、スイッチ10、20又は30から所定の端末間における通信経路の探索要求を受け付けた場合に、ネットワーク管理者から受け付けたグループ情報に基づいて、同一のグループに属するNWポートのみを経由するように、かかる端末間の通信経路を決定する。
【0020】
そして、中継制御装置100は、決定した通信経路を用いて、スイッチ10、20及び30がデータの中継処理を行う際に用いるテーブル(後述するフローテーブル)に記憶されるフローテーブル情報を生成する。このとき、実施例1における中継制御装置100は、データが入力される「入力ポート」と、データの送信元端末の「送信元MAC(Media Access Control)アドレス」と、データの宛先端末の「宛先MACアドレス」と、送信元端末の「送信元IP(Internet Protocol)アドレス」と、宛先端末の「宛先IPアドレス」と、データが出力される「出力ポート」とを含むフローテーブル情報を生成する。中継制御装置100は、このようにして生成したフローテーブル情報をスイッチ10、20及び30に登録する。
【0021】
そして、実施例1におけるスイッチ10、20及び30は、これらの「入力ポート」、「送信元MACアドレス」、「宛先MACアドレス」、「送信元IPアドレス」、「宛先IPアドレス」、「出力ポート」の組合せに基づいて、データの中継処理を行う。具体的には、スイッチ10等は、データを受信した場合に、データを受信した「入力ポート」と、かかるデータに設定されている「送信元MACアドレス」、「宛先MACアドレス」、「送信元IPアドレス」及び「宛先IPアドレス」とに対応する「出力ポート」を特定し、特定した出力ポートにかかるデータを送信する。
【0022】
図1に示した例を用いて、より具体的に説明する。図1に示した例では、ネットワーク管理者は、横線を付した矩形によって示したNWポート11、12、21及び31が属するグループ(以下、「グループR」とする)と、縦線を付した矩形によって示したNWポート13、22及び32が属するグループ(以下、「グループB」とする)とを形成するものとする。すなわち、図1に示した例のように各端末がNWポートに接続されている場合には、端末M11、M12、M14及びM16が互いに通信を行うことが許可され、端末M13、M15及びM17が互いに通信を行うことが許可されることとなる。なお、実施例1では、図1に示したNWポート14、23、24及び33のようにスイッチ間を接続するNWポートは、特定のグループに属さず、いずれのグループ(グループR及びグループB)内の通信においてもデータの送受信が行えるものとする。
【0023】
上記例の場合に、実施例1における中継制御装置100は、NWポート11、12、21及び31がグループRに属し、NWポート13、22及び32がグループBに属することを示すグループ情報をネットワーク管理者から受け付ける。そして、中継制御装置100は、各端末が他の端末との間で通信を行う場合に、スイッチ10、20又は30から端末間における通信経路の探索要求を受け付ける。例えば、中継制御装置100は、端末M11とM16とが初めて通信を行う場合等に、スイッチ10から端末M11とM16との間における通信経路の探索要求を受け付ける。
【0024】
かかる場合には、中継制御装置100は、端末M11とM16との間におけるデータを送受信するNWポートとして、スイッチ10のNWポート11及び14と、スイッチ20のNWポート23及び24と、スイッチ30のNWポート33及び31とを選択する。このとき、中継制御装置100は、端末M11の接続先のNWポート11と端末M16の接続先のNWポート31とがグループRに属するので、グループRに属するNWポートの中から、端末M11と端末M16とが通信可能となるNWポートを選択する。そして、中継制御装置100は、このように選択したNWポートに基づいて、スイッチ10、20及び30に登録するためのフローテーブル情報を生成する。
【0025】
具体的には、中継制御装置100は、スイッチ10に登録するフローテーブル情報として、端末M11から送信される端末M16宛のデータをNWポート11が受信した場合に、かかるデータをNWポート14に出力することを示す情報を生成する。さらに、中継制御装置100は、スイッチ10に登録するフローテーブル情報として、端末M16から端末M11宛のデータをNWポート14が受信した場合に、かかるデータをNWポート11に出力することを示す情報を生成する。
【0026】
また、中継制御装置100は、スイッチ20に登録するフローテーブル情報として、端末M11から端末M16宛のデータをNWポート23が受信した場合に、かかるデータをNWポート24に出力することを示す情報を生成する。さらに、中継制御装置100は、スイッチ20に登録するフローテーブル情報として、端末M16から端末M11宛のデータをNWポート24が受信した場合に、かかるデータをNWポート23に出力することを示す情報を生成する。
【0027】
また、中継制御装置100は、スイッチ30に登録するフローテーブル情報として、端末M11から端末M16宛のデータをNWポート33が受信した場合に、かかるデータをNWポート31に出力することを示す情報を生成する。さらに、中継制御装置100は、スイッチ30に登録するフローテーブル情報として、端末M16から端末M11宛のデータをNWポート31が受信した場合に、かかるデータをNWポート33に出力することを示す情報を生成する。
【0028】
そして、中継制御装置100は、このようにして生成したフローテーブル情報をスイッチ10、20及び30に登録する。これにより、スイッチ10、20及び30は、中継制御装置100によって登録されたフローテーブル情報を用いて、端末M11と端末M16との間で送受信されるデータを中継することができる。
【0029】
同様にして、中継制御装置100は、端末M11とM14とが最初に通信を行う場合や、端末M12とM16とが最初に通信を行う場合や、端末M12とM14とが最初に通信を行う場合等についても、各スイッチ用のフローテーブル情報を生成し、生成したフローテーブル情報を各スイッチに登録する。また、中継制御装置100は、端末M13、M15及びM17が最初に相互通信を行う場合等についても、各スイッチにフローテーブル情報を登録する。スイッチ10、20及び30は、中継制御装置100によって生成されたフローテーブル情報に従って、データの中継処理を行うので、互いに通信を行うことが許可されていない端末間の通信を成立させることはない。このようにして、中継制御装置100は、ネットワークシステムN1にグループ(仮想ネットワーク)を形成することができる。
【0030】
なお、上記例では、中継制御装置100が、スイッチ10等から探索要求を受け付けた場合に、各スイッチにフローテーブル情報を登録する例を示した。しかし、この例に限られず、中継制御装置100は、スイッチ10等から探索要求を受け付けない場合であっても、各スイッチにフローテーブル情報を登録してもよい。例えば、中継制御装置100は、ネットワークシステムN1が構築された時や、ネットワークシステムN1にスイッチが追加された場合や、スイッチに端末が接続された時等に、各スイッチにフローテーブル情報を登録してもよい。
【0031】
ここで、図2に、実施例1に係るネットワークシステムN1の論理的な構成例を示す。図2に示したスイッチRは、グループRに属する仮想的なスイッチを示し、物理的なスイッチとしては、スイッチ10のNWポート11及び12と、スイッチ20のNWポート21と、スイッチ30のNWポート31を示す。また、図2に示したスイッチBは、グループBに属する仮想的なスイッチを示し、物理的なスイッチとしては、スイッチ10のNWポート13と、スイッチ20のNWポート22と、スイッチ30のNWポート32を示す。すなわち、実施例1におけるネットワークシステムN1においては、図2に示したように、中継制御装置100によって、端末M11、M12、M14及びM16がスイッチRを介して相互に通信を行うことができるグループRと、端末M13、M15及びM17がスイッチBを介して相互に通信を行うことができるグループBとが形成される。
【0032】
以上のように、実施例1に係るネットワークシステムN1では、ネットワーク管理者が中継制御装置100にグループ情報を登録するだけで、中継制御装置100が、グループ情報に基づいて各スイッチ用のフローテーブル情報を生成することで、仮想ネットワークを形成する。これにより、実施例1に係るネットワークシステムN1において、ネットワーク管理者は、仮想ネットワークを容易に形成することが可能になる。例えば、ネットワーク管理者は、VLAN等の技術を用いて図2に例示した仮想ネットワークを形成する場合には、各スイッチにVLANテーブルを設定する作業を要する。しかし、実施例1に係るネットワークシステムN1では、ネットワーク管理者は、中継制御装置100にグループ情報を登録するだけで、図2に例示した仮想ネットワークを形成することができる。
【0033】
なお、上述してきたスイッチ、端末、NWポートの数は、図1に示した例に限られない。例えば、実施例1に係るネットワークシステムN1は、4台以上のスイッチを有してもよいし、6台以下の端末や8台以上の端末を有してもよい。また、各スイッチは、図1に例示した数と異なる数のNWポートを有してもよい。また、図1に示した例では、ネットワークシステムN1に端末が含まれる例を示したが、かかる端末は、サーバ等であってもよい。
【0034】
[中継制御装置の構成]
次に、図3を用いて、図1に示した中継制御装置100の構成について説明する。図3は、実施例1における中継制御装置100の構成例を示すブロック図である。図3に例示するように、実施例1における中継制御装置100は、接続情報記憶部110と、登録部121と、受付部122と、経路探索部123と、更新部124とを有する。
【0035】
接続情報記憶部110は、各スイッチが有する各NWポートのグループ情報や、各NWポートと接続される端末又はスイッチに関する端末情報等を記憶する。具体的には、接続情報記憶部110は、各スイッチが有するポート毎に、かかるポートが属するグループに関するグループ情報と、かかるポートと接続される端末や他のスイッチのMACアドレスやIPアドレスを記憶する。
【0036】
ここで、図4に、実施例1における接続情報記憶部110の一例を示す。図4に示した例では、接続情報記憶部110は、「スイッチ名」、「NWポート」、「グループ」、「MACアドレス」、「IPアドレス」といった項目を有する。
【0037】
「スイッチ名」は、ネットワークシステムN1に含まれるスイッチを識別するための情報である。図4に示した例において、接続情報記憶部110の「スイッチ名」には、図1に示したスイッチに付した符号の先頭に「SW」を付与した情報が記憶されるものとする。例えば、接続情報記憶部110は、スイッチ10の「スイッチ名」として「SW10」を記憶し、スイッチ20の「スイッチ名」として「SW20」を記憶する。
【0038】
「NWポート」は、各スイッチが有するNWポートを識別するための情報(以下、「ポート識別子」と表記する場合がある)である。図4に示した例において、接続情報記憶部110の「NWポート」には、図1に示したNWポートに付した符号の1の位(下1桁の数値)が記憶されるものとする。例えば、接続情報記憶部110は、NWポート11の「NWポート」としてポート識別子「1」を記憶し、NWポート12の「NWポート」としてポート識別子「2」を記憶する。同様に、接続情報記憶部110は、NWポート21の「NWポート」としてポート識別子「1」を記憶し、NWポート22の「NWポート」としてポート識別子「2」を記憶する。
【0039】
「グループ」は、各NWポートが属するグループを識別するための情報(以下、「グループ識別子」と表記する場合がある)である。図4に示した例において、接続情報記憶部110の「グループ」には、図1に示したグループに付した符号「R」又は「B」のいずれかが記憶されるものとする。例えば、接続情報記憶部110は、NWポート11の「グループ」としてグループ識別子「R」を記憶し、NWポート13の「グループ」としてグループ識別子「B」を記憶する。なお、接続情報記憶部110の「グループ」に記憶されている「U」は、特定のグループを示さず、いずれのグループであってもよいことを示す。例えば、スイッチ間を接続するNWポート14、23、24及び33の「グループ」には、グループ識別子「U」が記憶される。
【0040】
「MACアドレス」は、各NWポートに接続されている端末又はスイッチのMACアドレスである。図4に示した例において、接続情報記憶部110の「MACアドレス」には、図1に示した端末に付した符号の一の位の数値(下1桁の数値)の先頭に「m」を付与した情報、又は、図1に示したスイッチ10に付した符号の十の位の数値の先頭に「SW」を付与した情報が記憶されるものとする。例えば、接続情報記憶部110は、端末M11の「MACアドレス」として「m1」を記憶し、端末M12の「MACアドレス」として「m2」を記憶し、スイッチ10の「MACアドレス」として「SW1」を記憶する。
【0041】
「IPアドレス」は、各NWポートに接続されている端末のIPアドレスである。図4に示した例において、接続情報記憶部110の「IPアドレス」には、図1に示した端末に付した符号の1の位(下1桁の数値)の先頭に「i」を付与した情報が記憶されるものとする。例えば、接続情報記憶部110は、端末M11の「IPアドレス」として「i1」を記憶し、端末M12の「IPアドレス」として「i2」を記憶する。
【0042】
上記の各項目のうち、「スイッチ名」、「NWポート」及び「グループ」は、ネットワーク管理者等によって事前に登録されるグループ情報である。また、「MACアドレス」及び「IPアドレス」は、中継制御装置100が各スイッチから受け付ける情報であり、後述する登録部121によって登録される。
【0043】
図3の説明に戻って、登録部121は、各スイッチから、かかるスイッチが有するNWポートと接続されている端末やスイッチのMACアドレスやIPアドレスを受信した場合に、受信したMACアドレスやIPアドレスを接続情報記憶部110に登録する。
【0044】
具体的には、ネットワークシステムN1に含まれる各端末は、自装置と接続されているNWポートがリンクアップした場合に、リンクアップしたNWポートに対して、自装置(端末)のMACアドレス及びIPアドレスを含むGratuitous ARP(Address Resolution Protocol)を送信する。同様に、ネットワークシステムN1に含まれる各スイッチは、自装置と接続されている他のスイッチのNWポートがリンクアップした場合に、リンクアップしたNWポートに対して、自装置(スイッチ)のMACアドレスを送信する。そして、実施例1における各スイッチは、端末や他のスイッチからMACアドレスやIPアドレスを受信した場合に、かかるMACアドレスやIPアドレスを受信したNWポートのポート識別子と、かかるMACアドレスやIPアドレスとを中継制御装置100に通知する。このときに、中継制御装置100の登録部121は、各スイッチから受信したポート識別子に対応する接続情報記憶部110のMACアドレスやIPアドレスに、受信したMACアドレスやIPアドレスを登録する。
【0045】
例えば、図1に示したスイッチ10のNWポート11がリンクアップしたものとする。かかる場合に、端末M11は、NWポート11に対して、端末M11のMACアドレス「m1」及びIPアドレス「i1」を含むGratuitous ARPを送信する。そして、スイッチ10は、端末M11から受信したMACアドレス「m1」及びIPアドレス「i1」と、かかるMACアドレス等を受信したNWポート11のポート識別子「1」とを中継制御装置100に通知する。かかる場合に、登録部121は、図4に示した例のように、スイッチ10を示すスイッチ名「SW10」と、NWポート「1」とに対応するMACアドレスに「m1」を登録するとともに、IPアドレスに「i1」を登録する。このようにして、接続情報記憶部110は、登録部121によってMACアドレス及びIPアドレスが登録されることで、図4に例示した各種情報を保持することになる。
【0046】
図3の説明に戻って、受付部122は、スイッチ10、20又は30から、端末間における通信経路の探索要求を受け付ける。具体的には、受付部122は、スイッチ10、20又は30から、所定の端末と接続されているNWポートのポート識別子と、かかる端末の通信相手先の端末のIPアドレスとを受け付ける。
【0047】
例えば、図1に例示した端末M11は、端末M16との間で通信を開始する場合に、端末M16のMACアドレスを取得するために、端末M16のIPアドレス「i6」を含むARP要求をスイッチ10のNWポート11に送信する。このとき、実施例1におけるスイッチ10は、かかるARP要求を各端末に転送せずに、中継制御装置100に対して、端末M11と端末M16との間における通信経路の探索要求を送信する。具体的には、スイッチ10は、ARP要求を受信したNWポート11のポート識別子「1」と、端末M16のIPアドレス「i6」とを含む探索要求を中継制御装置100に送信する。中継制御装置100の受付部122は、このような探索要求を受け付ける。
【0048】
なお、上記例において、スイッチ10は、ARP要求を受信した場合に、端末M16のIPアドレス「i6」を保持している場合には、中継制御装置100に探索要求を送信しない。この点については、後述する。
【0049】
経路探索部123は、受付部122によって探索要求が受け付けられた場合に、かかる探索要求に含まれる各種情報と、接続情報記憶部110に記憶されている各種情報とを用いて、端末間の通信経路を探索する。具体的には、経路探索部123は、探索要求に含まれる「ポート識別子」が示すNWポートから、探索要求に含まれる「通信相手先端末のIPアドレス」が示す端末までの通信経路を探索する。このとき、経路探索部123は、同一のグループに属するNWポートを経由する通信経路となるように、NWポートを選択する。
【0050】
例えば、上記例のように、受付部122によって、NWポート11のポート識別子「1」と端末M16のIPアドレス「i6」とを含む探索要求が受け付けられたものとする。また、接続情報記憶部110には図4に例示した各種情報が記憶されているものとする。かかる場合に、経路探索部123は、スイッチ10からスイッチ30までの経路探索を行う。
【0051】
具体的には、経路探索部123は、図4に例示した接続情報記憶部110の4行目のレコードに基づいて、スイッチ10のNWポート14とスイッチ20とが接続されていることを取得する。また、経路探索部123は、接続情報記憶部110の7行目のレコードに基づいて、スイッチ20のNWポート23とスイッチ10とが接続されていることを取得する。すなわち、経路探索部123は、接続情報記憶部110の4及び7行目のレコードに基づいて、スイッチ10のNWポート14とスイッチ20のNWポート23とが接続されていることを取得する。
【0052】
さらに、経路探索部123は、接続情報記憶部110の8行目のレコードに基づいて、スイッチ20のNWポート24とスイッチ30とが接続されていることを取得し、接続情報記憶部110の11行目のレコードに基づいて、スイッチ30のNWポート33とスイッチ20とが接続されていることを取得する。すなわち、経路探索部123は、接続情報記憶部110の8及び11行目のレコードに基づいて、スイッチ20のNWポート24とスイッチ30のNWポート33とが接続されていることを取得する。
【0053】
これにより、経路探索部123は、NWポート11から端末M16までの通信経路として、スイッチ10が有するNWポート12〜14から、スイッチ20と接続され、かつ、グループ「R」又は「U」であるNWポート14を選択することができる。さらに、経路探索部123は、NWポート14と接続され、かつ、グループ「R」又は「U」であるスイッチ20のNWポート23を選択することができる。さらに、経路探索部123は、スイッチ20が有するNWポート21、22、24から、スイッチ30と接続され、かつ、グループ「R」又は「U」であるNWポート24を選択することができる。さらに、経路探索部123は、NWポート24と接続され、かつ、グループ「R」又は「U」であるスイッチ30のNWポート33を選択することができる。そして、経路探索部123は、スイッチ30が有するNWポート31、32から、IPアドレス「i6」の端末M16と接続され、かつ、グループ「R」又は「U」であるNWポート31を選択することができる。
【0054】
なお、上記例では、経路探索部123が、NWポート11から端末M16までの通信経路として、スイッチ10が有するNWポート12〜14から、スイッチ20と接続され、かつ、グループ「R」又は「U」であるNWポート14を選択することを示した。この点について具体的に説明すると、経路探索部123は、NWポート11を有するスイッチ10内に端末M16と接続されているNWポートが存在しないので、自スイッチ10と接続されている他のスイッチ(スイッチ20)に対して、端末M16と接続されているNWポートが存在するかを探索するために、スイッチ20と接続されるNWポート14を選択する。さらに、経路探索部123は、スイッチ20内に端末M16と接続されているNWポートが存在しないので、スイッチ20と接続されている他のスイッチ(スイッチ30)に端末M16と接続されているNWポートが存在するかを探索するために、スイッチ30と接続されるスイッチ20のNWポート24を選択する。このように、経路探索部123は、探索先端末と接続されているNWポートを有するスイッチに辿り着くまで、他のスイッチ内を探索する処理を繰り返し行う。
【0055】
更新部124は、経路探索部123によって探索された通信経路に基づいて、各スイッチのフローテーブル情報を生成し、生成したフローテーブル情報を各スイッチに送信することで、各スイッチのフローテーブルを更新する。具体的には、更新部124は、経路探索部123による経路探索処理によって選択された各NWポートをスイッチ毎に分別する。そして、経路探索部123は、分別したポートと、経路探索対象となった双方の端末のMACアドレス及びIPアドレスとを含むフローテーブルを生成する。このとき、経路探索部123は、各ポートや端末のMACアドレス及びIPアドレスが送信元及び宛先となるように、フローテーブルを生成する。
【0056】
例えば、上記例の場合には、経路探索部123は、NWポート11から端末M16までの通信経路として、NWポート11、14、23、24、33及び31を選択した。言い換えれば、経路探索部123は、NWポート11と接続されている端末M11から端末M16までの通信経路として、NWポート11、14、23、24、33及び31を選択した。かかる場合に、更新部124は、NWポート11及び14と、NWポート23及び24と、NWポート33及び31に分別する。そして、更新部124は、スイッチ10用のフローテーブル情報として、入力ポート「NWポート11」と、送信元MACアドレス「m1」と、宛先MACアドレス「m6」と、送信元IPアドレス「i1」と、宛先IPアドレス「i6」と、出力ポート「NWポート14」との組合せを生成する。このフローテーブル情報は、送信元MACアドレス「m1」、宛先MACアドレス「m6」、送信元IPアドレス「i1」、宛先IPアドレス「i6」であるデータがNWポート11によって受け付けられた場合に、スイッチ10が、かかるデータを出力ポート「NWポート14」に出力することを意味する。
【0057】
さらに、更新部124は、端末M11と端末M16との相互通信を可能にするために、スイッチ10用のフローテーブル情報として、入力ポート「NWポート14」と、送信元MACアドレス「m6」と、宛先MACアドレス「m1」と、送信元IPアドレス「i6」と、宛先IPアドレス「i1」と、出力ポート「NWポート11」との組合せを生成する。そして、更新部124は、このようにして生成したフローテーブル情報をスイッチ10に送信する。同様にして、更新部124は、各スイッチ用のフローテーブル情報を生成し、生成したフローテーブル情報を各スイッチに送信することで、各スイッチが保持するフローテーブルを更新する。
【0058】
ここで、図5〜図7に、実施例1におけるスイッチ10、20、30が有するフローテーブルの一例を示す。図5は、スイッチ10が有するフローテーブル10aの一例を示し、図6は、スイッチ20が有するフローテーブル20aの一例を示し、図7は、スイッチ30が有するフローテーブル30aの一例を示す。なお、図5〜7に示した例では、更新部124によって、端末M11と端末M16との間における通信経路と、端末M13と端末M17との間における通信経路に対応するフローテーブル情報が生成された例を示している。
【0059】
図5〜図7に示した「In Port」は、入力ポートを示し、図4に示した「NWポート」に対応する。また、「Src MAC」は、送信元MACアドレスを示し、図4に示した「MACアドレス」に対応する。また、「Dst MAC」は、宛先MACアドレスを示し、図4に示した「MACアドレス」に対応する。また、「Src IP」は、送信元IPアドレスを示し、図4に示した「IPアドレス」に対応する。また、「Dst IP」は、宛先IPアドレスを示し、図4に示した「IPアドレス」に対応する。また、「Out Port」は、出力ポートを示し、図4に示した「NWポート」に対応する。
【0060】
例えば、図5に例示したフローテーブル10aの1行目は、端末M11から端末M16宛のデータを中継する際のフローテーブル情報を示す。また、図5に例示したフローテーブル10aの2行目は、端末M16から端末M11宛のデータを中継する際のフローテーブル情報を示し、3行目は、端末M13から端末M17宛のデータを中継する際のフローテーブル情報を示し、4行目は、端末M17から端末M13宛のデータを中継する際のフローテーブル情報を示す。
【0061】
同様に、図6に例示したフローテーブル20aは、端末M11から端末M16宛のデータ、端末M16から端末M11宛のデータ、端末M13から端末M17宛のデータ、端末M17から端末M13宛のデータを中継する際のフローテーブル情報を記憶する。また、図7に例示したフローテーブル30aは、端末M11から端末M16宛のデータ、端末M16から端末M11宛のデータ、端末M13から端末M17宛のデータ、端末M17から端末M13宛のデータを中継する際のフローテーブル情報を記憶する。
【0062】
[スイッチの構成]
次に、図8を用いて、図1に示したスイッチ10、20、30の構成について説明する。なお、スイッチ10、20、30は、それぞれ同様の構成を有するので、ここでは、スイッチ10の構成について説明する。図8は、実施例1におけるスイッチ10の構成例を示すブロック図である。図8に示したスイッチ10やスイッチ20及び30は、例えば、OpenFlowに対応するスイッチである。このようなスイッチ10は、図8に例示するように、NWポート11〜14と、フローテーブル10aと、更新部10bと、通信部10cとを有する。
【0063】
NWポート11〜14は、図1に示したように、他のスイッチや端末との間でデータを送受信する。図8に示した例では、NWポート11〜14は、他のスイッチや端末から受信したデータを通信部10cに送信する。また、NWポート11〜14は、通信部10cからデータを受け付けた場合に、かかるデータを接続先の他のNWポートに送信する。
【0064】
フローテーブル10aは、入力ポート、送信元MACアドレス、宛先MACアドレス、送信元IPアドレス、宛先IPアドレス、出力ポートを対応付けて記憶する。例えば、フローテーブル10aは、図5に例示した各種情報を記憶する。かかるフローテーブル10aは、入力ポート、送信元MACアドレス、宛先MACアドレス、送信元IPアドレス、宛先IPアドレスの5個の情報(以下、これらの5個の情報を「5タプル(tuple)」と表記する場合がある)の組合せをキーとして、各種情報を記憶する。なお、フローテーブル10aは、後述する通信部10cによってデータの中継処理が行われる場合に用いられる。
【0065】
更新部10bは、中継制御装置100からフローテーブル情報を受信した場合に、受信したフローテーブル情報をフローテーブル10aに更新する。具体的には、更新部10bは、中継制御装置100から受信したフローテーブル情報をフローテーブル10aに追加することで、フローテーブル10aを更新する。このとき、更新部10bは、フローテーブル情報の5タプルの全情報と一致するレコードがフローテーブル10aに存在する場合には、かかるレコードを5タプルが一致するフローテーブル情報に更新する。
【0066】
通信部10cは、各種ARPパケットの送受信処理や、各種データの中継処理を行う。具体的には、通信部10cは、NWポート11〜14のいずれかがリンクアップした場合に、リンクアップしたNWポート11〜14のいずれかと接続されている端末からGratuitous ARPを受信する。かかる場合に、通信部10cは、Gratuitous ARPに含まれる端末のIPアドレス及びMACアドレスを中継制御装置100に送信することで、中継制御装置100の接続情報記憶部110にIPアドレス及びMACアドレスを登録する。
【0067】
また、通信部10cは、NWポート11〜14のいずれかと接続されている端末からARP要求を受信した場合に、かかるARP要求に含まれるMACアドレスがフローテーブル10aに記憶されているか否かを判定する。ここで、通信部10cは、フローテーブル10aにMACアドレスが記憶されている場合には、かかるMACアドレスに対応するIPアドレスをフローテーブル10aから取得し、取得したIPアドレスをARP要求の送信元である端末に送信する。一方、通信部10cは、ARP要求に含まれるMACアドレスがフローテーブル10aに記憶されていない場合には、かかるARP要求を各端末に転送せずに、ARP要求を受信したNWポートのポート識別子と、ARP要求に含まれる端末のIPアドレスとを含む探索要求を中継制御装置100に送信する。
【0068】
また、通信部10cは、中継制御装置100からフローテーブル情報を受信した場合に、かかるフローテーブル情報を更新部10bに転送する。これにより、更新部10bによってフローテーブル10aが更新される。
【0069】
また、通信部10cは、NWポート11〜14を介して、他のスイッチや端末からデータを受信した場合に、フローテーブル10aに記憶されている各種情報に基づいて、かかるデータの中継処理を行う。具体的には、通信部10cは、データを受信した場合に、かかるデータの5タプルに対応する「Out Port」をフローテーブル10aから取得し、取得した「Out Port」が示すNWポートに対して、受信データを出力する。
【0070】
例えば、フローテーブル10aが、図5に例示した各種情報を記憶するものとする。また、NWポート11によって、送信元MACアドレス「m1」、宛先MACアドレス「m6」、送信元IPアドレス「i1」及び宛先IPアドレス「i6」が設定されているデータが受信されたものとする。かかる場合に、通信部10cは、フローテーブル10aから、In Port「1(NWポート11のポート識別子)」と、Src MAC「m1」と、Dst MAC「m6」と、Src IP「i1」と、Dst IP「i6」に対応するOut Port「4」を取得する。そして、通信部10cは、Out Port「4」が示すNWポート14に、受信データを出力する。このように、通信部10cは、5タプルに基づいて、データの中継処理を行う。
【0071】
[ネットワークシステムによる処理手順]
次に、図9を用いて、実施例1に係るネットワークシステムN1による中継制御の手順について説明する。図9は、実施例1に係るネットワークシステムN1による中継制御手順を示すシーケンス図である。なお、ここでは、端末M11と端末M16との間で行われる通信に特化した中継制御手順について説明する。また、ここでは、スイッチ10、20及び30は、フローテーブルに情報を保持していないものとする。
【0072】
図9に示すように、スイッチ10のNWポート11がリンクアップした場合に、NWポート11と接続されている端末M11は、端末M11のMACアドレス「m1」及びIPアドレス「i1」を含むGratuitous ARPをNWポート11に送信する(ステップS101)。
【0073】
続いて、スイッチ10は、Gratuitous ARPを受信したNWポート11のポート識別子「1」と、Gratuitous ARPに含まれるMACアドレス「m1」及びIPアドレス「i1」とを中継制御装置100に送信する(ステップS102)。これにより、中継制御装置100は、スイッチ10を示すスイッチ名「SW10」と、NWポート「1(NWポート11のポート識別子)」とに対応する接続情報記憶部110のMACアドレスに「m1」を登録するとともに、IPアドレスに「i1」を登録する。
【0074】
同様に、スイッチ30のNWポート31がリンクアップした場合に、端末M16は、端末M16のMACアドレス「m6」及びIPアドレス「i6」を含むGratuitous ARPをNWポート31に送信する(ステップS103)。続いて、スイッチ30は、Gratuitous ARPを受信したNWポート11のポート識別子「1」と、MACアドレス「m6」及びIPアドレス「i6」とを中継制御装置100に送信する(ステップS104)。これにより、中継制御装置100は、MACアドレスに「m6」とIPアドレスに「i6」とを接続情報記憶部110に登録する。
【0075】
続いて、図9に示した例では、端末M11は、端末M16との間で通信を開始するために、端末M16のIPアドレス「i6」を含むARP要求をスイッチ10のNWポート11に送信する(ステップS105)。この段階では、スイッチ10は、フローテーブル10aに各種情報を保持していないので、IPアドレス「i6」に対応するMACアドレスをフローテーブル10aから取得できない。したがって、スイッチ10は、NWポート11から受信したARP要求をスイッチ20やスイッチ30に転送せずに、ARP要求を受信したNWポートのポート識別子「1」と、ARP要求に含まれる端末のIPアドレス「i6」とを含む探索要求を中継制御装置100に送信する(ステップS106)。
【0076】
スイッチ10から探索要求を受信した中継制御装置100は、接続情報記憶部110に記憶されている各種情報を用いて、通信経路の探索処理を行う(ステップS107)。そして、中継制御装置100は、探索処理の結果から、スイッチ10用のフローテーブル情報と、スイッチ20用のフローテーブル情報と、スイッチ30用のフローテーブル情報とを生成する。そして、中継制御装置100は、スイッチ10用のフローテーブル情報をスイッチ10に送信することで、スイッチ10のフローテーブル10aにフローテーブル情報を設定する(ステップS108)。同様に、中継制御装置100は、スイッチ20用のフローテーブル情報をスイッチ20に送信することで、スイッチ20のフローテーブル20aにフローテーブル情報を設定し(ステップS109)、スイッチ30用のフローテーブル情報をスイッチ30に送信することで、スイッチ30のフローテーブル30aにフローテーブル情報を設定する(ステップS110)。これにより、スイッチ10、20及び30には、少なくとも端末M11と端末M16との通信を可能にするフローテーブル情報が設定されることになる。
【0077】
そして、中継制御装置100は、ステップS105におけるARP要求に対して、端末M16の代わりにMACアドレスを送信する代理応答(Proxy ARP)を行う(ステップS111)。具体的には、中継制御装置100は、かかるARP要求に含まれるIPアドレス「i6」に対応するMACアドレス「m6」をフローテーブル10aから取得し、取得したMACアドレス「m6」を端末M11に送信する。これにより、端末M11は、通信相手先の端末M16のMACアドレスを取得することができる。
【0078】
その後に、端末M11と端末M16との間で相互通信が行われる(ステップS112)。このとき、スイッチ10、20及び30は、端末M11と端末M16との間で送受信されるデータに含まれる5タプルに基づいて、データの中継先を決定する。
【0079】
[実施例1の効果]
上述してきたように、実施例1に係るネットワークシステムN1において、各スイッチは、他のスイッチ又は端末からデータが入力される入力ポートのポート識別子と、かかるデータの送信元である送信元端末のMACアドレス及びIPアドレスと、かかるデータの宛先となる宛先端末のMACアドレス及びIPアドレスと、かかるデータを出力する出力ポートのポート識別子とが登録されたフローテーブルを有する。また、各スイッチは、他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、かかる所定の入力ポートのポート識別子と、かかる所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、かかる入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けてフローテーブルに登録されている出力ポートのポート識別子を取得し、取得したポート識別子が示す出力ポートから入力データを送信する。すなわち、実施例1に係るネットワークシステムN1において、各スイッチは、5タプルに基づいて、データの中継処理を行う。
【0080】
これにより、実施例1における各スイッチは、端末間で送受されるデータを特定の経路に限定することができ、この結果、仮想的なネットワークであるグループ内でデータの中継処理を行うことができる。また、実施例1における各スイッチは、VLAN等の技術を用いないので、VLANタグを付与する処理や、グループ化のためのカプセリングを行うことなく、グループ内でデータの中継処理を低負荷で行うことができる。また、VLANが適用されるネットワークシステムでは、VLAN−ID数の上限が定められているため、VLAN−IDが枯渇するおそれがあるが、実施例1における各スイッチは、VLAN−IDを用いないので、グループ数が制限されない。
【0081】
一例を挙げて説明すると、例えば、ネットワークシステムN1に仮想的な端末である仮想マシン(VM:Virtual Machine)が含まれる場合、複数の仮想マシンに、同一のMACアドレスが設定される場合がある。これは、仮想LANカードによって仮想マシンのMACアドレスが定義されるためである。従来のスイッチは、このような複数の仮想マシンに重複して定義されたMACアドレスが設定されたデータを受信した際に、かかるデータを複数のスイッチに中継する場合があるので、端末間で送受されるデータを特定の経路に限定することができない。一方で、実施例1における各スイッチは、上記の通り、5タプルに基づいてデータの中継処理を行うので、端末間で送受されるデータを特定の経路に限定することができる。
【0082】
また、実施例1に係るネットワークシステムN1において、各スイッチは、通信相手先端末のMACアドレスを取得するためのARP要求であって、かかる通信相手先端末のIPアドレスを含むARP要求を受信した場合に、かかる通信相手先端末のMACアドレスを保持していない場合には、ARP要求を受信したポートのポート識別子と、ARP要求に含まれるIPアドレスとを含む探索要求を中継制御装置100に通知する。
【0083】
これにより、実施例1に係るネットワークシステムN1は、NWポートのリンクアップ時に端末からARP要求を受信した場合に、かかるARP要求をネットワークシステムN1内の全端末に送信することを防止でき、この結果、同一のグループに属さない端末間におけるデータの送受信を防止することができる。すなわち、ネットワークシステムN1は、NWポートのリンクアップ時においても、グループ内でデータの中継処理を行うことができる。
【0084】
また、実施例1における中継制御装置100は、各スイッチが有するポートのポート識別子毎に、かかるポートが属するグループのグループ識別子と、かかるポートと接続される端末のMACアドレス及びIPアドレス、又は、かかるポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部110を保持する。そして、中継制御装置100は、所定のスイッチから、端末間における通信経路の探索要求を受け付けた場合に、双方の端末が接続されるポートが属するグループに属し、かつ、かかる端末間における通信の経路となるポートのポート識別子を接続情報記憶部110から探索する。そして、中継制御装置100は、探索したポート識別子が示すポートを有するスイッチに対して、かかるポート識別子と双方の端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、スイッチのフローテーブルを更新する。
【0085】
これにより、実施例1における中継制御装置100は、各スイッチによる5タプルに基づく中継処理を実現するためのフローテーブルを生成することができる。すなわち、実施例1に係るネットワークシステムN1においては、ネットワーク管理者は、各スイッチの各NWポートが属するグループに関するグループ情報を中継制御装置100に登録するだけで、ネットワークシステムN1内に所望のグループを形成することができる。
【実施例2】
【0086】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例2では、本発明の他の実施例について説明する。
【0087】
[システム構成]
上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、図4〜図7等に例示した各種情報は、あくまで一例であって任意の情報に変更することができる。
【0088】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図8に示した通信部10cは、端末からARP要求を受信した際に経路探索要求を中継制御装置100に通知する通知部と、端末や他のスイッチからNWポート11にデータが入力された場合に、入力データに設定されている5タプルに対応する出力ポートのポート識別子をフローテーブル10aから取得する取得部と、かかる取得部によって取得されたポート識別子が示す出力ポートから入力データを送信する送信部とに分散されてもよい。
【0089】
[プログラム]
また、上記実施例において説明した中継制御装置100が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施例1における中継制御装置100が実行する処理をコンピュータが実行可能な言語で記述した中継制御プログラムを作成することもできる。この場合、コンピュータが中継制御プログラムを実行することにより、上記実施例と同様の効果を得ることができる。さらに、かかる中継制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された中継制御プログラムをコンピュータに読み込ませて実行することにより上記実施例と同様の処理を実現してもよい。以下に、図3に示した中継制御装置100と同様の機能を実現する中継制御プログラムを実行するコンピュータの一例を説明する。
【0090】
図10は、中継制御プログラムを実行するコンピュータ1000を示す図である。図10に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
【0091】
メモリ1010は、図10に例示するように、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図10に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図10に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース1050は、図10に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図10に例示するように、例えばディスプレイ1061に接続される。
【0092】
ここで、図10に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の中継制御プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。例えば、図3に例示した登録部121と同様の情報処理を実行する登録手順と、図3に例示した受付部122と同様の情報処理を実行する受付手順と、図3に例示した経路探索部123と同様の情報処理を実行する経路探索手順と、図3に例示した更新部124と同様の情報処理を実行する更新手順とが記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
【0093】
また、上記実施例で説明した中継制御装置100が保持する各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、登録手順、受付手順、経路探索手順、更新手順を実行する。
【0094】
なお、中継制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、中継制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0095】
N1 ネットワークシステム
10、20、30 スイッチ
10a フローテーブル
10b 更新部
10c 通信部
11〜14、21〜24、31〜33 NWポート
100 中継制御装置
110 接続情報記憶部
121 登録部
122 受付部
123 経路探索部
124 更新部
【技術分野】
【0001】
本発明の実施形態は、ネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムに関する。
【背景技術】
【0002】
従来、公衆電話網やインターネットなどのアクセスネットワークを利用して、複数箇所に散在する拠点間を接続する技術が提案されている。そして、この技術を用いて複数の拠点間を接続することにより、各拠点に散在するユーザ間で同時に音声や画像のやり取りを可能とする音声(電話)会議やテレビ会議、WEB会議などのサービスの提供も行われている。
【0003】
また、近年では、企業内ネットワークなどに、複数の仮想ネットワークを形成するVLAN(Virtual Local Area Network)やタグVLAN等の技術が知られている。このようなVLAN等の技術が適用されたネットワークでは、仮想ネットワーク内における特定のユーザ間によるデータ通信を可能とする。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Tony Jeffree et al, "IEEE Standard for Local and metropolitan area networks Virtual Bridged Local Area Networks", IEEE Std 802.1Q-2005, [online],[平成23年5月31日検索]、インターネット<http://standards.ieee.org/getieee802/download/802.1Q-2005.pdf>
【非特許文献2】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],[平成23年5月31日検索]、インターネット<http://standards.ieee.org/getieee802/download/802.1ad-2005.pdf>
【非特許文献3】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],[平成23年5月31日検索]、インターネット<http://standards.ieee.org/getieee802/download/802.1ah-2008.pdf>
【非特許文献4】OpenFlow Switching Consortium, "Open Flow", [online],[平成23年5月31日検索]、インターネット<http://www.openflow.org/>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の仮想ネットワークに関する従来技術では、仮想ネットワークを構築するための作業コストが増大する場合がある。例えば、VLANにより仮想ネットワークを構築する場合には、スイッチ等の中継装置にVLANテーブル等を設定することを要する。このような中継装置はネットワーク内に複数存在するので、設定作業にかかる作業コストが増大する。
【0006】
本発明は、上記に鑑みてなされたものであって、仮想ネットワークにおけるデータ通信を容易に実現することを可能にするネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
実施形態に係るネットワークシステムは、データを中継する複数のスイッチを含むネットワークシステムであって、前記スイッチは、他のスイッチ又は端末と接続される複数のポートと、他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部とを備えることを特徴とする。
【0008】
また、実施形態に係る中継制御装置は、データを中継する複数のスイッチを制御する中継制御装置であって、前記スイッチは、他のスイッチ又は端末と接続される複数のポートと、他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子が示す出力ポートから前記入力データを送信する送信部とを備え、前記中継制御装置は、前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のMACアドレス及びIPアドレス、又は、該ポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部と、所定のスイッチから、端末と接続されている該所定のスイッチのポートを示すポート識別子と、該端末の通信相手先端末のIPアドレスとを受け付ける受付部と、前記受付部によって受け付けられたポート識別子及び前記通信相手先端末のIPアドレスを用いて、前記端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索部と、前記経路探索部によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新部とを備えることを特徴とする。
【発明の効果】
【0009】
実施形態に係るネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムは、仮想ネットワークにおけるデータ通信を容易に実現することができるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】図1は、実施例1に係るネットワークシステムの物理的な構成例を示す図である。
【図2】図2は、実施例1に係るネットワークシステムの論理的な構成例を示す図である。
【図3】図3は、実施例1における中継制御装置の構成例を示すブロック図である。
【図4】図4は、実施例1における接続情報記憶部の一例を示す図である。
【図5】図5は、実施例1におけるスイッチが有するフローテーブルの一例を示す図である。
【図6】図6は、実施例1におけるスイッチが有するフローテーブルの一例を示す図である。
【図7】図7は、実施例1におけるスイッチが有するフローテーブルの一例を示す図である。
【図8】図8は、実施例1におけるスイッチの構成例を示すブロック図である。
【図9】図9は、実施例1に係るネットワークシステムによる中継制御手順を示すシーケンス図である。
【図10】図10は、中継制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0011】
以下に、本発明に係るネットワークシステム、中継制御装置、中継制御方法及び中継制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。
【実施例1】
【0012】
[ネットワークシステムの構成]
まず、図1を用いて、実施例1に係るネットワークシステムの構成について説明する。図1は、実施例1に係るネットワークシステムの物理的な構成例を示す図である。図1に例示するように、実施例1に係るネットワークシステムN1には、スイッチ10、20及び30と、端末M11〜M17と、中継制御装置100とが含まれる。
【0013】
スイッチ10、20及び30は、端末間で送受信されるデータを中継する中継装置である。図1に例示するように、スイッチ10は、ネットワークポート(以下、「NWポート」と表記する場合がある)11〜14を有する。かかるNWポート11〜14は、他のスイッチであるスイッチ20や端末M11〜M13との間でデータ(パケット等)を送受信する。具体的には、NWポート11は、端末M11と接続されており、端末M11との間でデータを送受信する。同様に、NWポート12は、端末M12との間でデータを送受信し、端末M13は、端末M13との間でデータを送受信する。また、NWポート14は、後述するスイッチ20が有するNWポート23と接続されており、NWポート23との間でデータを送受信する。
【0014】
スイッチ20は、NWポート21〜24を有する。NWポート21は、端末M14との間でデータを送受信し、NWポート22は、端末M15との間でデータを送受信する。また、NWポート23は、上記の通り、スイッチ10のNWポート14との間でデータを送受信する。また、NWポート24は、後述するスイッチ30が有するNWポート33と接続されており、NWポート33との間でデータを送受信する。
【0015】
スイッチ30は、NWポート31〜33を有する。NWポート31は、端末M16との間でデータを送受信し、NWポート32は、端末M17との間でデータを送受信する。また、NWポート33は、上記の通り、スイッチ20のNWポート24との間でデータを送受信する。
【0016】
端末M11〜M17は、例えば、PC(Personal Computer)等の情報処理装置であり、スイッチ10、20又は30を介して、他の端末との間で通信を行う。例えば、端末M11は、スイッチ10、20及び30を介して、端末M16との間で通信を行う場合がある。
【0017】
中継制御装置100は、スイッチ10、20及び30による中継処理を制御する。ここで、実施例1に係るネットワークシステムN1は、かかる中継制御装置100のよる制御の下、仮想的なネットワーク(以下、「グループ」と表記する場合もある)を容易に形成することを可能にする。
【0018】
例えば、実施例1に係るネットワークシステムN1のネットワーク管理者等は、仮想ネットワークを形成する場合に、各スイッチが有する各NWポートをいくつかのグループに分ける。このとき、ネットワーク管理者は、VLAN等を用いた場合には、スイッチ10、20及び30の各々にVLANテーブル等を設定することを要する。このため、ネットワーク管理者の作業コストが増大する。しかし、実施例1に係るネットワークシステムN1においては、ネットワーク管理者は、各スイッチの各NWポートが属するグループに関するグループ情報を中継制御装置100に登録するだけで、ネットワークシステムN1内に上記グループR及びグループBを形成することができる。
【0019】
具体的には、中継制御装置100は、ネットワーク管理者から受け付けたグループ情報を保持する。そして、中継制御装置100は、スイッチ10、20又は30から所定の端末間における通信経路の探索要求を受け付けた場合に、ネットワーク管理者から受け付けたグループ情報に基づいて、同一のグループに属するNWポートのみを経由するように、かかる端末間の通信経路を決定する。
【0020】
そして、中継制御装置100は、決定した通信経路を用いて、スイッチ10、20及び30がデータの中継処理を行う際に用いるテーブル(後述するフローテーブル)に記憶されるフローテーブル情報を生成する。このとき、実施例1における中継制御装置100は、データが入力される「入力ポート」と、データの送信元端末の「送信元MAC(Media Access Control)アドレス」と、データの宛先端末の「宛先MACアドレス」と、送信元端末の「送信元IP(Internet Protocol)アドレス」と、宛先端末の「宛先IPアドレス」と、データが出力される「出力ポート」とを含むフローテーブル情報を生成する。中継制御装置100は、このようにして生成したフローテーブル情報をスイッチ10、20及び30に登録する。
【0021】
そして、実施例1におけるスイッチ10、20及び30は、これらの「入力ポート」、「送信元MACアドレス」、「宛先MACアドレス」、「送信元IPアドレス」、「宛先IPアドレス」、「出力ポート」の組合せに基づいて、データの中継処理を行う。具体的には、スイッチ10等は、データを受信した場合に、データを受信した「入力ポート」と、かかるデータに設定されている「送信元MACアドレス」、「宛先MACアドレス」、「送信元IPアドレス」及び「宛先IPアドレス」とに対応する「出力ポート」を特定し、特定した出力ポートにかかるデータを送信する。
【0022】
図1に示した例を用いて、より具体的に説明する。図1に示した例では、ネットワーク管理者は、横線を付した矩形によって示したNWポート11、12、21及び31が属するグループ(以下、「グループR」とする)と、縦線を付した矩形によって示したNWポート13、22及び32が属するグループ(以下、「グループB」とする)とを形成するものとする。すなわち、図1に示した例のように各端末がNWポートに接続されている場合には、端末M11、M12、M14及びM16が互いに通信を行うことが許可され、端末M13、M15及びM17が互いに通信を行うことが許可されることとなる。なお、実施例1では、図1に示したNWポート14、23、24及び33のようにスイッチ間を接続するNWポートは、特定のグループに属さず、いずれのグループ(グループR及びグループB)内の通信においてもデータの送受信が行えるものとする。
【0023】
上記例の場合に、実施例1における中継制御装置100は、NWポート11、12、21及び31がグループRに属し、NWポート13、22及び32がグループBに属することを示すグループ情報をネットワーク管理者から受け付ける。そして、中継制御装置100は、各端末が他の端末との間で通信を行う場合に、スイッチ10、20又は30から端末間における通信経路の探索要求を受け付ける。例えば、中継制御装置100は、端末M11とM16とが初めて通信を行う場合等に、スイッチ10から端末M11とM16との間における通信経路の探索要求を受け付ける。
【0024】
かかる場合には、中継制御装置100は、端末M11とM16との間におけるデータを送受信するNWポートとして、スイッチ10のNWポート11及び14と、スイッチ20のNWポート23及び24と、スイッチ30のNWポート33及び31とを選択する。このとき、中継制御装置100は、端末M11の接続先のNWポート11と端末M16の接続先のNWポート31とがグループRに属するので、グループRに属するNWポートの中から、端末M11と端末M16とが通信可能となるNWポートを選択する。そして、中継制御装置100は、このように選択したNWポートに基づいて、スイッチ10、20及び30に登録するためのフローテーブル情報を生成する。
【0025】
具体的には、中継制御装置100は、スイッチ10に登録するフローテーブル情報として、端末M11から送信される端末M16宛のデータをNWポート11が受信した場合に、かかるデータをNWポート14に出力することを示す情報を生成する。さらに、中継制御装置100は、スイッチ10に登録するフローテーブル情報として、端末M16から端末M11宛のデータをNWポート14が受信した場合に、かかるデータをNWポート11に出力することを示す情報を生成する。
【0026】
また、中継制御装置100は、スイッチ20に登録するフローテーブル情報として、端末M11から端末M16宛のデータをNWポート23が受信した場合に、かかるデータをNWポート24に出力することを示す情報を生成する。さらに、中継制御装置100は、スイッチ20に登録するフローテーブル情報として、端末M16から端末M11宛のデータをNWポート24が受信した場合に、かかるデータをNWポート23に出力することを示す情報を生成する。
【0027】
また、中継制御装置100は、スイッチ30に登録するフローテーブル情報として、端末M11から端末M16宛のデータをNWポート33が受信した場合に、かかるデータをNWポート31に出力することを示す情報を生成する。さらに、中継制御装置100は、スイッチ30に登録するフローテーブル情報として、端末M16から端末M11宛のデータをNWポート31が受信した場合に、かかるデータをNWポート33に出力することを示す情報を生成する。
【0028】
そして、中継制御装置100は、このようにして生成したフローテーブル情報をスイッチ10、20及び30に登録する。これにより、スイッチ10、20及び30は、中継制御装置100によって登録されたフローテーブル情報を用いて、端末M11と端末M16との間で送受信されるデータを中継することができる。
【0029】
同様にして、中継制御装置100は、端末M11とM14とが最初に通信を行う場合や、端末M12とM16とが最初に通信を行う場合や、端末M12とM14とが最初に通信を行う場合等についても、各スイッチ用のフローテーブル情報を生成し、生成したフローテーブル情報を各スイッチに登録する。また、中継制御装置100は、端末M13、M15及びM17が最初に相互通信を行う場合等についても、各スイッチにフローテーブル情報を登録する。スイッチ10、20及び30は、中継制御装置100によって生成されたフローテーブル情報に従って、データの中継処理を行うので、互いに通信を行うことが許可されていない端末間の通信を成立させることはない。このようにして、中継制御装置100は、ネットワークシステムN1にグループ(仮想ネットワーク)を形成することができる。
【0030】
なお、上記例では、中継制御装置100が、スイッチ10等から探索要求を受け付けた場合に、各スイッチにフローテーブル情報を登録する例を示した。しかし、この例に限られず、中継制御装置100は、スイッチ10等から探索要求を受け付けない場合であっても、各スイッチにフローテーブル情報を登録してもよい。例えば、中継制御装置100は、ネットワークシステムN1が構築された時や、ネットワークシステムN1にスイッチが追加された場合や、スイッチに端末が接続された時等に、各スイッチにフローテーブル情報を登録してもよい。
【0031】
ここで、図2に、実施例1に係るネットワークシステムN1の論理的な構成例を示す。図2に示したスイッチRは、グループRに属する仮想的なスイッチを示し、物理的なスイッチとしては、スイッチ10のNWポート11及び12と、スイッチ20のNWポート21と、スイッチ30のNWポート31を示す。また、図2に示したスイッチBは、グループBに属する仮想的なスイッチを示し、物理的なスイッチとしては、スイッチ10のNWポート13と、スイッチ20のNWポート22と、スイッチ30のNWポート32を示す。すなわち、実施例1におけるネットワークシステムN1においては、図2に示したように、中継制御装置100によって、端末M11、M12、M14及びM16がスイッチRを介して相互に通信を行うことができるグループRと、端末M13、M15及びM17がスイッチBを介して相互に通信を行うことができるグループBとが形成される。
【0032】
以上のように、実施例1に係るネットワークシステムN1では、ネットワーク管理者が中継制御装置100にグループ情報を登録するだけで、中継制御装置100が、グループ情報に基づいて各スイッチ用のフローテーブル情報を生成することで、仮想ネットワークを形成する。これにより、実施例1に係るネットワークシステムN1において、ネットワーク管理者は、仮想ネットワークを容易に形成することが可能になる。例えば、ネットワーク管理者は、VLAN等の技術を用いて図2に例示した仮想ネットワークを形成する場合には、各スイッチにVLANテーブルを設定する作業を要する。しかし、実施例1に係るネットワークシステムN1では、ネットワーク管理者は、中継制御装置100にグループ情報を登録するだけで、図2に例示した仮想ネットワークを形成することができる。
【0033】
なお、上述してきたスイッチ、端末、NWポートの数は、図1に示した例に限られない。例えば、実施例1に係るネットワークシステムN1は、4台以上のスイッチを有してもよいし、6台以下の端末や8台以上の端末を有してもよい。また、各スイッチは、図1に例示した数と異なる数のNWポートを有してもよい。また、図1に示した例では、ネットワークシステムN1に端末が含まれる例を示したが、かかる端末は、サーバ等であってもよい。
【0034】
[中継制御装置の構成]
次に、図3を用いて、図1に示した中継制御装置100の構成について説明する。図3は、実施例1における中継制御装置100の構成例を示すブロック図である。図3に例示するように、実施例1における中継制御装置100は、接続情報記憶部110と、登録部121と、受付部122と、経路探索部123と、更新部124とを有する。
【0035】
接続情報記憶部110は、各スイッチが有する各NWポートのグループ情報や、各NWポートと接続される端末又はスイッチに関する端末情報等を記憶する。具体的には、接続情報記憶部110は、各スイッチが有するポート毎に、かかるポートが属するグループに関するグループ情報と、かかるポートと接続される端末や他のスイッチのMACアドレスやIPアドレスを記憶する。
【0036】
ここで、図4に、実施例1における接続情報記憶部110の一例を示す。図4に示した例では、接続情報記憶部110は、「スイッチ名」、「NWポート」、「グループ」、「MACアドレス」、「IPアドレス」といった項目を有する。
【0037】
「スイッチ名」は、ネットワークシステムN1に含まれるスイッチを識別するための情報である。図4に示した例において、接続情報記憶部110の「スイッチ名」には、図1に示したスイッチに付した符号の先頭に「SW」を付与した情報が記憶されるものとする。例えば、接続情報記憶部110は、スイッチ10の「スイッチ名」として「SW10」を記憶し、スイッチ20の「スイッチ名」として「SW20」を記憶する。
【0038】
「NWポート」は、各スイッチが有するNWポートを識別するための情報(以下、「ポート識別子」と表記する場合がある)である。図4に示した例において、接続情報記憶部110の「NWポート」には、図1に示したNWポートに付した符号の1の位(下1桁の数値)が記憶されるものとする。例えば、接続情報記憶部110は、NWポート11の「NWポート」としてポート識別子「1」を記憶し、NWポート12の「NWポート」としてポート識別子「2」を記憶する。同様に、接続情報記憶部110は、NWポート21の「NWポート」としてポート識別子「1」を記憶し、NWポート22の「NWポート」としてポート識別子「2」を記憶する。
【0039】
「グループ」は、各NWポートが属するグループを識別するための情報(以下、「グループ識別子」と表記する場合がある)である。図4に示した例において、接続情報記憶部110の「グループ」には、図1に示したグループに付した符号「R」又は「B」のいずれかが記憶されるものとする。例えば、接続情報記憶部110は、NWポート11の「グループ」としてグループ識別子「R」を記憶し、NWポート13の「グループ」としてグループ識別子「B」を記憶する。なお、接続情報記憶部110の「グループ」に記憶されている「U」は、特定のグループを示さず、いずれのグループであってもよいことを示す。例えば、スイッチ間を接続するNWポート14、23、24及び33の「グループ」には、グループ識別子「U」が記憶される。
【0040】
「MACアドレス」は、各NWポートに接続されている端末又はスイッチのMACアドレスである。図4に示した例において、接続情報記憶部110の「MACアドレス」には、図1に示した端末に付した符号の一の位の数値(下1桁の数値)の先頭に「m」を付与した情報、又は、図1に示したスイッチ10に付した符号の十の位の数値の先頭に「SW」を付与した情報が記憶されるものとする。例えば、接続情報記憶部110は、端末M11の「MACアドレス」として「m1」を記憶し、端末M12の「MACアドレス」として「m2」を記憶し、スイッチ10の「MACアドレス」として「SW1」を記憶する。
【0041】
「IPアドレス」は、各NWポートに接続されている端末のIPアドレスである。図4に示した例において、接続情報記憶部110の「IPアドレス」には、図1に示した端末に付した符号の1の位(下1桁の数値)の先頭に「i」を付与した情報が記憶されるものとする。例えば、接続情報記憶部110は、端末M11の「IPアドレス」として「i1」を記憶し、端末M12の「IPアドレス」として「i2」を記憶する。
【0042】
上記の各項目のうち、「スイッチ名」、「NWポート」及び「グループ」は、ネットワーク管理者等によって事前に登録されるグループ情報である。また、「MACアドレス」及び「IPアドレス」は、中継制御装置100が各スイッチから受け付ける情報であり、後述する登録部121によって登録される。
【0043】
図3の説明に戻って、登録部121は、各スイッチから、かかるスイッチが有するNWポートと接続されている端末やスイッチのMACアドレスやIPアドレスを受信した場合に、受信したMACアドレスやIPアドレスを接続情報記憶部110に登録する。
【0044】
具体的には、ネットワークシステムN1に含まれる各端末は、自装置と接続されているNWポートがリンクアップした場合に、リンクアップしたNWポートに対して、自装置(端末)のMACアドレス及びIPアドレスを含むGratuitous ARP(Address Resolution Protocol)を送信する。同様に、ネットワークシステムN1に含まれる各スイッチは、自装置と接続されている他のスイッチのNWポートがリンクアップした場合に、リンクアップしたNWポートに対して、自装置(スイッチ)のMACアドレスを送信する。そして、実施例1における各スイッチは、端末や他のスイッチからMACアドレスやIPアドレスを受信した場合に、かかるMACアドレスやIPアドレスを受信したNWポートのポート識別子と、かかるMACアドレスやIPアドレスとを中継制御装置100に通知する。このときに、中継制御装置100の登録部121は、各スイッチから受信したポート識別子に対応する接続情報記憶部110のMACアドレスやIPアドレスに、受信したMACアドレスやIPアドレスを登録する。
【0045】
例えば、図1に示したスイッチ10のNWポート11がリンクアップしたものとする。かかる場合に、端末M11は、NWポート11に対して、端末M11のMACアドレス「m1」及びIPアドレス「i1」を含むGratuitous ARPを送信する。そして、スイッチ10は、端末M11から受信したMACアドレス「m1」及びIPアドレス「i1」と、かかるMACアドレス等を受信したNWポート11のポート識別子「1」とを中継制御装置100に通知する。かかる場合に、登録部121は、図4に示した例のように、スイッチ10を示すスイッチ名「SW10」と、NWポート「1」とに対応するMACアドレスに「m1」を登録するとともに、IPアドレスに「i1」を登録する。このようにして、接続情報記憶部110は、登録部121によってMACアドレス及びIPアドレスが登録されることで、図4に例示した各種情報を保持することになる。
【0046】
図3の説明に戻って、受付部122は、スイッチ10、20又は30から、端末間における通信経路の探索要求を受け付ける。具体的には、受付部122は、スイッチ10、20又は30から、所定の端末と接続されているNWポートのポート識別子と、かかる端末の通信相手先の端末のIPアドレスとを受け付ける。
【0047】
例えば、図1に例示した端末M11は、端末M16との間で通信を開始する場合に、端末M16のMACアドレスを取得するために、端末M16のIPアドレス「i6」を含むARP要求をスイッチ10のNWポート11に送信する。このとき、実施例1におけるスイッチ10は、かかるARP要求を各端末に転送せずに、中継制御装置100に対して、端末M11と端末M16との間における通信経路の探索要求を送信する。具体的には、スイッチ10は、ARP要求を受信したNWポート11のポート識別子「1」と、端末M16のIPアドレス「i6」とを含む探索要求を中継制御装置100に送信する。中継制御装置100の受付部122は、このような探索要求を受け付ける。
【0048】
なお、上記例において、スイッチ10は、ARP要求を受信した場合に、端末M16のIPアドレス「i6」を保持している場合には、中継制御装置100に探索要求を送信しない。この点については、後述する。
【0049】
経路探索部123は、受付部122によって探索要求が受け付けられた場合に、かかる探索要求に含まれる各種情報と、接続情報記憶部110に記憶されている各種情報とを用いて、端末間の通信経路を探索する。具体的には、経路探索部123は、探索要求に含まれる「ポート識別子」が示すNWポートから、探索要求に含まれる「通信相手先端末のIPアドレス」が示す端末までの通信経路を探索する。このとき、経路探索部123は、同一のグループに属するNWポートを経由する通信経路となるように、NWポートを選択する。
【0050】
例えば、上記例のように、受付部122によって、NWポート11のポート識別子「1」と端末M16のIPアドレス「i6」とを含む探索要求が受け付けられたものとする。また、接続情報記憶部110には図4に例示した各種情報が記憶されているものとする。かかる場合に、経路探索部123は、スイッチ10からスイッチ30までの経路探索を行う。
【0051】
具体的には、経路探索部123は、図4に例示した接続情報記憶部110の4行目のレコードに基づいて、スイッチ10のNWポート14とスイッチ20とが接続されていることを取得する。また、経路探索部123は、接続情報記憶部110の7行目のレコードに基づいて、スイッチ20のNWポート23とスイッチ10とが接続されていることを取得する。すなわち、経路探索部123は、接続情報記憶部110の4及び7行目のレコードに基づいて、スイッチ10のNWポート14とスイッチ20のNWポート23とが接続されていることを取得する。
【0052】
さらに、経路探索部123は、接続情報記憶部110の8行目のレコードに基づいて、スイッチ20のNWポート24とスイッチ30とが接続されていることを取得し、接続情報記憶部110の11行目のレコードに基づいて、スイッチ30のNWポート33とスイッチ20とが接続されていることを取得する。すなわち、経路探索部123は、接続情報記憶部110の8及び11行目のレコードに基づいて、スイッチ20のNWポート24とスイッチ30のNWポート33とが接続されていることを取得する。
【0053】
これにより、経路探索部123は、NWポート11から端末M16までの通信経路として、スイッチ10が有するNWポート12〜14から、スイッチ20と接続され、かつ、グループ「R」又は「U」であるNWポート14を選択することができる。さらに、経路探索部123は、NWポート14と接続され、かつ、グループ「R」又は「U」であるスイッチ20のNWポート23を選択することができる。さらに、経路探索部123は、スイッチ20が有するNWポート21、22、24から、スイッチ30と接続され、かつ、グループ「R」又は「U」であるNWポート24を選択することができる。さらに、経路探索部123は、NWポート24と接続され、かつ、グループ「R」又は「U」であるスイッチ30のNWポート33を選択することができる。そして、経路探索部123は、スイッチ30が有するNWポート31、32から、IPアドレス「i6」の端末M16と接続され、かつ、グループ「R」又は「U」であるNWポート31を選択することができる。
【0054】
なお、上記例では、経路探索部123が、NWポート11から端末M16までの通信経路として、スイッチ10が有するNWポート12〜14から、スイッチ20と接続され、かつ、グループ「R」又は「U」であるNWポート14を選択することを示した。この点について具体的に説明すると、経路探索部123は、NWポート11を有するスイッチ10内に端末M16と接続されているNWポートが存在しないので、自スイッチ10と接続されている他のスイッチ(スイッチ20)に対して、端末M16と接続されているNWポートが存在するかを探索するために、スイッチ20と接続されるNWポート14を選択する。さらに、経路探索部123は、スイッチ20内に端末M16と接続されているNWポートが存在しないので、スイッチ20と接続されている他のスイッチ(スイッチ30)に端末M16と接続されているNWポートが存在するかを探索するために、スイッチ30と接続されるスイッチ20のNWポート24を選択する。このように、経路探索部123は、探索先端末と接続されているNWポートを有するスイッチに辿り着くまで、他のスイッチ内を探索する処理を繰り返し行う。
【0055】
更新部124は、経路探索部123によって探索された通信経路に基づいて、各スイッチのフローテーブル情報を生成し、生成したフローテーブル情報を各スイッチに送信することで、各スイッチのフローテーブルを更新する。具体的には、更新部124は、経路探索部123による経路探索処理によって選択された各NWポートをスイッチ毎に分別する。そして、経路探索部123は、分別したポートと、経路探索対象となった双方の端末のMACアドレス及びIPアドレスとを含むフローテーブルを生成する。このとき、経路探索部123は、各ポートや端末のMACアドレス及びIPアドレスが送信元及び宛先となるように、フローテーブルを生成する。
【0056】
例えば、上記例の場合には、経路探索部123は、NWポート11から端末M16までの通信経路として、NWポート11、14、23、24、33及び31を選択した。言い換えれば、経路探索部123は、NWポート11と接続されている端末M11から端末M16までの通信経路として、NWポート11、14、23、24、33及び31を選択した。かかる場合に、更新部124は、NWポート11及び14と、NWポート23及び24と、NWポート33及び31に分別する。そして、更新部124は、スイッチ10用のフローテーブル情報として、入力ポート「NWポート11」と、送信元MACアドレス「m1」と、宛先MACアドレス「m6」と、送信元IPアドレス「i1」と、宛先IPアドレス「i6」と、出力ポート「NWポート14」との組合せを生成する。このフローテーブル情報は、送信元MACアドレス「m1」、宛先MACアドレス「m6」、送信元IPアドレス「i1」、宛先IPアドレス「i6」であるデータがNWポート11によって受け付けられた場合に、スイッチ10が、かかるデータを出力ポート「NWポート14」に出力することを意味する。
【0057】
さらに、更新部124は、端末M11と端末M16との相互通信を可能にするために、スイッチ10用のフローテーブル情報として、入力ポート「NWポート14」と、送信元MACアドレス「m6」と、宛先MACアドレス「m1」と、送信元IPアドレス「i6」と、宛先IPアドレス「i1」と、出力ポート「NWポート11」との組合せを生成する。そして、更新部124は、このようにして生成したフローテーブル情報をスイッチ10に送信する。同様にして、更新部124は、各スイッチ用のフローテーブル情報を生成し、生成したフローテーブル情報を各スイッチに送信することで、各スイッチが保持するフローテーブルを更新する。
【0058】
ここで、図5〜図7に、実施例1におけるスイッチ10、20、30が有するフローテーブルの一例を示す。図5は、スイッチ10が有するフローテーブル10aの一例を示し、図6は、スイッチ20が有するフローテーブル20aの一例を示し、図7は、スイッチ30が有するフローテーブル30aの一例を示す。なお、図5〜7に示した例では、更新部124によって、端末M11と端末M16との間における通信経路と、端末M13と端末M17との間における通信経路に対応するフローテーブル情報が生成された例を示している。
【0059】
図5〜図7に示した「In Port」は、入力ポートを示し、図4に示した「NWポート」に対応する。また、「Src MAC」は、送信元MACアドレスを示し、図4に示した「MACアドレス」に対応する。また、「Dst MAC」は、宛先MACアドレスを示し、図4に示した「MACアドレス」に対応する。また、「Src IP」は、送信元IPアドレスを示し、図4に示した「IPアドレス」に対応する。また、「Dst IP」は、宛先IPアドレスを示し、図4に示した「IPアドレス」に対応する。また、「Out Port」は、出力ポートを示し、図4に示した「NWポート」に対応する。
【0060】
例えば、図5に例示したフローテーブル10aの1行目は、端末M11から端末M16宛のデータを中継する際のフローテーブル情報を示す。また、図5に例示したフローテーブル10aの2行目は、端末M16から端末M11宛のデータを中継する際のフローテーブル情報を示し、3行目は、端末M13から端末M17宛のデータを中継する際のフローテーブル情報を示し、4行目は、端末M17から端末M13宛のデータを中継する際のフローテーブル情報を示す。
【0061】
同様に、図6に例示したフローテーブル20aは、端末M11から端末M16宛のデータ、端末M16から端末M11宛のデータ、端末M13から端末M17宛のデータ、端末M17から端末M13宛のデータを中継する際のフローテーブル情報を記憶する。また、図7に例示したフローテーブル30aは、端末M11から端末M16宛のデータ、端末M16から端末M11宛のデータ、端末M13から端末M17宛のデータ、端末M17から端末M13宛のデータを中継する際のフローテーブル情報を記憶する。
【0062】
[スイッチの構成]
次に、図8を用いて、図1に示したスイッチ10、20、30の構成について説明する。なお、スイッチ10、20、30は、それぞれ同様の構成を有するので、ここでは、スイッチ10の構成について説明する。図8は、実施例1におけるスイッチ10の構成例を示すブロック図である。図8に示したスイッチ10やスイッチ20及び30は、例えば、OpenFlowに対応するスイッチである。このようなスイッチ10は、図8に例示するように、NWポート11〜14と、フローテーブル10aと、更新部10bと、通信部10cとを有する。
【0063】
NWポート11〜14は、図1に示したように、他のスイッチや端末との間でデータを送受信する。図8に示した例では、NWポート11〜14は、他のスイッチや端末から受信したデータを通信部10cに送信する。また、NWポート11〜14は、通信部10cからデータを受け付けた場合に、かかるデータを接続先の他のNWポートに送信する。
【0064】
フローテーブル10aは、入力ポート、送信元MACアドレス、宛先MACアドレス、送信元IPアドレス、宛先IPアドレス、出力ポートを対応付けて記憶する。例えば、フローテーブル10aは、図5に例示した各種情報を記憶する。かかるフローテーブル10aは、入力ポート、送信元MACアドレス、宛先MACアドレス、送信元IPアドレス、宛先IPアドレスの5個の情報(以下、これらの5個の情報を「5タプル(tuple)」と表記する場合がある)の組合せをキーとして、各種情報を記憶する。なお、フローテーブル10aは、後述する通信部10cによってデータの中継処理が行われる場合に用いられる。
【0065】
更新部10bは、中継制御装置100からフローテーブル情報を受信した場合に、受信したフローテーブル情報をフローテーブル10aに更新する。具体的には、更新部10bは、中継制御装置100から受信したフローテーブル情報をフローテーブル10aに追加することで、フローテーブル10aを更新する。このとき、更新部10bは、フローテーブル情報の5タプルの全情報と一致するレコードがフローテーブル10aに存在する場合には、かかるレコードを5タプルが一致するフローテーブル情報に更新する。
【0066】
通信部10cは、各種ARPパケットの送受信処理や、各種データの中継処理を行う。具体的には、通信部10cは、NWポート11〜14のいずれかがリンクアップした場合に、リンクアップしたNWポート11〜14のいずれかと接続されている端末からGratuitous ARPを受信する。かかる場合に、通信部10cは、Gratuitous ARPに含まれる端末のIPアドレス及びMACアドレスを中継制御装置100に送信することで、中継制御装置100の接続情報記憶部110にIPアドレス及びMACアドレスを登録する。
【0067】
また、通信部10cは、NWポート11〜14のいずれかと接続されている端末からARP要求を受信した場合に、かかるARP要求に含まれるMACアドレスがフローテーブル10aに記憶されているか否かを判定する。ここで、通信部10cは、フローテーブル10aにMACアドレスが記憶されている場合には、かかるMACアドレスに対応するIPアドレスをフローテーブル10aから取得し、取得したIPアドレスをARP要求の送信元である端末に送信する。一方、通信部10cは、ARP要求に含まれるMACアドレスがフローテーブル10aに記憶されていない場合には、かかるARP要求を各端末に転送せずに、ARP要求を受信したNWポートのポート識別子と、ARP要求に含まれる端末のIPアドレスとを含む探索要求を中継制御装置100に送信する。
【0068】
また、通信部10cは、中継制御装置100からフローテーブル情報を受信した場合に、かかるフローテーブル情報を更新部10bに転送する。これにより、更新部10bによってフローテーブル10aが更新される。
【0069】
また、通信部10cは、NWポート11〜14を介して、他のスイッチや端末からデータを受信した場合に、フローテーブル10aに記憶されている各種情報に基づいて、かかるデータの中継処理を行う。具体的には、通信部10cは、データを受信した場合に、かかるデータの5タプルに対応する「Out Port」をフローテーブル10aから取得し、取得した「Out Port」が示すNWポートに対して、受信データを出力する。
【0070】
例えば、フローテーブル10aが、図5に例示した各種情報を記憶するものとする。また、NWポート11によって、送信元MACアドレス「m1」、宛先MACアドレス「m6」、送信元IPアドレス「i1」及び宛先IPアドレス「i6」が設定されているデータが受信されたものとする。かかる場合に、通信部10cは、フローテーブル10aから、In Port「1(NWポート11のポート識別子)」と、Src MAC「m1」と、Dst MAC「m6」と、Src IP「i1」と、Dst IP「i6」に対応するOut Port「4」を取得する。そして、通信部10cは、Out Port「4」が示すNWポート14に、受信データを出力する。このように、通信部10cは、5タプルに基づいて、データの中継処理を行う。
【0071】
[ネットワークシステムによる処理手順]
次に、図9を用いて、実施例1に係るネットワークシステムN1による中継制御の手順について説明する。図9は、実施例1に係るネットワークシステムN1による中継制御手順を示すシーケンス図である。なお、ここでは、端末M11と端末M16との間で行われる通信に特化した中継制御手順について説明する。また、ここでは、スイッチ10、20及び30は、フローテーブルに情報を保持していないものとする。
【0072】
図9に示すように、スイッチ10のNWポート11がリンクアップした場合に、NWポート11と接続されている端末M11は、端末M11のMACアドレス「m1」及びIPアドレス「i1」を含むGratuitous ARPをNWポート11に送信する(ステップS101)。
【0073】
続いて、スイッチ10は、Gratuitous ARPを受信したNWポート11のポート識別子「1」と、Gratuitous ARPに含まれるMACアドレス「m1」及びIPアドレス「i1」とを中継制御装置100に送信する(ステップS102)。これにより、中継制御装置100は、スイッチ10を示すスイッチ名「SW10」と、NWポート「1(NWポート11のポート識別子)」とに対応する接続情報記憶部110のMACアドレスに「m1」を登録するとともに、IPアドレスに「i1」を登録する。
【0074】
同様に、スイッチ30のNWポート31がリンクアップした場合に、端末M16は、端末M16のMACアドレス「m6」及びIPアドレス「i6」を含むGratuitous ARPをNWポート31に送信する(ステップS103)。続いて、スイッチ30は、Gratuitous ARPを受信したNWポート11のポート識別子「1」と、MACアドレス「m6」及びIPアドレス「i6」とを中継制御装置100に送信する(ステップS104)。これにより、中継制御装置100は、MACアドレスに「m6」とIPアドレスに「i6」とを接続情報記憶部110に登録する。
【0075】
続いて、図9に示した例では、端末M11は、端末M16との間で通信を開始するために、端末M16のIPアドレス「i6」を含むARP要求をスイッチ10のNWポート11に送信する(ステップS105)。この段階では、スイッチ10は、フローテーブル10aに各種情報を保持していないので、IPアドレス「i6」に対応するMACアドレスをフローテーブル10aから取得できない。したがって、スイッチ10は、NWポート11から受信したARP要求をスイッチ20やスイッチ30に転送せずに、ARP要求を受信したNWポートのポート識別子「1」と、ARP要求に含まれる端末のIPアドレス「i6」とを含む探索要求を中継制御装置100に送信する(ステップS106)。
【0076】
スイッチ10から探索要求を受信した中継制御装置100は、接続情報記憶部110に記憶されている各種情報を用いて、通信経路の探索処理を行う(ステップS107)。そして、中継制御装置100は、探索処理の結果から、スイッチ10用のフローテーブル情報と、スイッチ20用のフローテーブル情報と、スイッチ30用のフローテーブル情報とを生成する。そして、中継制御装置100は、スイッチ10用のフローテーブル情報をスイッチ10に送信することで、スイッチ10のフローテーブル10aにフローテーブル情報を設定する(ステップS108)。同様に、中継制御装置100は、スイッチ20用のフローテーブル情報をスイッチ20に送信することで、スイッチ20のフローテーブル20aにフローテーブル情報を設定し(ステップS109)、スイッチ30用のフローテーブル情報をスイッチ30に送信することで、スイッチ30のフローテーブル30aにフローテーブル情報を設定する(ステップS110)。これにより、スイッチ10、20及び30には、少なくとも端末M11と端末M16との通信を可能にするフローテーブル情報が設定されることになる。
【0077】
そして、中継制御装置100は、ステップS105におけるARP要求に対して、端末M16の代わりにMACアドレスを送信する代理応答(Proxy ARP)を行う(ステップS111)。具体的には、中継制御装置100は、かかるARP要求に含まれるIPアドレス「i6」に対応するMACアドレス「m6」をフローテーブル10aから取得し、取得したMACアドレス「m6」を端末M11に送信する。これにより、端末M11は、通信相手先の端末M16のMACアドレスを取得することができる。
【0078】
その後に、端末M11と端末M16との間で相互通信が行われる(ステップS112)。このとき、スイッチ10、20及び30は、端末M11と端末M16との間で送受信されるデータに含まれる5タプルに基づいて、データの中継先を決定する。
【0079】
[実施例1の効果]
上述してきたように、実施例1に係るネットワークシステムN1において、各スイッチは、他のスイッチ又は端末からデータが入力される入力ポートのポート識別子と、かかるデータの送信元である送信元端末のMACアドレス及びIPアドレスと、かかるデータの宛先となる宛先端末のMACアドレス及びIPアドレスと、かかるデータを出力する出力ポートのポート識別子とが登録されたフローテーブルを有する。また、各スイッチは、他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、かかる所定の入力ポートのポート識別子と、かかる所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、かかる入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けてフローテーブルに登録されている出力ポートのポート識別子を取得し、取得したポート識別子が示す出力ポートから入力データを送信する。すなわち、実施例1に係るネットワークシステムN1において、各スイッチは、5タプルに基づいて、データの中継処理を行う。
【0080】
これにより、実施例1における各スイッチは、端末間で送受されるデータを特定の経路に限定することができ、この結果、仮想的なネットワークであるグループ内でデータの中継処理を行うことができる。また、実施例1における各スイッチは、VLAN等の技術を用いないので、VLANタグを付与する処理や、グループ化のためのカプセリングを行うことなく、グループ内でデータの中継処理を低負荷で行うことができる。また、VLANが適用されるネットワークシステムでは、VLAN−ID数の上限が定められているため、VLAN−IDが枯渇するおそれがあるが、実施例1における各スイッチは、VLAN−IDを用いないので、グループ数が制限されない。
【0081】
一例を挙げて説明すると、例えば、ネットワークシステムN1に仮想的な端末である仮想マシン(VM:Virtual Machine)が含まれる場合、複数の仮想マシンに、同一のMACアドレスが設定される場合がある。これは、仮想LANカードによって仮想マシンのMACアドレスが定義されるためである。従来のスイッチは、このような複数の仮想マシンに重複して定義されたMACアドレスが設定されたデータを受信した際に、かかるデータを複数のスイッチに中継する場合があるので、端末間で送受されるデータを特定の経路に限定することができない。一方で、実施例1における各スイッチは、上記の通り、5タプルに基づいてデータの中継処理を行うので、端末間で送受されるデータを特定の経路に限定することができる。
【0082】
また、実施例1に係るネットワークシステムN1において、各スイッチは、通信相手先端末のMACアドレスを取得するためのARP要求であって、かかる通信相手先端末のIPアドレスを含むARP要求を受信した場合に、かかる通信相手先端末のMACアドレスを保持していない場合には、ARP要求を受信したポートのポート識別子と、ARP要求に含まれるIPアドレスとを含む探索要求を中継制御装置100に通知する。
【0083】
これにより、実施例1に係るネットワークシステムN1は、NWポートのリンクアップ時に端末からARP要求を受信した場合に、かかるARP要求をネットワークシステムN1内の全端末に送信することを防止でき、この結果、同一のグループに属さない端末間におけるデータの送受信を防止することができる。すなわち、ネットワークシステムN1は、NWポートのリンクアップ時においても、グループ内でデータの中継処理を行うことができる。
【0084】
また、実施例1における中継制御装置100は、各スイッチが有するポートのポート識別子毎に、かかるポートが属するグループのグループ識別子と、かかるポートと接続される端末のMACアドレス及びIPアドレス、又は、かかるポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部110を保持する。そして、中継制御装置100は、所定のスイッチから、端末間における通信経路の探索要求を受け付けた場合に、双方の端末が接続されるポートが属するグループに属し、かつ、かかる端末間における通信の経路となるポートのポート識別子を接続情報記憶部110から探索する。そして、中継制御装置100は、探索したポート識別子が示すポートを有するスイッチに対して、かかるポート識別子と双方の端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、スイッチのフローテーブルを更新する。
【0085】
これにより、実施例1における中継制御装置100は、各スイッチによる5タプルに基づく中継処理を実現するためのフローテーブルを生成することができる。すなわち、実施例1に係るネットワークシステムN1においては、ネットワーク管理者は、各スイッチの各NWポートが属するグループに関するグループ情報を中継制御装置100に登録するだけで、ネットワークシステムN1内に所望のグループを形成することができる。
【実施例2】
【0086】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例2では、本発明の他の実施例について説明する。
【0087】
[システム構成]
上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、図4〜図7等に例示した各種情報は、あくまで一例であって任意の情報に変更することができる。
【0088】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図8に示した通信部10cは、端末からARP要求を受信した際に経路探索要求を中継制御装置100に通知する通知部と、端末や他のスイッチからNWポート11にデータが入力された場合に、入力データに設定されている5タプルに対応する出力ポートのポート識別子をフローテーブル10aから取得する取得部と、かかる取得部によって取得されたポート識別子が示す出力ポートから入力データを送信する送信部とに分散されてもよい。
【0089】
[プログラム]
また、上記実施例において説明した中継制御装置100が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施例1における中継制御装置100が実行する処理をコンピュータが実行可能な言語で記述した中継制御プログラムを作成することもできる。この場合、コンピュータが中継制御プログラムを実行することにより、上記実施例と同様の効果を得ることができる。さらに、かかる中継制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された中継制御プログラムをコンピュータに読み込ませて実行することにより上記実施例と同様の処理を実現してもよい。以下に、図3に示した中継制御装置100と同様の機能を実現する中継制御プログラムを実行するコンピュータの一例を説明する。
【0090】
図10は、中継制御プログラムを実行するコンピュータ1000を示す図である。図10に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
【0091】
メモリ1010は、図10に例示するように、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図10に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図10に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース1050は、図10に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図10に例示するように、例えばディスプレイ1061に接続される。
【0092】
ここで、図10に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の中継制御プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。例えば、図3に例示した登録部121と同様の情報処理を実行する登録手順と、図3に例示した受付部122と同様の情報処理を実行する受付手順と、図3に例示した経路探索部123と同様の情報処理を実行する経路探索手順と、図3に例示した更新部124と同様の情報処理を実行する更新手順とが記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
【0093】
また、上記実施例で説明した中継制御装置100が保持する各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、登録手順、受付手順、経路探索手順、更新手順を実行する。
【0094】
なお、中継制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、中継制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0095】
N1 ネットワークシステム
10、20、30 スイッチ
10a フローテーブル
10b 更新部
10c 通信部
11〜14、21〜24、31〜33 NWポート
100 中継制御装置
110 接続情報記憶部
121 登録部
122 受付部
123 経路探索部
124 更新部
【特許請求の範囲】
【請求項1】
データを中継する複数のスイッチを含むネットワークシステムであって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、
前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部と
を備えたことを特徴とするネットワークシステム。
【請求項2】
前記複数のスイッチを制御する中継制御装置をさらに備え、
前記スイッチは、
所定の端末の通信相手先となる通信相手先端末のMACアドレスを取得するための取得要求であって、該通信相手先端末のIPアドレスを含む取得要求を前記所定の端末から受信した場合に、該取得要求を受信したポートのポート識別子と、該取得要求に含まれるIPアドレスとを前記中継制御装置に通知する通知部をさらに備え、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のMACアドレス及びIPアドレス、又は、該ポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部と、
前記通知部によって通知された前記ポート識別子及び前記通信相手先端末のIPアドレスを受け付ける受付部と、
前記受付部によって受け付けられたポート識別子及び前記通信相手先端末のIPアドレスを用いて、前記所定の端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記所定の端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索部と、
前記経路探索部によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新部と
を備えたことを特徴とする請求項1に記載のネットワークシステム。
【請求項3】
データを中継する複数のスイッチを制御する中継制御装置であって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、
前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部と
を備え、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のMACアドレス及びIPアドレス、又は、該ポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部と、
所定のスイッチから、端末と接続されている該所定のスイッチのポートを示すポート識別子と、該端末の通信相手先端末のIPアドレスとを受け付ける受付部と、
前記受付部によって受け付けられたポート識別子及び前記通信相手先端末のIPアドレスを用いて、前記端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索部と、
前記経路探索部によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新部と
を備えたことを特徴とする中継制御装置。
【請求項4】
データを中継する複数のスイッチを含むネットワークシステムで実行される中継制御方法であって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルとを備え、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得工程と、
前記取得工程によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信工程と
を備えたことを特徴とする中継制御方法。
【請求項5】
データを中継する複数のスイッチを制御する中継制御装置で実行される中継制御方法であって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子が示す出力ポートから前記入力データを送信する送信部と
を備え、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のMACアドレス及びIPアドレス、又は、該ポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部を備え、
所定のスイッチから、端末と接続されている該所定のスイッチのポートを示すポート識別子と、該端末の通信相手先端末のIPアドレスとを受け付ける受付工程と、
前記受付工程によって受け付けられたポート識別子及び前記通信相手先端末のIPアドレスを用いて、前記端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索工程と、
前記経路探索工程によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新工程と
を含んだことを特徴とする中継制御方法。
【請求項6】
コンピュータを請求項3に記載の中継制御装置として機能させるための中継制御プログラム。
【請求項1】
データを中継する複数のスイッチを含むネットワークシステムであって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、
前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部と
を備えたことを特徴とするネットワークシステム。
【請求項2】
前記複数のスイッチを制御する中継制御装置をさらに備え、
前記スイッチは、
所定の端末の通信相手先となる通信相手先端末のMACアドレスを取得するための取得要求であって、該通信相手先端末のIPアドレスを含む取得要求を前記所定の端末から受信した場合に、該取得要求を受信したポートのポート識別子と、該取得要求に含まれるIPアドレスとを前記中継制御装置に通知する通知部をさらに備え、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のMACアドレス及びIPアドレス、又は、該ポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部と、
前記通知部によって通知された前記ポート識別子及び前記通信相手先端末のIPアドレスを受け付ける受付部と、
前記受付部によって受け付けられたポート識別子及び前記通信相手先端末のIPアドレスを用いて、前記所定の端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記所定の端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索部と、
前記経路探索部によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新部と
を備えたことを特徴とする請求項1に記載のネットワークシステム。
【請求項3】
データを中継する複数のスイッチを制御する中継制御装置であって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得部と、
前記取得部によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信部と
を備え、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のMACアドレス及びIPアドレス、又は、該ポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部と、
所定のスイッチから、端末と接続されている該所定のスイッチのポートを示すポート識別子と、該端末の通信相手先端末のIPアドレスとを受け付ける受付部と、
前記受付部によって受け付けられたポート識別子及び前記通信相手先端末のIPアドレスを用いて、前記端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索部と、
前記経路探索部によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新部と
を備えたことを特徴とする中継制御装置。
【請求項4】
データを中継する複数のスイッチを含むネットワークシステムで実行される中継制御方法であって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルとを備え、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子を取得する取得工程と、
前記取得工程によって取得されたポート識別子が示す出力ポートから前記入力データを送信する送信工程と
を備えたことを特徴とする中継制御方法。
【請求項5】
データを中継する複数のスイッチを制御する中継制御装置で実行される中継制御方法であって、
前記スイッチは、
他のスイッチ又は端末と接続される複数のポートと、
他のスイッチ又は端末からデータが入力されるポートである入力ポートを識別するためのポート識別子と、該データの送信元である送信元端末のMACアドレス及びIPアドレスと、該データの宛先となる宛先端末のMACアドレス及びIPアドレスと、該データを出力するポートである出力ポートのポート識別子とが登録されたフローテーブルと、
他のスイッチ又は端末から所定の入力ポートにデータが入力された場合に、該所定の入力ポートのポート識別子と、該所定の入力ポートに入力された入力データの送信元端末のMACアドレス及びIPアドレスと、該入力データの宛先端末のMACアドレス及びIPアドレスとに対応付けて前記フローテーブルに登録されている出力ポートのポート識別子が示す出力ポートから前記入力データを送信する送信部と
を備え、
前記中継制御装置は、
前記複数のスイッチが有するポートを識別するためのポート識別子毎に、該ポートが属する仮想ネットワークを識別するためのグループ識別子と、該ポートと接続される端末のMACアドレス及びIPアドレス、又は、該ポートと接続される他のスイッチのMACアドレスとを記憶する接続情報記憶部を備え、
所定のスイッチから、端末と接続されている該所定のスイッチのポートを示すポート識別子と、該端末の通信相手先端末のIPアドレスとを受け付ける受付工程と、
前記受付工程によって受け付けられたポート識別子及び前記通信相手先端末のIPアドレスを用いて、前記端末が接続されるポート及び前記通信相手先端末が接続されるポートが属する仮想ネットワークに属し、かつ、前記端末と前記通信相手先端末とが通信を行う際の経路となるポートのポート識別子を前記接続情報記憶部から探索する経路探索工程と、
前記経路探索工程によって探索されたポート識別子が示すポートを有するスイッチに対して、該ポート識別子と前記端末及び前記通信相手先端末のMACアドレス及びIPアドレスとを含む経路情報を送信することで、該スイッチのフローテーブルを更新する更新工程と
を含んだことを特徴とする中継制御方法。
【請求項6】
コンピュータを請求項3に記載の中継制御装置として機能させるための中継制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2013−5087(P2013−5087A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−132177(P2011−132177)
【出願日】平成23年6月14日(2011.6.14)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願日】平成23年6月14日(2011.6.14)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]