(57)【特許請求の範囲】
【請求項１】
パケットを処理する通信スイッチを管理するコントローラであって、
前記コントローラは、前記通信スイッチが実行する、１又は２以上のルールを含む、フローテーブルを備え、
前記ルールは、ＩＰ（Internet Protocol）アドレスを含み、
前記通信スイッチは、前記コントローラにフロー情報を通知する、通信制御部を備え、
前記コントローラは、
パケットの送信元ＩＰアドレスと同一のＩＰアドレスを有する重複ルールが、前記フローテーブルに登録されているか否かを判断する、重複ルール判断部と、
前記重複ルールが前記フローテーブルに登録されている場合、新規の前記ルールを作成する、ルール管理部と、
前記通信スイッチが通知する前記フロー情報に基づいて、通信量を解析し、フロー情報毎に、通信量がゼロであるか否かを示すフラグを設定するフロー情報監視部と、
を備え、
前記ルール管理部は、前記フロー情報監視部が解析する前記通信量に基づいて、通信量が０になった通信に関する前記ルールを、前記フローテーブルから削除し、
前記ルールは、
パケットの送信元ＩＰアドレスを異なるＩＰアドレスに変換する第１の処理と、
変換後のＩＰアドレスを用いてパケットを転送する第２の処理と、
を規定する、コントローラ。
【請求項２】
ＩＰアドレスと当該ＩＰアドレスの使用状態とを対応付けた情報を格納する、ＩＰアドレス使用管理テーブルをさらに備える、請求項１に記載のコントローラ。
【請求項３】
前記ルール管理部は、パケットの送信元端末を識別する情報と、パケットの送信先端末を識別する情報と、前記ＩＰアドレス使用管理テーブルに格納されるＩＰアドレスのうち未使用のＩＰアドレスのいずれか一のＩＰアドレスと、を含む前記ルールを、前記新規のルールとして作成する、請求項２に記載のコントローラ。
【請求項４】
前記第１の処理は、パケットの送信元ＩＰアドレス及び送信先ＩＰアドレスの少なくともいずれかを異なるＩＰアドレスに変換する、請求項１乃至３のいずれか一に記載のコントローラ。
【請求項５】
１又は２以上の端末の通信を中継し、前記端末が送信するパケットを処理する、通信スイッチと、
前記通信スイッチを管理する、コントローラと、
を含む通信システムであって、
前記コントローラは、前記通信スイッチが実行する、１又は２以上のルールを含む、フローテーブルを備え、
前記ルールは、ＩＰアドレスを含み、
前記通信スイッチは、前記コントローラにフロー情報を通知する、通信制御部を備え、
前記コントローラは、
パケットの送信元ＩＰアドレスと同一のＩＰアドレスを有する重複ルールが、前記フローテーブルに登録されているか否かを判断する、重複ルール判断部と、
前記重複ルールが前記フローテーブルに登録されている場合、新規の前記ルールを作成する、ルール管理部と、
前記通信スイッチが通知する前記フロー情報に基づいて、通信量を解析し、フロー情報毎に、通信量がゼロであるか否かを示すフラグを設定するフロー情報監視部と、
を備え、
前記ルール管理部は、前記フロー情報監視部が解析する前記通信量に基づいて、通信量が０になった通信に関する前記ルールを、前記フローテーブルから削除し、
前記ルールは、
パケットの送信元ＩＰアドレスを異なるＩＰアドレスに変換する第１の処理と、
変換後のＩＰアドレスを用いてパケットを転送する第２の処理と、
を規定する、通信システム。
【請求項６】
１又は２以上のルールを含むフローテーブルに、パケットの送信元ＩＰアドレスと同一のＩＰアドレスを有する重複ルールが登録されているか否かを、パケットを処理する通信スイッチを管理するコントローラが判断する工程と、
前記通信スイッチが、前記コントローラにフロー情報を通知する工程と、
前記通信スイッチが通知する前記フロー情報に基づいて、通信量を解析し、フロー情報毎に、通信量がゼロであるか否かを示すフラグを設定する工程と、
前記重複ルールが前記フローテーブルに存在する場合、前記コントローラが新規の前記ルールを作成する工程と、
前記ルールに基づいて、前記コントローラが前記パケットの送信元ＩＰアドレスを異なるＩＰアドレスに変換する工程と、
前記ルールに基づいて、変換後のＩＰアドレスを用いて前記通信スイッチが前記パケットを転送する工程と、通信量が０になった通信に関する前記ルールを、前記コントローラが前記フローテーブルから削除する工程と、
を含む、通信制御方法。
【請求項７】
１又は２以上のルールを含む、フローテーブルを備え、通信スイッチを管理するコントローラを制御するコンピュータに実行させるプログラムであって、
前記通信スイッチが、前記コントローラにフロー情報を通知する処理と、
パケットの送信元ＩＰアドレスと同一のＩＰアドレスを有する重複ルールが、前記フローテーブルに登録されているか否かを判断する処理と、
前記通信スイッチが通知する前記フロー情報に基づいて、通信量を解析し、フロー情報毎に、通信量がゼロであるか否かを示すフラグを設定する処理と、
前記重複ルールが前記フローテーブルに存在する場合、新規の前記ルールを作成する処理と、
前記ルールを前記通信スイッチに通知する処理と、
通信量が０になった通信に関する前記ルールを、前記フローテーブルから削除する処理とを、
前記コンピュータに実行させ、
前記ルールは、
前記パケットの送信元ＩＰアドレスを異なるＩＰアドレスに変換する第１の処理と、変換後のＩＰアドレスを用いて前記パケットを転送する処理と、を規定する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラ、通信スイッチ、通信システム、通信制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、無線ネットワークの環境（例えば、一店舗、展示会等の限られたエリア）において、当該無線ネットワークの環境に存在する端末に、アプリケーションのダウンロード等を提供するサービスが実現されている。具体的には、ネットワーク管理者等は、無線ネットワークの環境において、ＷｉＦｉ（Wireless Fidelity）等を利用したネットワークを構築する。そして、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバが、端末にＩＰ（Internet Protocol）アドレスをリース（即ち、端末に、所定のＩＰアドレスの使用を許可）することで、当該端末が上記のサービスを利用することを可能にする。
【０００３】
ところで、上記のような無線ネットワークの環境においては、接続する端末の数、通信量等を予め予測することが困難である。そのため、効率的に通信を行うためには、状況に応じて、通信経路を適切に制御することが望まれる。そこで、通信経路を制御する技術が提案されている（特許文献１−３）。
【０００４】
特許文献１においては、オープンフロー（OpenFlow）（非特許文献１、２参照）に基づいて、一時停止状態の仮想サーバの稼働再開後における、通信ネットワークへの接続位置に基づいて、パケットを転送する通信経路を転送ノードに設定する技術が記載されている。
【０００５】
特許文献２においては、ＩＰアドレスと、ＭＡＣ（Media Access Control）アドレスと、ＤＮＳ（Domain Name System）名と、ノードを識別するための情報とに基づいて、重複ノードを決定し、重複ノードを排除する技術が記載されている。
【０００６】
特許文献３においては、フローテーブルを参照し、パケットのプロトコルヘッダを修正する技術が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２０１５−５２３７４７号公報
【特許文献２】特開２０１５−０９２６６６号公報
【特許文献３】特表２０１４−５２９９２６号公報
【非特許文献】
【０００８】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２８（２０１６）年２月１８日検索］、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２８（２０１６）年２月１８日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００９】
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
【００１０】
上記の通り、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバが、端末にＩＰ（Internet Protocol）アドレスをリースしたとする。その後、一時的に、端末が、ＩＰアドレスを保持した状態で、ネットワークエリア外に移動したとする。端末が、ネットワークエリア外に移動した場合、ＤＨＣＰサーバは当該端末と通信不可能となるため、当該端末にリースしたＩＰアドレスを解放する。その後、他の新たな端末がネットワークに接続した場合、ＤＨＣＰサーバは、当該新たな端末に、解放済みのＩＰアドレスをリースする。
【００１１】
しかし、一時的に、ネットワーク外に移動した端末が、再び、ネットワークエリア内に移動すると、当該端末のＩＰアドレスと、上記の新たな端末のＩＰアドレスとが重複し、通信エラーが発生する恐れがある。
【００１２】
ここで、特許文献１−３に記載された技術では、ネットワーク上で、ＩＰアドレスが重複する場合については、一切記載されていない。そのため、特許文献１−３に記載された技術では、ＩＰアドレスが重複する場合、通信エラーが発生する恐れがある。
【００１３】
そこで、本発明は、同一ＩＰアドレスが、２以上の端末で同時に利用される状態であっても、適切な通信を実現することに貢献するコントローラ、通信スイッチ、通信システム、通信制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の第１の視点によれば、コントローラが提供される。該コントローラは、パケットを処理する、通信スイッチを管理する。
さらに、該コントローラは、前記通信スイッチが実行する、１又は２以上のルールを含む、フローテーブルを備える。該ルールは、ＩＰ（Internet Protocol）アドレスを含んで構成され、前記通信スイッチは、前記コントローラにフロー情報を通知する、通信制御部を備える。
さらに、該コントローラは、パケットの送信元ＩＰアドレスと同一のＩＰアドレスを有する重複ルールが、前記フローテーブルに登録されているか否かを判断する、重複ルール判断部を備える。
さらに、該コントローラは、前記重複ルールが前記フローテーブルに登録されている場合、新規の前記ルールを作成する、ルール管理部と、前記通信スイッチが通知する前記フロー情報に基づいて、通信量を解析し、フロー情報毎に、通信量がゼロであるか否かを示すフラグを設定するフロー情報監視部を備える。
さらに、前記ルール管理部は、前記フロー情報監視部が解析する前記通信量に基づいて、通信量が０になった通信に関する前記ルールを、前記フローテーブルから削除し、該ルールは、パケットの送信元ＩＰアドレスを、異なるＩＰアドレスに変換する第１の処理を規定する。
さらに、該ルールは、変換後のＩＰアドレスを用いて、パケットを転送する第２の処理を規定する。
【００１５】
本発明の第２の視点によれば、通信システムが提供される。該通信システムは、１又は２以上の端末の通信を中継し、前記端末が送信するパケットを処理する、通信スイッチと、前記通信スイッチを管理する、コントローラと、を含む。
該コントローラは、パケットを処理する、通信スイッチを管理する。
さらに、該コントローラは、前記通信スイッチが実行する、１又は２以上のルールを含む、フローテーブルを備える。該ルールは、ＩＰ（Internet Protocol）アドレスを含んで構成され、前記通信スイッチは、前記コントローラにフロー情報を通知する、通信制御部を備える。
さらに、該コントローラは、パケットの送信元ＩＰアドレスと同一のＩＰアドレスを有する重複ルールが、前記フローテーブルに登録されているか否かを判断する、重複ルール判断部を備える。
さらに、該コントローラは、前記重複ルールが前記フローテーブルに登録されている場合、新規の前記ルールを作成する、ルール管理部と、前記通信スイッチが通知する前記フロー情報に基づいて、通信量を解析し、フロー情報毎に、通信量がゼロであるか否かを示すフラグを設定するフロー情報監視部を備える。
さらに、前記ルール管理部は、前記フロー情報監視部が解析する前記通信量に基づいて、通信量が０になった通信に関する前記ルールを、前記フローテーブルから削除し、該ルールは、パケットの送信元ＩＰアドレスを、異なるＩＰアドレスに変換する第１の処理を規定する。
さらに、該ルールは、変換後のＩＰアドレスを用いて、パケットを転送する第２の処理を規定する。
【００１６】
本発明の第３の視点によれば、通信スイッチが提供される。該通信スイッチは、１又は２以上の端末の通信を中継する。
さらに、該通信スイッチは、１又は２以上のルールを含む、フローテーブルを備える。該ルールは、ＩＰアドレスとＭＡＣアドレスを含む。
さらに、該通信スイッチは、パケットの送信元ＩＰアドレス、及び送信元ＭＡＣアドレスに基づいて、前記フローテーブルを参照し、パケットの送信元ＩＰアドレス及びＭＡＣアドレスを有する前記ルールが、前記フローテーブルに登録されているか否かを判断する、通信制御部を備える。
該通信制御部は、前記ルールに基づいて、パケットの送信元ＩＰアドレスを、異なるＩＰアドレスに変換し、変換後のＩＰアドレスを用いて、パケットを転送する。
【００１７】
本発明の第４の視点によれば、通信制御方法が提供される。該通信制御方法は、１又は２以上のルールを含むフローテーブルに、パケットの送信元ＩＰアドレスと同一のＩＰアドレスを有する重複ルールが登録されているか否かをパケットを処理する通信スイッチを管理するコントローラが判断する工程を含む。
さらに、該通信制御方法は、前記通信スイッチが、前記コントローラにフロー情報を通知する工程と、前記通信スイッチが通知する前記フロー情報に基づいて、通信量を解析し、フロー情報毎に、通信量がゼロであるか否かを示すフラグを設定する工程と、重複ルールが前記フローテーブルに存在する場合、前記コントローラが新規の前記ルールを作成する工程を含む。
さらに、該通信制御方法は、前記ルールに基づいて、前記コントローラが前記パケットの送信元ＩＰアドレスを、異なるＩＰアドレスに変換する工程を含む。
さらに、該通信制御方法は、前記ルールに基づいて、変換後のＩＰアドレスを用いて、前記通信スイッチが前記パケットを転送する工程と、通信量が０になった通信に関する前記ルールを、前記コントローラが前記フローテーブルから削除する工程を含む。
なお、本方法は、通信スイッチを管理するコントローラという、特定の機械に結び付けられている。
【００１８】
本発明の第５の視点によれば、プログラムが提供される。該プログラムは、１又は２以上のルールを含む、フローテーブルを備え、通信スイッチを管理するコントローラを制御するコンピュータに実行させるプログラムであって、前記通信スイッチが、前記コントローラにフロー情報を通知する処理と、パケットの送信元ＩＰアドレスと同一のＩＰアドレスを有する重複ルールが、前記フローテーブルに登録されているか否かを判断する処理と、前記通信スイッチが通知する前記フロー情報に基づいて、通信量を解析し、フロー情報毎に、通信量がゼロであるか否かを示すフラグを設定する処理と、前記コントローラーが通信量が０になった通信に関する前記ルールを、前記フローテーブルから削除する処理を、該コンピュータに実行させる。
さらに、該プログラムは、前記重複ルールが前記フローテーブルに存在する場合、新規の前記ルールを作成する処理を、該コンピュータに実行させる。
該ルールは、前記パケットの送信元ＩＰアドレスを、異なるＩＰアドレスに変換する第１の処理を規定する。
さらに、該ルールは、変換後のＩＰアドレスを用いて、前記パケットを転送する第２の処理を規定する。
なお、本プログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１９】
本発明の各視点によれば、同一ＩＰアドレスが、２以上の端末で同時に利用される状態であっても、適切な通信を実現することに貢献するコントローラ、通信スイッチ、通信システム、通信制御方法、及びプログラムが提供される。
【図面の簡単な説明】
【００２０】
【図１】一実施形態の概要を説明するための図である。
【図２】通信システムの全体構成の一例を示すブロック図である。
【図３】コントローラ１０、オープンフロースイッチ２０の内部構成の一例を示すブロック図である。
【図４】通信制御ルールテーブル２３の一例を示す図である。
【図５】通信制御ルール作成元情報の一例を示す図である。
【図６】通信制御対象ＩＰアドレステーブル１５の一例を示す図である。
【図７】ＩＰアドレス使用管理テーブル１６の一例を示す図である。
【図８】フロー情報テーブル１８の一例を示す図である。
【図９】コントローラ１０の構成要素間の関係の一例を示す図である。
【図１０】通信制御対象ＩＰアドレステーブル１５、ＩＰアドレス使用管理テーブル１６を初期設定する処理の一例を示すフローチャートである。
【図１１】パケットの送信元ＩＰアドレスの競合を検知する処理の一例を示すフローチャートである。
【図１２】通信制御ルール作成元情報を作成する処理の一例を示すフローチャートである。
【図１３】重複ルールの有無を判断する処理の一例を示すフローチャートである。
【図１４】通信制御ルールを作成する処理の一例を示すフローチャートである。
【図１５】通信制御ルールを通知する処理の一例を示すフローチャートである。
【図１６】通信制御ルールを通知する処理の一例を示すフローチャートである。
【図１７】通信制御ルールに従って、パケットを転送する処理の一例を示すフローチャートである。
【図１８】フロー情報を監視する処理の一例を示すフローチャートである。
【図１９】通信制御ルールを削除する処理の一例を示すフローチャートである。
【図２０】通信制御ルールを削除する処理の一例を示すフローチャートである。
【図２１】通信制御ルールを削除する処理の一例を示すフローチャートである。
【図２２】通信システムの全体構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２１】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００２２】
上述の通り、同一ＩＰアドレスが、２以上の端末で同時に利用される状態であっても、適切な通信を実現することに貢献するコントローラが望まれる。
【００２３】
そこで、一例として、図１に示すコントローラ１０００を提供する。コントローラ１０００は、パケットを処理する、通信スイッチ２０００を管理する。そして、コントローラ１０００は、フローテーブル１００１と、重複ルール判断部１００２と、ルール管理部１００３とを備える。
【００２４】
フローテーブル１００１は、通信スイッチ２０００が実行する、１又は２以上のルール１００４を含む。ルール１００４は、ＩＰアドレス１００５を含んで構成される。さらに、ルール１００４は、第１の処理と、第２の処理とを規定する。具体的には、第１の処理は、通信スイッチ２０００が受信した、パケットの送信元ＩＰアドレス１００６を、異なるＩＰアドレスに変換する処理である。第２の処理は、変換後のＩＰアドレスを用いて、パケットを転送する処理である。
【００２５】
重複ルール判断部１００２は、パケットの送信元ＩＰアドレス１００６と同一のＩＰアドレスを有する重複ルールが、フローテーブル１００１に登録されているか否かを判断する。
【００２６】
ルール管理部１００３は、重複ルールがフローテーブル１００１に登録されている場合、新規のルールを作成する。
【００２７】
例えば、通信スイッチ２０００がパケット１２００を受信した場合、通信スイッチ２０００は、パケット１２００の送信元ＩＰアドレス１００６を、コントローラ１０００に通知する。重複ルール判断部１００２は、パケットの送信元ＩＰアドレス１００６の通知を受信した場合、フローテーブル参照し、重複ルールの有無を判断する。
【００２８】
そして、ルール管理部１００３は、重複ルールがフローテーブル１００１に登録されている場合、新規のルールを作成する。具体的には、ルール管理部１００３は、ＩＰアドレスの重複を回避するための新規ルールを作成する。
【００２９】
そして、ルール管理部１００３は、作成したルールを、ルール１００７として、通信スイッチ２０００に送信する。
【００３０】
通信スイッチ２０００は、受信したルール１００７に基づいて、第１の処理、及び第２の処理を実行し、パケット１２０１を転送する。具体的には、通信スイッチ２０００は、受信したルール１００７に基づいて、パケットの送信元ＩＰアドレス１００６を、異なるＩＰアドレスに変換する（第１の処理）。さらに、通信スイッチ２０００は、受信したルール１００７に基づいて、変換後のＩＰアドレスを用いて、パケット１２０１を転送する（第２の処理）。
【００３１】
以上の通り、コントローラ１０００は、同一ＩＰアドレスが、２以上の端末で同時に利用される場合、ＩＰアドレスの重複を回避するためのルールを、通信スイッチ２０００に転送する。そして、通信スイッチ２０００は、受信したルールに基づいて、パケットを転送することで、パケットの送信元ＩＰアドレスの重複を回避する。従って、コントローラ１０００は、同一ＩＰアドレスが、２以上の端末で同時に利用される状態であっても、適切な通信を実現することに貢献する。
【００３２】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。なお、以下の説明においては、ＯｐｅｎＦｌｏｗを用いた通信制御を例示して説明する。ただし、これは、本発明を、ＯｐｅｎＦｌｏｗを用いた通信制御に限定する趣旨ではない。また、以下の説明においては、上記の通信スイッチをオープンフロースイッチと呼ぶ。また、以下の説明においては、上記のフローテーブルを、通信制御ルールテーブルと呼ぶ。また、以下の説明においては、上記のルール管理部を、通信制御ルール管理部と呼ぶ。また、以下の説明においては、上記のルールを、通信制御ルールと呼ぶ。
【００３３】
図２は、本実施形態に係る通信システムの全体構成の一例を示すブロック図である。図２を参照すると、通信システムは、コントローラ１０と、オープンフロースイッチ２０と、オープンフロースイッチ２０を含むネットワークから構成される。さらに、図２を参照すると、ネットワークは、サービス提供サーバ３０と、無線アクセスポイント４０と、無線コントローラ５０と、端末６０ａ、６０ｂとを含んで構成される。なお、以下の説明においては、各端末（６０ａ、６０ｂ）を夫々、区別する必要がない場合には、単に、端末６０と表記する。なお、図２においては、１つのコントローラ１０、１つのオープンフロースイッチ２０、２つの端末（６０ａ、６０ｂ）を図示するが、コントローラ１０、オープンフロースイッチ２０、端末６０は、夫々、任意の台数とすることができる。
【００３４】
コントローラ１０は、オープンフロースイッチ２０と物理的に分離されたサーバマシン又は当該サーバマシン上で動作する仮想マシンである。コントローラ１０は、オープンフロースイッチ２０を管理する。コントローラ１０は、１又は２以上のオープンフロースイッチ２０を管理しても良い。例えば、コントローラ１０は、各オープンフロースイッチ２０と専用線もしくは通常のネットワークを利用したセキュアチャネル（Secure Channel）で接続され、所定のプロトコル（例えば、ｓＦｌｏｗ、ＮｅｔＦｌｏｗ、ＯｐｅｎＦｌｏｗ等）で通信を行う構成であっても良い。なお、上記のプロトコルの例示は、一例であり、上記のプロトコルに限定する趣旨ではない。
【００３５】
オープンフロースイッチ２０は、１又は２以上の端末６０の通信を中継し、端末６０が送信するパケットを処理する。サービス提供サーバ３０は、サービス提供機能（例えば、アプリケーションのダウンロード等）を有する。
【００３６】
次に、図３を参照しながら、コントローラ１０、オープンフロースイッチ２０の内部構成について、詳細に説明する。
【００３７】
［オープンフロースイッチの構成］
オープンフロースイッチ２０は、通信制御部２１と、命令監視部２２と、通信制御ルールテーブル２３と、を含んで構成される。
【００３８】
通信制御ルールテーブル２３は、ＩＰアドレスの変換を制御する、通信制御ルールに必要な情報を格納するテーブルである。ここで、具体的には、通信制御ルールテーブル２３は、制御対象のパケットに関して、送信元ＭＡＣアドレスと、送信先ＭＡＣアドレスと、変換するか否かを示す情報と、変換対象の情報の種類と、変換後のＩＰアドレスと、を対応付けた情報を格納する。ここで、変換対象の情報の種類とは、送信元ＩＰアドレス、又は送信先ＩＰアドレスのいずれかの情報であるものする。以下の説明では、変換するか否かを示す情報を、「アクション」と呼ぶ。また、以下の説明では、変換対象の情報の種類を、「フィールド」と呼ぶ。なお、オープンフロースイッチ２０は、当該オープンフロースイッチ２０が受信したパケットに対する通信制御ルールを、通信制御ルールテーブル２３として備えるものとする。
【００３９】
図４は、通信制御ルールテーブル２３の一例を示す図である。例えば、図４に示す通信制御ルールテーブル２３は、送信元ＭＡＣアドレス「AA:BB:CC:DD:EE:FF」、及び送信先ＭＡＣアドレス「NN:OO:PP:QQ:RR:SS」のパケットに関して、送信元ＩＰアドレスを、「aaa.aaa.aaa.aaa」に変換することを示す。また、例えば、図４に示す通信制御ルールテーブル２３は、送信元ＭＡＣアドレス「NN:OO:PP:QQ:RR:SS」、送信先ＭＡＣアドレス「AA:BB:CC:DD:EE:FF」のパケットに関して、送信先ＩＰアドレスを、「XXX.XXX.XXX.XXX」に変換することを示す。
【００４０】
通信制御部２１は、パケットの送信元ＩＰアドレス及びＭＡＣアドレスを有する通信制御ルールが、通信制御ルールテーブル２３に登録されているか否かを判断する。通信制御部２１は、パケットの送信元ＩＰアドレス及びＭＡＣアドレスを有する通信制御ルールが通信制御ルールテーブル２３に登録されていない場合、通信制御ルール作成元情報をコントローラ１０に通知する。つまり、通信制御部２１は、通信制御ルールテーブル２３のルールに合致しない通信を検知した場合、通信制御ルール作成元情報を、コントローラに通知する。なお、通信制御部２１が、通信制御ルール作成元情報をコントローラ１０に通知することは、オープンフロースイッチ２０が、対象のパケットに関して、通信制御ルールの作成をコントローラ１０に依頼することに相当する。
【００４１】
ここで、通信制御ルール作成元情報は、オープンフロースイッチ２０が受信したパケットに関して、パケットの送信元に関する情報と、パケットの送信先に関する情報とを含む情報である。なお、通信制御ルール作成元情報は、制御対象のパケットの送信元ＩＰアドレスを含んで構成されるものとする。
【００４２】
図５は、通信制御ルール作成元情報の一例を示す図である。図５に示すように、通信制御ルール作成元情報は、送信元ＭＡＣアドレスと、送信元ＩＰアドレスと、送信先ＭＡＣアドレスと、送信先ＩＰアドレスとを含む情報である。
【００４３】
また、通信制御部２１は、通信制御ルールテーブル２３に登録された通信制御ルールに従って、パケットの転送処理を制御する。具体的には、通信制御部２１は、通信制御ルールに従って、パケットの送信元ＩＰアドレス、送信先ＩＰアドレスの少なくともいずれかを、異なるＩＰアドレスに変換する（第１の処理）。また、通信制御部２１は、変換後のＩＰアドレスを用いて、パケットを転送する（第２の処理）。
【００４４】
また、通信制御部２１は、コントローラ１０にフロー情報を通知する。具体的には、通信制御部２１は、通信パケット量を含むフロー情報を、コントローラ１０に通知する。
【００４５】
命令監視部２２は、コントローラ１０から、通信制御ルールの削除命令を受信した場合、通信制御ルールテーブル２３から、削除対象の通信制御ルールを削除する。具体的には、命令監視部２２は、通信制御ルールの削除命令を受信した場合、通信制御ルールテーブル２３を検索し、削除対象の通信制御ルールが存在するか否かを判断する。そして、削除対象の通信制御ルールが通信制御ルールテーブル２３に存在する場合、命令監視部２２は、削除対象の通信制御ルールを削除する。例えば、命令監視部２２は、送信元ＭＡＣアドレスをキーとして、通信制御ルールテーブル２３を検索しても良い。そして、命令監視部２２は、検索キーである送信元ＭＡＣアドレスを含む、通信制御ルールを、削除対象の通信制御ルールであると判断しても良い。
【００４６】
［コントローラの構成］
コントローラ１０は、情報管理部１１と、重複ルール判断部１２と、通信制御ルール管理部１３と、フロー情報監視部１４と、通信制御対象ＩＰアドレステーブル１５と、ＩＰアドレス使用管理テーブル１６と、通信制御ルールテーブル１７と、フロー情報テーブル１８と、を含んで構成される。
【００４７】
通信制御ルールテーブル１７は、上記の通信制御ルールテーブル２３と同様に、ＩＰアドレスの変換を制御する、通信制御ルールに必要な情報を格納するテーブルである。通信制御ルールテーブル１７は、上記の通信制御ルールテーブル２３と同様の情報を含んで構成されるものとする。コントローラ１０の通信制御ルールテーブル１７と、オープンフロースイッチ２０の通信制御ルールテーブル２３との相違点は、通信制御ルールテーブル１７は、オープンフロースイッチ２０から独立した通信制御ルールを格納する点である。つまり、コントローラ１０は、通信制御ルールテーブル１７に格納される通信制御ルールを、異なるオープンフロースイッチ２０に通知しても良いものとする。
【００４８】
情報管理部１１は、通信制御の対象範囲であるＩＰアドレス（以下、通信制御対象ＩＰアドレスと呼ぶ）を、通信制御対象ＩＰアドレステーブル１５に設定（格納）する。例えば、ネットワーク設計者が、初期設定として、通信制御の対象範囲であるＩＰアドレスを、コントローラ１０に入力しても良い。
【００４９】
図６は、通信制御対象ＩＰアドレステーブル１５の一例を示す図である。図６に示すように、通信制御対象ＩＰアドレステーブルは、通信制御対象の開始ＩＰアドレスと、終了ＩＰアドレスと、サブネットマスクとを対応付けた情報を格納する。
【００５０】
また、情報管理部１１は、通信制御に利用するＩＰアドレス（以下、利用ＩＰアドレスと呼ぶ）と、当該ＩＰアドレスの使用状態とを対応付けた情報（以下、ＩＰアドレス使用管理情報と呼ぶ）を、ＩＰアドレス使用管理テーブル１６に格納する。例えば、ネットワーク設計者が、初期設定として、ＩＰアドレス使用管理情報をコントローラ１０に入力しても良い。
【００５１】
図７は、ＩＰアドレス使用管理テーブル１６の一例を示す図である。図７に示すように、ＩＰアドレス使用管理テーブル１６は、ＩＰアドレスと、当該ＩＰアドレスの使用状況（ステータス）とを対応付けた情報を格納する。図７に示すように、ＩＰアドレスの使用状況とは、対応するＩＰアドレスが、「使用中」であるか、「未使用」であるかを示す情報である。
【００５２】
重複ルール判断部１２は、オープンフロースイッチ２０がコントローラ１０に送信する、通信制御ルール作成元情報に基づいて、通信制御ルールテーブル１７を検索する。
【００５３】
コントローラ１０が、通信制御ルール作成元情報を受信した場合、重複ルール判断部１２は、パケットの送信元ＩＰアドレスと同一のＩＰアドレスを有する重複ルールが、通信制御ルールテーブル１７に登録されているか否かを判断する。具体的には、重複ルール判断部１２は、通信制御ルール作成元情報に含まれる送信元ＩＰアドレスを検索キーとして、当該送信元ＩＰアドレスと同一のＩＰアドレスを有する通信制御ルールが、通信制御ルールテーブル１７に登録されているか否かを判断する。
【００５４】
そして、重複ルール判断部１２は、送信元ＩＰアドレスが競合することを示すフラグ（以下、通信制御ルール競合フラグと呼ぶ）を設定する。重複ルールが通信制御ルールテーブル１７に登録されている場合には、重複ルール判断部１２は、通信制御ルール競合フラグをＯＮに設定する。一方、重複ルールが通信制御ルールテーブル１７に登録されていない場合には、重複ルール判断部１２は、通信制御ルール競合フラグをＯＦＦに設定する。
【００５５】
重複ルールが通信制御ルールテーブル１７に登録されている、と重複ルール判断部１２が判断した場合、通信制御ルール管理部１３は、新規のルールを作成する。具体的には、重複ルールが通信制御ルールテーブル１７に登録されている、と重複ルール判断部１２が判断した場合、通信制御ルール管理部１３は、ＩＰアドレス使用管理テーブル１６を参照し、未使用のＩＰアドレスを抽出する。
【００５６】
そして、通信制御ルール管理部１３は、抽出したＩＰアドレスを含む、新規の通信制御ルールを作成する。具体的には、通信制御ルール管理部１３は、パケットの送信元端末を識別する情報と、パケットの送信先端末を識別する情報と、ＩＰアドレス使用管理テーブル１６に格納されるＩＰアドレスのうち、未使用のＩＰアドレスのいずれか一のＩＰアドレスと、を含む通信制御ルールを作成する。より具体的には、通信制御ルール管理部１３は、通信制御ルール作成元情報に含まれる送信元ＭＡＣアドレスと、送信先ＭＡＣアドレスと、抽出したＩＰアドレスと、を対応付けた、通信制御ルールを作成する。そして、通信制御ルール管理部１３は、作成した通信制御ルールを、通信制御ルールテーブル１７に登録する。
【００５７】
そして、通信制御ルール管理部１３は、通信制御ルール作成元情報の送信元である、オープンフロースイッチ２０に、作成した新規の通信制御ルールを通知する。
【００５８】
フロー情報監視部１４は、オープンフロースイッチ２０が通知するフロー情報に基づいて、通信量を解析する。具体的には、フロー情報監視部１４は、フロー情報を受信した場合、受信したフロー情報を、フロー情報テーブル１８に登録する。そして、フロー情報監視部１４は、オープンフロースイッチ２０が通知するフロー情報に基づいて、サービス提供サーバ３０が利用するプロトコルの通信量を解析する。そして、フロー情報監視部１４は、通信量が０である通信が存在するか否かを判断する。さらに、フロー情報監視部１４は、フロー情報毎に、通信量が０であるか否かを示すフラグ（以下、通信量ゼロフラグと呼ぶ）を設定する。具体的には、フロー情報監視部１４は、通信量が０であるフロー情報に対して、通信量ゼロフラグをＯＮに設定する。一方、フロー情報監視部１４は、通信量が０であるフロー情報に対して、通信量ゼロフラグをＯＦＦに設定する。
【００５９】
図８は、フロー情報テーブル１８の一例を示す図である。図８に示すフロー情報テーブル１８は、送信元ＭＡＣアドレスと、送信元ＩＰアドレスと、プロトコルと、出力量（ｂｉｔ）を対応付けた情報である。例えば、図８に示すフロー情報テーブルの場合、フロー情報監視部１４は、送信元ＭＡＣアドレス「HH:II:JJ:KK:LL:MM」、送信元ＩＰアドレス「XXX.XXX.XXX.XXX」、プロトコル「protoco1」の通信は、出力量「0bit」である。そのため、フロー情報監視部１４は、送信元ＭＡＣアドレス「HH:II:JJ:KK:LL:MM」、送信元ＩＰアドレス「XXX.XXX.XXX.XXX」、プロトコル「protoco1」の通信を、通信量が０になった通信であると判断する。なお、図８は、フロー情報テーブル１８の一例であり、フロー情報テーブル１８を示す形式に限定する趣旨ではない。フロー情報テーブル１８は、通信量を解析するために必要な情報であれば良く、その詳細は問わない。
【００６０】
フロー情報監視部１４は、通信量が０になった通信が存在すると判断した場合、通信制御ルール管理部１３は、通信量が０になった通信に関する通信制御ルールを、通信制御ルールテーブル１７から削除する。さらに、通信制御ルール管理部１３は、削除した通信制御ルールと同一の通信制御ルールを、通信制御ルールテーブル２３から削除することを、オープンフロースイッチ２０に指示する。具体的には、通信制御ルール管理部１３は、通信量が０になった通信に対応する、フロー情報の送信元のオープンフロースイッチ２０に、削除対象の通信制御ルールを削除することを指示する。
【００６１】
［通信システムの動作］
次に、通信システムの動作について、詳細に説明する。
【００６２】
まず、図９、図１０を参照しながら、通信制御対象ＩＰアドレステーブル１５、及びＩＰアドレス使用管理テーブル１６の初期設定処理について説明する。
【００６３】
まず、ネットワーク設計者が、オープンフロースイッチ２０に関して、通信制御対象ＩＰアドレス１０１、及び利用ＩＰアドレス１０２を、コントローラ１０に入力したとする。具体的には、ネットワーク設計者は、通信制御対象ＩＰアドレス１０１として、図６に示すように、制御対象範囲の開始ＩＰアドレス、終了ＩＰアドレス、サブネットマスク等を入力する（図９に示す矢印２０１）。また、ネットワーク設計者は、利用ＩＰアドレス１０２として、通信制御に利用する、１又は２以上のＩＰアドレスを入力する（図９に示す矢印２０２）。
【００６４】
そして、情報管理部１１は、通信制御対象ＩＰアドレス１０１を、通信制御対象ＩＰアドレステーブルに登録する（ステップＳ１、図９に示す矢印２０３）。さらに、情報管理部１１は、利用ＩＰアドレス１０２を、ＩＰアドレス使用管理テーブル１６に登録する（ステップＳ２、図９に示す矢印２０４）。そして、情報管理部１１は、ＩＰアドレス使用管理テーブル１６の各ＩＰアドレスの使用状況（ステータス）を、「未使用」状態に設定し、ＩＰアドレス使用管理テーブル１６の初期設定を終了する。
【００６５】
次に図１１を参照しながら、オープンフロースイッチ２０が、パケットの送信元ＩＰアドレスの競合を検知した場合の処理について説明する。
【００６６】
例えば、図２に示すように、無線アクセスポイント４０に、端末６０ａが接続したとする。そして、端末６０ａは、オープンフロースイッチ２０を介して、サービス提供サーバ３０と通信を開始したとする。
【００６７】
さらに、端末６０ａがサービス提供サーバ３０と通信中の状況において、端末６０ｂが、無線アクセスポイント４０、及びオープンフロースイッチ２０を介して、サービス提供サーバ３０と通信を試みたとする。
【００６８】
ここで、図２を参照すると、端末６０ａのＩＰアドレス、及び端末６０ｂのＩＰアドレスは、共に、「XXX.XXX.XXX.XXX」である。つまり、上記の状況は、同一のＩＰアドレスの端末６０ａと端末６０ｂとが、オープンフロースイッチ２０を介して、サービス提供サーバ３０に通信を試みている状況である。
【００６９】
その場合、当該オープンフロースイッチ２０の通信制御部２１は、送信元ＩＰアドレスが競合している、パケットを検知する（ステップＳ１１）。そして、通信制御部２１は、送信元ＭＡＣアドレス、送信元ＩＰアドレスを検索キーにして、通信制御ルールテーブル２３を検索する（ステップＳ１２、ステップＳ１３）。具体的には、通信制御部２１は、検索キーである送信元ＭＡＣアドレス及び送信元ＩＰアドレスを含む、通信制御ルールが、通信制御ルールテーブル２３に存在するか否かを判断する処理を繰り返す。
【００７０】
例えば、上記の状況である場合、通信制御部２１は、端末６０ｂのＭＡＣアドレス「HH:II:JJ:KK:LL:MM」、及び端末６０ｂのＩＰアドレス「XXX.XXX.XXX.XXX」が、通信制御ルールテーブル２３に存在するか否かを判断する。
【００７１】
検索キーを含む通信制御ルールが、通信制御ルールテーブル２３に存在する場合（ステップＳ１３のＹｅｓ分岐）には、図１１に示す「Ａ」に遷移、即ち、図１７に示すステップＳ７１に遷移する。一方、検索キーを含む通信制御ルールが、通信制御ルールテーブル２３に存在しない場合（ステップＳ１３のＮｏ分岐）には、図１１に示す「Ｂ」に遷移、即ち、図１２に示すステップＳ２１に遷移する。
【００７２】
例えば、通信制御ルールテーブル２３が、図４に示す情報を含んで構成されるとする。その場合、上記の状況である場合、通信制御部２１は、端末６０ｂのＭＡＣアドレス「HH:II:JJ:KK:LL:MM」、及び端末６０ｂのＩＰアドレス「XXX.XXX.XXX.XXX」を検索キーとして、図４に示す通信制御ルールテーブル２３を検索する。その結果、検索キーを含む通信制御ルールが、通信制御ルールテーブル２３に存在しない、と通信制御部２３は判断する。
【００７３】
次に、図１２を参照しながら、オープンフロースイッチ２０が、通信制御ルール作成元情報を、コントローラに送信する処理について説明する。
【００７４】
ステップＳ２１において、通信制御部２１は、パケットの送信元ＩＰアドレス、送信元ＭＡＣアドレス、送信先ＩＰアドレス、送信先ＭＡＣアドレスに基づいて、通信制御ルール作成元情報を作成する。
【００７５】
例えば、上記の状況である場合、通信制御部２１は、端末６０ｂのＭＡＣアドレス「HH:II:JJ:KK:LL:MM」及びＩＰアドレス「XXX.XXX.XXX.XXX」、サービス提供サーバ３０のＭＡＣアドレス「NN:OO:PP:QQ:RR:SS」及びＩＰアドレス「ZZZ.ZZZ.ZZZ.ZZZ」に基づいて、通信制御ルール作成元情報を作成する。
【００７６】
そして、ステップＳ２２において、通信制御部２１は、通信制御ルール作成元情報を、コントローラ１０に通知する。そして、通信制御部２１は、コントローラ１０からの通信制御ルールの通知を待ち受ける（ステップＳ２３）。具体的には、コントローラ１０から、通信制御ルールの通知を受信するまで、通信制御ルールの通知を受信したか否かを判断する処理を、通信制御部２１は繰り返す。
【００７７】
次に、図９、図１３を参照しながら、コントローラ１０が、重複ルールの有無を判断する処理について説明する。
【００７８】
ここで、コントローラ１０は、オープンフロースイッチ２０からの通信制御ルール作成元情報１０３の通知を監視している状態であるとする。その場合、コントローラ１０は、通信制御ルール作成元情報１０３を受信すると、重複ルール判断部１２は、通信制御ルール作成元情報１０３を解析する（ステップＳ３１、図９に示す矢印２０５）。具体的には、重複ルール判断部１２は、通信制御ルール作成元情報１０３から、送信元ＩＰアドレスを読み取る。
【００７９】
そして、重複ルール判断部１２は、読み取った送信元ＩＰアドレスを検索キーにして、通信制御ルールテーブル１７を検索する（ステップＳ３２、ステップＳ３３）。具体的には、検索キーである送信元ＩＰアドレスと同一の送信元ＩＰアドレスを有する、通信制御ルールが、通信制御ルールテーブル１７に存在するか否かを、重複ルール判断部１２は判断する。
【００８０】
検索キーを含む通信制御ルールが、通信制御ルールテーブル１７に存在する場合（ステップＳ３３のＹｅｓ分岐）には、重複ルール判断部１２は、重複ルールの存在の有無を示す、通信制御ルール競合フラグをＯＮに設定する（ステップＳ３４）。そして、図１３に示すステップＳ３５に遷移する。一方、検索キーを含む通信制御ルールが、通信制御ルールテーブル１７に存在しない場合（ステップＳ３３のＮｏ分岐）には、図１３に示すステップＳ３５に遷移する。なお、検索キーを含む通信制御ルールが、通信制御ルールテーブル１７に存在しない場合には、通信制御ルール競合フラグをＯＦＦに設定する。そして、ステップＳ３５において、重複ルール判断部１２は、通信制御ルール管理部１３を呼び出す。
【００８１】
次に、図９、図１４を参照しながら、通信制御ルールを作成する処理について説明する。
【００８２】
通信制御ルール管理部１３は、フロー情報テーブル１８を参照し（図９に示す矢印２１２）、通信制御ルール送信元情報１０３に対応する、フロー情報を特定する。そして、特定したフロー情報に対応する、通信量ゼロフラグがＯＮであるか否かを、通信制御ルール管理部１３は判断する（ステップＳ４１）。通信量ゼロフラグがＯＮである場合（ステップＳ４１のＹｅｓ分岐）には、図１４に示す「Ｄ」に遷移、即ち、図１９に示すステップＳ９１に遷移する。一方、通信量ゼロフラグがＯＦＦである場合（ステップＳ４１のＮｏ分岐）には、ステップＳ４２に遷移する。
【００８３】
ステップＳ４２において、通信制御ルール管理部１３は、通信制御ルール作成元情報１０３に含まれる、送信元ＩＰアドレス、送信元ＭＡＣアドレス、送信先ＩＰアドレス、送信先ＭＡＣアドレスに基づいて、通信制御ルールを作成する。
【００８４】
ステップＳ４３において、通信制御ルール競合フラグがゼロであるか否かを、通信制御ルール管理部１３は判断する。通信制御ルール競合フラグがＯＮである場合（ステップＳ４３のＹｅｓ分岐）には、図１４に示す「Ｅ」に遷移、即ち、図１５に示すステップＳ５１に遷移する。
【００８５】
一方、通信制御ルール競合フラグがＯＦＦである場合（ステップＳ４３のＮｏ分岐）には、通信制御ルール管理部１３はオープンフロースイッチ２０に通信制御ルールを通知する（ステップＳ４４、図９に示す矢印２１０）。
【００８６】
次に、図９、図１５、図１６を参照しながら、コントローラ１０が通信制御ルールをオープンフロースイッチに通知する処理について説明する。
【００８７】
通信制御ルール管理部１３は、送信元ＩＰアドレスを検索キーにして、通信制御対象ＩＰアドレステーブル１５を検索する（ステップＳ５１、ステップＳ５２、図９に示す矢印２０７）。例えば、図６に示すように、通信制御対象ＩＰアドレステーブル１５は、制御対象の開始ＩＰアドレスと、終了ＩＰアドレスとを含んで構成されるとする。その場合、通信制御対象ＩＰアドレステーブル１５に含まれる、開始ＩＰアドレスから終了ＩＰアドレスまでに、検索キーである送信元ＩＰアドレスが含まれるか否かを、通信制御ルール管理部１３は判断しても良い。
【００８８】
通信制御ルール管理部１３は、検索キーである送信元ＩＰアドレスが、制御対象範囲のＩＰアドレスに含まれる場合（ステップＳ５２のＹｅｓ分岐）には、図１５に示す「Ｆ」に遷移、即ち、図１６に示すステップＳ６１に遷移する。
【００８９】
一方、通信制御ルール管理部１３は、検索キーである送信元ＩＰアドレスが、制御対象範囲のＩＰアドレスに含まれない場合（ステップＳ５２のＮｏ分岐）には、ステップＳ５３に遷移する。ステップＳ５３において、通信制御ルール管理部１３は、検索キーとした送信元ＩＰアドレスを、通信制御対象ＩＰアドレステーブル１５に追加登録する。そして、図１５に示す「Ｇ」に遷移、即ち、図１６に示すステップＳ６１に遷移する。
【００９０】
ここで、検索キーである送信元ＩＰアドレスが、制御対象範囲のＩＰアドレスに含まれないことは、オープンフロースイッチ２０において、制御対象外のＩＰアドレスが競合したことを意味する。その場合、当該ＩＰアドレスを制御対象に追加するために、通信制御対象ＩＰアドレステーブル１５に当該ＩＰアドレスを追加する。
【００９１】
図１６に示すステップＳ６１において、通信制御ルール管理部１３は、ＩＰアドレス使用管理テーブル１６を検索する。そして、ＩＰアドレス使用管理テーブル１６から、「未使用」のＩＰアドレスを読み込み、当該ＩＰアドレスに対応するステータスを「使用中」に更新する（ステップＳ６２、図９に示す矢印２０８）。
【００９２】
ステップＳ６３において、通信制御ルール管理部１３は、作成途中の通信制御ルールに、アクションとして「変換」を設定し、フィールドとして「送信元ＩＰアドレス」を設定し、データとして、ＩＰアドレス使用管理テーブル１６から読み込んだＩＰアドレスを追加する。
【００９３】
換言すると、通信制御ルール管理部１３は、変換するか否かを示す情報（上記のアクションに相当）として、変換することを示す情報を、作成途中の通信制御ルールに設定する。また、通信制御ルール管理部１３は、変換対象の情報の種類（上記のフィールドに相当）として、送信元ＩＰアドレスを変換することを示す情報を、作成途中の通信制御ルールに設定する。また、通信制御ルール管理部１３は、変換後のデータ（上記のデータに相当）として、ＩＰアドレス使用管理テーブル１６から読み込んだＩＰアドレスを、作成途中の通信制御ルールに設定する。
【００９４】
そして、通信制御ルール管理部１３は、通信制御ルールテーブル１７に、作成した通信制御ルールを追加する（図９に示す矢印２０９）。そして、通信制御ルール管理部１３は、オープンフロースイッチ２０に、作成した通信制御ルールを通知する（ステップＳ６４、図９に示す矢印２１０）。
【００９５】
再度、図１２を参照すると、オープンフロースイッチ２０の通信制御部２１は、通信制御ルールの通知を受信した場合には、受信した通信制御ルールを、通信制御ルールテーブル２３に登録する。そして、通信制御部２１は、受信した通信制御ルールを参照する（ステップＳ２４）。
【００９６】
次に、図１７を参照しながら、オープンフロースイッチ２０が、通信制御ルールに従って、パケットを転送する処理について説明する。
【００９７】
ここで、通信制御ルールテーブル２３は、送信元ＭＡＣアドレス、及び送信元ＩＰアドレスと同一の送信元ＭＡＣアドレス、及び送信元ＩＰアドレスを有する、通信制御ルールを含む状態であるものとする。そして、通信制御部２１は、当該通信制御ルールを参照する（図１２に示すステップＳ２４、図１１に示すステップＳ１３のＹｅｓ分岐）とする。その場合、通信制御部２１は、参照する通信制御ルールにおいて、アクションが「変換」であるか否かを判断する（ステップＳ７１）。
【００９８】
参照する通信制御ルールにおいて、アクションが「変換」である場合（ステップＳ７１のＹｅｓ分岐）には、通信制御部２１は、参照する通信制御ルールに基づいて、パケットの送信元ＩＰアドレス、又は送信先ＩＰアドレスを更新する（ステップＳ７２）。そして、通信制御部２１は、パケットを転送する（ステップＳ７３）。具体的には、通信制御部２１は、更新後の送信元ＩＰアドレス、又は更新後の送信先ＩＰアドレスに基づいて、パケットを転送する。
サービス提供サーバが端末１に送信する場合には、送信先ＩＰアドレスを「ａａａ．ａａａ．ａａａ．ａａａ」、送信先ＭＡＣアドレスを「ＡＡ：ＢＢ：ＣＣ：ＤＤ：ＥＥ：ＦＦ」に設定し、端末２に送信する場合には、送信先ＩＰアドレスを「ｂｂｂ．ｂｂｂ．ｂｂｂ．ｂｂｂ」、送信先ＭＡＣアドレスを「ＨＨ：ＩＩ：ＪＪ：ＫＫ：ＬＬ：ＭＭ」に設定し、送信元ＭＡＣアドレスはいずれも「ＮＮ．ＯＯ．ＰＰ．ＱＱ．ＲＲ．ＳＳ」に設定する。
オープンフロースイッチ１は、送信元ＭＡＣアドレスが「ＮＮ．ＯＯ．ＰＰ．ＱＱ．ＲＲ．ＳＳ」の通信について、送信先ＭＡＣアドレス「ＡＡ：ＢＢ：ＣＣ：ＤＤ：ＥＥ：ＦＦ」の場合は送信先ＩＰアドレスを「ＸＸＸ．ＸＸＸ．ＸＸＸ．ＸＸＸ」、送信先ＭＡＣアドレス「ＨＨ：ＩＩ：ＪＪ：ＫＫ：ＬＬ：ＭＭ」の場合は送信先ＩＰアドレスを「ＸＸＸ．ＸＸＸ．ＸＸＸ．ＸＸＸ」に変換して、パケットを転送する。
【００９９】
一方、参照する通信制御ルールにおいて、アクションが「変換」ではない場合（ステップＳ７１のＮｏ分岐）には、通信制御部２１は、パケットの送信元ＩＰアドレス、及び送信先ＩＰアドレスを維持して、パケットを転送する（ステップＳ７３）。
【０１００】
次に、図９、図１８を参照しながら、コントローラ１０が、フロー情報を監視する処理について説明する。
【０１０１】
オープンフロースイッチ２０の通信制御部２１は、コントローラ１０にフロー情報１０４を通知する。フロー情報監視部１４は、フロー情報１０４をオープンフロースイッチ２０から受信すると（図９に示す矢印２１３）、フロー情報１０４を解析する（ステップＳ８１）。そして、フロー情報監視部１４は、送信元ＭＡＣアドレス、送信元ＩＰアドレス、通信量等の情報を、フロー情報テーブル１８に格納する（ステップＳ８２、図９に示す矢印２１１）。
【０１０２】
ステップＳ８３において、フロー情報監視部１４は、格納したフロー情報１０４の通信量が、ゼロより大きいか否かを判断する。つまり、フロー情報監視部１４は、格納したフロー情報１０４の通信が継続中であるか否かを判断する。具体的には、フロー情報１０４の通信量がゼロより大きい場合には、フロー情報監視部１４は、通信が継続中であると判断する。一方、フロー情報１０４の通信量がゼロである場合には、フロー情報監視部１４は、通信が終了したと判断する。
【０１０３】
例えば、上記に示すように、端末６０ａのＩＰアドレスと、端末６０ｂのＩＰアドレスが競合した状況において、端末６０ｂは通信を終了し、無線アクセスポイント４０への接続を解放したとする。その場合、端末６０ｂのＭＡＣアドレス「HH:II:JJ:KK:LL:MM」及びＩＰアドレス「XXX.XXX.XXX.XXX」が送信元に関する情報であって、サービス提供サーバ３０のプロトコルを利用した通信において、通信量がゼロである情報が、オープンフロースイッチ２０のフロー情報１０４に蓄積される。そして、オープンフロースイッチ２０は、当該フロー情報１０４（即ち、通信量がゼロであることを示す情報）を、コントローラ１０に通知する。そして、フロー情報監視部１４は、受信したフロー情報１０４に基づいて、端末６０ｂの通信が終了したと判断する。
【０１０４】
フロー情報１０４の通信量がゼロより大きい場合（ステップＳ８３のＹｅｓ分岐）には、フロー情報監視部１４は、ステップＳ８１の処理に戻り、処理を継続する。この場合、対応するフロー情報に対して、通信量ゼロフラグはＯＦＦであるものとする。フロー情報１０４の通信量がゼロである場合（ステップＳ８３のＮｏ分岐）には、フロー情報監視部１４は、対応するフロー情報に対して、通信量ゼロフラグをＯＮに設定する（ステップＳ８４）。
【０１０５】
ステップＳ８５において、フロー情報監視部１４は、通信制御ルール管理部１３を呼び出す（ステップＳ８５）。
【０１０６】
次に、図１９、図２０を参照しながら、通信制御ルールテーブル１７から、通信量がゼロである通信に対応する、通信制御ルールを削除する処理について説明する。
【０１０７】
送信元ＭＡＣアドレス及び送信元ＩＰアドレスに対応する、フロー情報において、通信量ゼロフラグがＯＮであるか否かを、通信制御ルール管理部１３は判断する（図１４に示すステップＳ４１）。フロー情報において、通信量ゼロフラグがＯＮである場合（図１４に示すステップＳ４１のＹｅｓ分岐）には、通信制御ルール管理部１３は、送信元ＩＰアドレス、送信元ＭＡＣアドレスを検索キーにして、通信制御ルールテーブル１７を検索する（ステップＳ９１、ステップＳ９２）。
【０１０８】
検索キーを含む、通信制御ルールが存在する場合（ステップＳ９２のＹｅｓ分岐）には、ステップＳ９３に遷移する。一方、検索キーを含む、通信制御ルールが存在しない場合（ステップＳ９２のＮｏ分岐）には、図１９に示す「Ｈ」に遷移、即ち、図２０に示す「Ｈ」に遷移し、図２０に示す通り、処理を終了する。
【０１０９】
ステップＳ９３において、検索キーを含む、通信制御ルールにおいて、アクションが「変換」であるか否かを、通信制御ルール管理部１３は判断する。アクションが「変換」である場合（ステップＳ９３のＹｅｓ分岐）には、図１９に示す「Ｉ」、即ち、図２０に示すステップＳ１０１に遷移する。一方、アクションが「変換」ではない場合（ステップＳ９３のＮｏ分岐）には、図１９に示す「Ｊ」、即ち、図２０に示すステップＳ１０４に遷移する。
【０１１０】
図２０に示すステップＳ１０１において、通信制御ルール管理部１３は、検索キーを含む、通信制御ルールから、データとして指定されたＩＰアドレスを読み込む。なお、ここで、検索キーとは、図１９に示すステップＳ９１の処理の検索キーである、送信元ＩＰアドレス、送信元ＭＡＣアドレスを意味する。つまり、ステップＳ１０１の処理において、通信制御ルールとは、図１９に示すステップＳ９１の処理で検索された、通信制御ルールを意味する。
【０１１１】
ステップＳ１０２において、通信制御ルール管理部１３は、ステップＳ１０１の処理で検索された、ＩＰアドレスを検索キーとして、ＩＰアドレス使用管理テーブル１６を検索する。そして、ステップＳ１０３において、通信制御ルール管理部１３は、当該ＩＰアドレスに対応するステータスを、「未使用」に更新する。
【０１１２】
ステップＳ１０４において、通信制御ルール管理部１３は、対象の通信制御ルールを削除し、オープンフロースイッチ２０に、対象の通信制御ルールの削除を通知する。
【０１１３】
次に、図２１を参照しながら、通信制御ルールテーブル２３から、通信量がゼロである通信に対応する、通信制御ルールを削除する処理について説明する。
【０１１４】
オープンフロースイッチ２０の命令監視部２２は、コントローラ１０からの通信制御ルールの削除命令を待ち受ける（ステップＳ１１１）。具体的には、命令監視部２２は、コントローラ１０からの通信制御ルールの削除命令を受信するまで、当該削除命令を受信したか否かを判断する処理を繰り返す。命令監視部２２は、コントローラ１０からの通信制御ルールの削除命令を受信した場合、ステップＳ１１２に遷移する。
【０１１５】
ステップＳ１１２において、命令監視部２２は、削除対象の通信制御ルールを検索キーとして、通信制御ルールテーブル２３を検索する。削除対象の通信制御ルールが、通信制御ルールテーブル２３に登録されている場合には、命令監視部２２は、通信制御ルールテーブル２３から、削除対象の通信制御ルールを削除する。
【０１１６】
なお、上記の説明においては、２つの端末６０が、同一ＩＰアドレスを有する場合を例示して説明した。しかし、図２２に示すように、３つの端末６０（又は、３つ以上の端末６０）が、同一ＩＰアドレスを有する場合に、コントローラ１０は、パケットのＩＰアドレスを変更することで、通信制御しても良いことは勿論である。
【０１１７】
以上のように、本実施形態に係る通信システムは、パケットの送信元ＩＰアドレス、又は送信先ＩＰアドレスが競合する場合に、送信元ＩＰアドレス、送信先ＩＰアドレスを変換し、パケットを転送する。従って、本実施形態に係るコントローラ１０は、同一ＩＰアドレスが、２以上の端末で同時に利用される状態であっても、適切な通信を実現することに貢献する。
【０１１８】
なお、上記の説明においては、無線ネットワークを例示して説明したが、本発明の適用範囲を、無線ネットワークに限定する趣旨ではなく、上記の機能を実現できれば、有線ネットワークであっても良いことは勿論である。
【０１１９】
上述の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１２０】
（付記１）第１の視点に係るコントローラの通りである。
【０１２１】
（付記２）ＩＰアドレスと、当該ＩＰアドレスの使用状態とを対応付けた情報を格納する、ＩＰアドレス使用管理テーブルをさらに備える、付記１に記載のコントローラ。
【０１２２】
（付記３）前記ルール管理部は、パケットの送信元端末を識別する情報と、パケットの送信先端末を識別する情報と、前記ＩＰアドレス使用管理テーブルに格納されるＩＰアドレスのうち、未使用のＩＰアドレスのいずれか一のＩＰアドレスと、を含む前記ルールを、前記新規のルールとして作成する、付記２に記載のコントローラ。
【０１２３】
（付記４）前記第１の処理は、パケットの送信元ＩＰアドレス、送信先ＩＰアドレスの少なくともいずれかを、異なるＩＰアドレスに変換する、付記１乃至３のいずれか一に記載のコントローラ。
【０１２４】
（付記５）制御対象のＩＰアドレスの範囲を格納する、通信制御対象ＩＰアドレステーブルをさらに備える、付記１乃至４のいずれか一に記載のコントローラ。
【０１２５】
（付記６）前記ルールは、変換対象の情報の種類として、パケットの送信元ＩＰアドレス、送信先ＩＰアドレスの少なくともいずれかを含む、付記１乃至５のいずれか一に記載のコントローラ。
【０１２６】
（付記７）前記ルールは、前記第１の処理を実行するか否かを示す情報を含む、付記１乃至６のいずれか一に記載のコントローラ。
【０１２７】
（付記８）上記第２の視点に係る通信システムの通りである。
【０１２８】
（付記９）前記通信スイッチは、前記コントローラにフロー情報を通知する、通信制御部を備え、前記コントローラは、前記通信スイッチが通知する前記フロー情報に基づいて、通信量を解析する、フロー情報監視部をさらに備え、前記ルール管理部は、前記フロー情報監視部が解析する前記通信量に基づいて、通信量が０になった通信に関する前記ルールを、前記フローテーブルから削除する、付記８に記載の通信システム。
【０１２９】
（付記１０）上記第３の視点に係る通信スイッチの通りである。
【０１３０】
（付記１１）前記通信制御部は、パケットの送信元ＩＰアドレス、及び送信元ＭＡＣアドレスを有する前記ルールが、前記フローテーブルに登録されていない場合、当該パケットの送信元ＩＰアドレスを、コントローラに通知する、付記１０に記載の通信スイッチ。
【０１３１】
（付記１２）上記第４の視点に係る通信制御方法の通りである。
【０１３２】
（付記１３）ＩＰアドレスと、当該ＩＰアドレスの使用状態とを対応付けた情報を格納する工程をさらに含む、付記１２に記載の通信制御方法。
【０１３３】
（付記１４）前記新規のルールを作成する工程において、パケットの送信元端末を識別する情報と、パケットの送信先端末を識別する情報と、未使用のＩＰアドレスのいずれか一のＩＰアドレスと、を含む前記ルールを、前記新規のルールとして作成する、付記１３に記載の通信制御方法。
【０１３４】
（付記１５）前記異なるＩＰアドレスに変換する工程において、パケットの送信元ＩＰアドレス、送信先ＩＰアドレスの少なくともいずれかを、異なるＩＰアドレスに変換する、付記１２乃至１４のいずれか一に記載の通信制御方法。
【０１３５】
（付記１６）制御対象のＩＰアドレスの範囲を格納する工程をさらに含む、付記１２乃至１５のいずれか一に記載の通信制御方法。
【０１３６】
（付記１７）１又は２以上の端末の通信を中継し、１又は２以上のルールを含む、フローテーブルを備える通信スイッチを制御する制御方法であって、前記ルールは、ＩＰアドレスとＭＡＣアドレスを含み、パケットの送信元ＩＰアドレス、及び送信元ＭＡＣアドレスに基づいて、前記フローテーブルを参照する工程と、パケットの送信元ＩＰアドレス及びＭＡＣアドレスを有する前記ルールが、前記フローテーブルに登録されているか否かを判断する工程と、前記ルールに基づいて、パケットの送信元ＩＰアドレスを、異なるＩＰアドレスに変換し、変換後のＩＰアドレスを用いて、パケットを転送する工程と、を含む通信スイッチの制御方法。
【０１３７】
（付記１８）前記判断する工程において、パケットの送信元ＩＰアドレス及びＭＡＣアドレスを有する前記ルールが、前記フローテーブルに登録されていない場合、当該パケットの送信元ＩＰアドレスを、コントローラに通知する、付記１７に記載の通信スイッチの制御方法。
【０１３８】
（付記１９）上記第５の視点に係るプログラムの通りである。
【０１３９】
（付記２０）１又は２以上の端末の通信を中継し、１又は２以上のルールを含む、フローテーブルを備える通信スイッチを制御するコンピュータに実行させるプログラムであって、前記ルールは、ＩＰアドレスとＭＡＣアドレスを含み、パケットの送信元ＩＰアドレス、及び送信元ＭＡＣアドレスに基づいて、前記フローテーブルを参照する処理と、パケットの送信元ＩＰアドレス及びＭＡＣアドレスを有する前記ルールが、前記フローテーブルに登録されているか否かを判断する処理と、前記ルールに基づいて、パケットの送信元ＩＰアドレスを、異なるＩＰアドレスに変換し、変換後のＩＰアドレスを用いて、パケットを転送する処理と、を前記コンピュータに実行させるプログラム。
【０１４０】
上記の付記１９に示す形態は、付記１２に示す形態と同様に、付記１３乃至１６に示す形態に展開することが可能である。また、上記の付記２０に示す形態は、付記１８に示す形態に展開することが可能である。
【０１４１】
なお、上記の特許文献等の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１４２】
１０、１０００  コントローラ
１１  情報管理部
１２、１００２  重複ルール判断部
１３  通信制御ルール管理部
１４  フロー情報監視部
１５  通信制御対象ＩＰアドレステーブル
１６  ＩＰアドレス使用管理テーブル
１７、２３  通信制御ルールテーブル
１８  フロー情報テーブル
２０  オープンフロースイッチ
２１  通信制御部
２２  命令監視部
３０  サービス提供サーバ
４０  無線アクセスポイント
５０  無線コントローラ
６０、６０ａ、６０ｂ、６０ｃ  端末
１０１  通信制御対象ＩＰアドレス
１０２  利用ＩＰアドレス
１０３  通信制御ルール作成元情報
１０４  フロー情報
２０１〜２０１２  矢印
１００１  フローテーブル
１００３  ルール管理部
１００４、１００７  ルール
１００５  ＩＰアドレス
１００６  パケットの送信元ＩＰアドレス
１２００、１２０１  パケット
２０００  通信スイッチ
【図１】
0006724427.tif 000002
【図２】
0006724427.tif 000003
【図３】
0006724427.tif 000004
【図４】
0006724427.tif 000005
【図５】
0006724427.tif 000006
【図６】
0006724427.tif 000007
【図７】
0006724427.tif 000008
【図８】
0006724427.tif 000009
【図９】
0006724427.tif 000010
【図１０】
0006724427.tif 000011
【図１１】
0006724427.tif 000012
【図１２】
0006724427.tif 000013
【図１３】
0006724427.tif 000014
【図１４】
0006724427.tif 000015
【図１５】
0006724427.tif 000016
【図１６】
0006724427.tif 000017
【図１７】
0006724427.tif 000018
【図１８】
0006724427.tif 000019
【図１９】
0006724427.tif 000020
【図２０】
0006724427.tif 000021
【図２１】
0006724427.tif 000022
【図２２】
0006724427.tif 000023