(57)【要約】 【課題】種々の制約を受けずに柔軟にパケットを採取できる構成の提供。【解決手段】通信システムは、制御装置から設定された制御情報に基づいて、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラヒック解析装置に宛てて転送する第１のスイッチと、前記制御装置から設定された制御情報に基づいて、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置に宛てて転送する第２のスイッチと、前記第１、第２のスイッチに、それぞれ制御情報を設定する制御装置と、を含む。【選択図】図１
2013223191.tif 000002
【特許請求の範囲】
【請求項１】
制御装置から設定された制御情報に基づいて、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラヒック解析装置に宛てて転送する第１のスイッチと、
前記制御装置から設定された制御情報に基づいて、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置に宛てて転送する第２のスイッチと、
前記第１、第２のスイッチに、それぞれ制御情報を設定する制御装置と、
を含む通信システム。
【請求項２】
前記第１のスイッチは、前記制御装置から設定された制御情報に基づいて、前記複製したパケットのヘッダフィールドに所定の情報を書き込む処理を行い、
前記第２のスイッチは、前記所定の情報をマッチ条件に持つ制御情報を用いて、前記パケット採取用のフローに属するパケットを識別する請求項１の通信システム。
【請求項３】
前記制御装置は、前記所定のトラヒック解析装置に接続されたスイッチに、前記改変されたパケットを復元する処理を行わせる請求項１又は２の通信システム。
【請求項４】
前記第１のスイッチは、前記制御装置から設定された制御情報に基づいて、前記複製したパケットのヘッダフィールドに、採取したネットワークを特定するための情報を書き込む処理を行い、
前記第２のスイッチは、前記ネットワークを特定するための情報をマッチ条件に持つ制御情報を用いて、前記パケット採取用のフローに属するパケットを識別する請求項１の通信システム。
【請求項５】
前記制御装置が、所定のタイミングで、指定されたパケット採取点と前記所定のトラヒック解析装置間の経路を生成し、前記第１、第２のスイッチに、前記生成した経路に応じた制御情報を設定することにより、パケット採取の開始を指示し、所定の終了タイミングで、前記第１、第２のスイッチに前記制御情報を削除させることにより、パケット採取の終了を指示する請求項１から４いずれか一の通信システム。
【請求項６】
第１のスイッチに、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラヒック解析装置に宛てて転送させる制御情報を設定する手段と、
第２のスイッチに、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置に宛てて転送させる制御情報を設定する手段とを備えた制御装置。
【請求項７】
第１のスイッチに、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラヒック解析装置に宛てて転送させる制御情報を設定するステップと、
第２のスイッチに、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置に宛てて転送させる制御情報を設定するステップと、を含むパケット採取方法。
【請求項８】
第１、第２のスイッチに、それぞれ制御情報を設定する制御装置に搭載されたコンピュータに、
第１のスイッチに、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラヒック解析装置に宛てて転送させる制御情報を設定する処理と、
第２のスイッチに、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置に宛てて転送させる制御情報を設定する処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、制御装置、パケット採取方法及びプログラムに関し、特に、パケットキャプチャ機能を有する通信システム、その制御装置、パケット採取方法及びプログラムに関する。
【背景技術】
【０００２】
特許文献１に、仮想ネットワーク環境において、キャプチャ対象ではないフレームの仮想ハブからクライアントへの流入を防止し、アンダーレイネットワークへの不要な負荷を低減するというネットワーク監視システムが開示されている。同公報によると、仮想ハブは、要求元のクライアント端末を収容するポートへ、他の全てのポート間、或いは一部のポート間のトラフィックをミラーリングする機能と、ポートで、要求元のクライアント端末へ送出する前のフレーム、或いは、保存部に保存する前のフレームに対するフィルタ設定および当該設定に基づくフィルタリングを行なう機能と、ポートで、キャプチャデータを要求元のクライアント端末へ送出する手段と、ポートで、キャプチャデータを要求元のクライアント端末へ送出せずに、保存部に保存するリダイレクトを行なう機能と、要求元のクライアント端末へ、既にキャプチャされ保存部に保存されているキャプチャデータを送信する機能とを具備する、と記載されている。
【０００３】
また近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１３０５２７号公報
【非特許文献】
【０００５】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年２月１４日検索］、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年２月１４日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下の分析は、本発明によって与えられたものである。ネットワーク障害時や調査のため実際に通信に使ったパケットを採取し確認することがある。しかしながらレイヤ２スイッチ（以下、レイヤ２、レイヤ３、レイヤ４をそれぞれ「Ｌ２」、「Ｌ３」、「Ｌ４」と記す。）の普及により簡単にパケットをハブから取り出せなくなってきた。Ｌ２スイッチは、必要のあるポートにしかパケットを送信しないためである。
【０００７】
ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）スイッチの中には、採取するポートへミラーポート設定を行うことで複製したパケットを取り出すことができるものが知られている。ポートにミラー設定を行うと、指定したポートを通過する全パケットが複製される。パケット数が多くなると、スイッチに対し余分な負荷を与えるようになり、スイッチによっては転送処理性能へ悪影響を及ぼしてしまう。またミラーポートへ出力する際にパケットロス、順序変更、遅延が発生し、正確な解析にならないという問題が起こる可能性がある。保存領域の大きさによっては、キャプチャ容量が超えてしまい意図したタイミングで保存することができなくなる可能性も生じる。
【０００８】
複数セグメントでキャプチャが必要な場合、ミラーポートが複数必要になってしまう。
他に、回線を冗長化し複数のポートを同時に使用している場合、パケットの送信、受信時に通る経路が異なる可能性がある。キャプチャ装置を２台使用しても分散してキャプチャされるので解析が大変になるという問題がある。
【０００９】
現状の解決策として次のような解決方法が存在する。
（１）ＳＰＡＮ（Ｓｗｉｔｃｈｅｄ  Ｐｏｒｔ  Ａｎａｌｙｚｅｒ）、ＲＳＰＡＮ（Ｒｅｍｏｔｅ  ＳＰＡＮ）
ＳＰＡＮはミラーの拡張で、ポートないしＶＬＡＮ  ＩＤ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  ＩＤ）と送信・受信のトラヒックのフィルタリングを行うことができる。ＲＳＰＡＮはリモート転送に対応させたものである。しかしトラヒックの流量はこのようなフィルタリング条件でも充分でなく、柔軟性がない。またその他に監視できるセッション数が２つだけといった制約がある。
【００１０】
また、ＳＰＡＮ、ＲＳＰＡＮにおいて、ＬＡＮを越えるためにＥＲＳＰＡＮ（Ｅｎｃａｐｓｕｌａｔｅｄ  ＲＳＰＡＮ）という拡張機能も存在する。パケットをルータ越えさせるため採取パケットをＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）でカプセル化している。このためパケット毎に操作を行う必要があり性能面での影響や、カプセル化したパケットのサイズが、転送中の経路のＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）を超えないよう注意しなければならないといった問題点がある。
（２）パケット採取用のアプライアンス製品として、スイッチを高機能化させ、ハードウェアでパケットのフィルタリングを行うデータ・アクセススイッチ／タップが存在する（例えば、特許文献１参照）。しかしながら、高価格の専用機を導入する必要があり、経路変更するためには事前にルートを想定して物理的に結線しておく必要がある。
【００１１】
本発明は、上記した種々の制約を受けずに柔軟にパケット採取を行うことができる通信システム、制御装置、パケット採取方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の視点によれば、制御装置から設定された制御情報に基づいて、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラヒック解析装置に宛てて転送する第１のスイッチと、前記制御装置から設定された制御情報に基づいて、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置に宛てて転送する第２のスイッチと、前記第１、第２のスイッチに、それぞれ制御情報を設定する制御装置と、を含む通信システムが提供される。
【００１３】
本発明の第２の視点によれば、第１のスイッチに、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラヒック解析装置に宛てて転送させる制御情報を設定する手段と、第２のスイッチに、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置に宛てて転送させる制御情報を設定する手段とを備えた制御装置が提供される。
【００１４】
本発明の第３の視点によれば、第１のスイッチに、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラヒック解析装置に宛てて転送させる制御情報を設定するステップと、第２のスイッチに、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置に宛てて転送させる制御情報を設定するステップと、を含むパケット採取方法が提供される。本方法は、制御情報の設定によりスイッチを制御する制御装置という、特定の機械に結びつけられている。
【００１５】
本発明の第４の視点によれば、第１、第２のスイッチに、それぞれ制御情報を設定する制御装置に搭載されたコンピュータに、第１のスイッチに、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラヒック解析装置に宛てて転送させる制御情報を設定する処理と、第２のスイッチに、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置に宛てて転送させる制御情報を設定する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１６】
本発明によれば、種々の制約を受けずに柔軟にパケット採取を行うことが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の第１の実施形態の通信システムの構成を示す図である。
【図３】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ）の構成を表したブロック図である。
【図４】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ）のフローテーブルの構成を示す図である。
【図５】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ）のグループテーブルの構成を示す図である。
【図６】図２のネットワークをＬ２、Ｌ３レベルで見た構成を示す図である。
【図７】図６のネットワーク上に本発明の第１の実施形態のＯＦＣによって構成されるパケット採取用の仮想ネットワークを表した図である。
【図８】本発明の第１の実施形態におけるパケットの流れ（ＰＣ１からＰＣ２へパケット送信）を説明するための図である。
【図９】本発明の第１の実施形態におけるパケットの流れ（ＰＣ２からＰＣ１へパケット送信）を説明するための図である。
【図１０】本発明の第１の実施形態の通信システムの全体動作を表したフローチャートである。
【図１１】本発明の第１の実施形態の通信システムの動作（キャプチャ用仮想ネットワークの構築）を表したフローチャートである。
【図１２】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１１）に設定されるフローテーブルの例である。
【図１３】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１２）に設定されるフローテーブルの例である。
【図１４】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１３）に設定されるフローテーブルの例である。
【図１５】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１１）に設定されるグループテーブルの例である。
【図１６】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１１）の動作（パケット受信時）を表したフローチャートである。
【図１７】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１２）の動作（パケット受信時）を表したフローチャートである。
【図１８】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１３）の動作（パケット受信時）を表したフローチャートである。
【発明を実施するための形態】
【００１８】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１９】
本発明は、その一実施形態において、図１に示すように、第１のスイッチ１１Ａと、第２のスイッチ１２Ａと、これらのスイッチに、それぞれ制御情報を設定する制御装置２０Ａとを含む構成にて実現できる。
【００２０】
より具体的には、第１のスイッチ１１Ａは、制御装置２０Ａから設定された制御情報に基づいて、採取対象のトラヒックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変（マーキング「Ｍ」）を加えた上で、所定のトラヒック解析装置４０に宛てて転送する。第２のスイッチ１２Ａは、制御装置２０Ａから設定された制御情報に基づいて、前記採取対象のトラヒックに属するパケットを所定の経路で転送し、または、前記パケット採取用のフローに属するパケットを、前記所定のトラヒック解析装置４０に宛てて転送する。
【００２１】
要するに、第１のスイッチ１１Ａが、ミラーリングを行うのではなく、制御装置２０Ａから設定された制御情報に基づいて、採取対象のトラヒックに属するパケットだけを複製し、パケット採取用のフローを作成する。そして、第１のスイッチ１１Ａからパケットの転送を受けた第２のスイッチ１２Ａが、制御装置２０Ａから設定された制御情報に基づいて、採取対象のトラヒックに属するパケットを、トラヒック解析装置４０に転送する。もちろん、第１、第２のスイッチ１１Ａ、１２Ａは、制御装置から設定された制御情報に従って、採取対象のトラヒックに属するパケット（即ち、複製元のパケット）の転送も行う。さらに、第１、第２のスイッチ１１Ａ、１２Ａは、その他のフローについての制御情報が設定されている場合には、その他のフローについても、パケット転送等を行う。
【００２２】
特に、第１、第２のスイッチ１１Ａ、１２Ａとして、非特許文献１、２のオープンフロースイッチを用いることとすれば、オープンフローコントローラを介して、採取対象のトラヒックやその転送経路を任意に設定することが可能である。また、オープンフロースイッチのフローテーブルのサーチや処理実行（上記したパケット複製やヘッダ書換え等によるパケット改変等）は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）を用いた構成とすることで高速に実行することができる。このため、第１、第２のスイッチ１１Ａ、１２Ａにおける負荷増大も軽微である。
【００２３】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の通信システムの構成を示す図である。図２を参照すると、４台のオープンフロースイッチ（以下、「ＯＦＳ」）１１〜１４と、これらＯＦＳ１１〜１４を制御するオープンフローコントローラ（以下、「ＯＦＣ」）２０と、を含む構成が示されている。
【００２４】
ＯＦＳ１１〜１４は、非特許文献１、２に記載のオープンフロースイッチまたは同等の機能を有する通信装置である。個々のＯＦＳ１１〜１４は、データパスＩＤと呼ばれる識別子で区別される。
【００２５】
ＯＦＳ１１〜１４と、ＯＦＣ２０とは、図２の破線で示される制御用ネットワーク（セキュアチャネル）で接続され、制御メッセージを授受する。なお、ＯＦＳ１１〜１４とＯＦＣ２０間の制御メッセージの授受には、非特許文献２のオープンフロープロトコルを用いることができる。
【００２６】
図３は、ＯＦＳ１１の構成を表したブロック図である。図３を参照すると、ＯＦＣ２０と通信するためのプロトコル処理部１１１と、複数（Ｎ個とする）のフローテーブル１１２０〜１１２Ｎと、グループテーブル１１３と、パケット処理部１１４とを備えた構成が示されている。
【００２７】
プロトコル処理部１１１は、ＯＦＣ２０から受信した制御メッセージに基づいて、フローテーブル１１２０〜１１２Ｎへのフローエントリの設定、変更、削除等を行う。また、プロトコル処理部１１１は、パケット処理部１１４からの要求に応じて、ＯＦＣ２０に対し、フローエントリの設定要求メッセージ（Ｐａｃｋｅｔ−Ｉｎ；非特許文献２参照）を送信する。
【００２８】
図４は、ＯＦＳ１１〜１４のフローテーブル１１２０〜１１２Ｎの基本構成を示す図である。図４を参照すると、フローテーブルは、マッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）、カウンタ（Ｃｏｕｎｔｅｒｓ）及びインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）を対応付けたフローエントリを複数格納可能となっている。従って、一つのＯＦＳには、図４に示したフローテーブルを１つ以上有している。
【００２９】
マッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）は、フローを特定するための条件を設定するフィールドである。具体的には、ＡＮＹというすべての値に該当する特殊な値（ワイルドカード）のほか、Ｌ２〜Ｌ４のヘッダ情報などを指定できる。非特許文献２において、指定できるものを以下に記す。
１．  パケットの入力ポート（Ｉｎｇｒｅｓｓ Ｐｏｒｔ）
２．  統計情報などのメタ情報（Ｍｅｔａｄａｔａ）
３．  Ｅｔｈｅｒ  ｓｏｕｒｃｅ  ＭＡＣ  ａｄｄｒｅｓｓ
４．  Ｅｔｈｅｒ  ｄｅｓｔｉｎａｔｉｏｎ  ＭＡＣ  ａｄｄｒｅｓｓ
５．  Ｅｔｈｅｒ  ｔｙｐｅ
６．  ＶＬＡＮ  ＩＤ
７．  ＶＬＡＮ  ｐｒｉｏｒｉｔｙ
８．  ＭＰＬＳ  ｌａｂｅｌ
９．  ＭＰＬＳ  ｔｒａｆｆｉｃ  ｃｌａｓｓ
１０．  ＩＰｖ４  ｓｏｕｒｃｅ  ａｄｄｒｅｓｓ
１１．  ＩＰｖ４  ｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ
１２．  ＩＰｖ４  ｐｒｏｔｏ／ＡＲＰ  ｏｐｃｏｄｅ
１３．  ＩＰｖ４  ＴｏＳ  ｂｉｔｓ
１４．  ＴＣＰ／ＵＤＰ／ＳＣＴＰ  ｓｏｕｒｃｅ  ｐｏｒｔまたはＩＣＭＰ ｔｙｐｅ
１５．  ＴＣＰ／ＵＤＰ／ＳＣＴＰ  ｄｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔまたはＩＣＭＰ  ｃｏｄｅ
【００３０】
以下の説明では、これらの属性で指定するトラヒックを「フロー」と呼ぶことにする。
【００３１】
カウンタ（Ｃｏｕｎｔｅｒｓ）は、このエントリに該当した場合に更新する統計情報（バイト数、パケット数等）を格納するフィールドである。
【００３２】
インストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）は、マッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）に該当するパケットに対して行う処理を格納するためのフィールドである。インストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）としては、特定のポートからの転送、ヘッダの書き換え等の単一の処理内容（Ａｃｔｉｏｎ）のほか、後記するグループテーブルのエントリを指定して複数のアクション（Ａｃｔｉｏｎ）を実行させることもできる。
【００３３】
ＯＦＳ１１〜１４は、パケットを受け取ると複数のフローテーブルを使ったパイプライン処理を実施することもできる。フローエントリのインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）フィールドに、他のフローテーブルへの遷移を指示する命令（Ｇｏｔｏ−Ｔａｂｌｅ）を設定することにより、このパイプライン処理が実施される。具体的には、テーブル番号０番のフローテーブル１１２０から順次テーブルをサーチしていき、ＧｏＴｏ−Ｔａｂｌｅ命令がないフローテーブルの最後のフローエントリまで実施したら終了する。なお、Ｇｏｔｏ−Ｔａｂｌｅ命令では、そのテーブルよりもテーブル番号の大きいフローテーブルへ処理を移すことができるが、後戻り（ループ）はできない。つまり常にテーブル番号を大きくしていく方向にのみＧｏｔｏ−Ｔａｂｌｅ命令は使用できる（非特許文献２の「４．１．１  Ｐｉｐｅｌｉｎｅ  Ｐｒｏｃｅｓｓｉｎｇ」参照）。
【００３４】
図５は、ＯＦＳ１１〜１４のグループテーブル１１３の基本構成を示す図である。フローテーブル１１３は、グループ識別子（Ｇｒｏｕｐ  Ｉｄｅｎｔｉｆｉｅｒ）、グループタイプ（Ｇｒｏｕｐ  Ｔｙｐｅ）、カウンタ（Ｃｏｕｎｔｅｒｓ）及びアクション群（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔｓ）を対応付けたエントリを複数格納可能となっている。
【００３５】
グループ識別子（Ｇｒｏｕｐ  Ｉｄｅｎｔｉｆｉｅｒ）は、符号なし３２ｂｉｔの整数で、グループエントリを識別する一意な識別子である。
【００３６】
グループタイプ（Ｇｒｏｕｐ  Ｔｙｐｅ）は、このグループエントリの意味を表し、アクション群（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔｓ）の使い方を表す。非特許文献２では、ａｌｌ、ｓｅｌｅｃｔ、ｉｎｄｉｒｅｃｔ、ｆａｓｔ  ｆａｉｌｏｖｅｒの４つが定義されている。ここでは、ａｌｌとｓｅｌｅｃｔについて説明する。
【００３７】
グループタイプ（Ｇｒｏｕｐ  Ｔｙｐｅ）がａｌｌの場合、スイッチ１１〜１４は、アクション群（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔｓ）フィールドに設定された処理内容（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔ）のすべてを実行する。また、それぞれのアクション群（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔｓ）の実行に際して、パケットは効率的にコピーされて渡される。
【００３８】
グループタイプ（Ｇｒｏｕｐ  Ｔｙｐｅ）がｓｅｌｅｃｔの場合、スイッチ１１〜１４は、アクション群（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔｓ）フィールドに設定された処理内容（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔ）のうちのいずれかを実行する。
【００３９】
カウンタ（Ｃｏｕｎｔｅｒｓ）は、このグループエントリによって処理したパケットの統計情報（バイト数、パケット数等）を格納するフィールドである。
【００４０】
アクション群（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔｓ）は、Ａｃｔｉｏｎ  Ｂｕｃｋｅｔと呼ばれる処理やパラメータ変更等を行うＡｃｔｉｏｎのリストを、複数格納するフィールドである。
【００４１】
なお、図３にはＯＦＳ１１の構成のみを示しているが、ＯＦＳ１２〜１４も同様の構成であるので、説明を省略する。
【００４２】
再度、図２を参照してＯＦＳ１１〜１４以外の構成要素について説明する。ＯＦＣ２０は、上記した制御用ネットワーク（セキュアチャネル）を介してＯＦＳ１１〜１４にフローエントリやグループエントリを設定する。
【００４３】
トラヒック解析装置４０は、パケットを採取する装置で、図２の例では、ＯＦＳ１３と接続されている。
【００４４】
ＰＣ３１、３２は、パーソナルコンピュータ等の通信機器である。また、以下の説明において、ＰＣ３１のＩＰアドレスは、１９２．１６８．１．１であるものとし、ＰＣ３２のＩＰアドレスは、１９２．１６８．１．２であるものとする。
【００４５】
また、以下の説明では、図６に示すように、ＰＣ３１は、ＶＬＡＮ１を介して、ＯＦＳ１１に接続しているものとして説明する。同様に、ＰＣ３２は、ＶＬＡＮ２を介して、ＯＦＳ１３に接続しているものとして説明する。このようにＰＣ３１、３２が、異なるＶＬＡＮに接続している場合、通常ではネットワークが異なるため、ＰＣ３１、３２からのＢｒｏａｄｃａｓｔ通信などはトラヒック解析装置４０まで届かない。
【００４６】
本実施形態では、上述したオープンフローの仕組みを用いて、図７に示すように、ＶＬＡＮ１０１という独自のキャプチャ用仮想ネットワークを作成し、あたかもＯＦＳ１１に直接トラヒック解析装置４０が接続されているかのように、離れているトラヒック解析装置４０に対し、採取したパケットを送ることを考える。
【００４７】
以下、本実施形態の動作について図面を参照して詳細に説明する。以下の説明では、図７に示したＶＬＡＮ１０１においてキャプチャ点となっているＯＦＳ１１上で、図２のＰＣ３１、３２間のパケットを採取することとする。始めに、図８、図９を参照して本実施形態において、ＯＦＳ１１〜１４が行う動作について説明する。
【００４８】
図８は、図２のＰＣ３１からＰＣ３２へパケットを送信する際のやりとりを示す。なお、ＯＦＣ２０は省略されている。ＯＦＳ１１は、ＰＣ３１からパケットＰ１を受信すると、採取対象のパケットと判断したら、複製パケットＣ１を生成する。ＯＦＳ１１は、複製パケットＣ１に所定のマーキング（例えば、ヘッダへの情報埋め込み、追加ヘッダの付加等）を行う。次に、ＯＦＳ１１は、それらパケットをそれぞれ目的地へ転送する。
【００４９】
オリジナルのパケットＰ１は、図８の実線の矢線に従って、ＯＦＳ１１−ＯＦＳ１２−ＯＦＳ１３と経由して最終的にＰＣ３２へ転送される。一方、複製パケットＣ１は、図８の点線の矢線に従って、ＯＦＳ１１−ＯＦＳ１２−ＯＦＳ１３と経由して最終的にトラヒック解析装置４０へ転送される。
【００５０】
図９は、図２のＰＣ３２からＰＣ３１へパケットを送信する際のやりとりを示す。なお、図９においてもＯＦＣ２０は省略されている。ＰＣ３２から送信されたパケットＰ２は、図９の実線の矢線に従って、ＯＦＳ１３−ＯＦＳ１２−ＯＦＳ１１と経由して最終的にＰＣ３１へ転送される。図７に示したＶＬＡＮ１０１においてキャプチャ点となっているＯＦＳ１１は、前記パケットＰ２を受信すると、採取対象のパケットと判断し、複製パケットＣ２を生成する。さらに、ＯＦＳ１１は、複製パケットＣ２に所定のマーキング（例えば、ヘッダへの情報埋め込み、追加ヘッダの付加等）を行う。複製パケットＣ１は、図９の点線の矢線に従って、ＯＦＳ１１−ＯＦＳ１２−ＯＦＳ１３と経由して最終的にトラヒック解析装置４０へ転送される。
【００５１】
続いて、上記ＯＦＳ１１〜１４の動作を実現するための準備及びＯＦＣ２０の動作等について説明する。
【００５２】
［全体動作］
図１０は、本発明の第１の実施形態の通信システムの全体動作を表したフローチャートである。図１０を参照すると、はじめに、ＯＦＣ２０が、オペレータ等の操作に従って、キャプチャ用仮想ネットワークを構築する（ステップＳ５１０１）。
【００５３】
次に、ステップＳ５１０１で設定されたフローエントリ、グループエントリに従って、ＯＦＳ１１〜１４が、パケットの採取を開始する（ステップＳ５１０２）。
【００５４】
ＯＦＣ２０がステップＳ５１０１で設定したフローエントリ、グループエントリを削除すると、ＯＦＳ１１〜１４は、パケットの採取動作を停止する（ステップＳ５１０３）。
【００５５】
［キャプチャ用仮想ネットワークの構築］
図１１は、本発明の第１の実施形態の通信システムの動作（キャプチャ用仮想ネットワークの構築）を表したフローチャートである。図１１を参照すると、まず、キャプチャしたデータを最終的に送り届けるＯＦＳ上のポートを決定する（ステップＳ５２０１）。本実施形態では、トラヒック解析装置が接続されているＯＦＳ１３の接続ポートが最終配送先ポートとなる。
【００５６】
次に、ＯＦＣ２０は、キャプチャしたデータを転送していく経路を計算する（ステップＳ５２０２）。本実施形態では、上記図８、図９の点線で示した経路が計算されたものとする。また、ＯＦＣ２０は、仮想ネットワークに所属するパケットの識別に用いるマーキングを決定する。本実施形態では、ＶＬＡＮ１０１を示すＶＬＡＮ  ＩＤ＝１０１を使用するものとする。なお、ＶＬＡＮ  ＩＤを使用する場合、ＰＣ３１、３２や他のネットワークで使用していない値を使用する必要がある。
【００５７】
次に、ＯＦＣ２０は、ステップＳ５２０２で求めた経路に沿ったパケット転送を実現するフローエントリおよびグループエントリを作成し、経路上のＯＦＳ１１〜１３に設定する（ステップＳ５２０３）。以上により、ＰＣ３１またはＰＣ３２からのパケットを採取する準備が整うことになる。なお、図１１では省略しているが、キャプチャ対象のフローのパケットを転送するためのフローエントリおよびグループエントリやその他一般フローのパケットを転送するためのフローエントリおよびグループエントリも同様の手順で設定される。
【００５８】
本実施形態において、ＯＦＳは、大きく分けて、パケットを採取するＯＦＳと（第１のスイッチ；図８、図９のＯＦＳ１１に相当）、採取されたパケットを転送するＯＦＳ（第２のスイッチ；図８、図９のＯＦＳ１２、１３に相当）とに分けられる。また、本実施形態では、パケットを採取するＯＦＳにて行ったマーキングを外す処理を行うため、経路上のＯＦＳ１２に設定されるフローエントリと、トラヒック解析装置４０に最終的に転送を行うＯＦＳ１３に設定されるフローエントリは異なっている。以下、これら都合３種類のＯＦＳへのフローエントリの設定について説明する。
【００５９】
図１２〜図１４は、ＯＦＳ１１〜１３に設定されるフローテーブルの例である。まず、ＯＦＳ１１〜１３において、最初に参照されるフローテーブル＃０に、ＶＬＡＮ  ＩＤ＝１０１が設定されたトラヒック解析装置４０への転送用フロー（以下、「転送用フロー」）をフローテーブル＃３で処理するフローエントリと、その他のフロー（ＡＮＹ）をフローテーブル＃２で処理するフローエントリとが設定される。また、パケットの採取点となるＯＦＳ１１には、採取対象フローを、パケット複製等を行うフローエントリ＃１が追加される。なお、本実施形態では、採取対象フローであるか否かは、パケットヘッダのＩＰアドレスフィールドにＰＣ３１、３２のＩＰアドレスの組が設定されているか否かで判別することができる。
【００６０】
そして、フローテーブル＃３には、転送用フローに属するパケットを、トラヒック解析装置４０への経路に沿った転送を行うためのポート（転送用ポート）から転送させるフローエントリが設定される。さらに、図１４のＯＦＳ１３のフローテーブル＃３には、トラヒック解析装置４０へ転送するパケットのヘッダからＶＬＡＮ  ＩＤ「１０１」を元の値「１」に復元する処理（Ｓｅｔ−Ｆｉｅｌｄ）を実行させるフローエントリが追加される。
【００６１】
また、フローテーブル＃２には、その他のフロー（ＡＮＹ）のうち、一般フローＡ、一般フローＢ、一般フローＣについての転送処理を定めたフローエントリが設定されている。
【００６２】
また、図１２のＯＦＳ１１のフローテーブル＃１には、採取対象フローのうち、グループテーブル１１３に設定されたグループ識別子が「＃１」のアクショングループ＃１を実行させるフローエントリが設定されている。
【００６３】
図１５は、ＯＦＳ１１のグループテーブル１１３に設定されるグループ識別子＝＃１のエントリの例である。図１５の例では、グループタイプがａｌｌであるので、アクション群（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔｓ）に記述されたすべての処理（Ａｃｔｉｏｎ  Ｂｕｃｋｅｔ）が実行される。図１５の例では、まず、採取対象フローに属するパケットをフローテーブル＃２で処理するＡｃｔｉｏｎ  Ｂｕｃｋｅｔ１と、採取対象フローに属するパケットのヘッダのＶＬＡＮ  ＩＤを「１」から「１０１」に書き換える処理（Ｓｅｔ−Ｆｉｅｌｄ）を実行してから、フローテーブル＃３で処理するＡｃｔｉｏｎ  Ｂｕｃｋｅｔ２が設定されている。
【００６４】
上記のとおり、フローテーブル＃２は、一般フローに関する転送処理を定めたフローテーブルであり、フローテーブル＃３は、転送用フローに関する転送処理を定めたフローテーブルである。従って、ＯＦＳ１１は、採取対象フローに属するパケットをその本来の経理に従って転送する処理と、採取対象フローに属するパケットを複製して、マーキング（ＶＬＡＮ変更）を行ってから、トラヒック解析装置４０側へと転送する処理との双方を実行することになる。
【００６５】
なお、パケットの採取を停止する（図１０のステップＳ５１０３）には、ＯＦＣ２０が、ＯＦＳ１１のフローテーブル＃０から、採取対象フロー等用のフローエントリ（図１２のＦｌｏｗ  Ｔａｂｌｅ＃０の一番上のエントリ）を削除すればよい。
【００６６】
なお、上記したＯＦＣ２０におけるフローエントリの生成機能は、ＯＦＣ２０を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００６７】
続いて、上記フローエントリ及びグループエントリが設定されたＯＦＳ１１〜１３の動作について図面を参照して詳細に説明する。
【００６８】
図１６は、本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１１）の動作（パケット受信時）を表したフローチャートである。ＯＦＳ１１は、パケットを受信すると、図１２のフローテーブル＃０を参照して、採取対象フローであるか否かを判断する（ステップＳ６１０１）。具体的には、パケットヘッダのＩＰアドレスフィールドにＰＣ３１、３２のＩＰアドレスの組が設定されているか否かで判別することができる。
【００６９】
ステップＳ６１０１で採取対象フローであると判定した場合（ステップＳ６１０１のＹｅｓ）、ＯＦＳ１１は、グループテーブル１１３から図１５に示すグループエントリを読み出して、パケットの複製（ステップＳ６１０２）、マーキング（ＶＬＡＮフィールド書き換え；ステップＳ６１０３）、マーキングした複製パケットの転送（ステップＳ６１０４）を行う。これらの一連の処理は、図１５のグループエントリのＡｃｔｉｏｎ  Ｂｕｃｋｅｔｓの内容の実行に相当する。
【００７０】
一方、ステップＳ６１０１で採取対象フローでないと判定した場合（ステップＳ６１０１のＮｏ）、ＯＦＳ１１は、受信パケットが転送用フローに属するパケットであるか否かを判定する（ステップＳ６１０５）。ステップＳ６１０５で転送用フローであると判定した場合（ステップＳ６１０５のＹｅｓ）、ＯＦＳ１１は、図１２のフローテーブル＃３を参照して転送用フローの処理を行う（ステップＳ６１０６）。
【００７１】
一方、ステップＳ６１０５で転送用フローでないと判定した場合（ステップＳ６１０５のＮｏ）、ＯＦＳ１１は、図１２のフローテーブル＃２を参照して一般フローの処理を行う（ステップＳ６１０７）。
【００７２】
以上のようにして、パケット採取点となるＯＦＳ１１の制御が行われる。
【００７３】
図１７は、本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１２）の動作（パケット受信時）を表したフローチャートである。ＯＦＳ１２は、図１３のフローテーブル＃０を参照して、受信パケットが転送用フローに属するパケットであるか否かを判定する（ステップＳ６２０１）。
【００７４】
ステップＳ６２０１で転送用フローであると判定した場合（ステップＳ６２０１のＹｅｓ）、ＯＦＳ１２は、図１３のフローテーブル＃３を参照して転送用フローの処理を行う（ステップＳ６２０２）。
【００７５】
一方、ステップＳ６２０１で転送用フローでないと判定した場合（ステップＳ６２０１のＮｏ）、ＯＦＳ１２は、図１３のフローテーブル＃２を参照して一般フローの処理を行う（ステップＳ６２０３）。
【００７６】
以上のようにして、採取したパケットの転送経路上にあるＯＦＳ１２の制御が行われる。
【００７７】
図１８は、本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ１３）の動作（パケット受信時）を表したフローチャートである。ＯＦＳ１３は、図１４のフローテーブル＃０を参照して、受信パケットが転送用フローに属するパケットであるか否かを判定する（ステップＳ６３０１）。
【００７８】
ステップＳ６３０１で転送用フローであると判定した場合（ステップＳ６３０１のＹｅｓ）、ＯＦＳ１３は、図１４のフローテーブル＃３を参照して、ＯＦＳ１１で行われたマーキングの除去（ＶＬＡＮ  ＩＤの復元）を行った後（ステップＳ６３０２）、当該パケットをトラヒック解析装置４０に転送する（ステップＳ６３０３）。
【００７９】
一方、ステップＳ６３０１で転送用フローでないと判定した場合（ステップＳ６３０１のＮｏ）、ＯＦＳ１３は、図１４のフローテーブル＃２を参照して一般フローの処理を行う（ステップＳ６３０４）。
【００８０】
以上のようにして、採取したパケットの転送経路の終点にあたるＯＦＳ１３の制御が行われる。
【００８１】
以上説明したように、本実施形態によれば、ポートの全量やＶＬＡＮ単位といった大量のパケットキャプチャを行わなくて済む。これにより取り扱うパケット総量が少なくなり、採取点とトラヒック解析装置が離れている場合でも一般トラヒックに与える影響を少なくすることができる。
【００８２】
また、上記したようにオープンフローに適合するスイッチだけで実施可能であり、特別なハードウェアを用意する必要がなく、安価に実現できる効果もある。
【００８３】
さらに、上記したように、仮想的なキャプチャ用ネットワークに構築すればよいため、パケットの採取点の切り替えを容易に行うことが可能になる。例えば、上記した第１の実施形態では、ＯＦＳ１１を採取点としているが、ＯＦＳ１２、１３を採取点とすることも容易である（図１２〜図１４のフローエントリを入れ替えればよい（但し、転送ポート等は修正する））。
【００８４】
また、本実施形態では、フローをみて送信先を判断するＯＦＳを用いているので、採取点と最終送付先のＬＡＮが異なっていても、パケットを届けることが可能である。
【００８５】
さらに、上記した実施形態では、ＰＣ３１、３２間の物理的なネットワークに採取点を設けたが、ＯＦＳを用いて構築された仮想ネットワーク上に採取点を設けることも可能である。
【００８６】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態では、図２に示したネットワーク構成を用いて説明したが、ＯＦＣ、ＯＦＳの数に制約は無い。
【００８７】
また、上記した実施形態では、採取点は、１つであるものとして説明したが、同時に副数点のパケットをキャプチャすることも可能である。またこの場合、必要に応じてキャプチャ用ネットワークを複数用意することもできる（例えば、図２のＯＦＳ１４を経由する仮想ネットワークを構築する）。
【００８８】
また、上記した実施形態では、キャプチャ用ネットワークの識別に、ＶＬＡＮヘッダを利用するものとして説明したが、マッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）にある他のヘッダエントリを使うことでも代替可能である。例えば、ＭＰＬＳヘッダを同様に扱うことも考えられる。さらには、Ｅｔｈｅｒ  ｔｙｐｅフィールドを変更するように独自拡張し、それを識別に使う形態も考えられる。
【００８９】
また、非特許文献２では、上記したヘッダフィールドのほか、マッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）に、入力ポート（Ｉｎｇｒｅｓｓポート）を使用できる。これに加えて、送信先を表すＥｇｒｅｓｓポートを使用することができるようにしてもよい。Ｅｇｒｅｓｓポートも、フローで扱えるように拡張すると、キャプチャ用のフローエントリの指定がより楽に記述できるよう改善できる。
【００９０】
また、上記した実施形態では、なるべく元のパケットのままキャプチャを行うためにＯＦＳ１３でＶＬＡＮ  ＩＤを「１０１」から「１」へ復元するものとして説明したが、復元処理を省略してもよい。
【００９１】
また他の実施形態として、ＶＬＡＮ  ＩＤフィールドに、パケットを採取したネットワークを示す情報を書き込むようＯＦＳを制御してもよい。このようにすれば、採取点を決める時よりも前に最終転送ＯＦＳ（ＯＦＳ１３に相当）のフローテーブルを決定できる。例えば、ＶＬＡＮ  ＩＤ＝「１」のネットワークでキャプチャされたパケットには、ＶＬＡＮ  ＩＤ＝１０１〜１１０を書き込むと決めておくことなどが考えられる。（上記実施形態では、キャプチャ点を決定後、再度フローテーブルに設定を行っている）。
【００９２】
また、上記した実施形態では、パケットの複製に、非特許文献２のオープンフローのグループテーブル機能を用いているが、別の方法で複製できるならばそれで置き換え可能である。例えば、スイッチ側に独自のパケット複製回路等を設けてもよい。
【００９３】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００９４】
１１〜１４  オープンフロースイッチ（ＯＦＳ）
１１Ａ  第１のスイッチ
１２Ａ  第２のスイッチ
２０  オープンフローコントローラ（ＯＦＣ）
２０Ａ  制御装置
３１、３２  パーソナルコンピュータ（ＰＣ）
４０  トラヒック解析装置
１１１  プロトコル処理部
１１３  グループテーブル
１１４  パケット処理部
１１２０〜１１２Ｎ  フローテーブル
【図１】
2013223191.tif 000003
【図２】
2013223191.tif 000004
【図３】
2013223191.tif 000005
【図４】
2013223191.tif 000006
【図５】
2013223191.tif 000007
【図６】
2013223191.tif 000008
【図７】
2013223191.tif 000009
【図８】
2013223191.tif 000010
【図９】
2013223191.tif 000011
【図１０】
2013223191.tif 000012
【図１１】
2013223191.tif 000013
【図１２】
2013223191.tif 000014
【図１３】
2013223191.tif 000015
【図１４】
2013223191.tif 000016
【図１５】
2013223191.tif 000017
【図１６】
2013223191.tif 000018
【図１７】
2013223191.tif 000019
【図１８】
2013223191.tif 000020