(57)【要約】【課題】複数のネットワークを経由して転送されるパケットのデータリンク層以下における転送経路を容易に取得できるパケット転送経路取得システムを提供する。【解決手段】第２の管理部６７は、第１のネットワークと第２のネットワークを経由するパケットの第２の転送経路情報を記憶し、第１の管理部５７は、パケットに対する第１の転送経路情報と、第２の転送経路情報の識別情報である第２の識別情報とを対応付けて記憶し、転送経路取得部４３は、第１の管理部５７から第１の転送経路情報と第２の識別情報とを併せて取得し、取得した第２の識別情報を基に第２の管理部６７から第２の転送経路情報を取得する。第２の管理部６７は、第２の識別情報を含めた制御パケットを第１のネットワークへ送信し、第１の管理部５７は、送信された制御パケットから取得した第２の識別情報を第１の転送経路情報に対応付けてもよい。【選択図】図１７
2015162834.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワークを管理し、前記第１のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第１の転送経路情報を記憶する第１の管理部を含む第１の制御装置と、
前記第１のネットワークと接続している第２のネットワークを管理し、前記第２のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第２の転送経路情報を記憶する第２の管理部を含む第２の制御装置と、
前記第１の制御装置と前記第２の制御装置とを管理し、転送経路取得部を含む統合制御装置とを含み、
前記第２の管理部は、前記第１のネットワークと前記第２のネットワークを経由するパケットの第２の転送経路情報を記憶し、
前記第１の管理部は、前記パケットに対する第１の転送経路情報と、前記第２の転送経路情報の識別情報である第２の識別情報とを対応付けて記憶し、
前記転送経路取得部は、前記第１の管理部から前記第１の転送経路情報と前記第２の識別情報とを併せて取得し、取得した前記第２の識別情報を基に前記第２の管理部から前記第２の転送経路情報を取得する
ことを特徴とするパケット転送経路取得システム。
【請求項２】
第２の管理部は、第２の識別情報を含めた制御パケットを第１のネットワークへ送信し、
第１の管理部は、送信された前記制御パケットから取得した前記第２の識別情報を第１の転送経路情報に対応付ける
請求項１に記載のパケット転送経路取得システム。
【請求項３】
第１の管理部は、第１のネットワークと第２のネットワークを経由するパケットが初めて前記第１のネットワークを通過する場合、前記パケットの第１の転送経路情報の識別情報である第１の識別情報を含めた制御パケットを第２のネットワークへ送信し、第１の識別情報と第２の識別情報とを含んだ制御パケットが第１のネットワークへ送信された時に、前記第１の識別情報に対応する第１の転送経路情報に前記第２の識別情報を対応付ける
請求項２に記載のパケット転送経路取得システム。
【請求項４】
第１の管理部と第２の管理部は、第１のネットワークと第２のネットワークを経由するパケットの情報を基に送信する制御パケットを作成する
請求項２または請求項３に記載のパケット転送経路取得システム。
【請求項５】
第１の管理部と第２の管理部は、データフローを用いてネットワークを管理する
請求項１から請求項４のうちのいずれか１項に記載のパケット転送経路取得システム。
【請求項６】
第１のネットワークを管理し、前記第１のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第１の転送経路情報を記憶する第１の制御装置と、前記第１のネットワークと接続している第２のネットワークを管理し、前記第２のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第２の転送経路情報を記憶する第２の制御装置と、前記第１の制御装置と前記第２の制御装置とを管理する統合制御装置とを含むパケット転送経路取得システムにおいて実行されるパケット転送経路取得方法であって、
前記第２の制御装置は、前記第１のネットワークと前記第２のネットワークを経由するパケットの第２の転送経路情報を記憶し、
前記第１の制御装置は、前記パケットに対する第１の転送経路情報と、前記第２の転送経路情報の識別情報である第２の識別情報とを対応付けて記憶し、
前記統合制御装置は、前記第１の制御装置から前記第１の転送経路情報と前記第２の識別情報とを併せて取得し、
前記統合制御装置は、取得した前記第２の識別情報を基に前記第２の制御装置から前記第２の転送経路情報を取得する
ことを特徴とするパケット転送経路取得方法。
【請求項７】
第２の制御装置は、第２の識別情報を含めた制御パケットを第１のネットワークへ送信し、
第１の制御装置は、送信された前記制御パケットから取得した前記第２の識別情報を第１の転送経路情報に対応付ける
請求項６に記載のパケット転送経路取得方法。
【請求項８】
第１の制御装置は、第１のネットワークと第２のネットワークを経由するパケットが初めて前記第１のネットワークを通過する場合、前記パケットの第１の転送経路情報の識別情報である第１の識別情報を含めた制御パケットを第２のネットワークへ送信し、
前記第１の制御装置は、第１の識別情報と第２の識別情報とを含んだ制御パケットが第１のネットワークへ送信された時に、前記第１の識別情報に対応する第１の転送経路情報に前記第２の識別情報を対応付ける
請求項７に記載のパケット転送経路取得方法。
【請求項９】
第１の制御装置と第２の制御装置は、第１のネットワークと第２のネットワークを経由するパケットの情報を基に送信する制御パケットを作成する
請求項７または請求項８に記載のパケット転送経路取得方法。
【請求項１０】
第１の制御装置と第２の制御装置は、データフローを用いてネットワークを管理する
請求項６から請求項９のうちのいずれか１項に記載のパケット転送経路取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット転送経路取得システムおよびパケット転送経路取得方法に関する。
【背景技術】
【０００２】
ＯｐｅｎＦｌｏｗのようなＣ／Ｄ（Ｃｏｎｔｒｏｌ  ｐｌａｎｅ／Ｄａｔａ  ｐｌａｎｅ）分離型ネットワーク制御方式において、大規模な通信ネットワークが制御される場合には、複数のネットワークコントローラでネットワークの分散管理が行われる。
【０００３】
上記のようなＣ／Ｄ分離型の大規模ネットワークにおいて、送信元サーバから宛先サーバにパケットが送信される場合を想定する。その場合に、送信元サーバが接続されているスイッチを管理しているネットワークコントローラと、宛先サーバが接続されているスイッチを管理しているネットワークコントローラが異なっていると、パケットがネットワーク内のどのスイッチ、どのポートを経由したかを示す経路情報が、複数のネットワークコントローラにおいて分割された状態で管理される。
【０００４】
したがって、送信元サーバから宛先サーバへのパケットの経路情報を取得するためには、経路情報を管理する個々のネットワークコントローラに問い合わせて経路情報を取得することが求められる。
【０００５】
また、パケットの転送途中で、スイッチがパケットヘッダ部分を書き換える可能性もある。その場合、経路情報とともにパケットの書き換え情報も取得し、書き換え後のパケット情報を基に、次のネットワークコントローラに経路情報を問い合わせることが求められる。このように様々な手続が求められるため、異なるネットワークを跨って転送されるパケットの経路情報の取得には、時間を多く要する。
【０００６】
特許文献１には、ルータを介して他のネットワークとの通信を実現するクラスタ内ネットワークを管理するネットワークコントローラが、自クラスタ内ネットワークの経路情報を管理し、さらに、隣接するネットワークコントローラと経路情報を交換することによって、クラスタ間の経路情報を管理する方法が記載されている。
【０００７】
特許文献２には、複数のネットワークコントローラで分散管理されている仮想ネットワークを一元的に制御する方法および管理する方法が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２４６１２６号公報
【特許文献２】国際公開ＷＯ２０１３／１１８６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載された方法を使用した場合、ユーザは、パケットが送信元サーバから宛先サーバまでのどのルータを経由したかという経路情報を取得できる。しかし、クラスタ内ネットワークおよびクラスタ間ネットワークにおいて、ルータ間にブリッジ、またはレイヤ２スイッチが使用されている場合、ユーザは、パケットがどのブリッジを経由したかという経路情報を取得できない。その理由は、特許文献１に記載された方法がルータで構築されたネットワークのみを対象にしているためである。
【００１０】
また、特許文献２に記載された方法には、一元的に管理されたネットワークを流れるパケットの経路情報を取得する方法が含まれていない。
【００１１】
そこで、本発明は、複数のネットワークを経由して転送されるパケットのデータリンク層以下における転送経路を容易に取得できるパケット転送経路取得システムおよびパケット転送経路取得方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明によるパケット転送経路取得システムは、第１のネットワークを管理し、第１のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第１の転送経路情報を記憶する第１の管理部を含む第１の制御装置と、第１のネットワークと接続している第２のネットワークを管理し、第２のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第２の転送経路情報を記憶する第２の管理部を含む第２の制御装置と、第１の制御装置と第２の制御装置とを管理し、転送経路取得部を含む統合制御装置とを含み、第２の管理部は、第１のネットワークと第２のネットワークを経由するパケットの第２の転送経路情報を記憶し、第１の管理部は、パケットに対する第１の転送経路情報と、第２の転送経路情報の識別情報である第２の識別情報とを対応付けて記憶し、転送経路取得部は、第１の管理部から第１の転送経路情報と第２の識別情報とを併せて取得し、取得した第２の識別情報を基に第２の管理部から第２の転送経路情報を取得することを特徴とする。
【００１３】
本発明によるパケット転送経路取得方法は、第１のネットワークを管理し、第１のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第１の転送経路情報を記憶する第１の制御装置と、第１のネットワークと接続している第２のネットワークを管理し、第２のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第２の転送経路情報を記憶する第２の制御装置と、第１の制御装置と第２の制御装置とを管理する統合制御装置とを含むパケット転送経路取得システムにおいて実行されるパケット転送経路取得方法であって、第２の制御装置は、第１のネットワークと第２のネットワークを経由するパケットの第２の転送経路情報を記憶し、第１の制御装置は、パケットに対する第１の転送経路情報と、第２の転送経路情報の識別情報である第２の識別情報とを対応付けて記憶し、統合制御装置は、第１の制御装置から第１の転送経路情報と第２の識別情報とを併せて取得し、統合制御装置は、取得した第２の識別情報を基に第２の制御装置から第２の転送経路情報を取得することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、複数のネットワークを経由して転送されるパケットのデータリンク層以下における転送経路を容易に取得できる。
【図面の簡単な説明】
【００１５】
【図１】本発明によるパケット転送経路取得システムの第１の実施形態の構成例を示すブロック図である。
【図２】ネットワークコントローラ配下のパケット受信スイッチとパケット受信ポートおよびパケット送信スイッチとパケット送信ポートを示す説明図である。
【図３】統合ネットワークコントローラ４の構成例を示すブロック図である。
【図４】第１のネットワークコントローラ５の構成例を示すブロック図である。
【図５】第２のネットワークコントローラ６の構成例を示すブロック図である。
【図６】データフロー情報の一例を示す説明図である。
【図７】制御パケット生成部が生成する制御パケットの例を示す説明図である。
【図８】制御パケット受信部が生成する変換パケットの例を示す説明図である。
【図９】送信元サーバと宛先サーバとを通信可能に接続する仮想ネットワークの構成例を示す説明図である。
【図１０】ネットワークに新規にパケットが流入したときのネットワークコントローラの動作を示すフローチャートである。
【図１１】制御パケット生成部が生成する制御パケットと制御パケット受信部が生成する制御パケットの例を示す説明図である。
【図１２】送信された制御パケットに対するネットワークコントローラの動作を示すフローチャートである。
【図１３】送信されたパケットに対するネットワークコントローラの動作を示すフローチャートである。
【図１４】制御パケット生成部が生成する制御パケットと制御パケット受信部が生成する変換パケットの例を示す説明図である。
【図１５】送信された制御パケットに対するネットワークコントローラの動作を示すフローチャートである。
【図１６】転送経路を取得するときの統合ネットワークコントローラの動作を示すフローチャートである。
【図１７】本発明によるパケット転送経路取得システムの概要を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を図面を参照して説明する。図１は、本発明によるパケット転送経路取得システムの第１の実施形態の構成例を示すブロック図である。図１に示すパケット転送経路取得システム１は、スイッチ１１１〜１２４と、送信元サーバ２と、宛先サーバ３と、統合ネットワークコントローラ４と、第１のネットワークコントローラ５と、第２のネットワークコントローラ６とを含む。
【００１７】
パケット転送経路取得システム１は、例えば、ＯｐｅｎＦｌｏｗのようなＣ／Ｄ分離型ネットワーク制御方式を採用する。
【００１８】
送信元サーバ２は、パケットを送信する機能を有する。また、宛先サーバ３は、送信元サーバ２が送信したパケットを受信する機能を有する。
【００１９】
スイッチ１１１〜１１４は、第１のネットワークコントローラ５から設定された内容に従って、パケットを処理または転送する機能を有する。また、スイッチ１２１〜１２４は、第２のネットワークコントローラ６から設定された内容に従って、パケットを処理または転送する機能を有する。
【００２０】
なお、スイッチ１１１からスイッチ１１４までが、第１のネットワークコントローラ５配下のスイッチである。図２は、ネットワークコントローラ配下のパケット受信スイッチとパケット受信ポートおよびパケット送信スイッチとパケット送信ポートを示す説明図である。
【００２１】
図２（ａ）に示すように、第１のネットワークコントローラ５配下のスイッチの中で、最初にパケットを受信する端のスイッチをＩｎｇｒｅｓｓスイッチと呼ぶ。また、Ｉｎｇｒｅｓｓスイッチの中の、パケットを受信するポートをＩｎｇｒｅｓｓポートと呼ぶ。
【００２２】
また、図２（ａ）に示すように、第１のネットワークコントローラ５配下のスイッチの中で、宛先サーバ３または異なるネットワークコントローラ配下のスイッチに転送されるパケットを最後に処理する端のスイッチをＥｇｒｅｓｓスイッチと呼ぶ。また、Ｅｇｒｅｓｓスイッチの中の、パケットを送信するポートをＥｇｒｅｓｓポートと呼ぶ。
【００２３】
Ｉｎｇｒｅｓｓスイッチは、パケットを受信すると、ネットワークコントローラから設定されたパケットの処理情報に従ってパケットを処理する。しかし、受信したパケットに対する処理がネットワークコントローラから設定されていない場合、Ｉｎｇｒｅｓｓスイッチは、受信したパケットおよび関連情報を含んだ新規パケットメッセージを、第１のネットワークコントローラ５に通知する。
【００２４】
以上、Ｉｎｇｒｅｓｓスイッチ、Ｉｎｇｒｅｓｓポート、およびＥｇｒｅｓｓスイッチ、Ｅｇｒｅｓｓポートを、第１のネットワークコントローラ５配下のスイッチを用いて説明した。なお、図２（ｂ）に示すように、第２のネットワークコントローラ６配下のスイッチも同様に、最初にパケットを受信する端のスイッチおよび受信するポートを、それぞれＩｎｇｒｅｓｓスイッチおよびＩｎｇｒｅｓｓポートと呼ぶ。また、最後に処理する端のスイッチおよび送信するポートを、それぞれＥｇｒｅｓｓスイッチおよびＥｇｒｅｓｓポートと呼ぶ。
【００２５】
図３は、統合ネットワークコントローラ４の構成例を示すブロック図である。図３に示すように、統合ネットワークコントローラ４は、ネットワーク設定部４１と、転送経路表示部４２とを含む。
【００２６】
統合ネットワークコントローラ４は、複数のネットワークコントローラを管理するメタコントローラとしての機能を有する。本実施形態において、統合ネットワークコントローラ４は、第１のネットワークコントローラ５と、第２のネットワークコントローラ６とを管理する。
【００２７】
ネットワーク設定部４１は、管理下にある第１のネットワークコントローラ５および第２のネットワークコントローラ６に対してネットワーク設定を通知する機能を有する。各ネットワークコントローラは、通知されたネットワーク設定に基づいて、各ネットワークコントローラ配下のスイッチを制御する。
【００２８】
転送経路表示部４２は、パケットの転送経路を表示するために、配下の第１のネットワークコントローラ５および第２のネットワークコントローラ６に問い合わせ、データフローを取得する機能を有する。
【００２９】
データフローを取得するために、転送経路表示部４２は、送信元サーバ２が接続されているスイッチを管理している第１のネットワークコントローラ５に対して、送信元サーバ２のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）  ＩＤを指定してデータフローを要求する。転送経路表示部４２は、第１のネットワークコントローラ５からデータフローおよび隣接する第２のネットワークコントローラ６におけるデータフローＩＤを取得する。
【００３０】
次いで、転送経路表示部４２は、取得した第２のネットワークコントローラ６におけるデータフローＩＤを基に、第２のネットワークコントローラ６に対してデータフローを要求する。転送経路表示部４２は、第２のネットワークコントローラ６からデータフローＩＤに対応するデータフローを取得する。以上の処理により取得した一連のデータフローを組み合わせることで、転送経路表示部４２は、送信元サーバ２からのパケットの転送経路を求め、表示する。
【００３１】
図４は、第１のネットワークコントローラ５の構成例を示すブロック図である。また、図５は、第２のネットワークコントローラ６の構成例を示すブロック図である。第１のネットワークコントローラ５および第２のネットワークコントローラ６は、統合ネットワークコントローラ４から取得したネットワーク設定に基づいて、それぞれのネットワークコントローラ配下のスイッチを制御する機能を有する。
【００３２】
図４に示すように、第１のネットワークコントローラ５は、データフロー記憶部５１と、境界ポート記憶部５２と、制御パケット記憶部５３と、データフロー管理部５４と、スイッチ設定部５５と、パケット処理部５６とを含む。また、図５に示すように、第２のネットワークコントローラ６は、データフロー記憶部６１と、境界ポート記憶部６２と、制御パケット記憶部６３と、データフロー管理部６４と、スイッチ設定部６５と、パケット処理部６６とを含む。
【００３３】
データフロー記憶部５１は、第１のネットワークコントローラ５で生成されたデータフローに関連する情報を保存する。データフローは、ネットワークコントローラが新規パケットメッセージの中で受信したパケットをどのように処理するかを示す情報である。データフローには、パケットの転送経路情報、パケットに適用される処理および適用対象のパケットの条件（マッチ条件）などが含まれる。
【００３４】
データフロー記憶部５１に記憶されるデータフロー情報の例を図６に示す。図６は、データフロー情報の一例を示す説明図である。
【００３５】
図６に示すように、データフロー情報は、データフローＩＤと、データフローと、後方データフローＩＤとで構成される。
【００３６】
データフローＩＤは、対応するデータフロー情報の対象であるデータフローを示す。データフローは、データフローＩＤに対応する生成されたデータフローである。
【００３７】
後方データフローＩＤは、データフローＩＤに対応するフローに従うパケットが、更に後方ネットワークコントローラ管理下にあるネットワークを流れる場合に、パケットを流すためのフローに対応するデータフローＩＤである。後方データフローＩＤは、後方ネットワークコントローラによって管理されている。ネットワーク設定によっては、１つのフローに対して複数の後方フローが存在する場合がある。その場合、データフロー情報には複数の後方データフローＩＤが登録される。
【００３８】
境界ポート記憶部５２は、第１のネットワークコントローラ５配下のスイッチのポートのうち、異なるネットワークコントローラ配下のスイッチと接続されている境界ポートの情報を記憶する機能を有する。どのポートが境界ポートであるかを示す情報は、統合ネットワークコントローラ４が通知したネットワーク設定に含まれている。図１に示すシステムの構成例において、スイッチ１１４のＥｇｒｅｓｓポートが境界ポートに相当する。
【００３９】
制御パケット記憶部５３は、異なるネットワークコントローラ間で送受信される制御パケットを一時的に保存する機能を有する。制御パケット記憶部５３に保存される制御パケットは、前方ネットワークコントローラから送信されてきた制御パケットである。保存される制御パケットのペイロード部には、前方ネットワークコントローラのフローに関するデータフローＩＤが保存されている。
【００４０】
データフロー管理部５４は、第１のネットワークコントローラ５がＩｎｇｒｅｓｓスイッチから新規パケットメッセージを受信した時に、メッセージに含まれるパケットの転送経路や、パケットに対する処理内容などを含むデータフローを生成する機能を有する。データフロー管理部５４は、生成したデータフローを、各データフローを識別するためのデータフローＩＤとともに、データフロー記憶部５１に保存する。
【００４１】
スイッチ設定部５５は、第１のネットワークコントローラ５がＩｎｇｒｅｓｓスイッチから新規パケットメッセージを受信した時に、データフロー管理部５４が求めたパケットの転送経路にしたがい、経路におけるスイッチにパケットの処理情報を設定する機能を有する。
【００４２】
また、スイッチ設定部５５は、第１のネットワークコントローラ５が起動された時に、境界ポート記憶部５２を参照して、境界ポートを管理しているスイッチ１１４に対して、「制御パケットを受信した時に、受信したパケットの情報を新規パケットメッセージとして第１のネットワークコントローラ５に通知する」という処理情報を設定する。
【００４３】
パケット処理部５６は、出力用パケット生成部５６１と、制御パケット生成部５６２と、制御パケット受信部５６３とを有する。なお、図５に示すように、パケット処理部６６もパケット処理部５６と同様に、出力用パケット生成部６６１と、制御パケット生成部６６２と、制御パケット受信部６６３とを有する。
【００４４】
出力用パケット生成部５６１は、第１のネットワークコントローラ５がＩｎｇｒｅｓｓスイッチから新規パケットメッセージを受信した時に、データフロー管理部５４が求めたパケットへの処理内容をメッセージに含まれるパケットに適用する。処理内容を適用することによって、出力用パケット生成部５６１は、出力用パケットを生成し、Ｅｇｒｅｓｓスイッチに通知する。
【００４５】
制御パケット生成部５６２は、制御パケットを生成および送信する機能を有する。制御パケット生成部５６２は、第１のネットワークコントローラ５がＩｎｇｒｅｓｓスイッチから新規パケットメッセージを受信した時に、境界ポート記憶部５２を参照する。
【００４６】
新規パケットメッセージで受信したパケットが、前方ネットワークコントローラ配下のスイッチから転送されてきたパケットである場合、または後方ネットワークコントローラ配下のスイッチへ転送されるパケットである場合、制御パケット生成部５６２は、制御パケットを生成し送信する。すなわち、第１のネットワークコントローラ５で新しいデータフローが生成されたことが、隣接するネットワークに対して通知される。
【００４７】
受信したパケットが前方ネットワークコントローラから転送されてきたパケットの場合、制御パケット生成部５６２は、制御パケットを生成する。そして、制御パケット生成部５６２は、生成した制御パケットをＩｎｇｒｅｓｓポートから送信する。
【００４８】
図７は、制御パケット生成部が生成する制御パケットの例を示す説明図である。図７（ａ）に示すように、送信される制御パケットのパケットヘッダ部の、送信元ＭＡＣアドレスには受信したパケットの宛先ＭＡＣアドレスが、送信元ＩＰアドレスには受信したパケットの宛先ＩＰアドレスが、送信元レイヤ４（以下、Ｌ４と呼ぶ。）ポート番号には受信したパケットの宛先Ｌ４ポート番号がそれぞれ設定される。
【００４９】
また、制御パケットのパケットヘッダ部の、宛先ＭＡＣアドレスには受信したパケットの送信元ＭＡＣアドレスが、宛先ＩＰアドレスには受信したパケットの送信元ＩＰアドレスが、宛先Ｌ４ポート番号には受信したパケットの送信元Ｌ４ポート番号が、Ｅｔｈｅｒｎｅｔ（登録商標）タイプ番号（以下、イーサタイプと呼ぶ。）には専用のイーサタイプ（以下、専用イーサタイプと呼ぶ。）がそれぞれ設定される。
【００５０】
上記以外のパケットヘッダ部のフィールドには、受信したパケットと同じ値が設定される。なお、イーサタイプは、ＩＡＮＡ（Ｉｎｔｅｒｎｅｔ  Ａｓｓｉｇｎｅｄ  Ｎｕｍｂｅｒｓ  Ａｕｔｈｏｒｉｔｙ）によって管理されている。しかし、本実施形態では、ＩＡＮＡで使用されていない専用イーサタイプを使用する。このように、制御パケット生成部５６２は、受信したパケットの送信元と宛先を入れ替えることによって、制御パケットを生成する。
【００５１】
なお、制御パケットを識別するための手段として、本実施形態ではパケットのイーサタイプを使用しているが、パケットヘッダ部の他のフィールドを使用してもよい。
【００５２】
送信する制御パケットのペイロード部に値を設定する際に、制御パケット生成部５６２は、受信したパケットと同じパケットヘッダ部を持つ制御パケットが、制御パケット記憶部５３に保存されているか確認する。
【００５３】
制御パケットが保存されている場合、制御パケット生成部５６２は、保存されている制御パケットのペイロード部のデータフローＩＤと、受信したパケットに対してデータフロー管理部５４で生成されたデータフローのデータフローＩＤとの、２つのデータフローＩＤをペイロード部に設定する。設定した制御パケットを送信した後、制御パケット生成部５６２は、制御パケット記憶部５３に保存されていた制御パケットを削除する。
【００５４】
制御パケットが保存されていない場合、制御パケット生成部５６２は、受信したパケットに対してデータフロー管理部５４で生成されたデータフローのデータフローＩＤのみをペイロード部に設定する。
【００５５】
また、受信したパケットが後方ネットワークコントローラへ転送されるパケットの場合、制御パケット生成部５６２は、制御パケットを生成する。そして、制御パケット生成部５６２は、生成した制御パケットをＥｇｒｅｓｓポートから送信する。
【００５６】
図７（ｂ）に示すように、送信される制御パケットのパケットヘッダ部には、イーサタイプを除いて、出力用パケットのパケットヘッダ部の値と同じ値が設定される。イーサタイプには、専用イーサタイプが設定される。その結果、後方ネットワークコントローラ配下のスイッチへ転送される出力用パケットのパケットヘッダ部の値と、イーサタイプを除いて同じ値をパケットヘッダ部に持つ制御パケットが生成される。
【００５７】
制御パケット生成部５６２は、送信する制御パケットのペイロード部に、受信したパケットに対してデータフロー管理部５４で生成されたデータフローのデータフローＩＤを設定する。さらに、制御パケット生成部５６２は、制御パケットに要応答フラグも設定する。
【００５８】
要応答フラグは、要応答フラグが設定された制御パケットが、前方ネットワークコントローラから後方ネットワークコントローラへ送信される制御パケットであることを示す情報である。要応答フラグが設定された制御パケットを受信したネットワークコントローラは、応答用の制御パケットを送信する。
【００５９】
制御パケット受信部５６３は、第１のネットワークコントローラ５がＩｎｇｒｅｓｓスイッチから新規パケットメッセージを受信した時に、メッセージに含まれるパケットのイーサタイプが専用イーサタイプである場合に、制御パケット受信処理を行う機能を有する。
【００６０】
受信した制御パケットに要応答フラグが付いている場合、受信した制御パケットは、前方ネットワークコントローラが送信した制御パケットであることを意味する。この場合、制御パケット受信部５６３は、受信した制御パケットを制御パケット記憶部５３に保存する。保存した後、制御パケット受信部５６３は、所定時間経過後に制御パケット記憶部５３に制御パケットが保存されたままか否かを確認する。なお、所定時間は、例えば１０秒である。
【００６１】
制御パケットが既に保存されていない場合、所定時間の間に新規のデータフローが生成され、データフロー生成に伴う制御パケットが前方ネットワークコントローラに対して既に送信されている。以降、制御パケット受信部５６３は、制御パケットを送信しない。
【００６２】
制御パケットがまだ保存されたままの場合、制御パケット受信部５６３は、データフロー記憶部５１に保存されている各データフローのマッチ条件と、受信した制御パケットのパケットヘッダ部とを比較する。比較することによって、制御パケット受信部５６３は、第１のネットワークコントローラ５が管理しているデータフローの中に、受信した制御パケットが流れるフローに対応するデータフローがあるか否かを確認する。
【００６３】
マッチするデータフローがある場合、前方ネットワークコントローラで生成されたデータフローが、第１のネットワークコントローラ５の既存のデータフローとつながる。制御パケット受信部５６３は、前方ネットワークに対して、マッチしたデータフローの情報を含めた応答用の制御パケットを送信する。
【００６４】
図７（ａ）に示すように、応答用の制御パケットのパケットヘッダ部の、送信元ＭＡＣアドレスには受信した制御パケットの宛先ＭＡＣアドレスが、送信元ＩＰアドレスには受信した制御パケットの宛先ＩＰアドレスが、送信元Ｌ４ポート番号には受信した制御パケットの宛先Ｌ４ポート番号がそれぞれ設定される。
【００６５】
また、応答用の制御パケットのパケットヘッダ部の、宛先ＭＡＣアドレスには受信した制御パケットの送信元ＭＡＣアドレスが、宛先ＩＰアドレスには受信した制御パケットの送信元ＩＰアドレスが、宛先Ｌ４ポート番号には受信した制御パケットの送信元Ｌ４ポート番号が、イーサタイプには専用イーサタイプがそれぞれ設定される。
【００６６】
上記以外のパケットヘッダ部のフィールドには、受信した制御パケットと同じ値が設定される。このように、制御パケット受信部５６３は、受信した制御パケットの送信元と宛先を入れ替えることによって制御パケットを生成する。
【００６７】
制御パケット受信部５６３は、応答用の制御パケットのペイロード部に、受信した制御パケットのペイロード部に保存されていた前方ネットワークコントローラのデータフローＩＤと、比較によりマッチしたデータフローのデータフローＩＤとを設定する。
【００６８】
マッチするデータフローがない場合、制御パケットにマッチするデータフローが新規に作成された時に、データフロー作成に伴う制御パケットが前方ネットワークコントローラに送信される。よって、制御パケット受信部５６３は、制御パケットを送信しない。
【００６９】
受信した制御パケットに要応答フラグが付いていない場合、受信した制御パケットは、後方ネットワークコントローラが送信した制御パケットであることを意味する。この場合、制御パケット受信部５６３は、受信した制御パケットのペイロード部に含まれているデータフローＩＤを参照する。
【００７０】
ペイロード部に第１のネットワークコントローラ５でのデータフローＩＤと後方ネットワークコントローラでのデータフローＩＤの２つが保存されている場合、受信した制御パケットは、応答用の制御パケットであることを意味する。この場合、制御パケット受信部５６３は、データフロー記憶部５１に記憶されている、ペイロード部に保存されていた第１のネットワークコントローラ５でのデータフローＩＤに該当するデータフロー情報の後方データフローＩＤとして、ペイロード部に含まれていた後方ネットワークコントローラでのデータフローＩＤを保存する。
【００７１】
ペイロード部に後方ネットワークコントローラでのデータフローＩＤのみが保存されている場合、後方ネットワークコントローラで新しくデータフローが生成されたことを意味する。この場合、制御パケット受信部５６３は、後方ネットワークコントローラのデータフローＩＤを第１のネットワークコントローラ５の既存のデータフローと結びつける。
【００７２】
図８は、制御パケット受信部が生成する変換パケットの例を示す説明図である。図８に示すように、制御パケット受信部５６３は、受信した制御パケットのパケットヘッダ部を参照して、送信元と宛先を入れ替えた変換パケットを生成する。
【００７３】
制御パケット受信部５６３は、生成した変換パケットのパケットヘッダ部と、データフロー記憶部５１に保存されている各データフローの、パケットのマッチ条件およびパケットに適用される処理を基に、ペイロード部に保存された後方ネットワークコントローラのデータフローＩＤと結びつく、第１のネットワークコントローラ５でのデータフローを求める。
【００７４】
制御パケット受信部５６３は、求めたデータフローＩＤに該当するデータフロー情報の後方データフローＩＤとして、ペイロード部に保存されていた後方ネットワークコントローラでのデータフローＩＤを保存する。
【００７５】
なお、図５に示す第２のネットワークコントローラ６に含まれるデータフロー記憶部６１、境界ポート記憶部６２、制御パケット記憶部６３、データフロー管理部６４、スイッチ設定部６５およびパケット処理部６６は、それぞれデータフロー記憶部５１、境界ポート記憶部５２、制御パケット記憶部５３、データフロー管理部５４、スイッチ設定部５５およびパケット処理部５６と同様の処理を行う。また、パケット処理部６６に含まれる出力用パケット生成部６６１、制御パケット生成部６６２および制御パケット受信部６６３も、それぞれ出力用パケット生成部５６１、制御パケット生成部５６２および制御パケット受信部５６３と同様の処理を行うため、第２のネットワークコントローラ６に含まれる各部の説明は省略する。
【００７６】
なお、本実施形態におけるパケット転送経路取得システム１において、スイッチ１１１〜１２４、送信元サーバ２、宛先サーバ３、統合ネットワークコントローラ４、第１のネットワークコントローラ５および第２のネットワークコントローラ６は、例えば、プログラムに従って処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって実現される。また、スイッチ１１１〜１２４、送信元サーバ２、宛先サーバ３、統合ネットワークコントローラ４、第１のネットワークコントローラ５および第２のネットワークコントローラ６は、ハードウェアによって実現されてもよい。
【００７７】
また、ネットワーク設定部４１、転送経路表示部４２、データフロー管理部５４、スイッチ設定部５５、パケット処理部５６、データフロー管理部６４、スイッチ設定部６５およびパケット処理部６６は、例えば、プログラム制御に従って処理を実行するＣＰＵによって実現される。
【００７８】
また、データフロー記憶部５１、境界ポート記憶部５２、制御パケット記憶部５３、データフロー記憶部６１、境界ポート記憶部６２および制御パケット記憶部６３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で実現される。
【００７９】
以下、本実施形態のパケット転送経路取得システム１の動作を説明する。ここでは、図１に示すネットワーク構成において、ＭＡＣアドレスがＭＡＣ１、ＩＰアドレスがＩＰ１、ＶＬＡＮ  ＩＤがＶＬＡＮ１である送信元サーバ２から、ＭＡＣアドレスがＭＡＣ２、ＩＰアドレスがＩＰ２、ＶＬＡＮ  ＩＤがＶＬＡＮ２である宛先サーバ３までパケットが転送される場合を例に説明する。
【００８０】
また、図９は、送信元サーバと宛先サーバとを通信可能に接続する仮想ネットワークの構成例を示す説明図である。図９に示すように、第１のネットワークコントローラ５のネットワーク設定として仮想ブリッジが設定され、第２のネットワークコントローラ６のネットワーク設定として仮想ルータが設定されているとする。
【００８１】
図９に示すように、仮想ルータの仮想ブリッジ側のポートに割り当てられているＭＡＣアドレスをＭＡＣ１’、仮想ルータの宛先サーバ３側のポートに割り当てられているＭＡＣアドレスをＭＡＣ２’とする。また、仮想ブリッジと仮想ルータの間のリンクで使用されるＶＬＡＮ  ＩＤをＶＬＡＮ１’とする。図９に示す仮想ブリッジおよび仮想ルータのそれぞれで、ＶＬＡＮ  ＩＤやＭＡＣアドレスが変換される。
【００８２】
また、第１のネットワークコントローラ５および第２のネットワークコントローラ６が起動された時には、スイッチ設定部５５およびスイッチ設定部６５が境界ポート記憶部５２および境界ポート記憶部６２をそれぞれ参照する。そして、スイッチ設定部５５およびスイッチ設定部６５は、境界ポートを管理しているスイッチに対して、「制御パケットを受信した時に、受信したパケットの情報を新規パケットメッセージとしてネットワークコントローラに通知する」ための処理情報を設定するとする。
【００８３】
図１０は、ネットワークに新規にパケットが流入したときのネットワークコントローラの動作を示すフローチャートである。
【００８４】
送信元サーバ２が宛先サーバ３に対してパケットを送信すると（ステップＡ１）、第１のネットワークコントローラ５におけるＩｎｇｒｅｓｓスイッチであるスイッチ１１１が送信されたパケットを受信する（ステップＡ２）。
【００８５】
パケットを受信したスイッチ１１１は、既に第１のネットワークコントローラ５からパケットの処理情報が設定されているか否か確認する（ステップＡ３）。
【００８６】
既にパケットの処理情報が設定されている場合（ステップＡ３のＹＥＳ）、スイッチ１１１は、設定された処理に基づいてパケットをＥｇｒｅｓｓスイッチであるスイッチ１１４まで転送する（ステップＡ４）。次いで、パケットは、スイッチ１１４から、第２のネットワークコントローラ６配下のＩｎｇｒｅｓｓスイッチであるスイッチ１２１へ転送される（ステップＡ１１）。転送された後、スイッチ１１４は、処理を終了する。
【００８７】
パケットの処理情報が設定されていない場合（ステップＡ３のＮＯ）、スイッチ１１１は、新規パケットメッセージを第１のネットワークコントローラ５に通知する（ステップＡ５）。
【００８８】
データフロー管理部５４は、新規パケットメッセージを受信すると、メッセージに含まれるパケットの転送経路やパケットに対する処理内容などを含むデータフローを生成する。そして、データフロー管理部５４は、各データフローを識別するためのデータフローＩＤとともに、生成したデータフローをデータフロー記憶部５１に保存する（ステップＡ６）。
【００８９】
次いで、スイッチ設定部５５が、生成されたデータフローに基づいて、経路におけるスイッチにパケットの処理情報を設定する（ステップＡ７）。次いで、出力用パケット生成部５６１が、通知された新規パケットメッセージに含まれるパケットに対して、生成されたデータフローに含まれるパケットへの処理内容を適用した出力用パケットを生成する（ステップＡ８）。
【００９０】
次いで、制御パケット生成部５６２は、受信したパケットを基に制御パケットを生成する。図１１は、制御パケット生成部が生成する制御パケットと制御パケット受信部が生成する制御パケットの例を示す説明図である。
【００９１】
受信したパケットが第２のネットワークコントローラ６配下のスイッチへ転送されるパケットなので、制御パケット生成部５６２は、図１１（ａ）に示すような制御パケットを生成する。制御パケットを生成する時、制御パケット生成部５６２は、ペイロード部に生成されたデータフローのデータフローＩＤを設定する。生成した後、制御パケット生成部５６２は、制御パケットをＥｇｒｅｓｓポートから送信する（ステップＡ９）。
【００９２】
次いで、出力用パケット生成部５６１が、ステップＡ８で生成された出力用パケットをＥｇｒｅｓｓスイッチに通知する（ステップＡ１０）。以上の動作により、送信元サーバ２から宛先サーバ３に対して送信されたパケットが、第１のネットワークコントローラ５配下のＥｇｒｅｓｓスイッチから、第２のネットワークコントローラ６配下のＩｎｇｒｅｓｓスイッチであるスイッチ１２１へ転送される（ステップＡ１１）。転送された後、出力用パケット生成部５６１は、処理を終了する。
【００９３】
次に、第１のネットワークコントローラ５で新規データフローが作成される場合に、ステップＡ９で送信される制御パケットに対する処理を説明する。図１２は、送信された制御パケットに対するネットワークコントローラの動作を示すフローチャートである。
【００９４】
第１のネットワークコントローラ５配下のＥｇｒｅｓｓスイッチから転送された制御パケットを、第２のネットワークコントローラ６配下のＩｎｇｒｅｓｓスイッチであるスイッチ１２１が受信する（ステップＢ１）。
【００９５】
スイッチ１２１は、第２のネットワークコントローラ６が起動された時に設定された処理情報に基づいて、受信した制御パケットに関する新規パケットメッセージを第２のネットワークコントローラ６に通知する（ステップＢ２）。
【００９６】
次いで、制御パケット受信部６６３は、受信した制御パケットを制御パケット記憶部６３に保存する（ステップＢ３）。所定時間経過した後（ステップＢ４）、制御パケット受信部６６３は、制御パケット記憶部６３に制御パケットが保存されたままか否か確認する（ステップＢ５）。
【００９７】
制御パケットが既に保存されていない場合（ステップＢ５のＮＯ）、制御パケット受信部６６３は、制御パケットに対して処理を行わない。
【００９８】
制御パケットがまだ保存されたままの場合（ステップＢ５のＹＥＳ）、制御パケット受信部６６３は、データフロー記憶部６１に保存されている各データフローのマッチ条件と、受信した制御パケットのパケットヘッダ部とを比較する。比較することによって、制御パケット受信部６６３は、第２のネットワークコントローラ６が管理しているデータフローの中に、受信した制御パケットが流れるフローに対応するデータフローがあるか否かを確認する（ステップＢ６）。
【００９９】
データフローがある場合（ステップＢ６のＹＥＳ）、制御パケット受信部６６３は、図１１（ｂ）に示すような応答用の制御パケットを作成する。制御パケットを生成する時、制御パケット受信部６６３は、応答用の制御パケットのペイロード部に、受信した制御パケットのペイロード部に保存されていた第１のネットワークコントローラ５でのデータフローＩＤと、ステップＢ６で抽出した第２のネットワークコントローラ６でのデータフローに対応するデータフローＩＤの２つを設定する。
【０１００】
制御パケット受信部６６３は、作成した応答用の制御パケットを第１のネットワークに向けて送信する（ステップＢ７）。送信した後、制御パケット受信部６６３は、処理を終了する。
【０１０１】
データフローがない場合（ステップＢ６のＮＯ）、制御パケット受信部６６３は、制御パケットに対して何も行わずに、処理を終了する。
【０１０２】
次に、第２のネットワークコントローラ６配下のＩｎｇｒｅｓｓスイッチであるスイッチ１２１へ転送された、送信元サーバ２から宛先サーバ３に対して送信されたパケットに対する処理を説明する。図１３は、送信されたパケットに対するネットワークコントローラの動作を示すフローチャートである。
【０１０３】
第２のネットワークコントローラ６におけるＩｎｇｒｅｓｓスイッチであるスイッチ１２１が、転送されてきたパケットを受信する（ステップＣ１）。スイッチ１２１は、既に第２のネットワークコントローラ６からパケットの処理情報が設定されているか否か確認する（ステップＣ２）。
【０１０４】
既にパケットの処理情報が設定されている場合（ステップＣ２のＹＥＳ）、スイッチ１２１は、設定された処理情報に基づいてパケットをＥｇｒｅｓｓスイッチであるスイッチ１２４まで転送する（ステップＣ３）。次いで、スイッチ１２４は、パケットを宛先サーバ３へ転送する（ステップＣ１３）。パケットが転送された後、スイッチ１２４は、処理を終了する。
【０１０５】
パケットの処理情報が設定されていない場合（ステップＣ２のＮＯ）、スイッチ１２１は、新規パケットメッセージを第２のネットワークコントローラ６に通知する（ステップＣ４）。
【０１０６】
データフロー管理部６４は、新規パケットメッセージを受信すると、メッセージに含まれるパケットの転送経路やパケットに対する処理内容などを含むデータフローを生成する。そして、データフロー管理部６４は、各データフローを識別するためのデータフローＩＤとともに、生成したデータフローをデータフロー記憶部６１に保存する（ステップＣ５）。
【０１０７】
次いで、スイッチ設定部６５が、生成されたデータフローに基づいて、経路におけるスイッチにパケットの処理情報を設定する（ステップＣ６）。次いで、出力用パケット生成部６６１が、通知された新規パケットメッセージに含まれるパケットに対して、生成されたデータフローに含まれるパケットへの処理内容を適用した出力用パケットを生成する（ステップＣ７）。
【０１０８】
次いで、制御パケット生成部６６２は、新規パケットメッセージで受信したパケットのパケットヘッダ部と同じパケットヘッダ部を持つ制御パケットが、制御パケット記憶部６３に保存されているか否か確認する（ステップＣ８）。
【０１０９】
制御パケットが保存されていれば（ステップＣ８のＹＥＳ）、制御パケット生成部６６２は、保存されている制御パケットのペイロード部に含まれているデータフローＩＤと、受信したパケットに対してデータフロー管理部６４で生成されたデータフローに対応するデータフローＩＤの、２つのデータフローＩＤをペイロード部に設定した制御パケットを生成する。
【０１１０】
生成した後、制御パケット生成部６６２は、制御パケットをＩｎｇｒｅｓｓポートから送信する（ステップＣ９）。また、制御パケット生成部６６２は、保存されていた制御パケットを削除する（ステップＣ１０）。
【０１１１】
制御パケットが保存されていなければ（ステップＣ８のＮＯ）、制御パケット生成部６６２は、受信したパケットに対してデータフロー管理部６４で生成されたデータフローに対応するデータフローＩＤのみをペイロード部に設定した制御パケットを生成する。
【０１１２】
図１４は、制御パケット生成部が生成する制御パケットと制御パケット受信部が生成する変換パケットの例を示す説明図である。制御パケット生成部６６２は、図１４（ａ）に示すような制御パケットを生成する。生成した後、制御パケット生成部６６２は、制御パケットをＩｎｇｒｅｓｓポートから送信する（ステップＣ１１）。
【０１１３】
次いで、出力用パケット生成部６６１は、ステップＣ７で生成した出力用パケットをＥｇｒｅｓｓスイッチに通知する（ステップＣ１２）。以上の動作により、送信元サーバ２から宛先サーバ３に対して送信されたパケットが、第２のネットワークコントローラ６配下のＥｇｒｅｓｓスイッチから、宛先サーバ３へ転送される（ステップＣ１３）。パケットが転送された後、出力用パケット生成部６６１は、処理を終了する。
【０１１４】
次に、ステップＢ７、ステップＣ９およびステップＣ１１で、第２のネットワークから第１のネットワークに向けて送信される制御パケットに対する処理を説明する。図１５は、送信された制御パケットに対するネットワークコントローラの動作を示すフローチャートである。
【０１１５】
第２のネットワークコントローラ６配下のＩｎｇｒｅｓｓスイッチから転送された制御パケットを、第１のネットワークコントローラ５配下のＥｇｒｅｓｓスイッチであるスイッチ１１４が受信する（ステップＤ１）。
【０１１６】
スイッチ１１４は、第１のネットワークコントローラ５が起動された時に設定された処理情報に基づいて、受信した制御パケットに関する新規パケットメッセージを第１のネットワークコントローラ５に通知する（ステップＤ２）。
【０１１７】
次いで、制御パケット受信部５６３は、受信した制御パケットのペイロード部を参照して、第１のネットワークコントローラ５でのデータフローＩＤと後方ネットワークコントローラでのデータフローＩＤの２つが保存されているか否か確認する（ステップＤ３）。
【０１１８】
２つのデータフローＩＤが保存されている場合（ステップＤ３の２）、制御パケット受信部５６３は、データフロー記憶部５１に保存されている、ペイロード部に保存されていた第１のネットワークコントローラ５でのデータフローＩＤに該当するデータフロー情報の後方データフローＩＤとして、ペイロード部に保存されていた後方ネットワークコントローラでのデータフローＩＤを保存する（ステップＤ４）。保存した後、制御パケット受信部５６３は、処理を終了する。
【０１１９】
１つのデータフローＩＤのみ保存されている場合（ステップＤ３の１）、制御パケット受信部５６３は、受信した制御パケットのパケットヘッダ部を参照して、図１４（ｂ）に示すような、送信元と宛先を入れ替えた変換パケットを生成する（ステップＤ５）。
【０１２０】
次いで、制御パケット受信部５６３は、生成した変換パケットのパケットヘッダ部と、データフロー記憶部５１に保存されている各データフローの、パケットに適用される処理およびパケットのマッチ条件を基に、ペイロード部に保存された後方ネットワークコントローラのデータフローＩＤと結びつく、第１のネットワークコントローラ５でのデータフローを求める（ステップＤ６）。
【０１２１】
求めたデータフローの後方データフローＩＤとして、制御パケット受信部５６３は、ペイロード部に保存されていた後方ネットワークコントローラでのデータフローＩＤを保存する（ステップＤ７）。保存した後、制御パケット受信部５６３は、処理を終了する。
【０１２２】
このように、ネットワークコントローラ間で制御パケットが送受信されることによって、パケット転送経路取得システムは、事前にフロー間の関連性を把握する。
【０１２３】
次に、転送経路を求めるための統合ネットワークコントローラ４の動作を説明する。図１６は、転送経路を取得するときの統合ネットワークコントローラの動作を示すフローチャートである。
【０１２４】
統合ネットワークコントローラ４の転送経路表示部４２は、送信元サーバ２が接続されているスイッチ１１１を管理している第１のネットワークコントローラ５に対して、送信元サーバ２のＭＡＣアドレス（ＭＡＣ１）、ＩＰアドレス（ＩＰ１）、ＶＬＡＮ  ＩＤ（ＶＬＡＮ１）をそれぞれ指定し、データフローを要求する。これらの情報を指定することによって、転送経路表示部４２は、送信元サーバ２が起点である１つ以上のデータフローおよび隣接するネットワークコントローラでのデータフローＩＤを取得する（ステップＥ１）。
【０１２５】
次いで、転送経路表示部４２は、取得した隣接するネットワークコントローラでのデータフローＩＤの数を確認する（ステップＥ２）。データフローＩＤの数が０である場合（ステップＥ２の０）、データフローを取得したネットワークコントローラによって管理されているネットワークで、全てのフローが終端していることを意味する。データフローＩＤが取得されない場合、転送経路表示部４２は、処理を終了する。
【０１２６】
取得した隣接するネットワークコントローラでのデータフローＩＤの数が１以上である場合（ステップＥ２の１以上）、転送経路表示部４２は、取得したデータフローに含まれるパケットに対する処理内容を基に、第１のネットワークコントローラ５配下の各スイッチをパケットが通過した時点でのＭＡＣアドレス（ＭＡＣ１）、ＩＰアドレス（ＩＰ１）、ＶＬＡＮ  ＩＤ（ＶＬＡＮ１’）をそれぞれ求める（ステップＥ３）。転送経路表示部４２は、求めた各情報を指定し、隣接する第２のネットワークコントローラ６に対してデータフローを要求する。
【０１２７】
転送経路表示部４２は、第２のネットワークコントローラ６に対して、最初のステップＥ１で取得したデータフローＩＤに対応するデータフローおよび隣接するネットワークコントローラでのデータフローＩＤを取得する。
【０１２８】
第２のネットワークコントローラ６から取得される隣接するネットワークコントローラでのデータフローＩＤの数が０なので（ステップＥ２の０）、転送経路表示部４２は、隣接するネットワークコントローラへのデータフロー要求を終了する。
【０１２９】
転送経路表示部４２は、取得したデータフローを組み合わせることによって、送信元サーバ２から宛先サーバ３へのパケットの転送経路を求めることができる。
【０１３０】
本実施形態のパケット転送経路取得システムを使用する場合、複数のネットワークコントローラで管理されるような大規模ネットワークにおけるパケットの転送経路を、時間を多くかけずに表示できる。その理由は、パケット転送経路取得システムが、データフロー記憶部においてデータフローごとに後方データフローＩＤを管理しており、転送経路表示部が第１のネットワークコントローラからデータフローを取得する時に第２のネットワークコントローラでのデータフローＩＤも取得し、第２のネットワークコントローラに対して、取得したデータフローＩＤを基にデータフローを取得するよう構成されているためである。
【０１３１】
本実施形態のパケット転送経路取得システムは、ネットワークコントローラがＩｎｇｒｅｓｓスイッチから新規パケットメッセージを受信し、パケットの転送経路やパケットに対する処理内容などを含むデータフローを生成する時に、隣接するネットワークに対して、生成したデータフローを識別するためのデータフローＩＤを含む制御パケットを送信する。また、より送信元サーバに近い前方ネットワークから制御パケットを受信した時に、受信したパケットに含まれているデータを基に、前方ネットワークを流れてきたパケットが、自ネットワークコントローラが管理するどのフローに従って流れるかを調べ、求めたフローに対応するデータフローＩＤと、受信した制御パケットに含まれている前方ネットワークコントローラでのデータフローＩＤを制御パケットに含め、前方ネットワークに対して送信する。このように、ネットワークコントローラ間で制御パケットが送受信されることによって事前にフロー間の関連性が把握されるため、ユーザは、転送経路情報の問い合わせを受けた時でも、時間をかけずに情報を提示できる。
【０１３２】
次に、本発明の概要を説明する。図１７は、本発明によるパケット転送経路取得システムの概要を示すブロック図である。本発明によるパケット転送経路取得システム１０は、第１のネットワークを管理し、第１のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第１の転送経路情報を記憶する第１の管理部５７（例えば、データフロー記憶部５１）を含む第１の制御装置５０（例えば、第１のネットワークコントローラ５）と、第１のネットワークと接続している第２のネットワークを管理し、第２のネットワーク内のパケットのデータリンク層以下における転送経路の情報である第２の転送経路情報を記憶する第２の管理部６７（例えば、データフロー記憶部６１）を含む第２の制御装置６０（例えば、第２のネットワークコントローラ６）と、第１の制御装置５０と第２の制御装置６０とを管理し、転送経路取得部４３（例えば、転送経路表示部４２）を含む統合制御装置４０（例えば、統合ネットワークコントローラ４）とを含み、第２の管理部６７は、第１のネットワークと第２のネットワークを経由するパケットの第２の転送経路情報を記憶し、第１の管理部５７は、パケットに対する第１の転送経路情報と、第２の転送経路情報の識別情報である第２の識別情報とを対応付けて記憶し、転送経路取得部４３は、第１の管理部５７から第１の転送経路情報と第２の識別情報とを併せて取得し、取得した第２の識別情報を基に第２の管理部６７から第２の転送経路情報を取得する。
【０１３３】
そのような構成により、パケット転送経路取得システムは、複数のネットワークを経由して転送されるパケットのデータリンク層以下における転送経路を容易に取得できる。
【０１３４】
また、第２の管理部６７は、第２の識別情報を含めた制御パケットを第１のネットワークへ送信し、第１の管理部５７は、送信された制御パケットから取得した第２の識別情報を第１の転送経路情報に対応付けてもよい。
【０１３５】
そのような構成により、パケット転送経路取得システムは、ネットワークコントローラ間で制御パケットを送受信することによって、事前にデータフロー間の関連性を把握できる。
【０１３６】
また、第１の管理部５７は、第１のネットワークと第２のネットワークを経由するパケットが初めて第１のネットワークを通過する場合、パケットの第１の転送経路情報の識別情報である第１の識別情報を含めた制御パケットを第２のネットワークへ送信し、第１の識別情報と第２の識別情報とを含んだ制御パケットが第１のネットワークへ送信された時に、第１の識別情報に対応する第１の転送経路情報に第２の識別情報を対応付けてもよい。
【０１３７】
そのような構成により、パケット転送経路取得システムは、ネットワークコントローラがパケットのデータフローを作成する場合でも、当該パケットが経由する複数のネットワークにおける各データフローを対応付けることができる。
【０１３８】
また、第１の管理部５７と第２の管理部６７は、第１のネットワークと第２のネットワークを経由するパケットの情報を基に送信する制御パケットを作成してもよい。
【０１３９】
そのような構成により、パケット転送経路取得システムは、制御パケットを受信したネットワークコントローラに、制御パケットに対応するデータフローを、パケットに適用するデータフローを検索するときと同様に検索させることができる。
【０１４０】
また、第１の管理部５７と第２の管理部６７は、データフローを用いてネットワークを管理してもよい。
【０１４１】
そのような構成により、パケット転送経路取得システムは、データフローに含まれるパケット転送経路情報から、データリンク層以下におけるパケットの転送経路を取得できる。
【産業上の利用可能性】
【０１４２】
本発明は、ＯｐｅｎＦｌｏｗを始めとするＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）の分野に好適に適用される。
【符号の説明】
【０１４３】
１、１０  パケット転送経路取得システム
２  送信元サーバ
３  宛先サーバ
４  統合ネットワークコントローラ
５  第１のネットワークコントローラ
６  第２のネットワークコントローラ
４０  統合制御装置
４１  ネットワーク設定部
４２  転送経路表示部
４３  転送経路取得部
５０  第１の制御装置
５１、６１  データフロー記憶部
５２、６２  境界ポート記憶部
５３、６３  制御パケット記憶部
５４、６４  データフロー管理部
５５、６５  スイッチ設定部
５６、６６  パケット処理部
５７  第１の管理部
６０  第２の制御装置
６７  第２の管理部
１１１〜１２４  スイッチ
５６１、６６１  出力用パケット生成部
５６２、６６２  制御パケット生成部
５６３、６６３  制御パケット受信部
【図１】
2015162834.tif 000003
【図２】
2015162834.tif 000004
【図３】
2015162834.tif 000005
【図４】
2015162834.tif 000006
【図５】
2015162834.tif 000007
【図６】
2015162834.tif 000008
【図７】
2015162834.tif 000009
【図８】
2015162834.tif 000010
【図９】
2015162834.tif 000011
【図１０】
2015162834.tif 000012
【図１１】
2015162834.tif 000013
【図１２】
2015162834.tif 000014
【図１３】
2015162834.tif 000015
【図１４】
2015162834.tif 000016
【図１５】
2015162834.tif 000017
【図１６】
2015162834.tif 000018
【図１７】
2015162834.tif 000019