(57)【特許請求の範囲】
【請求項１】
パケットの特徴と当該特徴に該当するパケットに対する処理を規定する処理規則とを保持し、前記処理規則に基づいて他の装置から受信したパケットを処理する転送ノードと、
前記転送ノードが保持する前記処理規則を制御する制御サーバとを備え、
前記制御サーバは、
前記転送ノードの設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、前記転送ノードに接続される装置と前記論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段と、
パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を前記転送ノードから受信したときに、前記送信先通信装置または前記通信装置についてレイヤ間のアドレス解決を行い、当該アドレス解決により得られたアドレスである解決後アドレスに、前記送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決手段とを含む
ことを特徴とする通信制御システム。
【請求項２】
転送ノードは、
処理規則を記憶する処理規則記憶手段と、
前記処理規則に基づいて送信元通信装置が送信したパケットの経路制御を行うパケット処理手段とを含み、
前記処理規則記憶手段は、処理規則におけるパケットの特徴として論理ネットワーク識別子を記憶し、
前記パケット処理手段は、前記処理規則に基づいて、前記論理ネットワーク識別子に該当するパケットの経路制御を行う
請求項１記載の通信制御システム。
【請求項３】
処理規則記憶手段は、パケットに対する処理として、パケットの送信先アドレスを論理ネットワーク識別子から当該パケットの送信先である送信先通信装置のアドレスに変更する処理を規定した処理規則を記憶し、
前記パケット処理手段は、前記処理規則に基づいて、受信したパケットの送信先アドレスを送信先通信装置のアドレスに変更する
請求項２記載の通信制御システム。
【請求項４】
処理規則記憶手段は、パケットに対する処理として、パケットの送信元アドレスを送信元通信装置のアドレスから、当該送信元通信装置が属する論理ネットワークの論理ネットワーク識別子に変更する処理を規定した処理規則を記憶し、
前記パケット処理手段は、前記処理規則に基づいて、受信したパケットの送信元アドレスを前記論理ネットワーク識別子に変更する
請求項２または請求項３記載の通信制御システム。
【請求項５】
アドレス解決手段は、アドレス解決の要求を受信したときに、処理規則として、前記アドレス解決の要求に基づいて当該要求への応答として解決後アドレスに送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定したレイヤ間アドレス解決応答パケットを作成する処理、および、当該レイヤ間アドレス解決応答パケットを送信元通信装置に送信する処理を規定した規則を生成し、当該処理規則を転送ノードに設定させる
請求項１から請求項４のうちのいずれか１項に記載の通信制御システム。
【請求項６】
パケットの特徴と当該特徴に該当するパケットに対する処理を規定する処理規則に基づいて他の装置から受信したパケットを処理する転送ノードが保持する当該処理規則を制御する制御サーバであって、
前記転送ノードの設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、前記転送ノードに接続される装置と前記論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段と、
パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を前記転送ノードから受信したときに、前記送信先通信装置または前記通信装置についてレイヤ間のアドレス解決を行い、当該アドレス解決により得られたアドレスである解決後アドレスに、前記送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決手段とを備えた
ことを特徴とする制御サーバ。
【請求項７】
パケットの特徴と当該特徴に該当するパケットに対する処理を規定する処理規則を保持し、前記処理規則に基づいて他の装置から受信したパケットを処理する転送ノードであって、
自身の設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、自身に接続される装置と前記論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段と、
パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を当該送信元通信装置から受信したときに、前記送信先通信装置または前記通信装置についてレイヤ間のアドレス解決を行い、当該アドレス解決により得られたアドレスである解決後アドレスに、前記送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決手段とを備えた
ことを特徴とする転送ノード。
【請求項８】
パケットの特徴と当該特徴に該当するパケットに対する処理を規定する処理規則に基づいて他の装置から受信したパケットを処理する転送ノードの設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、前記転送ノードに接続される装置と前記論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段を備えた制御サーバが、パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を前記転送ノードから受信したときに、前記送信先通信装置または前記通信装置についてレイヤ間のアドレス解決を行い、
前記制御サーバが、前記アドレス解決により得られたアドレスである解決後アドレスに、前記送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定する
ことを特徴とする通信制御方法。
【請求項９】
パケットの特徴と当該特徴に該当するパケットに対する処理を規定する処理規則に基づいて他の装置から受信したパケットを処理する転送ノードが保持する当該処理規則を制御し、前記転送ノードの設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、前記転送ノードに接続される装置と前記論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段を備えたコンピュータに適用される通信制御プログラムであって、
前記コンピュータに、
パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を前記転送ノードから受信したときに、前記送信先通信装置または前記通信装置についてレイヤ間のアドレス解決を行い、当該アドレス解決により得られたアドレスである解決後アドレスに、前記送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決処理
を実行させるための通信制御プログラム。
【請求項１０】
パケットの特徴と当該特徴に該当するパケットに対する処理を規定する処理規則と、自身の設定により定義される論理ネットワークの識別子である論理ネットワーク識別子と、自身に接続される装置と前記論理ネットワークとの対応関係とを保持し、前記処理規則に基づいて他の装置から受信したパケットを処理するコンピュータに適用される通信制御プログラムであって、
前記コンピュータに、
パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を当該送信元通信装置から受信したときに、前記送信先通信装置または前記通信装置についてレイヤ間のアドレス解決を行い、当該アドレス解決により得られたアドレスである解決後アドレスに、前記送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決処理
を実行させるための通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの通信経路を集中的に制御する通信制御システム、制御サーバ、転送ノード、通信制御方法および通信制御プログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御等を行う技術である。オープンフローに基づくネットワーク（以下、オープンフローネットワークと記す。）では、経路制御を行うオープンフローコントローラ（ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ。以下、ＯＦＣと記すこともある。）と、オープンフローコントローラが決定した経路に基づきパケットの転送を行うオープンフロースイッチ（ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ。以下、ＯＦＳと記すこともある）とが含まれる。
【０００３】
オープンフローでは、パケットとフローとを対応付けるためのパケットマッチングルールと、そのフローを受信した場合にオープンフロースイッチが行うべき動作を指定するアクションとを含むフローエントリで経路情報を表す。パケットマッチングルールは、パケット内の各種ヘッダのフィールド値に対応する条件として表される。各種ヘッダのフィールド値として、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダ、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ヘッダ等が挙げられる。
【０００４】
パケットマッチングルールとして指定される条件は、特定の値と厳密に等しいこと、という条件であってもよいし、任意の値や特定の条件を満たすこと（例えば、ＩＰアドレスが特定のＩＰサブネットに含まれること）、という条件であってもよい。また、アクションの内容として、例えば、指定されたポートから出力する、廃棄する、ヘッダ内の特定のフィールドを書き換える、等が挙げられる。なお、１つのフローエントリに複数のアクションを指定することも可能である。
【０００５】
オープンフローネットワーク内でパケットが転送される処理の概要（一例）を以下に示す。
１．オープンフロースイッチがパケットを受信する。
２．オープンフロースイッチは、受信したパケットに適合するパケットマッチングルールを含むフローエントリを、自身に設定されたフローエントリリスト（フローテーブル）内から検索する。
３．フローテーブルにフローエントリが見つかった場合、オープンフロースイッチは、そのフローエントリのアクションを受信したパケットに適用し、処理を終了する。
４．フローテーブルにフローエントリが見つからなかった場合、オープンフロースイッチは、受信したパケットをオープンフローコントローラに送信する。
５．オープンフローコントローラは、受信したパケットに対する経路や処理内容を決定し、オープンフロースイッチにフローエントリを追加するよう指示する。
【０００６】
また、特許文献１には、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）を用いたパケットルーティング方法が記載されている。特許文献１に記載された方法では、端末の所属を示すＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）タグを含むパケットを受信すると、そのＶＬＡＮタグに基づいて対応する仮想ハブに受信したパケットを転送する。そして、各仮想ハブでは、受け取ったパケットのユーザＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）ヘッダ内の送元ＭＡＣアドレスと、そのパケットが通過した端末側仮想インタフェース終端部との関係を学習する。
【０００７】
なお、特許文献２には、複数のフローをまとめて扱うパケット転送装置が記載されている。特許文献２に記載されたパケット転送装置は、入力パケットのヘッダ情報をもとに識別されるフローに共通なフロー束識別子を出力し、そのフロー束識別子に対して所定の演算処理を行う。
【０００８】
また、特許文献３には、ネットワーク管理装置が記載されている。特許文献３に記載されたネットワーク管理装置は、物理ネットワークにおける各ノード間の接続関係を示すリンク情報及びそのリンク情報が属する論理ネットワークの情報を記憶する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−２４７０８９号公報
【特許文献２】特開２００７−１８４９８８号公報
【特許文献３】特開２００９−２１２９８４号公報
【非特許文献】
【００１０】
【非特許文献１】“OpenFlow Switch Specification” Version 1.0.0. (Wire Protocol 0x01) ［平成２２年９月２２日検索］、インターネット〈URL：http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf〉、２００９年１２月３１日
【発明の概要】
【発明が解決しようとする課題】
【００１１】
通信ネットワークがオープンフローにより実現される場合、オープンフロースイッチに接続して通信を行う通信ホスト（サーバ、クライアント等）には、特別な機能が必要とされないことが望ましい。すなわち、オープンフロースイッチに接続する通信ホストは、従来のＴＣＰ／ＩＰプロトコルを用いて通信できることが望ましい。通信ホストは、ＩＰパケットの送信に先立ち、ＩＰレイヤとＥｔｈｅｒｎｅｔレイヤとの間でアドレス解決を行うためにＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）に基づく処理を実行する。このとき、通信ホストは、解決対象のＩＰアドレスを含むＡＲＰ要求パケットをＬ２（レイヤ２）ブロードキャストアドレス宛に送信する。ＡＲＰによれば、解決対象のＩＰアドレスを持つ対象通信ホストは、ＡＲＰ要求を受信した場合、自身のＭＡＣアドレスを含むＡＲＰ応答パケットを返信することが求められている。
【００１２】
一般的なＴＣＰ／ＩＰネットワークでは、要求元通信ホストと解決対象のＩＰアドレスを持つ通信ホストとは同じＬ２ブロードキャストドメインに属し、同一または近隣のＥｔｈｅｒｎｅｔスイッチに接続されている場合が多い。そのため、ＡＲＰ要求パケットの配送先は、これらのＬ２ブロードキャストドメインに限定されていた。
【００１３】
一方、オープンフローネットワークでは、同じサブネットに属するＩＰアドレスを持つ通信ホストは、オープンフローネットワーク内の任意のオープンフロースイッチに接続可能である。そのため、ＡＲＰ要求パケットをブロードキャストで対象通信ホストに届けようとすると、オープンフローネットワーク全体にＡＲＰ要求パケットを配送する必要がある。そのため、オープンフローネットワークでは、効率的なレイヤ間アドレス解決の実現が求められる。
【００１４】
また、データセンターなどのネットワークを用いてマルチテナントの運用がなされる場合、物理ネットワークは、複数の顧客で共有される。すなわち、各顧客のネットワーク（以下、ユーザネットワークと記す。）は、共通の物理ネットワークを用いてサービスされることになる。一般的に、各顧客が使用するＩＰアドレス空間は、それぞれ独立して管理されるため、使用されるＩＰアドレス空間が複数の顧客間で重複する可能性がある。したがって、データセンターでは、使用されるＩＰアドレスに依存することなく各ユーザネットワークのトラフィックを多重化する必要がある。
【００１５】
一般的なネットワークでは、ＶＬＡＮ（Ｖｉｒｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を用いることで多重化が行われている。しかし、ＶＬＡＮを用いて多重化する方法には、識別できるネットワークの数が４０９４までという制限がある。一方、オープンフローネットワークを用いることで、異なるＩＰアドレスが同じトラフィック上に存在しても、各ネットワークに対応するフローとして認識できれば、各ＩＰアドレスが設定されたそれぞれのパケットに対してルーティングを行うことが可能になる。例えば、ＩＰアドレスに加えてＭＡＣアドレスをも使用してフローを識別することで、重複するアドレス空間を使用する複数のネットワークサービスの多重化を行うことができる。
【００１６】
一方で、オープンフローネットワークを用いた場合、フローエントリの数が増大する可能性がある。そこで、フローエントリを集約することが望まれる。前述の通り、フローエントリのパケットマッチングルールには複数の値に適合する条件を指定することが可能である。例えば、あるサブネットに属する通信ホスト群が同一のオープンフロースイッチに接続されている場合を考える。通信ホストごとに個別のフローエントリを作成すると、フローエントリの数が増大してしまう。そこで、通信ホストごとの個別のフローエントリを、あるサブネットに対する一つのフローエントリに集約することで、フローエントリの数を削減することが可能である。このようにすることで、他のオープンフロースイッチに設定するこの通信ホスト群に関するフローエントリを集約することができる。
【００１７】
ただし、重複するアドレス空間を使用する複数のネットワークサービスを多重化するためにＭＡＣアドレスも使用してフローを識別するようにした場合、上記集約方法で対応することは困難である。各通信ホストには異なるＭＡＣアドレスが付与されるため、フローエントリの集約を行うことができない。よって、このような場合、オープンフロースイッチに設定されるフローエントリ数を削減することは困難である。そのため、重複するアドレス空間を使用する複数のネットワークサービスの多重化を行うような場合であっても、フローエントリを集約できることが望まれる。
【００１８】
また、特許文献１に記載されたパケットルーティング方法では、端末から受信したパケットをルータ内の各仮想ハブに振り分けるために、ＶＬＡＮタグなどの識別情報が予めパケットに含まれることを前提としている。通信ホスト側がこのような識別情報を意識することなく、各ユーザネットワークのトラフィックを多重化できることが望ましい。
【００１９】
そこで、本発明は、レイヤ間のアドレス解決を効率的に行うことができるとともに、複数のネットワークサービスを多重化する場合に、パケットに対する処理内容を示すフローエントリを集約できる通信制御システム、制御サーバ、転送ノード、通信制御方法および通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明による通信制御システムは、パケットの特徴とその特徴に該当するパケットに対する処理を規定する処理規則とを保持し、処理規則に基づいて他の装置から受信したパケットを処理する転送ノードと、転送ノードが保持する処理規則を制御する制御サーバとを備え、制御サーバが、転送ノードの設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、転送ノードに接続される装置と論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段と、パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を転送ノードから受信したときに、送信先通信装置または通信装置についてレイヤ間のアドレス解決を行い、そのアドレス解決により得られたアドレスである解決後アドレスに、送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決手段とを含むことを特徴とする。
【００２１】
本発明による制御サーバは、パケットの特徴とその特徴に該当するパケットに対する処理を規定する処理規則に基づいて他の装置から受信したパケットを処理する転送ノードが保持するその処理規則を制御する制御サーバであって、転送ノードの設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、転送ノードに接続される装置と論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段と、パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を転送ノードから受信したときに、送信先通信装置または通信装置についてレイヤ間のアドレス解決を行い、そのアドレス解決により得られたアドレスである解決後アドレスに、送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決手段とを備えたことを特徴とする。
【００２２】
本発明による転送ノードは、パケットの特徴とその特徴に該当するパケットに対する処理を規定する処理規則を保持し、処理規則に基づいて他の装置から受信したパケットを処理する転送ノードであって、自身の設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、自身に接続される装置と論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段と、パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求をその送信元通信装置から受信したときに、送信先通信装置または通信装置についてレイヤ間のアドレス解決を行い、そのアドレス解決により得られたアドレスである解決後アドレスに、送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決手段とを備えたことを特徴とする。
【００２３】
本発明による通信制御方法は、パケットの特徴とその特徴に該当するパケットに対する処理を規定する処理規則に基づいて他の装置から受信したパケットを処理する転送ノードの設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、転送ノードに接続される装置と論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段を備えた制御サーバが、パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を転送ノードから受信したときに、送信先通信装置または通信装置についてレイヤ間のアドレス解決を行い、制御サーバが、アドレス解決により得られたアドレスである解決後アドレスに、送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定することを特徴とする。
【００２４】
本発明による通信制御プログラムは、パケットの特徴とその特徴に該当するパケットに対する処理を規定する処理規則に基づいて他の装置から受信したパケットを処理する転送ノードが保持するその処理規則を制御し、転送ノードの設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、転送ノードに接続される装置と論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段を備えたコンピュータに適用される通信制御プログラムであって、コンピュータに、パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求を転送ノードから受信したときに、送信先通信装置または通信装置についてレイヤ間のアドレス解決を行い、そのアドレス解決により得られたアドレスである解決後アドレスに、送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決処理を実行させることを特徴とする。
【００２５】
本発明による他の通信制御プログラムは、パケットの特徴とその特徴に該当するパケットに対する処理を規定する処理規則と、自身の設定により定義される論理ネットワークの識別子である論理ネットワーク識別子と、自身に接続される装置と論理ネットワークとの対応関係とを保持し、処理規則に基づいて他の装置から受信したパケットを処理するコンピュータに適用される通信制御プログラムであって、コンピュータに、パケットの送信先である送信先通信装置またはパケットの送信元である送信元通信装置から受信したパケットを他の装置に転送する通信装置についてのアドレス解決の要求をその送信元通信装置から受信したときに、送信先通信装置または通信装置についてレイヤ間のアドレス解決を行い、そのアドレス解決により得られたアドレスである解決後アドレスに、送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決処理を実行させることを特徴とする。
【発明の効果】
【００２６】
本発明によれば、レイヤ間のアドレス解決を効率的に行うことができるとともに、複数のネットワークサービスを多重化する場合に、パケットに対する処理内容を示すフローエントリを集約できる。
【図面の簡単な説明】
【００２７】
【図１】本発明による通信制御システムの構成の一例を示す説明図である。
【図２】制御サーバの構成例を示すブロック図である。
【図３】ネットワーク情報の一例を示す説明図である。
【図４】トポロジ情報の一例を示す説明図である。
【図５】転送ノードの構成例を示すブロック図である。
【図６】第１の実施形態における通信制御システムの動作の例を示すシーケンス図である。
【図７】ＡＲＰ応答を作成する際の制御サーバの動作の例を示すシーケンス図である。
【図８】フローエントリを作成する際の制御サーバの動作の例を示すシーケンス図である。
【図９】フローテーブルの例を示す説明図である。
【図１０】ＡＲＰキャッシュエントリの例を示す説明図である。
【図１１】第１の実施形態の変形例における転送ノードの例を示すブロック図である。
【図１２】フローテーブルの例を示す説明図である。
【図１３】ＡＲＰ応答を作成する際の制御サーバの動作の例を示すシーケンス図である。
【図１４】第３の実施形態における通信制御システムの動作の例を示すシーケンス図である。
【図１５】転送ノードがＡＲＰ応答を行う処理の例を示すシーケンス図である。
【図１６】本発明による通信制御システムの最小構成の例を示すブロック図である。
【図１７】本発明による制御サーバの最小構成の例を示すブロック図である。
【図１８】本発明による転送ノードの最小構成の例を示すブロック図である。
【発明を実施するための形態】
【００２８】
まず、本発明の各実施形態に共通する構成および動作の概要を説明する。図１は、本発明による通信制御システムの構成の一例を示す説明図である。図１に例示する通信制御システムは、制御サーバ１００と、転送ノード２００−１〜２００−３と、通信ホスト３００−１〜３００−４と、制御用ネットワーク４００とを備えている。
【００２９】
転送ノード２００−１〜２００−３は、他の転送ノードおよび通信ホストと接続し通信を行う。なお、図１に示す例では、転送ノード２００−１〜２００−３が行う通信経路を実線で表わしている。また、転送ノード２００−１〜２００−３は、制御用ネットワーク４００に接続され、制御用ネットワーク４００を介して制御サーバ１００と制御用通信（制御チャネル）を行う。なお、図１に示す例では、転送ノード２００−１〜２００−３と制御サーバ１００との間で行われる通信経路を破線で表わしている。なお、図１に示す各装置の数や接続関係は一例であり、本発明による通信制御システムは、図１に例示する構成に限定されない。
【００３０】
さらに、転送ノード２００−１〜２００−３は、自身に接続する通信ホストまたは他の転送ノードからパケットを受信し、自身が保持するフローテーブルに含まれる処理規則（フローエントリ）に基づいて、受信したパケットを処理する。具体的には、転送ノード２００−１〜２００−３は、受信したパケット対して何らかの処理を施したり、受信したパケットを他の装置に転送したりするノードである。また、転送ノード２００−１〜２００−３は、受信したパケットに対応するフローエントリがフローテーブルに存在しない場合、受信したパケットを制御サーバ１００に通知する。転送ノード２００−１〜２００−３は、オープンフローネットワークにおけるオープンフロースイッチに相当する装置である。
【００３１】
制御サーバ１００は、転送ノード２００−１〜２００−３から対応するフローエントリ（処理規則）が存在しないパケットを受信し、そのパケットに対する経路計算を行う。また、制御サーバ１００は、受信したパケットに対応するフローエントリを転送ノード２００−１〜２００−３に追加させることで通信制御システム内での通信を制御するサーバである。具体的には、制御サーバ１００は、転送ノード２００−１〜２００−３が保持する処理規則の追加、削除等、処理規則の変更指示を行う。そのため、制御サーバ１００は、転送ノードが保持する処理規則を制御する装置と言うこともできる。制御サーバ１００は、オープンフローネットワークにおけるオープンフローコントローラに相当する装置である。
【００３２】
通信ホスト３００−１〜３００−４は、他の通信ホスト（通信装置）と通信する過程において、上位レイヤ通信プロトコルと下位レイヤ通信プロトコルとの間でレイヤ間アドレス解決プロトコルを実行する通信プロトコルを使用するホストである。具体的には、通信ホスト３００−１〜３００−４は、アドレス解決プロトコルを使用して、上位レイヤと下位レイヤとの間のアドレス解決を行う。以下、通信ホスト３００−１〜３００−４が上位レイヤプロトコルとしてＩＰを、下位レイヤプロトコルとしてＥｔｈｅｒｎｅｔを、レイヤ間アドレス解決プロトコルとしてＡＲＰを、それぞれ使用する場合を例に説明する。
【００３３】
制御用ネットワーク４００は、制御サーバ１００と転送ノード２００−１〜２００−３との間で制御メッセージの通信を可能とする通信ネットワークである。制御用ネットワーク４００は、例えば、ＥｔｈｅｒｎｅｔスイッチやＩＰルータ等を相互に接続したネットワークとして実現される。
【００３４】
本発明による通信制御システムでは、転送ノード２００−１〜２００−３を用いて構成される物理ネットワークにおいて、転送ノード２００−１〜２００−３によりサービスされる各ユーザネットワーク（論理ネットワーク）を識別するためのネットワーク識別子（論理ネットワーク識別子）を利用する。ここで、ユーザネットワークとは、転送ノードの設定により定義される論理ネットワークである。また、転送ノードによりサービスされるユーザネットワークとは、そのユーザネットワーク内の通信に用いられる各パケットに対する処理（転送処理、廃棄処理等）が転送ノードにより行われることを意味する。
【００３５】
通信ホスト３００−１〜３００−４がレイヤ間アドレス解決を要求した場合、本発明による通信制御システムでは、解決後のアドレス（解決後アドレス）としてその通信ホストが属するユーザネットワークのネットワーク識別子を各通信ホストに返却する処理が行われる。また、本発明による通信制御システムでは、フローの識別にネットワーク識別子を用いる。
【００３６】
以下、本発明の実施形態を図面を参照して説明する。
なお、以下の説明において、ＩＰを使用する２つのユーザネットワーク５０１，５０２（図示せず）が転送ノード２００−１〜２００−３を用いてサービスされるものとする。すなわち、転送ノード２００−１〜２００−３が、２つのユーザネットワーク５０１，５０２に対して、それぞれパケットの転送処理等を行う。また、通信ホスト３００−１〜３００−２はユーザネットワーク５０１に属するものとし、通信ホスト３００−３〜３００−４はユーザネットワーク５０２に属するものとする。また、ユーザネットワーク５０１およびユーザネットワーク５０２は、いずれもＩＰアドレス空間「１９２．１６８．０．０／１６」を使用するものとする。また、各転送ノード２００−１〜２００−３に共通する説明において、各転送ノード２００−１〜２００−３のことを転送ノードと記す場合もある。
【００３７】
実施形態１．
図２は、制御サーバ１００の構成例を示すブロック図である。図２に例示する制御サーバ１００は、制御チャネル処理部１０１と、ネットワーク情報管理部１０２と、トポロジ情報管理部１０３と、アドレス解決処理部１０４と、フローエントリ作成部１０５と、ネットワーク情報記憶部１０６と、トポロジ情報記憶部１０７とを備えている。
【００３８】
制御チャネル処理部１０１は、制御用ネットワーク４００に接続され、制御用ネットワーク４００を介して、後述する転送ノード２００−１〜２００−３の制御チャネル処理部２０１との間で制御用通信（制御チャネル）を行う。制御チャネルによる通信として、例えば、転送ノードから制御サーバ１００へのパケットの通知、制御サーバ１００から転送ノードへのパケット送信、制御サーバ１００から転送ノードへのフローエントリ追加、削除および変更指示などが挙げられる。
【００３９】
ネットワーク情報記憶部１０６は、転送ノード２００−１〜２００−３によりサービスされるユーザネットワークの情報であるネットワーク情報（論理ネットワーク情報）を記憶する。本実施形態では、ネットワーク情報記憶部１０６は、ネットワーク情報として、各ユーザネットワークを識別するためのネットワーク識別子および転送ノード２００−１〜２００−３における各ポートとユーザネットワークとの対応関係を記憶する。
【００４０】
ネットワーク情報を手動でネットワーク情報記憶部１０６に設定してもよい。また、ネットワーク情報が自動でネットワーク情報記憶部１０６に設定されるようにしてもよい。例えば、通信ホストが転送ノードに接続した際に、後述するネットワーク情報管理部１０２がＩＥＥＥ８０２．１Ｘ認証を実行する。ネットワーク情報管理部１０２は、認証時に得られる情報を基に、接続された通信ホストが属するユーザネットワークを特定する。そして、ネットワーク情報管理部１０２は、通信ホストが接続された転送ノードのポートとユーザネットワークとを対応づけてネットワーク情報記憶部１０６に記憶させる。このようにすることで、自動でネットワーク情報をネットワーク情報記憶部１０６に設定することが可能になる。
【００４１】
図３は、ネットワーク情報記憶部１０６に記憶されたネットワーク情報の一例を示す説明図である。図３（Ａ）は、各ユーザネットワークのネットワーク識別子を表すリストの一例である。図３（Ｂ）は、転送ノード２００−１〜２００−３の各ポートに接続された通信ホストがどのユーザネットワークに属するかを示すリストの一例である。例えば、図３（Ｂ）に例示するリストの最初の行は、転送ノード２００−１において、ポート識別子が１０〜１９であるポートに接続された通信ホストがユーザネットワーク５０１に属することを意味する。
【００４２】
ネットワーク情報管理部１０２は、ネットワーク情報記憶部１０６に記憶されたネットワーク情報を管理する。具体的には、ネットワーク情報管理部１０２は、他の装置からの要求に応じて、ネットワーク情報記憶部１０６に記憶されたネットワーク情報を返信する。また、ネットワーク情報管理部１０２は、ネットワーク情報記憶部１０６に記憶されたネットワーク情報の追加、更新、削除等を行う。
【００４３】
トポロジ情報記憶部１０７は、ネットワークトポロジ情報（以下、単にトポロジ情報と記す。）を記憶する。トポロジ情報記憶部１０７が記憶するトポロジ情報の例として、転送ノードと転送ノードとの間および転送ノードと通信ホストとの間の接続関係や、通信ホストが使用する上位レイヤアドレス（ＩＰアドレス）および下位レイヤアドレス（ＭＡＣアドレス）などが挙げられる。
【００４４】
図４は、トポロジ情報記憶部１０７に記憶されたトポロジ情報の一例を示す説明図である。図４（Ａ）は、転送ノードと転送ノードとの間および転送ノードと通信ホストとの間の接続関係を表すリストの一例である。例えば、図４（Ａ）に例示するリストの最初の行は、通信ホスト３００−１のポート識別子１のポートと、転送ノード２００−１のポート識別子１０のポートとが接続されていることを意味する。
【００４５】
また、図４（Ｂ）は、各通信ホストが使用するＩＰアドレスおよびＭＡＣアドレスのリストの一例である。例えば、図４（Ｂ）に例示するリストの最初の行は、通信ホスト３００−１のポート識別子１のポートは、ＩＰアドレスとして「１９２．１６８．１００．１」を使用し、ＭＡＣアドレスが「０１：００：００：０３：００：０１」であることを意味する。
【００４６】
トポロジ情報管理部１０３は、通信制御システム内のネットワークトポロジを検出し、トポロジ情報として管理する。具体的には、トポロジ情報管理部１０３は、検出したトポロジ情報をトポロジ情報記憶部１０７に記憶させる。トポロジ情報管理部１０３は、トポロジ検出に係るパケットを任意の転送ノードの任意のポートから送受信するために、制御チャネルを使用してもよい。
【００４７】
トポロジ情報管理部１０３がトポロジを検出する方法には、一般的な方法が用いられる。トポロジ情報管理部１０３がトポロジを検出する技術として、例えば、ＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）、ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ） ｓｎｏｏｐｉｎｇまたはＤＨＣＰサーバとの連携、ユーザ認証（例えばＩＥＥＥ８０２．１ｘ）との連携、 通信ホストが送信するＧｒａｔｕｉｔｏｕｓ ＡＲＰパケットの検出、ＳＴＰ（Ｓｐａｎｎｉｎｇ  Ｔｒｅｅ  Ｐｒｏｔｏｃｏｌ）などが挙げられる。
【００４８】
アドレス解決処理部１０４は、通信ホストが送信したアドレス解決要求（ＡＲＰ要求）を制御チャネル処理部１０１から受信し、アドレス解決応答（ＡＲＰ応答）を生成する。このとき、アドレス解決処理部１０４は、ＡＲＰ要求において解決を要求されたＩＰアドレスに対応するＭＡＣアドレス（解決後アドレス）として、ＡＲＰ要求を送信した通信ホストが属するユーザネットワークのネットワーク識別子を含むＡＲＰ応答を生成する。
【００４９】
具体的には、アドレス解決処理部１０４は、送信先の通信ホスト（ここでは、通信ホスト３００−２）のアドレス解決要求（ＡＲＰ要求）を転送ノード２００−１から受信すると、その送信先ホストのレイヤ間のアドレス解決（ＡＲＰ応答）を行う。例えば、アドレス解決処理部１０４は、転送ノード２００−１から上位レイヤのアドレスであるＩＰアドレスを受信すると、下位レイヤのアドレスであるＭＡＣアドレスの解決を行う。
【００５０】
そして、アドレス解決処理部１０４は、アドレス解決により得られたアドレス（解決後アドレス）に、パケットの送信元の通信ホストが属する論理ネットワークの論理ネットワーク識別子を設定する。例えば、アドレス解決処理部１０４は、解決後アドレス（ＡＲＰ応答）に含まれる下位レイヤのアドレス（ここでは、ＭＡＣアドレス）に、ＡＲＰ要求を送信した通信ホスト（ここでは、通信ホスト３００−１）が属する論理ネットワークの論理ネットワーク識別子を設定する。
【００５１】
フローエントリ作成部１０５は、制御チャネル処理部１０１からの要求に基づいて経路計算を行い、フローエントリの作成を行う。具体的には、フローエントリ作成部１０５は、制御チャネル処理部１０１を介して、転送ノードからのフローエントリ作成要求を受信すると、まず、フローエントリ作成対象フローの経路を計算する。フローエントリ作成部１０５が経路を計算する方法には、一般的な方法が用いられる。
【００５２】
フローエントリ作成部１０５は、例えば、ショーテストパスにより経路を計算してもよく、ＳＴＰ（Ｓｐａｎｎｉｎｇ  Ｔｒｅｅ  Ｐｒｏｔｏｃｏｌ）に基づいて経路を計算してもよい。フローエントリ作成部１０５は、経路計算を行った後、計算された経路上に含まれる転送ノードごとに追加すべきフローエントリを作成する。そして、フローエントリ作成部１０５は、作成したフローエントリを制御チャネル処理部１０１に通知する。なお、制御チャネル処理部１０１は、通知を受けたフローエントリを、各転送ノードに対して送信し、処理規則への追加を指示する。
【００５３】
制御チャネル処理部１０１と、ネットワーク情報管理部１０２と、トポロジ情報管理部１０３と、アドレス解決処理部１０４と、フローエントリ作成部１０５とは、プログラム（通信制御プログラム）に従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、制御サーバ１００の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、制御チャネル処理部１０１、ネットワーク情報管理部１０２、トポロジ情報管理部１０３、アドレス解決処理部１０４およびフローエントリ作成部１０５として動作してもよい。また、制御チャネル処理部１０１と、ネットワーク情報管理部１０２と、トポロジ情報管理部１０３と、アドレス解決処理部１０４と、フローエントリ作成部１０５とは、それぞれが専用のハードウェアで実現されていてもよい。
【００５４】
また、ネットワーク情報記憶部１０６およびトポロジ情報記憶部１０７は、磁気ディスク等により実現される。
【００５５】
図５は、転送ノード２００−１〜２００−３の構成例を示すブロック図である。図５に例示する転送ノード２００−１〜２００−３は、制御チャネル処理部２０１と、転送処理部２０２と、フローテーブル記憶部２０３とを備えている。
【００５６】
制御チャネル処理部２０１は、制御用ネットワーク４００に接続され、制御用ネットワーク４００を介して、制御サーバ１００の制御チャネル処理部１０１との間で制御用通信（制御チャネル）を行う。また、制御チャネル処理部２０１は、転送処理部２０２から対応するフローエントリが存在しないパケットの通知を受けると、制御チャネルを用いてそのパケットを制御サーバ１００に通知する。
【００５７】
さらに、制御チャネル処理部２０１は、制御チャネルを介して制御サーバ１００からフローエントリを追加、変更、または削除するよう指示されると、指示された内容に基づきフローテーブルを変更するよう転送処理部２０２に指示する。また、制御チャネル処理部２０１は、制御チャネルを介して制御サーバ１００からパケットを出力するよう指示されると、指示された内容に基づきパケットを出力するよう転送処理部２０２に指示する。
【００５８】
フローテーブル記憶部２０３は、処理規則（フローエントリ）を含むフローテーブルを記憶する。処理規則（フローエントリ）は、後述する転送処理部２０２によってフローテーブル記憶部２０３に記憶される。
【００５９】
転送処理部２０２は、他の装置（例えば、通信ホストや他の転送ノード）に接続され、接続された装置との間でパケットの送受信を行う。また、転送処理部２０２は、フローテーブル記憶部２０３に記憶されたフローテーブルを管理する。
【００６０】
転送処理部２０２は、他の装置からパケットを受信すると、受信したパケットに対応するフローエントリをフローテーブル内から検索する。受信したパケットに対応するフローエントリがフローテーブルに見つかった場合、転送処理部２０２は、そのフローエントリのアクションに従って処理を行う。一方、受信したパケットに対応するフローエントリがフローテーブルに見つからなかった場合、転送処理部２０２は、受信したパケットのフローエントリが存在しない旨を制御チャネル処理部２０１に通知する。
【００６１】
さらに、転送処理部２０２は、他の装置と通信を行うためのポートを複数具備しており、各ポートは、それぞれ異なる他の転送ノードまたは通信ホストのポートと接続される。なお、各ポートは、ポート識別子により識別される。
【００６２】
フローエントリのアクションに基づき、転送処理部２０２が行う処理には、以下に例示する処理が挙げられる。また、転送処理部２０２が行う処理は、１つに限定されず、２つ以上であってもよい。また、フローエントリのアクションに指定される処理は、以下の処理に限定されない。
【００６３】
・指定されたポートからパケットを出力する。
・パケットの送信先ＭＡＣアドレスを指定された値に変更する。
・パケットの送信元ＭＡＣアドレスを指定された値に変更する。
・パケットの送信先ＩＰアドレスを指定された値に変更する。
・パケットの送信元ＩＰアドレスを指定された値に変更する。
・パケットの送信先ポート番号を指定された値に変更する。
・パケットの送信元ポート番号を指定された値に変更する。
・パケットにＶＬＡＮタグを追加する。
・パケットのＶＬＡＮタグを削除する。
・パケットのＶＬＡＮタグを変更する。
【００６４】
なお、制御チャネル処理部２０１と、転送処理部２０２とは、プログラムに従って動作するコンピュータのＣＰＵによって実現される。また、制御チャネル処理部２０１と、転送処理部２０２とは、それぞれが専用のハードウェアで実現されていてもよい。
【００６５】
次に、第１の実施形態による通信制御システムの動作を説明する。図６は、本実施形態における通信制御システムの動作の例を示すシーケンス図である。以下、図６に示されるシーケンス図を参照して、本発明の通信制御システムに接続された通信ホストがパケットを送信する際の動作を説明する。具体的には、通信ホスト３００−１が、通信ホスト３００−２のＩＰアドレスに対するアドレス解決を行い、通信ホスト３００−２宛のパケットを送信する。ただし、図６に例示する処理が開始される前の段階において、通信ホスト３００−１は、通信ホスト３００−２のＩＰアドレスを知っているが、通信ホスト３００−２のＭＡＣアドレスを知らない状態にあるものとする。また、転送ノード２００−１〜２００−３には、通信ホスト３００−１から通信ホスト３００−２への通信に関するフローエントリが設定されていない状態にあるものとする。また、制御サーバ１００は、トポロジ情報およびネットワーク情報を取得済み（計算済み）であるものとする。
【００６６】
まず、通信ホスト３００−１は、解決対象のＩＰアドレス（ターゲットプロトコルアドレス）が通信ホスト３００−２のＩＰアドレスであるＡＲＰ要求を転送ノード２００−１に送信する（ステップＳ１０１）。転送ノード２００−１がＡＲＰ要求を受信すると、転送処理部２０２は、受信したＡＲＰ要求に対応するフローエントリを検索する（ステップＳ１０２）。しかし、この場合、受信したＡＲＰ要求に対応するフローエントリはフローテーブルに存在しない。そこで、転送ノード２００−１の制御チャネル処理部２０１は、制御チャネルを介して、受信したＡＲＰ要求を制御サーバ１００へ送信する（ステップＳ１０３）。
【００６７】
制御サーバ１００がステップＳ１０３で送信されたＡＲＰ要求を受信すると、アドレス解決処理部１０４は、受信したＡＲＰ要求に対するＡＲＰ応答を作成する（ステップＳ１０４）。なお、ＡＲＰ応答を作成する際の制御サーバ１００の動作の詳細については後述する。
【００６８】
制御サーバ１００の制御チャネル処理部１０１は、ステップＳ１０４において作成したＡＲＰ応答を通信ホスト３００−１に送信するよう、制御チャネルを介して転送ノード２００−１へ指示する（ステップＳ１０５）。
【００６９】
転送ノード２００−１の転送処理部２０２は、ステップＳ１０５で送信されたＡＲＰ応答を受信すると、受信したＡＲＰ応答を通信ホスト３００−１に送信する（ステップＳ１０６）。このとき、ＡＲＰ応答を受信した通信ホスト３００−１は、受信したＡＲＰ応答に基づき、対応するＡＲＰキャッシュエントリを作成する。
【００７０】
通信ホスト３００−１は、通信ホスト３００−２宛のパケットを転送ノード２００−１に送信する（ステップＳ１０７）。このとき、送信されるパケットの送信先ＭＡＣアドレスには、ＡＲＰ応答の送信元ハードウェアアドレスフィールドのＭＡＣアドレスが設定される。また、送信元ＭＡＣアドレスには、通信ホスト３００−１のＭＡＣアドレスが設定される。さらに、送信されるパケットの送信先ＩＰアドレスには、通信ホスト３００−２のＩＰアドレスが設定される。また、送信元ＩＰアドレスには、通信ホスト３００−１のＩＰアドレスが設定される。以降、通信ホスト３００−１から送信されるパケットを処理対象パケットと記す。
【００７１】
転送ノード２００−１が処理対象パケットを受信すると、転送処理部２０２は、受信した処理対象パケットに対応するフローエントリをフローテーブルから検索する（ステップＳ１０８）。しかし、この場合、処理対象パケットに対応するフローエントリはフローテーブルに存在しない。そこで、転送ノード２００−１の制御チャネル処理部２０１は、制御チャネルを介して、処理対象パケットを制御サーバ１００へ送信する（ステップＳ１０９）。なお、このとき、転送ノード２００−１の転送処理部２０２は、後の送信に備え、処理対象パケットをキューに保存する。
【００７２】
制御サーバ１００のフローエントリ作成部１０５は、処理対象パケットに対応するフローエントリを作成する（ステップＳ１１０）。なお、フローエントリを作成する際の制御サーバ１００の動作の詳細については後述する。
【００７３】
制御サーバ１００の制御チャネル処理部１０１は、ステップＳ１１０で作成されたフローエントリをフローテーブルに追加するよう、制御チャネルを介して転送ノード２００−１および２００−２に指示する（ステップＳ１１１）。指示を受けた転送ノード２００−１および２００−２では、各転送処理部２０２が追加の指示を受けたフローエントリをフローテーブルに追加する。また、制御サーバ１００の制御チャネル処理部１０１は、ステップＳ１０８において転送ノード２００−１がキューに保存した処理対象パケットを、フローテーブルの内容に従い処理するよう、転送ノード２００−１に指示する（ステップＳ１１２）。
【００７４】
転送ノード２００−１の転送処理部２０２は、処理対象パケットをステップＳ１１１で追加されたフローエントリに従い、転送ノード２００−２に送信する（ステップＳ１１３）。
【００７５】
転送ノード２００−２が処理対象パケットを受信すると、転送処理部２０２は、受信した処理対象パケットに対応するフローエントリをフローテーブルから検索する（ステップＳ１１４）。この場合、ステップＳ１１１で追加されたフローエントリがフローテーブルに存在するため、転送処理部２０２は、処理対象パケットに対応するフローエントリを見つけることができる。そのため、転送ノード２００−２の転送処理部２０２は、ステップＳ１１４で見つけたフローエントリのアクションに基づき、処理対象パケットを通信ホスト３００−２に送信する（ステップＳ１１５）。
【００７６】
次に、図７に例示するシーケンス図を参照して、ステップＳ１０４における処理を説明する。図７は、ＡＲＰ応答を作成する際の制御サーバ１００の動作の例を示すシーケンス図である。
【００７７】
制御サーバ１００の制御チャネル処理部１０１は、制御チャネルを介して転送ノードから受信したＡＲＰ要求（以降、処理対象ＡＲＰ要求と記す。）に対するＡＲＰ応答の作成をアドレス解決処理部１０４に要求する（ステップＳ１２１）。このとき、制御チャネル処理部１０１は、処理対象ＡＲＰ要求と、処理対象ＡＲＰ要求を受信した転送ノードおよびポートの情報とをパラメタとしてアドレス解決処理部１０４に通知する。
【００７８】
制御サーバ１００のアドレス解決処理部１０４は、ネットワーク情報記憶部１０６に記憶されたネットワーク情報を参照し、処理対象ＡＲＰ要求を送信した通信ホストである通信ホスト３００−１が属するユーザネットワークのネットワーク識別子を取得する（ステップＳ１２２）。
【００７９】
制御サーバ１００のアドレス解決処理部１０４は、対象処理ＡＲＰ要求に対する応答として、ステップＳ１２２で取得したネットワーク識別子を解決後のＭＡＣアドレス（解決後アドレス）に含むＡＲＰ応答を作成する（ステップＳ１２３）。作成されるＡＲＰ応答には、例えば、以下に示す送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、ＡＲＰ応答の内容である送信者ハードウェアアドレス、送信者プロトコルアドレス、ターゲットハードウェアアドレス、および、ターゲットプロトコルアドレスが含まれる。作成されるＡＲＰ応答の一例を示す。
【００８０】
・送信先ＭＡＣアドレス：ＡＲＰ要求を送信した通信ホストのＭＡＣアドレス
・送信元ＭＡＣアドレス：ステップＳ１２２で取得されたネットワーク識別子
・ＡＲＰ  ｏｐｃｏｄｅ：応答
・ＡＲＰ  送信者ハードウェアアドレス：ステップＳ１２２で取得されたネットワーク識別子
・ＡＲＰ  送信者プロトコルアドレス：ＡＲＰ要求内のターゲットプロトコルアドレス
・ＡＲＰ  ターゲットハードウェアアドレス：ＡＲＰ要求内の送信者ハードウェアアドレス
・ＡＲＰ  ターゲットプロトコルアドレス：ＡＲＰ要求内の送信者プロトコルアドレス
【００８１】
なお、ステップＳ１２３において、処理対象ＡＲＰ要求のＡＲＰ  ターゲットプロトコルアドレスが処理対象ＡＲＰ要求を送信した通信ホストのＩＰアドレスであったとする。この場合、制御サーバ１００のアドレス解決処理部１０４は、処理対象ＡＲＰ要求に対する処理を中止してもよい。
【００８２】
そして、制御サーバ１００のアドレス解決処理部１０４は、ステップＳ１２３で作成したＡＲＰ応答を制御チャネル処理部１０１に通知する（ステップＳ１２４）。
【００８３】
次に、図８に例示するシーケンス図を参照して、ステップＳ１１０における処理を説明する。図８は、フローエントリを作成する際の制御サーバ１００の動作の例を示すシーケンス図である。
【００８４】
制御サーバ１００の制御チャネル処理部１０１は、制御チャネルを介して転送ノードから受信した処理対象パケットに対するフローエントリの作成をフローエントリ作成部１０５に要求する（ステップＳ１３１）。このとき、制御チャネル処理部１０１は、処理対象パケットと処理対象パケットを受信した転送ノードおよびポートの情報とをパラメタとしてフローエントリ作成部１０５に通知する。
【００８５】
制御サーバ１００のフローエントリ作成部１０５は、処理対象パケットに対する経路を計算する（ステップＳ１３２）。ここでは、通信ホスト３００−１から通信ホスト３００−２への経路が、通信ホスト３００−１→転送ノード２００−１→転送ノード２００−２→通信ホスト３００−２と計算されたものとする。
【００８６】
制御サーバ１００のフローエントリ作成部１０５は、ネットワーク情報記憶部１０６に記憶されたネットワーク情報を参照し、処理対象パケットを送信した通信ホストが属するユーザネットワークのネットワーク識別子を取得する（ステップＳ１３３）。
【００８７】
制御サーバ１００のフローエントリ作成部１０５は、トポロジ情報記憶部１０７に記憶されたトポロジ情報を参照し、処理対象パケットの送信先通信ホストのＭＡＣアドレス（下位アドレス）を取得する（ステップＳ１３４）。
【００８８】
制御サーバ１００のフローエントリ作成部１０５は、ステップＳ１３２で計算した経路上の転送ノードに追加すべきフローエントリを作成する（ステップＳ１３５）。この際、フローエントリ作成部１０５は、経路上の最後の転送ノードに設定するフローエントリを別途作成する。具体的には、フローエントリ作成部１０５は、論理ネットワーク識別子が設定されたパケットの送信先ＭＡＣアドレスを、送信先の通信ホスト（ここでは、通信ホスト３００−２）のＭＡＣアドレスに変更する処理をアクションに規定したフローエントリを作成する。このように作成されたフローエントリが転送ノードのフローテーブルに追加されることで、経路上の最後の転送ノードが送信対象の通信ホストを特定できる。
【００８９】
フローエントリ作成部１０５により作成されるフローエントリには、マッチングルールおよびアクションが含まれる。マッチングルールには、以下に示す入力元ポート、送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、送信先ＩＰアドレスおよび送信元ＩＰアドレスが含まれる。フローエントリ作成部１０５により作成されるマッチングルールの一例を以下に示す。
【００９０】
・入力元ポート：経路上の一つ前の転送ノードまたは通信ホストに接続しているポート
・送信先ＭＡＣアドレス：ステップＳ１３３で取得したネットワーク識別子
・送信元ＭＡＣアドレス：処理対象パケットを送信した通信ホストのＭＡＣアドレス
・送信先ＩＰアドレス：処理対象パケットの送信先ＩＰアドレス
・送信元ＩＰアドレス：処理対象パケットの送信元ＩＰアドレス
【００９１】
なお、フローエントリを集約する場合、フローエントリ作成部１０５は、マッチングルールの送信元ＭＡＣアドレスに、任意のＭＡＣアドレスを設定してもよい。同様に、フローエントリを集約する場合、フローエントリ作成部１０５は、送信先ＩＰアドレスに処理対象パケットの送信先ＩＰアドレスが属するＩＰサブネットを設定してもよく、送信元ＩＰアドレスに任意のＩＰアドレスを設定してもよい。
【００９２】
また、フローエントリ作成部１０５は、アクションとして、「パケットの送信先ＭＡＣアドレスを指定された値に変更」（ただし、本アクションは経路上の最後の転送ノードにのみ設定される）、および、「指定されたポートからパケットを出力」といった内容を表す処理を設定する。
【００９３】
ここで、フローエントリ作成部１０５は、パケットの送信先ＭＡＣアドレスに、ステップＳ１３４で取得した送信先通信ホストのＭＡＣアドレスを指定する。また、フローエントリ作成部１０５は、出力先ポートに、経路上の次の転送ノードまたは通信ホストに接続されるポートを指定する。
【００９４】
制御サーバ１００のフローエントリ作成部１０５は、ステップＳ１３５で作成したフローエントリを制御チャネル処理部１０１に通知する（ステップＳ１３６）。その後、このフローエントリが、各転送ノードのフローテーブルに追加されることになる。各通信ホストのＡＲＰキャッシュには、ネットワーク識別子を含むエントリが作成されており、各ホストからはネットワーク識別子を含むパケットが送信される。そのため、各転送ノードがパケットを受信すると、転送処理部２０２は、追加されたフローエントリに基づいて、ネットワーク識別子に該当するパケットの経路制御を行うことが可能になる。
【００９５】
図９は、転送ノードが記憶するフローテーブルの例を示す説明図である。図９に例示するフローテーブルは、通信ホスト３００−１が通信ホスト３００−２にパケットを送信し、通信ホスト３００−３が通信ホスト３００−４にパケットを送信した後の転送ノード２００−１〜２００−３が記憶するフローテーブルの一例である。
【００９６】
具体的には、図９（Ａ）は、転送ノード２００−１が記憶するフローテーブルの一例を示す。図９（Ｂ）は、転送ノード２００−２が記憶するフローテーブルの一例を示す。図９（Ｃ）は、転送ノード２００−３が記憶するフローテーブルの一例を示す。図９に例示するマッチングルールに一致するパケットを各転送ノードが受信すると、転送処理部２０２は、対応するアクションを実行する。
【００９７】
また、図１０は、通信ホストが記憶するＡＲＰキャッシュエントリの例を示す説明図である。図１０に例示するＡＲＰキャッシュエントリは、ＡＲＰ応答後に通信ホスト３００−１および通信ホスト３００−３が記憶するＡＲＰキャッシュエントリの一例である。
【００９８】
具体的には、図１０（Ａ）は、通信ホスト３００−１が記憶するＡＲＰキャッシュの一例を示す。図１０（Ｂ）は、通信ホスト３００−３が記憶するＡＲＰキャッシュの一例を示す。各通信ホストは、ＡＲＰ応答を受信すると、送信先の通信ホストのＩＰアドレスとＭＡＣアドレスの組をメモリ等（図示せず）に記憶する。
【００９９】
上記説明では、第１の実施形態による通信制御システムの動作の説明において、通信ホスト３００−１がパケット送信先である通信ホスト３００−２のＩＰアドレスを解決対象としてＡＲＰ処理を実行する例を示した。ただし、ＡＲＰ処理によりＩＰアドレスを解決する対象は、パケットの送信先である通信ホスト３００−２に限定されない。ＩＰアドレスを解決する対象は、通信ホスト３００−１に設定されたデフォルトルータなど、通信ホスト３００−１から受信したパケットを他の装置に転送する通信装置であってもよい。この場合におけるＡＲＰ処理の内容も、上述する処理の内容と同様である。
【０１００】
以上説明したように、本発明の第１の実施形態によれば、通信ホスト３００−１からのレイヤ間アドレス解決要求に対し、制御サーバ１００のアドレス解決処理部１０４が通信ホスト３００−１の属するユーザネットワークに対応するネットワーク識別子をレイヤ間アドレス解決応答に含めて返却する。すなわち、制御サーバ１００のアドレス解決処理部１０４がレイヤ間アドレス解決要求を転送ノード２００−１から受信したときに、その要求に対する解決後アドレスに、通信ホスト３００−１が属する論理ネットワークの論理ネットワーク識別子を設定する。よって、効率的なレイヤ間アドレス解決を実現することができる。具体的には、本実施形態によれば、ブロードキャストを行うことなく効率的にレイヤ間アドレス解決を行うことができる。
【０１０１】
さらに、転送ノード２００−１〜２００−３の転送処理部２０２が各ユーザネットワークにおけるフローの識別にネットワーク識別子を使用している。そのため、重複するアドレス空間を使用する複数のユーザネットワークサービスの多重化を実現することができる。その際、ネットワーク識別子はユーザネットワークに属する通信ホストに共通であるため、フローエントリの集約を行うことも可能になる。
【０１０２】
次に、第１の実施形態の変形例を説明する。第１の実施形態による通信制御システムの説明では、ＡＲＰ要求に対するＡＲＰ応答を制御サーバ１００が作成する例を示したが本発明はこれに限定されるものではない。ＡＲＰ要求に対するＡＲＰ応答を転送ノード２００−１〜２００−３が作成してもよい。この場合、例えば、転送ノード２００−１〜２００−３が制御サーバ１００のネットワーク情報管理部１０２、ネットワーク情報記憶部１０６およびアドレス解決処理部１０４に相当する構成を具備することで実現できる。
【０１０３】
図１１は、第１の実施形態の変形例における転送ノードの例を示すブロック図である。本変形例における転送ノードは、制御チャネル処理部２０１と、転送処理部２０２と、ネットワーク情報管理部１０２ａと、ネットワーク情報記憶部１０６ａと、アドレス解決処理部１０４ａとを備えている。ネットワーク情報管理部１０２ａ、ネットワーク情報記憶部１０６ａ、および、アドレス解決処理部１０４ａの内容は、第１の実施形態におけるネットワーク情報管理部１０２、ネットワーク情報記憶部１０６、および、アドレス解決処理部１０４の内容と同様である。転送ノード２００−１〜２００−３のネットワーク情報記憶部１０６ａが記憶するネットワーク情報は、静的に設定されてもよいし、自動的に設定されてもよい。また、制御サーバ１００から通知されるネットワーク情報をネットワーク情報管理部１０２ａがネットワーク情報記憶部１０６ａに記憶させてもよい。
【０１０４】
具体的には、対応するフローエントリが存在しないＡＲＰ要求を転送ノード２００−１〜２００−３が通信ホストから受信すると、制御チャネル処理部２０１は、受信したＡＲＰ要求を制御サーバ１００に送信する代わりに、自身のアドレス解決処理部１０４ａに通知する。そして、アドレス解決処理部１０４ａが作成したＡＲＰ応答を送信元の通信ホストに送信する。このような構成であっても、ネットワーク識別子を用いた経路制御が可能になる。
【０１０５】
すなわち、転送ノード２００−１のアドレス解決処理部１０４ａが、レイヤ間アドレス解決要求を通信ホスト３００−１から受信したときに、その要求に対する解決後アドレスに、通信ホスト３００−１が属する論理ネットワークの論理ネットワーク識別子を設定する。このような構成であっても、レイヤ間のアドレス解決を効率的に行うことができるとともに、複数のネットワークサービスを多重化する場合に、パケットに対する処理内容を示すフローエントリを集約できる。
【０１０６】
なお、制御チャネル処理部２０１と、転送処理部２０２と、ネットワーク情報管理部１０２ａと、アドレス解決処理部１０４ａとは、プログラム（通信制御プログラム）に従って動作するコンピュータのＣＰＵによって実現される。また、制御チャネル処理部２０１と、転送処理部２０２と、ネットワーク情報管理部１０２ａと、アドレス解決処理部１０４ａとは、それぞれが専用のハードウェアで実現されていてもよい。
【０１０７】
また、第１の実施形態による通信制御システムの説明では、通信ホストが属するユーザネットワークのネットワーク識別子が一つである例を示したが、本発明はこれに限定されるものではない。通信ホストが属するユーザネットワークのネットワーク識別子が複数存在してもよい。
【０１０８】
この場合、例えば、ネットワーク情報として、一ユーザネットワークに対応する複数のネットワーク識別子と、そのネットワーク識別子を選択する選択基準とを対応させた情報をネットワーク情報記憶部１０６に記憶しておく。そして、アドレス解決処理部１０４は、アドレス解決を行う際、アドレス解決要求に含まれる情報、そのアドレス解決要求の送信元の通信ホストを表す情報、および、ネットワーク情報記憶部１０６に記憶された選択基準に基づき、解決後アドレスとして使用すべきネットワーク識別子を選択する。このようにすることで、アドレス解決処理部１０４が適切なネットワーク識別子を取得することが可能になる。
【０１０９】
また、フローエントリ作成部１０５が経路計算を行う際、処理対象パケットに関するネットワーク識別子を考慮して経路計算を行ってもよい。このとき、フローエントリ作成部１０５は、処理対象パケットに関するネットワーク識別子を、アドレス解決処理部１０４と同様にネットワーク情報を用いてネットワーク情報記憶部１０６から取得してもよい。また、フローエントリ作成部１０５は、処理対象パケットに関するネットワーク識別子を、処理対象パケットの送信先下位レイヤアドレスフィールドから取得してもよい。
【０１１０】
さらに、第１の実施形態による通信制御システムの説明では、通信ホストが属するユーザネットワークが一つである例を示したが、本発明はこれに限定されるものではない。通信ホストが複数のユーザネットワークに属するとしてもよい。
【０１１１】
この場合、例えば、ネットワーク情報として、一通信ホストに対応する複数のユーザネットワークと、そのユーザネットワークを選択する選択基準とを対応させた情報をネットワーク情報記憶部１０６に記憶しておく。そして、アドレス解決処理部１０４は、アドレス解決を行う際、アドレス解決要求に含まれる情報、そのアドレス解決要求の送信元の通信ホストを表す情報、および、ネットワーク情報記憶部１０６に記憶された選択基準に基づき、解決後アドレスとして使用すべきネットワーク識別子を選択する。このようにすることで、アドレス解決処理部１０４が適切なネットワーク識別子を取得することが可能になる。
【０１１２】
実施形態２．
次に、本発明の第２の実施形態における通信制御システムについて説明する。
上述したように、本発明による通信制御システムでは、通信ホストが送信したレイヤ間アドレス解決要求に対する応答として、アドレス解決対象の通信ホストを表す実際の下位アドレスの代わりに、その通信ホストが属するネットワーク識別子が返される。また、第１の実施形態による通信制御システムでは、通信ホスト（例えば、第１の実施形態における通信ホスト３００−２）が通信相手（例えば、第１の実施形態における通信ホスト３００−１）から受信するパケットの送信元ＭＡＣアドレスには、その通信相手の実際の下位アドレスが設定される。
【０１１３】
近年、通信ホストに搭載される通信プロトコルスタックやセキュリティ対策ソフトでは、レイヤ間アドレス解決により得られた下位レイヤアドレスと受信パケット内の送信元下位アドレスに不整合があった場合、警告ログを出力したり通信を断絶したりするものも存在する。そこで、第２の実施形態では、そのような通信プロトコルスタックやセキュリティ対策ソフトを搭載した通信ホストとの通信も可能にするよう、第１の実施形態に変形を加えた通信制御システムについて説明する。
【０１１４】
第２の実施形態における制御サーバ１００は、第１の実施形態における制御サーバ１００の構成および機能を備えており、第１の実施形態における制御サーバ１００と同様に動作する。ただし、第２の実施形態における制御サーバ１００では、パケットの送信先である通信ホストに接続している転送ノードに追加させるフローエントリのアクションの設定内容が、第１の実施形態と異なる。具体的には、第２の実施形態における制御サーバ１００では、フローエントリ作成部１０５がパケットの送信元下位アドレスを、そのパケットの送信元ホストが属するユーザネットワークのネットワーク識別子に変更する、というアクションも併せてフローエントリのアクションに設定させる。以下、第１の実施形態による通信制御システムと第２の実施形態による通信制御システムとの違いについて図８を用いて説明する。なお、フローエントリの作成要求を受信して、送信先通信ホストのＭＡＣアドレスを取得するまでのステップＳ１３１〜Ｓ１３４までの処理は、第１の実施形態の処理と同様である。
【０１１５】
制御サーバ１００のフローエントリ作成部１０５は、制御チャネル処理部１０１の要求に基づきフローエントリを作成し（ステップＳ１３５）、作成したフローエントリを制御チャネル処理部１０１に通知する（ステップＳ１３６）。フローエントリを作成する際、フローエントリ作成部１０５は、パケットの送信元アドレスを送信元の通信ホスト（ここでは、通信ホスト３００−１）のアドレスから、その通信ホスト（通信ホスト３００−１）が属する論理ネットワークの論理ネットワーク識別子に変更する処理をアクションに規定したフローエントリを作成する。このように作成されたフローエントリが転送ノードのフローテーブルに追加されることで、レイヤ間アドレス解決により得られた下位レイヤアドレスと受信パケット内の送信元下位アドレスとの不整合を解消できる。
【０１１６】
フローエントリ作成部１０５は、第１の実施形態と同様、マッチングルールおよびアクションを含むフローエントリを作成する。マッチングルールには、以下に示す入力元ポート、送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、送信先ＩＰアドレスおよび送信元ＩＰアドレスが含まれる。ステップＳ１３２で計算された経路上の最後の転送ノードに追加すべきフローエントリとして、フローエントリ作成部１０５が作成するフローエントリのマッチングルールの一例を以下に示す。
【０１１７】
・入力元ポート：経路上の一つ前の転送ノードまたは通信ホストに接続しているポート
・送信先ＭＡＣアドレス：ステップＳ１３３で取得したネットワーク識別子
・送信元ＭＡＣアドレス：処理対象パケットを送信した通信ホストのＭＡＣアドレス
・送信先ＩＰアドレス：処理対象パケットの送信先ＩＰアドレス
・送信元ＩＰアドレス：処理対象パケットの送信元ＩＰアドレス
【０１１８】
第１の実施形態と同様、フローエントリを集約する場合、フローエントリ作成部１０５は、マッチングルールの送信元ＭＡＣアドレスに、任意のＭＡＣアドレスを設定してもよい。また、フローエントリを集約する場合、フローエントリ作成部１０５は、送信先ＩＰアドレスに処理対象パケットの送信先ＩＰアドレスが属するＩＰサブネットを設定してもよく、送信元ＩＰアドレスに任意のＩＰアドレスを設定してもよい。
【０１１９】
また、フローエントリ作成部１０５は、アクションとして、「パケットの送信先ＭＡＣアドレスを指定された値に変更」、「パケットの送信元ＭＡＣアドレスを指定された値に変更」、および、「指定されたポートからパケットを出力」といった内容を表す処理を設定する。
【０１２０】
第１の実施形態と同様、フローエントリ作成部１０５は、パケットの送信先ＭＡＣアドレスに、ステップＳ１３４で取得した送信先通信ホストのＭＡＣアドレスを指定する。また、フローエントリ作成部１０５は、出力先ポートに、経路上の次の通信ホストに接続しているポートを指定する。さらに、本実施形態におけるフローエントリ作成部１０５は、パケットの送信元ＭＡＣアドレスに、ステップＳ１３３で取得したネットワーク識別子を指定する。
【０１２１】
図１２は、転送ノードが記憶するフローテーブルの例を示す説明図である。図１２に例示するフローテーブルは、通信ホスト３００−１が通信ホスト３００−２にパケットを送信し、通信ホスト３００−３が通信ホスト３００−４にパケットを送信した後の転送ノード２００−１〜２００−３が記憶するフローテーブルの一例である。
【０１２２】
具体的には、図１２（Ａ）は転送ノード２００−１が記憶するフローテーブルの一例を示す。図１２（Ｂ）は転送ノード２００−２が記憶するフローテーブルの一例を示す。図１２（Ｃ）は転送ノード２００−３が記憶するフローテーブルの一例を示す。図１２（Ａ）に例示する転送ノード２００−１が記憶するフローテーブルの内容は、図９（Ａ）に例示するフローテーブルの内容と同様である。一方、図１２（Ｂ）に例示する転送ノード２００−２が記憶するフローテーブルのフローエントリ、および、図１２（Ｃ）に例示する転送ノード２００−３が記憶するフローテーブルのフローエントリは、パケットの送信元ＭＡＣアドレスを変更するためのアクションが加えられている点において、図９（Ｂ）および図９（Ｃ）に例示するフローテーブルの内容と異なる。
【０１２３】
以上説明したように、本発明の第２の実施形態によれば、レイヤ間アドレス解決により得られた下位レイヤアドレスと受信パケット内の送信元下位アドレスとの間に不整合があった場合に警告ログを出力したり通信を断絶したりするような通信ホストに対しても、第１の実施形態と同様の効果を得ることができる。
【０１２４】
実施形態３．
次に、本発明の第３の実施形態における通信制御システムについて説明する。本発明による通信制御システムの一例として、第１の実施形態では、制御サーバ１００がレイヤ間解決要求に対する応答を作成する例を示したが、本発明はこれに限定されるものではない。制御サーバ１００ではなく、転送ノード２００−１〜２００−３が、レイヤ間解決要求に対する応答を作成してもよい。
【０１２５】
第３の実施形態における制御サーバ１００では、転送ノード２００−１〜２００−３からＡＲＰ要求を受信した場合に、ＡＲＰ要求を送信した転送ノードに対して、ＡＰＲ応答を作成する処理を含むフローエントリのアクションを追加させる処理が実行される。また、第３の実施形態における転送ノード２００−１〜２００−３では、フローエントリのアクションとしてＡＲＰ応答を作成する処理が実行される。以下、第１の実施形態による通信制御システムと第３の実施形態による通信制御システムとの違いについて説明する。
【０１２６】
図１３は、ＡＲＰ応答を作成する際の制御サーバ１００の動作の例を示すシーケンス図である。制御チャネル処理部１０１がＡＲＰ応答の作成をアドレス解決処理部１０４に要求し、アドレス解決処理部１０４がネットワーク識別子を取得するまでのステップＳ１２１〜Ｓ１２２までの処理は、図７に例示する処理と同様である。
【０１２７】
制御サーバ１００のアドレス解決処理部１０４は、対象処理ＡＲＰ要求に対する応答として、ステップＳ１２２で取得したネットワーク識別子を解決後のＭＡＣアドレス（解決後アドレス）に含むＡＲＰ応答を作成する（ステップＳ１２３）。さらに、フローエントリ作成部１０５は、解決後のＭＡＣアドレス（解決後アドレス）としてステップＳ１３３で取得したネットワーク識別子を含むＡＲＰ応答を転送ノードに作成させ、また、送信させるためのフローエントリを作成する（ステップＳ１２３’）。
【０１２８】
フローエントリ作成部１０５は、第１の実施形態と同様、マッチングルールおよびアクションを含むフローエントリを作成する。マッチングルールには、以下に示す入力元ポート、送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、プロトコルタイプ、ＡＲＰ要求を示す情報、および、ターゲットプロトコルアドレスが含まれる。フローエントリ作成部１０５により作成されるフローエントリのマッチングルールの一例を以下に示す。
【０１２９】
・入力元ポート：ＡＲＰ要求を送信したホストが接続されているポート
・送信先ＭＡＣアドレス：ブロードキャストＭＡＣアドレスまたは任意のＭＡＣアドレス
・送信元ＭＡＣアドレス：ＡＲＰ要求を送信した通信ホストのＭＡＣアドレス
・プロトコルタイプ：ＡＲＰ
・ＡＲＰ  ｏｐｃｏｄｅ：要求
・ターゲットプロトコルアドレス：任意のＩＰアドレス
【０１３０】
また、フローエントリ作成部１０５は、アクションとして、「指定されたＭＡＣアドレスを送信元ＭＡＣアドレスおよび送信者ハードウェアアドレスフィールドに含むＡＲＰ応答を作成」、および、「指定されたポートからパケットを出力」といった内容を表す処理を設定する。
【０１３１】
ここで、フローエントリ作成部１０５は、ステップＳ１２２で取得したネットワーク識別子を送信元ＭＡＣアドレスおよび送信者ハードウェアアドレスフィールドの値に指定する。また、フローエントリ作成部１０５は、出力先ポートに、ＡＲＰ要求を送信した通信ホストが接続されているポートを指定する。
【０１３２】
制御サーバ１００のアドレス解決処理部１０４は、ステップＳ１２３で作成したＡＲＰ応答を制御チャネル処理部１０１に通知する（ステップＳ１２４）。さらに、フローエントリ作成部１０５は、ステップＳ１２３’で作成したフローエントリの内容を制御チャネル処理部１０１に通知する（ステップＳ１２４’）。
【０１３３】
次に、第３の実施形態による通信制御システムの動作を説明する。図１４は、第３の実施形態における通信制御システムの動作の例を示すシーケンス図である。通信ホスト３００−１がＡＲＰ要求を送信し、そのＡＲＰ要求が制御サーバ１００に送信されるまでのステップＳ１０１〜ステップＳ１０３までの処理は、図６におけるステップＳ１０１〜ステップＳ１０３までの処理と同様である。そして、ステップＳ１０４では、図１３に例示するステップＳ１２１〜ステップＳ１２４’の処理が行われる。
【０１３４】
制御サーバ１００の制御チャネル処理部１０１は、ステップＳ１０４において作成したＡＲＰ応答を通信ホスト３００−１に送信するよう、制御チャネルを介して転送ノード２００−１へ指示する（ステップＳ１０５）。また、制御チャネル処理部１０１は、ステップＳ１２４’で受け取ったフローエントリをフローテーブルに追加するよう転送ノード２００−１に指示する（ステップＳ１０５’）。
【０１３５】
転送ノード２００−１の転送処理部２０２は、ステップＳ１０５で送信されたＡＲＰ応答を受信すると、受信したＡＲＰ応答を通信ホスト３００−１に送信する（ステップＳ１０６）。また、転送ノード２００−１の転送処理部２０２は、ステップＳ１２４’で受け取ったフローエントリをフローテーブルに追加する（ステップＳ１０６’）。以降、通信ホスト３００−１がパケットを送信して、通信ホスト３００−２がパケットを受信するまでのステップＳ１０７〜Ｓ１１５までの処理は、図６におけるステップＳ１０７〜Ｓ１１５の処理と同様である。
【０１３６】
次に、通信ホスト３００−１が通信ホスト３００−２のＩＰアドレスに対するアドレス解決を行う際、転送ノードがＡＲＰ応答を行う動作を説明する。図１５は、転送ノードがＡＲＰ応答を行う処理の例を示すシーケンス図である。なお、図１５に例示する処理が開始される前の段階において、上述するステップＳ１２３’、ステップＳ１２４’、ステップＳ１０５’およびステップＳ１０６’の処理が一回以上実行された状態にあるものとする。
【０１３７】
まず、通信ホスト３００−１は、解決対象のＩＰアドレス（ターゲットプロトコルアドレス）が通信ホスト３００−２のＩＰアドレスであるＡＲＰ要求を転送ノード２００−１に送信する（ステップＳ３０１）。転送ノード２００−１がＡＲＰ要求を受信すると、転送処理部２０２は、受信したＡＲＰ要求に対応するフローエントリを検索する（ステップＳ３０２）。この場合、受信したＡＲＰ要求に対応するフローエントリは、ステップＳ１０６’で追加されているため、フローテーブルに存在する。
【０１３８】
そこで、転送ノード２００−１の転送処理部２０２は、ステップＳ３０２で検索されたフローエントリのアクションに基づき、ＡＲＰ応答を作成する（ステップＳ３０３）。作成されるＡＲＰ応答には、例えば、以下に示す送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、ＡＲＰ応答の内容である送信者ハードウェアアドレス、送信者プロトコルアドレス、ターゲットハードウェアアドレス、および、ターゲットプロトコルアドレスが含まれる。作成されるＡＲＰ応答の一例を示す。
【０１３９】
・送信先ＭＡＣアドレス：ＡＲＰ要求を送信した通信ホストのＭＡＣアドレス
・送信元ＭＡＣアドレス：フローエントリのアクションで指定された値
・ＡＲＰ  ｏｐｃｏｄｅ：応答
・ＡＲＰ  送信者ハードウェアアドレス：フローエントリのアクションで指定された値
・ＡＲＰ  送信者プロトコルアドレス：ＡＲＰ要求内のターゲットプロトコルアドレス
・ＡＲＰ  ターゲットハードウェアアドレス：ＡＲＰ要求内の送信者ハードウェアアドレス
・ＡＲＰ  ターゲットプロトコルアドレス：ＡＲＰ要求内の送信者プロトコルアドレス
【０１４０】
ここで、送信元ＭＡＣアドレスおよびＡＲＰ  送信者ハードウェアアドレスには、ＡＲＰ要求を送信した通信ホストが属するユーザネットワークのネットワーク識別子（すなわち、ステップＳ１２３’で指定された値）が設定される。
【０１４１】
なお、ステップＳ３０３において、ＡＲＰ要求のＡＲＰ  ターゲットプロトコルアドレスがＡＲＰ要求を送信した通信ホストのＩＰアドレスであった場合、転送ノード２００−１の転送処理部２０２は、ＡＲＰ要求に対する処理を中止してもよい。
【０１４２】
そして、転送ノード２００−１の転送処理部２０２は、ステップＳ３０２で検索されたフローエントリのアクションに基づき、ステップＳ３０３で作成したＡＲＰ応答を通信ホスト３００−１に送信する（ステップＳ３０４）。
【０１４３】
以上説明したように、本発明の第３の実施形態によれば、第１の実施形態による効果に加え、制御サーバ１００と転送ノード２００−１〜２００−３との間で通信されるＡＲＰ要求およびＡＲＰ応答の数を削減できるという効果が得られる。
【０１４４】
なお、第３の実施形態による通信制御システムの説明として、各転送ノードの転送処理部２０２がＡＲＰ要求の受信に基づいてＡＲＰ要求に対応するフローエントリをフローテーブルに追加する例を示したが、本発明はこれに限定されるものでない。ＡＲＰ要求の受信に先立ち、各転送ノードのフローテーブルにＡＲＰ要求に対応するフローエントリを予め追加しておいてもよい。
【０１４５】
例えば、通信ホストが新たに転送ノードに接続された際、制御サーバ１００がステップＳ１２２、ステップＳ１２３、ステップＳ１２３’、ステップＳ１２４、ステップＳ１２４’の処理を実行することにより、ＡＲＰ要求に対応するフローエントリを予めフローテーブルに追加しておくことが可能になる。
【０１４６】
次に、本発明の最小構成を説明する。図１６は、本発明による通信制御システムの最小構成の例を示すブロック図である。本発明による通信制御システムは、パケットの特徴とその特徴に該当するパケットに対する処理を規定する処理規則（例えば、フローエントリ）とを保持し、処理規則に基づいて他の装置から受信したパケットを処理する転送ノード８０（例えば、転送ノード２００−１〜２００−３）と、転送ノード８０が保持する処理規則を制御する制御サーバ９０（例えば、制御サーバ１００）とを備えている。
【０１４７】
制御サーバ９０は、転送ノード８０の設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、転送ノード８０に接続される装置と論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段９１（例えば、ネットワーク情報記憶部１０６）と、パケットの送信先である送信先通信装置（例えば、通信ホスト３００−２）またはパケットの送信元である送信元通信装置（例えば、通信ホスト３００−１）から受信したパケットを他の装置に転送する通信装置（例えば、デフォルトルータ）についてのアドレス解決の要求（例えば、ＡＲＰ要求）を転送ノード８０から受信したときに、送信先通信装置または通信装置についてレイヤ間のアドレス解決を行い、そのアドレス解決により得られたアドレスである解決後アドレス（例えば、ＡＲＰ応答に含まれるＭＡＣアドレス）に、送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決手段９２（例えば、アドレス解決処理部１０４）とを含む。
【０１４８】
これらの構成により、レイヤ間のアドレス解決を効率的に行うことができるとともに、複数のネットワークサービスを多重化する場合に、パケットに対する処理内容を示すフローエントリを集約できる。
【０１４９】
また、転送ノードは、処理規則を記憶する処理規則記憶手段（例えば、フローテーブル記憶部２０３）と、処理規則に基づいて送信元通信装置が送信したパケットの経路制御を行うパケット処理手段（例えば、転送処理部２０２）とを含んでいてもよい。そして、処理規則記憶手段が、処理規則におけるパケットの特徴として論理ネットワーク識別子を記憶し、パケット処理手段が、処理規則に基づいて、論理ネットワーク識別子に該当するパケットの経路制御を行ってもよい。
【０１５０】
また、処理規則記憶手段は、パケットに対する処理として、パケットの送信先アドレスを論理ネットワーク識別子からそのパケットの送信先である送信先通信装置のアドレスに変更する処理を規定した処理規則（例えば、図９に例示するフローエントリ）を記憶してもよい。そして、パケット処理手段は、処理規則に基づいて、受信したパケットの送信先アドレスを送信先通信装置のアドレスに変更してもよい。
【０１５１】
また、処理規則記憶手段は、パケットに対する処理として、パケットの送信元アドレスを送信元通信装置のアドレスから、その送信元通信装置が属する論理ネットワークの論理ネットワーク識別子に変更する処理を規定した処理規則（例えば、図１２に例示するフローエントリ）を記憶してもよい。そして、パケット処理手段は、処理規則に基づいて、受信したパケットの送信元アドレスを論理ネットワーク識別子に変更してもよい。
【０１５２】
また、アドレス解決手段９２は、アドレス解決の要求を受信したときに、処理規則として、アドレス解決の要求に基づいてその要求への応答として解決後アドレスに送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定したレイヤ間アドレス解決応答パケットを作成する処理、および、そのレイヤ間アドレス解決応答パケットを送信元通信装置に送信する処理を規定した規則（例えば、ステップＳ１２３’で生成されるフローエントリ）を生成し、その処理規則を転送ノード８０に設定させてもよい。
【０１５３】
図１７は、本発明による制御サーバの最小構成の例を示すブロック図である。図１７に例示する制御サーバは、図１６に例示する制御サーバ９０の内容と同様である。
【０１５４】
また、図１８は、本発明による転送ノードの最小構成の例を示すブロック図である。本発明による転送ノード７０は、パケットの特徴とその特徴に該当するパケットに対する処理を規定する処理規則（例えば、フローエントリ）を保持し、処理規則に基づいて他の装置から受信したパケットを処理する。
【０１５５】
転送ノード７０は、自身の設定により定義される論理ネットワークの識別子である論理ネットワーク識別子、および、自身に接続される装置と論理ネットワークとの対応関係を記憶するネットワーク情報記憶手段７１（例えば、ネットワーク情報記憶部１０６ａ）と、パケットの送信先である送信先通信装置（例えば、通信ホスト３００−２）またはパケットの送信元である送信元通信装置（例えば、通信ホスト３００−１）から受信したパケットを他の装置に転送する通信装置（例えば、デフォルトルータ）についてのアドレス解決の要求（例えば、ＡＲＰ要求）をその送信元通信装置から受信したときに、送信先通信装置または通信装置についてレイヤ間のアドレス解決を行い、そのアドレス解決により得られたアドレスである解決後アドレスに、送信元通信装置が属する論理ネットワークの論理ネットワーク識別子を設定するアドレス解決手段７２（例えば、アドレス解決処理部１０４ａ）とを備えている。
【０１５６】
これらの構成によっても、レイヤ間のアドレス解決を効率的に行うことができるとともに、複数のネットワークサービスを多重化する場合に、パケットに対する処理内容を示すフローエントリを集約できる。
【０１５７】
以上、本発明の実施形態について説明した。ただし、本発明は、これらの実施形態に限定されるものではなく、本発明の技術思想の範囲内において、これらの実施形態を組み合わせて使用したり、一部の構成を変更したりしてもよい。
【０１５８】
この出願は、２０１１年１月５日に出願された日本特許出願２０１１−０００７３８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１５９】
本発明は、パケットの通信経路を集中的に制御する通信制御システムに好適に適用される。
【符号の説明】
【０１６０】
１００  制御サーバ
１０１  制御チャネル処理部
１０２，１０２ａ  ネットワーク情報管理部
１０３  トポロジ情報管理部
１０４，１０４ａ  アドレス解決処理部
１０５  フローエントリ作成部
１０６，１０６ａ  ネットワーク情報記憶部
１０７  トポロジ情報記憶部
２００−１〜２００−３  転送ノード
２０１  制御チャネル処理部
２０２  転送処理部
２０３  フローテーブル記憶部
３００−１〜３００−４  通信ホスト
４００  制御用ネットワーク
【図１】
0005874726.tif 000002
【図２】
0005874726.tif 000003
【図３】
0005874726.tif 000004
【図４】
0005874726.tif 000005
【図５】
0005874726.tif 000006
【図６】
0005874726.tif 000007
【図７】
0005874726.tif 000008
【図８】
0005874726.tif 000009
【図９】
0005874726.tif 000010
【図１０】
0005874726.tif 000011
【図１１】
0005874726.tif 000012
【図１２】
0005874726.tif 000013
【図１３】
0005874726.tif 000014
【図１４】
0005874726.tif 000015
【図１５】
0005874726.tif 000016
【図１６】
0005874726.tif 000017
【図１７】
0005874726.tif 000018
【図１８】
0005874726.tif 000019