(57)【要約】  オープンフローネットワークにおいて、端末から転送されてくるパケットの送信元ＭＡＣアドレス（Ｓｏｕｒｃｅ  ＭＡＣ）とポート番号（ｐｏｒｔ情報）のみ用いて、ノード装置群に接続されている端末が、どのノード装置の何番ポートに接続されているか特定する。具体的には、ノード装置が、端末からノード装置宛に送られたパケットのポート番号及び送信元ＭＡＣアドレス（Ｓｏｕｒｃｅ  ＭＡＣ）情報の組と、前段検索テーブルに保持されているポート番号及びＭＡＣアドレス情報の組とを比較し、適合（マッチ）するか確認する。適合（マッチ）しない場合、ノード装置は、制御装置にオープンフローの問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）機能を用いて通知する。更に、ノード装置は、パケットの宛先ＭＡＣアドレス（Ｄｅｓｔｉｎａｔｉｏｎ  ＭＡＣ）情報と、後段検索テーブルに保持されているＭＡＣアドレス情報の組とを比較し、適合（マッチ）するか確認する。
2012137646.tif 000002
【特許請求の範囲】
【請求項１】
パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うノード装置と、
前記ノード装置に対して、前記フローエントリを設定する制御装置と
を含み、
前記ノード装置は、端末からパケットを受信した際、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組を前記制御装置に通知し、
前記制御装置は、前記ノード装置からの通知に基づいて、前記パケットの送信元の端末のネットワーク上の現在位置を認識する
ネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムであって、
前記ノード装置は、
前記ノード装置が保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合しない場合、前記パケットに基づく第１の問い合わせパケットを生成し、前記制御装置宛に前記第１の問い合わせパケットを送信する手段と、
前記ノード装置が保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合しない場合、前記パケットに基づく第２の問い合わせパケットを生成し、前記制御装置宛に前記第２の問い合わせパケットを送信する手段と
を具備し、
前記制御装置は、
前記第１の問い合わせパケットの内容を基に、前記端末のＭＡＣアドレス情報と前記端末が接続されたポートを示すポート番号とを管理する手段と、
前記第１及び第２の問い合わせパケットの内容を基に、前記ノード装置が保有している情報を更新する手段と
を具備する
ネットワークシステム。
【請求項３】
請求項２に記載のネットワークシステムであって、
前記ノード装置は、
前記ノード装置が保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合する場合、前記ノード装置が保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較する手段と、
前記ノード装置が保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合する場合、前記パケットを転送する手段と
を更に具備する
ネットワークシステム。
【請求項４】
端末からパケットを受信した際、前記パケットの送信元の端末のネットワーク上の現在位置情報として、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組を制御装置に通知する手段と、
前記制御装置からの制御に応じて、前記パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを登録する手段と
を具備する
ノード装置。
【請求項５】
請求項４に記載のノード装置であって、
保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合しない場合、前記パケットに基づく第１の問い合わせパケットを生成し、前記制御装置宛に前記第１の問い合わせパケットを送信する手段と、
保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合しない場合、前記パケットに基づく第２の問い合わせパケットを生成し、前記制御装置宛に前記第２の問い合わせパケットを送信する手段と
を更に具備する
ノード装置。
【請求項６】
請求項５に記載のノード装置であって、
保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合する場合、保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較する手段と、
保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合する場合、前記パケットを転送する手段と
を更に具備する
ノード装置。
【請求項７】
制御装置が、ノード装置に対して、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを設定することと、
前記ノード装置が、端末からパケットを受信した際、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組を前記制御装置に通知することと、
前記制御装置が、前記ノード装置からの通知に基づいて、前記パケットの送信元の端末のネットワーク上の現在位置を認識することと
を含む
接続端末検知方法。
【請求項８】
端末からパケットを受信した際、前記パケットの送信元の端末のネットワーク上の現在位置情報として、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組を制御装置に通知するステップと、
前記制御装置からの制御に応じて、前記パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを登録するステップと
をノード装置に実行させるためのプログラムを格納した
記憶媒体。
【請求項９】
請求項８に記載の記憶媒体であって、
保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合しない場合、前記パケットに基づく第１の問い合わせパケットを生成し、前記制御装置宛に前記第１の問い合わせパケットを送信するステップと、
保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合しない場合、前記パケットに基づく第２の問い合わせパケットを生成し、前記制御装置宛に前記第２の問い合わせパケットを送信するステップと
を更にノード装置に実行させるためのプログラムを格納した
記憶媒体。
【請求項１０】
請求項９に記載の記憶媒体であって、
保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合する場合、保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較するステップと、
保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合する場合、前記パケットを転送するステップと
を更にノード装置に実行させるためのプログラムを格納した
記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムに関し、特にスイッチに接続された端末を検知するネットワークシステムに関する。
【背景技術】
【０００２】
従来のネットワーク機器は、外部から負荷分散や片寄等、柔軟性に富んだ制御ができないという問題があった。このため、ネットワークの規模が大きくなると、システムとしての挙動の把握と改善が困難になり、設計や構成変更には多大なコストを伴うことが問題であった。【０００３】
こうした課題を解決するための技術として、ネットワーク機器のパケット転送機能と経路制御機能を分離する手法が考えられている。例えば、パケット転送機能をネットワーク機器が担当し、制御機能をネットワーク機器の外部に分離した制御装置が担当することで、制御装置がパケットの転送を集中して管理することができ、柔軟性に富んだネットワークを構築することが可能になる。【０００４】
［ＣＤ分離型ネットワークの説明］
機能を分離したネットワークの１つとして、コントロールプレーン側の制御装置からデータプレーン側のノード装置を制御するＣＤ（Ｃ：コントロールプレーン／Ｄ：データプレーン）分離型ネットワークが提案されている。【０００５】
ＣＤ分離型ネットワークの一例として、コントローラからスイッチを制御してネットワークの経路制御を行うオープンフロー（ＯｐｅｎＦｌｏｗ）技術を利用したオープンフローネットワークが挙げられる。オープンフロー技術の詳細については、非特許文献１に記載されている。なお、オープンフローネットワークは一例に過ぎない。【０００６】
［オープンフローネットワークの説明］
オープンフローネットワークでは、オープンフローコントローラ（ＯＦＣ：ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）等の制御装置が、オープンフロースイッチ（ＯＦＳ：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）等のノード装置の経路制御に関するフローテーブル（Ｆｌｏｗ  ｔａｂｌｅ）を操作することにより、ノード装置の挙動を制御する。【０００７】
制御装置とノード装置の間は、専用線やＳＳＬ（ＳｅｃｕｒｅＳｏｃｋｅｔＬａｙｅｒ）等により保護された通信路である「セキュアチャンネル」（Ｓｅｃｕｒｅ  Ｃｈａｎｎｅｌ）と呼ばれる制御チャネル（制御用の通信チャネル）により接続されている。制御装置とノード装置とは、制御チャネルを介して、オープンフロープロトコル（ＯｐｅｎＦｌｏｗ  Ｐｒｏｔｏｃｏｌ）に則った（準拠した）制御メッセージであるオープンフローメッセージ（ＯｐｅｎＦｌｏｗ  Ｍｅｓｓａｇｅ）を送受信する。【０００８】
オープンフローネットワークにおけるノード装置とは、オープンフローネットワークに配置され、制御装置の制御下にあるエッジスイッチ及びコアスイッチのことである。オープンフローネットワークにおける入口側エッジスイッチ（Ｉｎｇｒｅｓｓ）でのパケット（ｐａｃｋｅｔ）の受信から出口側エッジスイッチ（Ｅｇｒｅｓｓ）での送信までのパケットの一連の流れをフロー（Ｆｌｏｗ）と呼ぶ。オープンフローネットワークでは、通信をエンドツーエンド（Ｅ２Ｅ：Ｅｎｄ  ｔｏ  Ｅｎｄ）のフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行う。【０００９】
パケットは、フレーム（ｆｒａｍｅ）と読み替えても良い。パケットとフレームの違いは、プロトコルが扱うデータの単位（ＰＤＵ：Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）の違いに過ぎない。パケットは、「ＴＣＰ／ＩＰ」（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のＰＤＵである。一方、フレームは、「イーサネット（登録商標）」（Ｅｔｈｅｒｎｅｔ）のＰＤＵである。【００１０】
フローテーブルとは、フローとして扱うパケットを特定するための判別条件（ルール）と、パケットがルールに適合（マッチ）した回数を示す統計情報と、パケットに対して行うべき処理内容（アクション）の組を定義したフローエントリ（Ｆｌｏｗ  ｅｎｔｒｙ）の集合である。【００１１】
フローエントリのルールは、パケットのヘッダ領域（フィールド）に含まれる各プロトコル階層の情報のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。各プロトコル階層の情報の例として、送信先アドレス（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、送信元アドレス（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、送信先ポート（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ）、送信元ポート（Ｓｏｕｒｃｅ  Ｐｏｒｔ）等が考えられる。なお、上記のアドレスには、ＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）やＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）を含むものとする。また、上記に加えて、入口ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）の情報も、フローエントリのルールとして使用可能である。また、フローエントリのルールとして、フローとして扱うパケットのヘッダ領域の値の一部（又は全部）を、正規表現やワイルドカード「＊」等で表現したものを設定することもできる。【００１２】
フローエントリのアクションは、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を示す。例えば、ノード装置は、フローエントリのアクションに出力ポートの識別情報（出力ポート番号等）が示されていれば、これに該当するポートにパケットを出力し、出力ポートの識別情報が示されていなければ、パケットを廃棄する。或いは、ノード装置は、フローエントリのアクションにヘッダ情報が示されていれば、当該ヘッダ情報に基づいてパケットのヘッダを書き換える。【００１３】
ノード装置は、フローエントリのルールに適合するパケット群（パケット系列）に対して、フローエントリのアクションを実行する。具体的には、ノード装置は、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルールを持つフローエントリを検索する。検索の結果、受信パケットのヘッダ情報に適合するルールを持つフローエントリが見つかった場合、当該フローエントリの統計情報を更新すると共に、受信パケットに対して、当該フローエントリのアクションとして指定された動作を実施する。一方、検索の結果、受信パケットのヘッダ情報に適合するルールを持つフローエントリが見つからなかった場合、当該受信パケットを最初のパケット（ｆｉｒｓｔ  ｐａｃｋｅｔ）と判断し、制御チャネルを介して、オープンフローネットワークにおける制御装置に対して、受信パケット（又はそのコピー）を転送し、受信パケットの送信元・送信先（宛先）等に基づいたパケットの経路計算を要求し、応答としてフローエントリの設定用メッセージを受信し、フローテーブルを更新する。【００１４】
なお、フローテーブルには、低い優先度で、全てのパケットのヘッダ情報に適合するルールを持つデフォルトエントリが登録されている。受信パケットに適合するフローエントリが他に見つからなかった場合、受信パケットは、このデフォルトエントリに適合する。デフォルトエントリのアクションは、「制御装置への当該受信パケットの問い合わせ情報の送信」である。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，  Ｖｅｒｓｉｏｎ  １．０．０”，［ｏｎｌｉｎｅ］，Ｄｅｃｅｍｂｅｒ  ３１，２００９，［２０１１年３月２３日検索］，インターネット  ＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｓｐｅｃ−ｖ１．０．０．ｐｄｆ＞
【発明の概要】
【００１６】
大規模ネットワークを考えると、現在のフローテーブルの使用方法では効率が悪く、リソースが足りなくなる可能性がある。
【００１７】
また、既存の技術では、スイッチは、ＡＲＰ等のブローキャストパケットを利用して端末位置情報（ネットワーク上の端末の現在位置を示す情報）を取得しているため、ブローキャストパケット未発送時には端末位置情報を取得することができなかった。
【００１８】
本発明では、端末からノード装置宛にパケットが送られた際、ノード装置は、自身が保持しているＭＡＣアドレス情報とそれに結びついているポート番号のこれら２つと、転送するパケットの送信元ＭＡＣアドレス情報とポート番号とを比較する。
【００１９】
上記の比較の結果、もし適合（マッチ）する情報がない場合は、制御装置に対して、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を送信し、制御装置で端末の位置情報を管理して、制御装置からノード装置にその情報を登録する。問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）は、オープンフローメッセージの１つである。
【００２０】
比較する際の技術としては、Ｌ２ラーニング機能と同様のロジックを用いて比較することが望ましいと考える。
【００２１】
本発明に係るネットワークシステムは、スイッチと、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、該スイッチのフローテーブルに設定するコントローラとを含む。該スイッチは、端末からパケットを受信した際、該パケットの送信元ＭＡＣアドレス情報及びポート番号の組を該コントローラに通知する。該コントローラは、該スイッチからの通知に基づいて、該パケットの送信元の端末のネットワーク上の現在位置を認識する。
【００２２】
本発明に係るスイッチは、端末からパケットを受信した際、該パケットの送信元の端末のネットワーク上の現在位置情報として、該パケットの送信元ＭＡＣアドレス情報及びポート番号の組をコントローラに通知する手段と、該コントローラからの制御に応じて、該パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、自身のフローテーブルに設定する手段とを具備する。
【００２３】
本発明に係る接続端末検知方法では、コントローラが、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、スイッチのフローテーブルに設定する。また、該スイッチが、端末からパケットを受信した際、該パケットの送信元ＭＡＣアドレス情報及びポート番号の組を該コントローラに通知する。また、該コントローラが、該スイッチからの通知に基づいて、該パケットの送信元の端末のネットワーク上の現在位置を認識する。
【００２４】
本発明に係るプログラムは、端末からパケットを受信した際、該パケットの送信元の端末のネットワーク上の現在位置情報として、該パケットの送信元ＭＡＣアドレス情報及びポート番号の組をコントローラに通知するステップと、該コントローラからの制御に応じて、該パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、自身のフローテーブルに設定するステップとをスイッチに実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
【００２５】
本発明では、端末から転送されてくるパケットの送信元ＭＡＣアドレス（Ｓｏｕｒｃｅ  ＭＡＣ）とポート番号（ｐｏｒｔ情報）のみ用いて、ノード装置群に接続されている端末が、どのノード装置の何番ポートに接続されているか特定する。また、この端末接続情報を制御装置が管理することにより、端末位置を考慮した経路制御を実現する。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１実施形態に係るネットワークシステムの構成例を示す図である。
【図２】第１実施形態に係るノード装置の内部の構成について説明するための図である。
【図３】第１実施形態における端末位置情報の照合内容の詳細について説明するための図である。
【図４】端末位置情報管理テーブルを説明するための図である。
【図５】第１実施形態を利用したシステムの構成例を示す図である。
【図６】第１実施形態における接続端末検知処理を説明するためのフローチャートである。
【図７】本発明の第２実施形態に係るネットワークシステムの構成例を示す図である。
【図８】第２実施形態に係るノード装置の内部の構成について説明するための図である。
【図９】第２実施形態を利用したシステムの構成例を示す図である。
【図１０】本発明の第３実施形態に係るノード装置の内部の構成について説明するための図である。
【図１１】第３実施形態における端末位置情報の照合内容の詳細について説明するための図である。
【発明を実施するための形態】
【００２７】
本発明は、ＣＤ分離型ネットワークを対象としている。ここでは、ＣＤ分離型ネットワークの１つであるオープンフローネットワークを例に説明する。但し、実際には、オープンフローネットワークに限定されない。
【００２８】
＜第１実施形態＞
以下に、本発明の第１実施形態について添付図面を参照して説明する。
【００２９】
［システム構成］
図１を参照して、本発明の第１実施形態に係るネットワークシステムの構成例について説明する。
【００３０】
本発明の第１実施形態に係るネットワークシステムは、端末１０（１０−ｉ、ｉ＝１〜ｎ：ｎは任意）と、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ：ｍは任意）と、制御装置３０を含む。
【００３１】
［端末の詳細］
端末１０（１０−ｉ、ｉ＝１〜ｎ）の各々は、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）に接続可能な端末である。
【００３２】
ここでは、端末１０−１からノード装置２０−１及びノード装置２０−２を介して端末１０−２宛にパケット５０を転送する。
【００３３】
端末１０−１は、パケットを送出する送信元端末「Ａ」である。また、端末１０−２は、パケットを受信する宛先端末「Ｂ」である。パケット５０は、「Ｂ宛、Ａ元のパケット」である。
【００３４】
「Ｂ宛」とは、宛先が端末Ｂであることを意味し、宛先ＭＡＣアドレスに端末ＢのＭＡＣアドレスが指定されていることを意味する。「Ａ元」とは、送信元が端末Ａであることを意味し、送信元ＭＡＣアドレスに端末ＡのＭＡＣアドレスが指定されていることを意味する。
【００３５】
なお、端末１０（１０−ｉ、ｉ＝１〜ｎ）の各々は、オープンフローネットワーク外（オープンフロー未対応）のネットワーク機器でも良い。
【００３６】
［ノード装置の詳細］
ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々は、ネットワークに配置されたノード装置である。ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々は、オープンフローネットワークでは、オープンフロースイッチ（ＯＦＳ）として動作する。ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々は、受信したパケットを、自身のフローテーブルに登録されたフローエントリに従って転送する。
【００３７】
ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々は、端末位置情報比較部２１と、フローテーブル比較部２２を備える。
【００３８】
端末位置情報比較部２１は、ＭＡＣアドレス情報とポート番号を用いて、端末位置情報比較を行う。具体的には、端末位置情報比較部２１は、ＭＡＣアドレス情報とポート番号を保持し、保持しているＭＡＣアドレス情報及びポート番号の組（セット）と、転送するパケットの送信元ＭＡＣアドレス情報及びポート番号の組と、を比較する。ここでは、端末位置情報比較部２１は、Ｌ２（レイヤ２）の機能ブロック（Ｌ２  ｂｌｏｃｋ）である。
【００３９】
フローテーブル比較部２２は、通常のノード装置が行うフローテーブルとフロー情報との比較を行う。
【００４０】
［制御装置の詳細］
制御装置３０は、ネットワークに配置されたノード装置を制御・管理する制御装置である。制御装置３０は、オープンフローネットワークでは、オープンフローコントローラ（ＯＦＣ）として動作する。制御装置３０は、ネットワークの接続状態を示すトポロジ情報（ｔｏｐｏｌｏｇｙ）を基に、ノード装置２０−１及びノード装置２０−２を検知した際、パケット転送経路を計算し、当該経路に関連するノード装置のフローテーブルにフローエントリの登録を行う。これにより、制御装置３０は、ノード装置２０−１とノード装置２０−２間の経路制御を行う。
【００４１】
制御装置３０は、端末位置情報管理テーブル３１を有する。
【００４２】
［パケットの詳細］
パケット５０は、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）に転送されるパケットである。
【００４３】
問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１は、制御装置３０に経路制御を要求する（パケット５０の転送経路を問い合わせる）ための制御メッセージである。問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１のデータ形式及びデータ内容については、通常のフローテーブル検索において不適合（ミスマッチ）だったときに制御装置宛に送信する問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）と同様であり、識別するための情報（フラグ）が付与されている。
【００４４】
例えば、端末位置情報比較部２１は、パケット５０を受信した際、保有するＭＡＣアドレス情報と該ＭＡＣアドレス情報に結びついているポート番号との組と、転送するパケット５０の送信元ＭＡＣアドレス情報とポート番号との組とを比較し、不適合（ミスマッチ）だった場合に、パケット５０に基づいて問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を生成し、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を制御装置３０宛に転送する。
【００４５】
問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２は、制御装置３０に経路制御を要求する（パケット５０の転送経路を問い合わせる）ための制御メッセージである。問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２と通常の問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）との違いについては、識別するための情報（フラグ）が異なる点だけで、データ形式及びデータ内容については、基本的に通常の問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）と同じである。
【００４６】
例えば、フローテーブル比較部２２は、フローテーブルのフローエントリに格納されているＭＡＣアドレス情報と、転送するパケット５０の宛先ＭＡＣアドレス情報とを比較し、不適合（ミスマッチ）だった場合に、パケット５０に基づいて問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２を生成し、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２を制御装置３０宛に転送する。
【００４７】
ここでは、制御装置３０は、ノード装置間同士の接続端を内側ポート（ｉｎｓｉｄｅ）２３と定義する。また、ノード装置と端末のノード装置側の接続端を外側ポート（ｏｕｔｓｉｄｅ）２４と定義する。
【００４８】
制御装置３０は、ノード装置２０−１からの問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１の内容を基に、新規にノード装置２０−１に接続された端末１０−１を認識する。具体的には、制御装置３０は、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１の内容から、端末１０−１のＭＡＣアドレス情報と、端末１０−１が接続されたポート番号とを取得し、端末位置情報管理テーブル３１を更新する。なお、端末１０−１が接続されたポートは、当然に外側ポート（ｏｕｔｓｉｄｅ）２４ということになる。
【００４９】
制御装置３０は、端末位置情報管理テーブル３１の内容を基に、受信したパケットのために、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々のテーブル書き換えを行う。
【００５０】
［ノード装置の内部の構成］
図２を参照して、本実施形態におけるノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の内部の構成について説明する。
【００５１】
ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々は、端末位置情報比較部２１と、フローテーブル比較部２２を備える。
【００５２】
端末位置情報比較部２１は、ＭＡＣ＆ｐｏｒｔ情報（端末位置情報）テーブル２１１を持つ。
【００５３】
ＭＡＣ＆ｐｏｒｔ情報テーブル２１１は、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）が保有するＭＡＣアドレス情報と、該ＭＡＣアドレス情報に結びついているポート番号が格納されている。ここでは、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１は、フローテーブル２２１の前に検索される前段検索テーブルとなる。なお、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１は、ＭＡＣアドレス情報とポート番号との組を判別条件（ルール）としたフローテーブルの一種ともいえる。
【００５４】
フローテーブル比較部２２は、フローテーブル２２１を持つ。
【００５５】
フローテーブル２２１は、オープンフローネットワークにおけるフローテーブルである。ここでは、フローテーブル２２１は、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１の後に検索される後段検索テーブルとなる。
【００５６】
ここでは、端末位置情報比較部２１において端末位置情報の検索を行っているため、フローテーブル２２１には、宛先ＭＡＣアドレス（Ｄｅｓｔｉｎａｔｉｏｎ  ＭＡＣ）のみを判別条件（ルール）とするフローエントリが登録されていれば良い。
【００５７】
これにより、１つのフローテーブル２２１に登録されるフローエントリの情報を、大幅に削減することができる。
【００５８】
［端末位置情報照合内容］
図３を参照して、端末位置情報の照合内容の詳細について説明する。
【００５９】
端末位置情報比較部２１が保持しているＭＡＣ＆ｐｏｒｔ情報テーブル２１１は、ＭＡＣアドレス情報２１１１と、ポート番号２１１２を格納する領域（フィールド）を持つ。
【００６０】
パケット５０は、ヘッダ領域に、送信元ＭＡＣアドレス情報５０１と、ポート番号５０２を格納する領域を持つ。
【００６１】
ノード装置２０−１にパケットが流入した際、ノード装置２０−１は、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１の内容とパケット５０の内容とを比較する。
【００６２】
ここでは、ノード装置２０−１は、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１に格納されているＭＡＣアドレス情報２１１１と該ＭＡＣアドレス情報２１１１に結びついているポート番号２１１２との組と、パケット５０が保有している送信元ＭＡＣアドレス情報５０１とポート番号５０２との組を、それぞれポート毎、ＭＡＣ毎に比較している。
【００６３】
ノード装置２０−１は、比較の結果、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１の内容とパケット５０の内容とが適合（マッチ）するものであれば、フローテーブル比較を行う。
【００６４】
また、ノード装置２０−１は、比較の結果、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１の内容とパケット５０の内容とが適合（マッチ）するものでなければ、Ｌ２ラーニング機能を起動する。
【００６５】
すなわち、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１は、端末位置情報として、ノード装置２０−１に接続されている端末のＭＡＣアドレス情報と、該端末が接続されているポート番号との組を保持するテーブルとなる。
【００６６】
本実施形態では、制御装置３０は、この比較の不適合（ミスマッチ）で発生する問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を受信することで、パケット５０を受信したポートの属性が外側ポート（ｏｕｔｓｉｄｅ）であり、入口ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）であると判断することができる。
【００６７】
また、制御装置３０は、パケット５０の送信元ＭＡＣアドレス情報５０１とポート番号５０２の２つの情報のみで、端末位置情報を管理することができる。
【００６８】
［端末位置情報］
図４を参照して、制御装置３０が持つ端末位置情報管理テーブル３１の例について説明する。
【００６９】
端末位置情報管理テーブル３１は、ノード装置情報３１１と、端末ＭＡＣ情報３１２と、ポート番号３１３を格納する領域を持つ。
【００７０】
ノード装置情報３１１は、端末が接続されているノード装置の識別情報を書き込むための領域である。
【００７１】
端末ＭＡＣ情報３１２は、端末のＭＡＣアドレス（送信元ＭＡＣアドレス）の情報を書き込むための領域である。
【００７２】
ポート番号３１３については、端末が接続されているノード装置のポート番号を書き込むための領域である。
【００７３】
ここでは、端末位置情報比較の結果が不適合（ミスマッチ）だった場合に発生する問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１が制御装置３０で管理される一例を示す。
【００７４】
制御装置３０は、ノード装置２０−１から問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を受け取り、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１の内容を基に、端末位置情報管理テーブル３１に端末の情報を登録する。
【００７５】
このとき、制御装置３０は、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１の内容を基に、
ノード装置情報３１１に、端末が接続されているノード装置の識別情報を書き込み、端末ＭＡＣ情報３１２に、端末の送信元ＭＡＣアドレス情報を書き込み、ポート番号３１３に、端末が接続されているノード装置のポート番号を書き込む。
【００７６】
［本実施形態を利用したシステムの構成］
図５を参照して、本実施形態を利用したシステムの構成例について説明する。
【００７７】
前提として、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々は、ブロードキャストパケットの転送を行っておらず、フローテーブル２２１内に何も書き込まれていないものとする。
【００７８】
本システムは、端末１０−１と、端末１０−２と、端末１０−３と、端末１０−４と、ノード装置２０−１と、ノード装置２０−２と、ノード装置２０−３と、ノード装置２０−４と、制御装置３０を含む。
【００７９】
なお、端末１０−１、端末１０−２、端末１０−３、及び端末１０−４は、図１に示す端末１０（１０−ｉ、ｉ＝１〜ｎ）に相当する。
【００８０】
また、ノード装置２０−１、ノード装置２０−２、ノード装置２０−３、及びノード装置２０−４は、図１に示すノード装置２０（２０−ｊ、ｊ＝１〜ｍ）に相当する。
【００８１】
制御装置３０は、ノード装置２０−１、ノード装置２０−２、ノード装置２０−３、及びノード装置２０−４を管理している。
【００８２】
制御装置３０は、端末位置情報管理テーブル３１を有する。
【００８３】
制御装置３０は、ノード装置同士の接続端を内側ポート（ｉｎｓｉｄｅ）２３と定義し、ノード装置と端末のノード装置側の接続端を外側ポート（ｏｕｔｓｉｄｅ）２４と定義する。
【００８４】
ノード装置２０−１は、ポート１に端末１０−１が接続され、ポート２に端末１０−３が接続されている。
【００８５】
ノード装置２０−２は、ポート１に端末１０−２が接続され、ポート２に端末１０−４が接続されている。
【００８６】
ノード装置２０−１及びノード装置２０−２の各々において、ポート１及びポート２は、外側ポート（ｏｕｔｓｉｄｅ）である。
【００８７】
ここでは、制御装置３０は、ノード装置同士が接続されている位置を特定し、特定された場所を内側ポート（ｉｎｓｉｄｅ）２３と定義し、管理情報として管理する。
【００８８】
制御装置３０は、この管理情報から、内側ポート（ｉｎｓｉｄｅ）２３で行われる端末位置情報比較の結果が不適合（ミスマッチ）だった場合に発生する問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を抑制する。
【００８９】
例えば、制御装置３０は、ノード装置２０−１のＭＡＣ＆ｐｏｒｔ情報テーブル２１１に、内側ポート（ｉｎｓｉｄｅ）２３のポート番号とワイルドカード等を用いた全ＭＡＣアドレス情報との組を登録するようにしても良い。この場合、ノード装置２０−１は、内側ポート（ｉｎｓｉｄｅ）２３で受信したパケットに対しては、送信元ＭＡＣアドレス情報に関係なく、無条件で、フローテーブル比較部２２の処理に移行する。
【００９０】
また、制御装置３０は、ノード装置２０−１のＭＡＣ＆ｐｏｒｔ情報テーブル２１１がフローテーブルの一種である場合、最も低い優先順位で、外側ポート（ｏｕｔｓｉｄｅ）２４のポート番号とワイルドカード等を用いた全ＭＡＣアドレス情報との組をルールとし、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を転送する旨をアクションとして定義したフローエントリを登録するようにしても良い。ノード装置２０−１は、外側ポート（ｏｕｔｓｉｄｅ）２４で受信したパケットの送信元ＭＡＣアドレス情報が登録されていない場合、上記のフローエントリしか登録されていないことになるため、該パケットの情報を問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）に格納し、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を転送する。
【００９１】
ここでは、ノード装置２０−１に接続されている端末１０−１からノード装置２０−２に接続されている端末１０−４宛にパケットを転送する場合、ノード装置２０−１は、端末１０−１から外側ポート（ｏｕｔｓｉｄｅ）２４を通過して流入してきたパケットに対して端末位置情報比較を行い、端末位置情報比較の結果が不適合（ミスマッチ）だった場合、該パケットの情報を問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）に格納し、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を転送する。
【００９２】
制御装置３０は、転送された問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）の情報を基に、端末位置情報管理テーブル３１に端末１０−１の情報を登録し、転送元のノード装置２０−１に対して、端末１０−１の位置（ＭＡＣアドレス情報とポート番号との組）を含んだフローエントリをノード装置２０−１のフローテーブル２２１に登録する。
【００９３】
この後、端末１０−１からパケットを再度送信すると、該パケットは、外側ポート（ｏｕｔｓｉｄｅ）２４を通り、ノード装置２０−１に流入する。
【００９４】
ノード装置２０−１は、既に端末１０−１の位置情報を持ったフローテーブルが登録されているので、端末位置情報比較の結果、適合（マッチ）する。その後、ノード装置２０−１は、フローテーブル２２１を検索し、適合（マッチ）するフローエントリがあれば、該フローエントリのアクションに従い、ノード装置２０−２に転送する。
【００９５】
この際、ノード装置からノード装置間の転送でも、端末位置情報比較が行われるが、制御装置３０は、各ノード装置の内側ポート（ｉｎｓｉｄｅ）管理を行い、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）の発生を抑止する。すなわち、ノード装置からノード装置間の転送では、端末位置情報比較において、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を発生しないようにする。
【００９６】
ノード装置２０−２は、端末位置情報比較、及びフローテーブル比較の結果、転送されたパケットを端末１０−４に転送する。
【００９７】
［接続端末検知処理］
図６を参照して、本実施形態に係る接続端末検知処理時の動作について説明する。
【００９８】
（１）ステップＳ１０１
まず、制御装置３０は、既存の経路制御からノード装置群の接続端を算出し、ノード装置同士の接続端を内側ポート（ｉｎｓｉｄｅ）２３と定義し、ノード装置と端末のノード装置側の接続端を外側ポート（ｏｕｔｓｉｄｅ）２４と定義し、ノード装置同士間の接続端とノード装置−端末間の接続端を区別できるようにする。この後、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々は、通常の動作を開始する。
【００９９】
（２）ステップＳ１０２
ノード装置２０−１の端末位置情報比較部２１は、端末１０−１から端末１０−２宛にパケット５０を転送する場合、図３に示す照合方法で、端末位置情報比較部２１にあるＭＡＣ＆ｐｏｒｔ情報テーブル２１１とパケット５０とを照合し、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１の内容とパケット５０の内容が適合（マッチ）するか確認する。具体的には、端末位置情報比較部２１は、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１に格納されているＭＡＣアドレス情報とそれに結びついているポート番号との組と、端末１０−１から受信したパケットの送信元ＭＡＣアドレス情報とポート番号との組を照合し、適合（マッチ）するか確認する。
【０１００】
（３）ステップＳ１０３
端末位置情報比較部２１は、照合の結果、適合（マッチ）する場合、フローテーブル比較部２２にパケット５０を転送する。
【０１０１】
（４）ステップＳ１０４
端末位置情報比較部２１は、照合の結果、適合（マッチ）しない場合、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１にパケット５０の情報を格納し、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を送信する。このとき、端末位置情報比較部２１は、パケット５０を一時的に保持するようにしても良い。
【０１０２】
（５）ステップＳ１０５
制御装置３０は、この問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１に格納されているパケット５０の情報を基に、端末位置情報管理テーブル３１に、端末１０−１がどのノード装置のどのポートに接続されているか登録する。
【０１０３】
（６）ステップＳ１０６
また、制御装置３０は、端末位置情報管理テーブル３１の端末位置情報を基に、新たなＭＡＣアドレス情報とポート番号との組を、ノード装置２０−１のＭＡＣ＆ｐｏｒｔ情報テーブル２１１に登録する。ここでは、制御装置３０は、登録を行った場合、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１に格納されたパケット５０の情報を基に、元々のヘッダ情報のまま、ノード装置２０−１宛にパケット５０を送信する。登録を行わない場合、ノード装置２０−１宛にパケット５０を送信しなくても良い。
【０１０４】
（７）ステップＳ１０７
端末位置情報比較部２１は、上記の登録に応じて、パケット５０を、フローテーブル比較部２２に転送する。ここでは、端末位置情報比較部２１は、制御装置３０から受信したパケット５０を、フローテーブル比較部２２に転送する。なお、端末位置情報比較部２１は、パケット５０を一時的に保持している場合、制御装置３０からの登録に応じて、一時的に保持しているパケット５０を、フローテーブル比較部２２に転送しても良い。この場合、端末位置情報比較部２１は、上記の登録がなければ、所定期間の経過後、一時的に保持しているパケット５０を破棄しても良い。
【０１０５】
（８）ステップＳ１０８
フローテーブル比較部２２は、端末位置情報比較部２１からパケット５０を受け取ると、フローテーブル比較部２２にあるフローテーブル２２１に検索をかけ、フローテーブル２２１内のいずれかのフローエントリがパケット５０の内容と適合（マッチ）するか確認する。具体的には、フローテーブル比較部２２は、フローテーブル２２１の各フローエントリに格納されているＭＡＣアドレス情報と、端末１０−１から受信したパケットの宛先ＭＡＣアドレス情報とを比較し、フローテーブル２２１のいずれかのフローエントリと適合（マッチ）するか確認する。なお、実際には、フローテーブル比較部２２は、フローテーブル２２１の各フローエントリに格納されている「ＭＡＣアドレス情報とポート番号との組」と、端末１０−１から受信したパケットの「宛先ＭＡＣアドレス情報と出力ポート番号との組」とを比較し、フローテーブル２２１のいずれかのフローエントリと適合（マッチ）するか確認しても良い。
【０１０６】
（９）ステップＳ１０９
フローテーブル比較部２２は、比較の結果、フローテーブル２２１のいずれかのフローエントリと適合（マッチ）する場合、適合（マッチ）したフローエントリのアクションに従い、パケット５０を、内側ポート（ｉｎｓｉｄｅ）２３に出力し、端末１０−２宛に転送する。
【０１０７】
（１０）ステップＳ１１０
フローテーブル比較部２２は、比較の結果、フローテーブル２２１のいずれかのフローエントリと適合（マッチ）しない場合、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２にパケット５０の情報を格納し、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２を送信する。このとき、フローテーブル比較部２２は、パケット５０を一時的に保持するようにしても良い。
【０１０８】
（１１）ステップＳ１１１
制御装置３０は、この問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２に格納されているパケット５０の情報を基に、転送経路を計算し、経路上のノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々のフローテーブル２２１に、パケット５０の宛先ＭＡＣアドレス情報と、該パケット５０を所定の内側ポート（ｉｎｓｉｄｅ）２３へ転送する旨とを示すフローエントリを登録する。また、制御装置３０は、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２に格納されたパケット５０の情報を基に、ノード装置２０−１宛にパケット５０を送信しても良い。
【０１０９】
（１２）ステップＳ１１２
フローテーブル比較部２２は、フローテーブル２２１に登録されたフローエントリのアクションに従い、パケット５０を、内側ポート（ｉｎｓｉｄｅ）２３に出力し、端末１０−２宛に転送する。このとき、フローテーブル比較部２２は、制御装置３０から受信したパケット５０、又は一時的に保持しているパケット５０を、内側ポート（ｉｎｓｉｄｅ）２３に出力し、端末１０−２宛に転送する。なお、フローテーブル比較部２２は、上記のフローエントリ登録がなければ、所定期間の経過後、一時的に保持しているパケット５０を破棄しても良い。
【０１１０】
［本実施形態の特徴］
本実施形態では、ノード装置が、保有しているＭＡＣアドレス情報とそれに結びついているポート番号とパケットの送信元ＭＡＣアドレス情報とポート番号をそれぞれ比較し適合（マッチ）しない場合は、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を制御装置に上げる。
【０１１１】
制御装置は、この問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）の情報から端末の場所を蓄積し、ノード装置に端末位置を含んだフローエントリを、ノード装置のフローテーブルに登録する。
【０１１２】
したがって、パケットの送信元ＭＡＣアドレス情報とポート番号だけでノード装置に接続されている端末の場所が特定できる。
【０１１３】
これにより、端末が移動しても、制御装置により端末の場所を特定できる。
【０１１４】
また、本実施形態では、端末位置の特定が可能になったことにより、制御装置が端末情報を考慮した経路選択が可能となり、経路をより柔軟に選択することができる。
【０１１５】
また、本実施形態では、制御装置が、端末位置情報比較の結果が不適合（ミスマッチ）の場合に発生する問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）の情報から端末位置情報を管理し、その管理している情報を経路選択時の判断材料として使用することが可能となる。
【０１１６】
＜第２実施形態＞
以下に、本発明の第２実施形態について説明する。
本発明の第２実施形態では、端末位置情報比較の結果が不適合（ミスマッチ）の場合に、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）が発生しても、通常通りにオープンフロー転送処理を行う。
【０１１７】
［システム構成］
図７を参照して、本発明の第２実施形態に係るネットワークシステムの構成例について説明する。
【０１１８】
本発明の第２実施形態に係るネットワークシステムは、端末１０（１０−ｉ、ｉ＝１〜ｎ）と、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）と、制御装置３０を含む。
【０１１９】
端末１０（１０−ｉ、ｉ＝１〜ｎ）、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）、及び制御装置３０は、基本的に、図１に示すものと同様である。
【０１２０】
本実施形態では、ノード装置２０−１の端末位置情報比較部２１は、端末位置情報の比較の結果、不適合（ミスマッチ）の際、パケット５０（Ｂ宛、Ａ元のパケット）をコピー（ｃｏｐｙ：複写）し、コピーしたパケット５３を格納した問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を生成する。
【０１２１】
まず、制御装置３０は、既存の経路制御からノード装置群の接続端を算出し、内側ポート（ｉｎｓｉｄｅ）２３と定義する。これにより、制御装置３０は、ノード装置同士の接続端で端末位置情報比較した際に不適合（ミスマッチ）でも問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１が発生しないように抑制する。この後、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々は、通常の動作を開始する。
【０１２２】
ノード装置２０−１は、端末１０−１から端末１０−２宛にパケット５０を転送する場合、端末１０−１から受け取ったパケットを端末位置情報比較し、不適合（ミスマッチ）だった場合、格納するパケット５０（Ｂ宛、Ａ元のパケット）をコピーし、コピーしたパケットを格納した問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を生成する。
【０１２３】
制御装置３０は、この問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を基に、端末位置情報管理テーブル３１に、端末１０−１がどのノード装置のどのポートに接続されているか登録する。
【０１２４】
制御装置３０は、端末位置情報管理テーブル３１を基に、受信したパケットのためにノード装置２０−１のフローテーブル２２１の書き換えを行う。
【０１２５】
本実施形態では、制御装置３０は、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１に応じて、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１の更新を行わず、フローテーブル２２１の更新を行っている点に留意する。すなわち、制御装置３０は、ＭＡＣアドレス情報とポート番号との組を含んだフローエントリを、フローテーブル２２１に登録する。
【０１２６】
また、ノード装置２０−１の端末位置情報比較部２１は、端末位置情報比較が終わった後、フローテーブル２２１を検索し、フローテーブル２２１内のいずれかのフローエントリがパケット５０の内容と適合（マッチ）すれば、制御装置３０の転送経路に従い、端末１０−２にパケット５０を転送する。
【０１２７】
ノード装置２０−１のフローテーブル比較部２２は、フローテーブルを検索し、フローテーブルと不適合（ミスマッチ）であれば、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２を発生させる。
【０１２８】
このように、本実施形態では、ノード装置２０−１は、端末位置情報比較の適合（マッチ）、不適合（ミスマッチ）に関わらず、パケット５０を受信した際に、必ずフローテーブル２２１を検索し、パケット５０の転送処理を行う。
【０１２９】
具体的には、ノード装置２０−１の端末位置情報比較部２１は、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を送信する場合、パケット５０（Ｂ宛、Ａ元のパケット）をコピーし、コピーしたパケット５３を格納した問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を制御装置３０宛に送信する。この処理と同時に／並行して、ノード装置２０−１は、パケット５０をフローテーブル比較部２２に転送する。
【０１３０】
［ノード装置の内部の構成］
図８を参照して、本実施形態におけるノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の内部の構成について説明する。
【０１３１】
ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の内部は、基本的に、図２に示すものと同様である。
【０１３２】
図８では、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）は、端末位置情報比較の結果が不適合（ミスマッチ）の場合、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１が発生しても、通常通りにオープンフロー転送処理を行う。
【０１３３】
端末位置情報比較部２１は、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１の内容とパケット５０の内容を照合する。
【０１３４】
端末位置情報比較部２１は、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１の内容とパケット５０の内容が適合（マッチ）しなかった場合、パケット５０をコピーし、コピーしたパケット５３を格納した問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を生成し、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を送信する。
【０１３５】
端末位置情報比較部２１は、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１の内容とパケット５０の内容との照合が終わると、照合の結果に関係なく、フローテーブル比較部２２の処理に移行する。
【０１３６】
フローテーブル比較部２２は、フローテーブル２２１の検索を行い、フローテーブル２２１の内容とパケット５０の内容を比較する。
【０１３７】
フローテーブル比較部２２は、フローテーブル２２１内のいずれかのフローエントリがパケット５０の内容と適合（マッチ）する場合、適合（マッチ）したフローエントリのアクションに従って、パケット５０を転送する。
【０１３８】
フローテーブル比較部２２は、フローテーブル２２１内のいずれのフローエントリもパケット５０の内容と適合（マッチ）しない場合は、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５２を送信する。
【０１３９】
［本実施形態を利用したシステムの構成］
図９を参照して、本実施形態を利用したシステムの構成例について説明する。
【０１４０】
前提として、ノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々は、ブロードキャストパケットの転送を行っておらず、フローテーブル２２１内に何も書き込まれていないものとする。
【０１４１】
本システムは、端末１０−１と、端末１０−２と、端末１０−３と、端末１０−４と、ノード装置２０−１と、ノード装置２０−２と、ノード装置２０−３と、ノード装置２０−４と、制御装置３０を含む。
【０１４２】
なお、端末１０−１、端末１０−２、端末１０−３、及び端末１０−４は、図７に示す端末１０（１０−ｉ、ｉ＝１〜ｎ）に相当する。
【０１４３】
また、ノード装置２０−１、ノード装置２０−２、ノード装置２０−３、及びノード装置２０−４は、図７に示すノード装置２０（２０−ｊ、ｊ＝１〜ｍ）に相当する。
【０１４４】
制御装置３０は、ノード装置２０−１、ノード装置２０−２、ノード装置２０−３、及びノード装置２０−４を管理している。
【０１４５】
制御装置３０は、端末位置情報管理テーブル３１を有する。
【０１４６】
制御装置３０は、ノード装置同士の接続端を内側ポート（ｉｎｓｉｄｅ）２３と定義し、ノード装置と端末のノード装置側の接続端を外側ポート（ｏｕｔｓｉｄｅ）２４と定義する。
【０１４７】
ノード装置２０−１は、ポート１に端末１０−１が接続され、ポート２に端末１０−３が接続されている。
【０１４８】
ノード装置２０−２は、ポート１に端末１０−２が接続され、ポート２に端末１０−４が接続されている。
【０１４９】
ノード装置２０−１及びノード装置２０−２の各々において、ポート１及びポート２は、外側ポート（ｏｕｔｓｉｄｅ）である。
【０１５０】
ここでは、制御装置３０は、ノード装置同士が接続されている位置を特定し、特定された場所を内側ポート（ｉｎｓｉｄｅ）２３と定義して管理する。
【０１５１】
制御装置３０は、この管理情報を基に、ノード装置２０−１の内側ポート（ｉｎｓｉｄｅ）２３のポート番号をＭＡＣ＆ｐｏｒｔ情報テーブル２１１に登録することを避け、内側ポート（ｉｎｓｉｄｅ）２３で受信したパケットを端末位置情報比較の対象外とすることで、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）の発生を抑制する。
【０１５２】
以下に、ノード装置２０−１に接続されている端末１０−１からノード装置２０−２に接続されている端末１０−４宛にパケットを転送する場合について説明する。
【０１５３】
ノード装置２０−１は、端末１０−１から外側ポート（ｏｕｔｓｉｄｅ）２４を通過して流入してきたパケット５０に対する端末位置情報比較の結果が不適合（ミスマッチ）だった場合、パケット５０を問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１に格納し、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を送信する。
【０１５４】
制御装置３０は、ノード装置２０−１から問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を受信した場合、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１の内容を基に、端末位置情報管理テーブル３１に端末１０−１の情報を登録する。
【０１５５】
また、制御装置３０は、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１の内容を基に、パケット転送経路を計算し、当該経路に関連する２０（２０−ｊ、ｊ＝１〜ｍ）のフローテーブル２２１にフローエントリの登録を行う。
【０１５６】
このとき、制御装置３０は、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１が発生したノード装置２０−１のフローテーブル２２１だけではなく、制御装置３０に接続されている複数のノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々に対して、フロー変更情報（ＦｌｏｗＭｏｄ−Ａｄｄ）を送信し、各ノード装置２０のフローテーブル２２１に、端末位置情報を基にしたフローエントリを登録する。フロー変更情報（ＦｌｏｗＭｏｄ−Ａｄｄ）は、オープンフローメッセージの１つである。
【０１５７】
具体的には、制御装置３０は、制御装置３０に接続されている複数のノード装置（ノード装置２０−２、ノード装置２０−３、ノード装置２０−４）宛に、フロー変更情報（ＦｌｏｗＭｏｄ−Ａｄｄ）５４を送信することで、各ノード装置２０のフローテーブル２２１に、ノード装置２０−１に接続されている端末１０−１の位置（端末位置情報）を含んだフローエントリを登録（更新、反映）する。フロー変更情報（ＦｌｏｗＭｏｄ−Ａｄｄ）５４は、ノード装置２０−２、ノード装置２０−３、及びノード装置２０−４の各々に対するフローテーブル２２１へのフローエントリ登録用の制御メッセージである。
【０１５８】
上記の登録の完了後、制御装置３０は、ノード装置２０−１宛に、フロー変更情報（ＦｌｏｗＭｏｄ−Ａｄｄ）５５を送信することで、ノード装置２０−１のフローテーブル２２１に、端末１０−１の位置（端末位置情報）を含んだフローエントリを登録する。フロー変更情報（ＦｌｏｗＭｏｄ−Ａｄｄ）５５は、ノード装置２０−１に対するフローテーブル２２１へのフローエントリ登録用の制御メッセージである。
【０１５９】
この後、端末１０−１が、パケット５０を再度送信すると、外側ポート（ｏｕｔｓｉｄｅ）２４を通過してノード装置２０−１に流入する。
【０１６０】
ノード装置２０−１は、既に端末１０−１の位置情報を持ったフローエントリがフローテーブル２２１に登録されているので、端末位置情報比較の結果、パケット５０とフローエントリが適合（マッチ）し、フローテーブルを検索し、適合（マッチ）するようであれば制御装置３０の経路制御に従い、ノード装置２０−２に転送される。
【０１６１】
この際、ノード装置からノード装置間の転送でも、端末位置情報比較が行われるが、制御装置３０は、各ノード装置の内側ポート（ｉｎｓｉｄｅ）管理を行い、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）の発生を抑止する。すなわち、ノード装置からノード装置間の転送では、端末位置情報比較において、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を発生しないようにする。
【０１６２】
ノード装置２０−２は、フローテーブル比較の結果、転送されたパケットを端末１０−４に転送する。
【０１６３】
＜第３実施形態＞
以下に、本発明の第３実施形態について説明する。
本発明の第３実施形態では、フローテーブル比較を行うことなく、端末位置情報比較のみでオープンフロー転送を行う。具体的には、ＭＡＣ＆ｐｏｒｔ情報テーブルを使用して端末位置情報比較を行った後、ＭＡＣ＆ｐｏｒｔ情報テーブルを再度使用して宛先比較を行い、オープンフロー転送を行う。
【０１６４】
［ノード装置の内部の構成］
図１０を参照して、本実施形態におけるノード装置２０（２０−ｉ、ｉ＝１〜ｎ）の内部の構成について説明する。
【０１６５】
ノード装置２０（２０−ｉ、ｉ＝１〜ｎ）は、パケット５０を受信した場合、端末位置情報比較を行い、適合（マッチ）する場合、先程比較に使用したＭＡＣ＆ｐｏｒｔ情報テーブル２１１を再度使用し、パケット転送を行う。
【０１６６】
例えば、ノード装置２０（２０−ｉ、ｉ＝１〜ｎ）は、端末位置情報比較の結果が適合（マッチ）する場合、再度比較に使用したＭＡＣ＆ｐｏｒｔ情報テーブル２１１のＭＡＣアドレス情報とパケットの宛先ＭＡＣアドレス（Ｄｅｓｔｉｎａｔｉｏｎ  ＭＡＣ）を比較し、適合（マッチ）すれば、パケット転送を行う。
【０１６７】
また、ノード装置２０（２０−ｉ、ｉ＝１〜ｎ）は、適合（マッチ）しない場合、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を発生させる。
【０１６８】
例えば、ノード装置２０（２０−ｉ、ｉ＝１〜ｎ）は、端末位置情報比較の結果が不適合（ミスマッチ）である場合、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を生成し、制御装置３０宛に問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１を送信する。
【０１６９】
制御装置３０は、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）５１の内容を基に、制御装置３０に接続されている複数のノード装置２０（２０−ｊ、ｊ＝１〜ｍ）の各々に対して、フロー変更情報（ＦｌｏｗＭｏｄ−Ａｄｄ）５６を送信することで、各ノード装置２０のＭＡＣ＆ｐｏｒｔ情報テーブル２１１の更新を行う。フロー変更情報（ＦｌｏｗＭｏｄ−Ａｄｄ）５６は、各ノード装置２０に対するＭＡＣ＆ｐｏｒｔ情報テーブル２１１の更新用の制御メッセージである。
【０１７０】
［端末位置情報照合内容］
図１１を参照して、ＭＡＣ＆ｐｏｒｔ情報テーブルとパケットの宛先ＭＡＣアドレス（Ｄｅｓｔｉｎａｔｉｏｎ  ＭＡＣ）の照合内容の詳細について説明する。
【０１７１】
端末位置情報比較部２１は、端末位置情報比較を行った後に、再度ＭＡＣ＆ｐｏｒｔ情報テーブル２１１とパケット５０を比較する。
【０１７２】
具体的には、端末位置情報比較部２１は、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１に格納されているＭＡＣアドレス情報２１１１と該ＭＡＣアドレス情報２１１１に結びついているポート番号２１１２との組と、パケット５０が保有している送信元ＭＡＣアドレス情報５０１とポート番号５０２との組を、それぞれポート毎、ＭＡＣ毎に比較する。
【０１７３】
端末位置情報比較部２１は、比較の結果、ＭＡＣアドレス情報２１１１とポート番号２１１２との組と、送信元ＭＡＣアドレス情報５０１とポート番号５０２との組とが適合（マッチ）する場合、端末位置情報比較に使用した送信元ＭＡＣアドレス情報５０１及びポート番号５０２は使用せず、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１のＭＡＣアドレス情報２１１１と、パケット５０の宛先ＭＡＣアドレス情報５０３とを比較する。
【０１７４】
端末位置情報比較部２１は、この比較で適合（マッチ）する場合、ＭＡＣ＆ｐｏｒｔ情報テーブル２１１において、ＭＡＣアドレス情報２１１１に紐付けされているポート番号２１１２を出力ポートとしてパケット５０を転送する。
【０１７５】
＜各実施形態の関係＞
なお、上記の各実施形態は、組み合わせて実施することも可能である。
【０１７６】
＜ハードウェアの例示＞
以下に、本発明に係るネットワークシステムを実現するための具体的なハードウェアの例について説明する。
【０１７７】
端末及び制御装置の例として、ＰＣ（パソコン）、アプライアンス（ａｐｐｌｉａｎｃｅ）、シンクライアントサーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、端末の他の例として、ＩＰ電話機、携帯電話機、スマートフォン、スマートブック、カーナビ（カーナビゲーションシステム）、携帯型ゲーム機、家庭用ゲーム機、携帯型音楽プレーヤー、ハンディターミナル、ガジェット（電子機器）、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電（ｉｎｆｏｒｍａｔｉｏｎ  ｈｏｍｅ  ａｐｐｌｉａｎｃｅ）、ＯＡ（Ｏｆｆｉｃｅ  Ａｕｔｏｍａｔｉｏｎ）機器、店頭端末・高機能コピー機、デジタルサイネージ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｇｅ：電子看板）等も考えられる。なお、端末及び制御装置は、中継機器や周辺機器でも良い。
【０１７８】
ノード装置の例として、ネットワークスイッチ（ｎｅｔｗｏｒｋ  ｓｗｉｔｃｈ）、ルータ（ｒｏｕｔｅｒ）、プロキシ（ｐｒｏｘｙ）、ゲートウェイ（ｇａｔｅｗａｙ）、ファイアウォール（ｆｉｒｅｗａｌｌ）、ロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ：負荷分散装置）、帯域制御装置（ｐａｃｋｅｔ  ｓｈａｐｅｒ）、セキュリティ監視制御装置（ＳＣＡＤＡ：Ｓｕｐｅｒｖｉｓｏｒｙ  Ｃｏｎｔｒｏｌ  Ａｎｄ  Ｄａｔａ  Ａｃｑｕｉｓｉｔｉｏｎ）、ゲートキーパー（ｇａｔｅｋｅｅｐｅｒ）、基地局（ｂａｓｅ  ｓｔａｔｉｏｎ）、アクセスポイント（ＡＰ：Ａｃｃｅｓｓ  Ｐｏｉｎｔ）、通信衛星（ＣＳ：Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ）、或いは、複数の通信ポートを有する計算機等が考えられる。
【０１７９】
端末、ノード装置、及び制御装置は、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＶＭ））でも良い。また、端末、ノード装置、及び制御装置は、車両や船舶、航空機等の移動体に搭載されていても良い。
【０１８０】
図示しないが、端末、ノード装置、及び制御装置の各々は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、ネットワークとの通信に用いられるインターフェースによって実現される。
【０１８１】
上記のプロセッサの例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ネットワークプロセッサ（ＮＰ：Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ）、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラ（ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ）、或いは、専用の機能を有する半導体集積回路（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等が考えられる。
【０１８２】
上記のメモリの例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のリムーバブルディスクや、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等の記憶媒体（メディア）等が考えられる。また、バッファ（ｂｕｆｆｅｒ）やレジスタ（ｒｅｇｉｓｔｅｒ）等でも良い。或いは、ＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＦＣ−ＳＡＮ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＩＰ−ＳＡＮ（ＩＰ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等を用いたストレージ装置でも良い。
【０１８３】
なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の１チップ化が進んでいる。従って、電子機器等に搭載される１チップマイコンが、上記のプロセッサ及び上記のメモリを備えている事例も考えられる。
【０１８４】
上記のインターフェースの例として、ネットワーク通信に対応した基板（マザーボード、Ｉ／Ｏボード）やチップ等の半導体集積回路、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口（コネクタ）等の通信ポート等が考えられる。
【０１８５】
また、ネットワークの例として、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ＬＡＮ（Ｗｉｒｅｌｅｓｓ  ＬＡＮ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、バックボーン（Ｂａｃｋｂｏｎｅ）、ケーブルテレビ（ＣＡＴＶ）回線、固定電話網、携帯電話網、ＷｉＭＡＸ（ＩＥＥＥ  ８０２．１６ａ）、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、専用線（ｌｅａｓｅ  ｌｉｎｅ）、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、シリアル通信回線、データバス等が考えられる。
【０１８６】
なお、端末、ノード装置、及び制御装置の各々の内部の構成要素は、モジュール（ｍｏｄｕｌｅ）、コンポーネント（ｃｏｍｐｏｎｅｎｔ）、或いは専用デバイス、又はこれらの起動（呼出）プログラムでも良い。
【０１８７】
但し、実際には、これらの例に限定されない。
【０１８８】
＜まとめ＞
以上のように、本発明は、オープンフロー（ＯｐｅｎＦｌｏｗ）機能を使用して、スイッチに接続された端末を検知するネットワークシステムに関する。
【０１８９】
本発明では、ノード装置が、端末からノード装置宛に送られたパケットの送信元ＭＡＣアドレス（Ｓｏｕｒｃｅ  ＭＡＣ）情報及びポート番号の組と、前段検索テーブル（ＭＡＣ＆ｐｏｒｔ情報テーブル）に保持されているＭＡＣアドレス情報及びポート番号の組とを比較し、適合（マッチ）するか確認する。
【０１９０】
適合（マッチ）しない場合、ノード装置は、制御装置にオープンフローの問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）機能を用いて、パケットが保有している送信元ＭＡＣアドレス情報とポート番号との組を制御装置に通知する。また、必要に応じて、前段検索テーブルを更新する。
【０１９１】
なお、制御装置にかかる負荷を気にしないのであれば、ノード装置は、全てのパケットについて、無条件で、パケットが保有している送信元ＭＡＣアドレス情報とポート番号との組を制御装置に通知するようにしても良い。
【０１９２】
更に、ノード装置は、パケットの宛先ＭＡＣアドレス（Ｄｅｓｔｉｎａｔｉｏｎ  ＭＡＣ）情報と、後段検索テーブル（フローテーブル）に保持されているＭＡＣアドレス情報の組とを比較し、適合（マッチ）するか確認する。なお、実際には、ノード装置は、パケットの宛先ＭＡＣアドレス及びポート番号の組と、後段検索テーブルに保持されているＭＡＣアドレス情報の組とを比較し、適合（マッチ）するか確認するようにしても良い。
【０１９３】
適合（マッチ）しない場合、ノード装置は、制御装置にオープンフローの問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）機能を用いて、該パケットに対するアクションを問い合わせる。また、必要に応じて、後段検索テーブルを更新する。
【０１９４】
なお、前段検索テーブルと後段検索テーブルは、同一のテーブルを用いることも可能である。
【０１９５】
これにより、端末から転送されてくるパケットの送信元ＭＡＣアドレス情報とポート番号だけで、ノード装置群に接続されている端末が、どのノード装置の何番ポートに接続されているか特定することが可能になる。
【０１９６】
また、この端末接続情報を制御装置が管理することにより、端末位置を考慮した経路制御を実現するものである。
【０１９７】
また、後段検索テーブル（フローテーブル）のデータ内容を縮退できることができる。
【０１９８】
本発明では、端末移動検知をするための端末位置情報比較を行い、端末位置情報比較の結果が不適合（ミスマッチ）であることを契機（トリガ）にパケットを格納した問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を生成し、制御装置に転送する。
【０１９９】
また、端末位置情報比較不適合（ミスマッチ）の際、転送されてきたパケットをコピーし問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）にコピーしたパケットを格納して制御装置に転送する。
【０２００】
また、端末位置情報比較の結果が不適合（ミスマッチ）であることを契機に発生する問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）とフローテーブル検索失敗契機に発生する問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を識別する。
【０２０１】
更に、本発明では、ノード装置が、問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を生成して、ノード装置に接続されている端末位置を制御装置に通知する。これにより、制御装置は、ノード装置の問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）を基に、ノード装置に接続される端末位置情報を取得することができる。
【０２０２】
また、本発明では、ポートの属性による端末位置情報の通知を行う。例えば、ノード装置同士の接続端に内側ポート（ｉｎｓｉｄｅ）、ノード装置と端末のノード装置側の接続端に外側ポート（ｏｕｔｓｉｄｅ）の属性を付与し、端末位置情報比較の結果が不適合（ミスマッチ）の際に発生する問い合わせ情報（Ｐａｃｋｅｔ−ｉｎ）の発生を制御する。
【０２０３】
また、本発明では、端末位置情報比較を行う。例えば、ノード装置が保有しているＭＡＣアドレス情報及びポート番号の組と、パケットの送信元ＭＡＣアドレス情報及びポート番号の組を、それぞれ比較する。
【０２０４】
また、本発明では、ＭＡＣ＆ｐｏｒｔ情報テーブル転送を行う。例えば、ＭＡＣ＆ｐｏｒｔ情報テーブルをパケットの宛先ＭＡＣアドレス（Ｄｅｓｔｉｎａｔｉｏｎ  ＭＡＣ）と比較をし、適合（マッチ）する場合はＭＡＣ＆ｐｏｒｔ情報テーブルでＭＡＣアドレス情報に紐付けされているポートに転送する。
【０２０５】
本質的には、本発明は、流入するフローに対し、端末位置情報比較（送信元ＭＡＣアドレス及びポート番号の組を用いた比較）により送信元端末からのパケット受信の許否を判定し、フローテーブル検索（宛先ＭＡＣアドレスを用いた比較）により宛先端末へのパケット転送の許否を判定するものである。
【０２０６】
＜備考＞
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【０２０７】
なお、本出願は、日本出願番号２０１１−０８２７６５に基づく優先権を主張するものであり、日本出願番号２０１１−０８２７６５における開示内容は引用により本出願に組み込まれる。
【図１】
2012137646.tif 000003
【図２】
2012137646.tif 000004
【図３】
2012137646.tif 000005
【図４】
2012137646.tif 000006
【図５】
2012137646.tif 000007
【図６】
2012137646.tif 000008
【図７】
2012137646.tif 000009
【図８】
2012137646.tif 000010
【図９】
2012137646.tif 000011
【図１０】
2012137646.tif 000012
【図１１】
2012137646.tif 000013
【手続補正書】
【提出日】平成26年4月22日(2014.4.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スイッチと、
パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリを、前記スイッチのフローテーブルに設定するコントローラと
を含み、
前記スイッチは、端末からパケットを受信した際、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組を前記コントローラに通知し、
前記コントローラは、前記スイッチからの通知に基づいて、前記パケットの送信元の端末のネットワーク上の現在位置を認識し、前記送信元ＭＡＣアドレスと前記ポート番号とに基づいて、前記スイッチに前記フローエントリを設定する
ネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムであって、
前記スイッチは、
前記スイッチが保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合しない場合、前記パケットに基づく第１の問い合わせパケットを生成し、前記コントローラ宛に前記第１の問い合わせパケットを送信する手段と、
前記スイッチが保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合しない場合、前記パケットに基づく第２の問い合わせパケットを生成し、前記コントローラ宛に前記第２の問い合わせパケットを送信する手段と
を具備し、
前記コントローラは、
前記第１の問い合わせパケットの内容を基に、前記端末のＭＡＣアドレス情報と前記端末が接続されたポートを示すポート番号とを管理する手段と、
前記第１及び第２の問い合わせパケットの内容を基に、前記スイッチが保有している情報を更新する手段と
を具備する
ネットワークシステム。
【請求項３】
請求項２に記載のネットワークシステムであって、
前記スイッチは、
前記スイッチが保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合する場合、前記スイッチが保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較する手段と、
前記スイッチが保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合する場合、前記パケットを転送する手段と
を更に具備する
ネットワークシステム。
【請求項４】
端末からパケットを受信した際、前記パケットの送信元の端末のネットワーク上の現在位置情報として、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組をコントローラに通知する手段と、
前記送信元ＭＡＣアドレスと前記ポート番号とに基づいて前記コントローラが決定したフローエントリを受信し、前記パケットをフローとして一律に制御するためのルールとアクションが定義された前記フローエントリを、自身のフローテーブルに設定する手段と
を具備する
スイッチ。
【請求項５】
請求項４に記載のスイッチであって、
保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合しない場合、前記パケットに基づく第１の問い合わせパケットを生成し、前記コントローラ宛に前記第１の問い合わせパケットを送信する手段と、
保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合しない場合、前記パケットに基づく第２の問い合わせパケットを生成し、前記コントローラ宛に前記第２の問い合わせパケットを送信する手段と
を更に具備する
スイッチ。
【請求項６】
請求項５に記載のスイッチであって、
保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合する場合、保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較する手段と、
保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合する場合、前記パケットを転送する手段と
を更に具備する
スイッチ。
【請求項７】
スイッチが、端末からパケットを受信した際、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組をコントローラに通知することと、
前記コントローラが、前記スイッチからの通知に基づいて、前記パケットの送信元の端末のネットワーク上の現在位置を認識し、前記送信元ＭＡＣアドレスと前記ポート番号とに基づいて、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを前記スイッチに設定することと
を含む
接続端末検知方法。
【請求項８】
端末からパケットを受信した際、前記パケットの送信元の端末のネットワーク上の現在位置情報として、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組をコントローラに通知するステップと、
前記送信元ＭＡＣアドレスと前記ポート番号とに基づいて前記コントローラが決定したフローエントリを受信し、前記パケットをフローとして一律に制御するためのルールとアクションが定義された前記フローエントリを、自身のフローテーブルに設定するステップと
をスイッチに実行させるためのプログラムを格納した
記憶媒体。
【請求項９】
請求項８に記載の記憶媒体であって、
保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合しない場合、前記パケットに基づく第１の問い合わせパケットを生成し、前記コントローラ宛に前記第１の問い合わせパケットを送信するステップと、
保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合しない場合、前記パケットに基づく第２の問い合わせパケットを生成し、前記コントローラ宛に前記第２の問い合わせパケットを送信するステップと
を更にスイッチに実行させるためのプログラムを格納した
記憶媒体。
【請求項１０】
請求項９に記載の記憶媒体であって、
保有しているＭＡＣアドレス情報及びポート番号の組と、前記パケットの送信元ＭＡＣアドレス情報及びポート番号の組とを比較し、適合する場合、保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較するステップと、
保有しているＭＡＣアドレス情報と、前記パケットの宛先ＭＡＣアドレス情報とを比較し、適合する場合、前記パケットを転送するステップと
を更にスイッチに実行させるためのプログラムを格納した
記憶媒体。
【請求項１１】
端末から送信されたパケットの送信元アドレスと前記パケットの受信ポートとをコントローラに通知する第一の手段と、
前記送信元アドレスと前記受信ポートとに基づいて前記コントローラが決定した制御情報を受信し、パケットフローの識別条件と当該識別条件に対応するパケット処理ルールとを含む前記制御情報に従ってパケットを転送する第二の手段と
を含むことを特徴とするスイッチ。
【請求項１２】
前記第一の手段は、前記端末から送信されたパケットの送信元アドレスと前記パケットの受信ポートとを管理し、受信パケットの送信元アドレスが前記管理された送信元アドレスに一致しない場合、前記パケットの送信元アドレスと前記受信ポートとを前記コントローラに通知する請求項１１のスイッチ。
【請求項１３】
端末から送信されたパケットの送信元アドレスと前記パケットの受信ポートとをコントローラに通知し、
前記送信元アドレスと前記受信ポートとに基づいて前記コントローラが決定した制御情報を受信し、パケットフローの識別条件と当該識別条件に対応するパケット処理ルールとを含む前記制御情報に従ってパケットを転送する
ことを特徴とする通信方法。
【請求項１４】
前記端末から送信されたパケットの送信元アドレスと前記パケットの受信ポートとを管理し、
受信パケットの送信元アドレスが前記管理された送信元アドレスに一致しない場合、前記パケットの送信元アドレスと前記受信ポートとを前記コントローラに通知する
ことを特徴とする請求項１３の通信方法。
【国際調査報告】
2012137646.tif 000014
2012137646.tif 000015