(57)【要約】【課題】セキュリティ上の異常の検知または異常の予兆の検知を契機として、異常フローまたは異常予兆フローに的を絞って統計採取する。【解決手段】異常又は異常の予兆を検知してない場合は、第１のフローテーブル（高速フローテーブル１０５５）を選択して、フローの受信パケット又は送信パケットは前記第１のフローテーブル１０５５を検索対象とする。異常又は異常の予兆があると検知した場合は、第１のフローテーブル１０５５から第２のフローテーブル（大容量フローテーブル１０５８）に切り替えて第２のフローテーブル１０５８を選択し、異常又は異常の予兆を検知したフローを第２のフローテーブル１０５８に設定し、異常又は異常の予兆を検知したフローの受信パケット又は送信パケットは第２のフローテーブル１０５８を検索対象とする。【選択図】図４
2018191210.tif 000002
【特許請求の範囲】
【請求項１】
受信パケット又は送信パケットのフローの統計をカウントするパケット中継装置であって、
前記フローのセキュリティの異常又は異常の予兆を判定して検知するセキュリティ判定部と、
第１のフローテーブルと、
第２のフローテーブルと、
前記セキュリティ判定部の判定結果に応じて、前記第１のフローテーブルと前記第２のフローテーブルのいずれかを選択する制御部と、を有し、
前記セキュリティ判定部が、前記異常又は異常の予兆を検知してない場合は、前記制御部は、前記第１のフローテーブルを選択して、前記フローの受信パケット又は送信パケットは前記第１のフローテーブルを検索対象とし、
前記セキュリティ判定部が、前記異常又は異常の予兆があると検知した場合は、
前記制御部は、前記第１のフローテーブルから前記第２のフローテーブルに切り替えて前記第２のフローテーブルを選択し、前記異常又は異常の予兆を検知した前記フローを前記第２のフローテーブルに設定し、前記異常又は異常の予兆を検知した前記フローの受信パケット又は送信パケットは前記第２のフローテーブルを検索対象とすることを特徴とするパケット中継装置。
【請求項２】
前記第１のフローテーブルをＣＡＭ（Ｃｏｎｔｅｎｔｓ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）で構成し、
前記第２のフローテーブルをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成することを特徴とする請求項１に記載のパケット中継装置。
【請求項３】
前記制御部は、
前記セキュリティ判定部が前記異常又は異常の予兆を検知していない未登録の前記フローの受信パケット又は送信パケットが前記第１のフローテーブルに到着した場合、
前記受信パケット又は前記送信パケットの送信元ＩＰアドレスと宛先ＩＰアドレスのいずれかのネットワークアドレスのホスト部に検索マスクをかけて前記ＣＡＭに登録することを特徴とする請求項２に記載のパケット中継装置。
【請求項４】
前記セキュリティ判定部が、前記異常又は異常の予兆を検知した場合、
前記制御部は、
前記異常又は異常の予兆を検知した前記フローが一致する前記ＣＡＭに登録したエントリを削除し、前記ＲＡＭに、前記ＣＡＭから削除したエントリに一致する前記フローの少なくとも一部が一致する複数のエントリを登録することを特徴とする請求項２に記載のパケット中継装置。
【請求項５】
前記制御部は、
前記セキュリティ判定部が前記異常又は異常の予兆を検知していない未登録の前記フローの受信パケット又は送信パケットが前記第１のフローテーブルに到着した場合、
前記受信パケット又は前記送信パケットのＬ４層の送信元ポート番号と宛先ポート番号のいずれかに対し、ポート番号の一部ビットに検索マスクをかけて前記ＣＡＭに登録することを特徴とする請求項２に記載のパケット中継装置。
【請求項６】
前記制御部は、
前記ポート番号の一部ビットとして、前記ポート番号の前記下位ビットに前記検索マスクをかけて前記ＣＡＭに登録することを特徴とする請求項５に記載のパケット中継装置。
【請求項７】
前記検索マスクをかける前記一部ビットの位置を、ポート番号毎に設定する記憶部を更に有することを特徴とする請求項５に記載のパケット中継装置。
【請求項８】
クライアントとサーバを接続し、受信パケット又は送信パケットのフローの統計をカウントするパケット中継装置であって、
前記フローのセキュリティの異常又は異常の予兆を判定して検知するセキュリティ判定部と、
第１のフローテーブルと、
第２のフローテーブルと、
前記セキュリティ判定部の判定結果に応じて、前記第１のフローテーブルと前記第２のフローテーブルのいずれかを選択する制御部と、を有し、
前記セキュリティ判定部が、前記異常又は異常の予兆を検知してない場合は、前記制御部は、前記第１のフローテーブルを選択し、前記異常又は異常の予兆を検知していない未登録の前記フローの受信パケット又は送信パケットが前記第１のフローテーブルに到着した場合、少なくとも前記クライアントのポート番号に検索マスクをかけて前記第１のフローテーブルに登録し、前記異常又は異常の予兆を検知していない前記フローの受信パケット又は送信パケットに対しては前記第１のフローテーブルを検索対象とし、
前記セキュリティ判定部が、前記異常又は異常の予兆があると検知した場合は、
前記制御部は、前記第１のフローテーブルから前記第２のフローテーブルに切り替えて前記第２のフローテーブルを選択し、前記異常または異常の予兆を検知した前記フローの受信パケット又は送信パケットに対しては前記第２のフローテーブルを検索対象とすることを特徴とするパケット中継装置。
【請求項９】
前記第１のフローテーブルをＣＡＭ（Ｃｏｎｔｅｎｔｓ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）で構成し、
前記第２のフローテーブルをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成することを特徴とする請求項８に記載のパケット中継装置。
【請求項１０】
受信パケットまたは送信パケットのフロー統計をカウントするパケット中継装置と、パケット中継装置に接続された外部装置を有するパケット中継システムであって、
前記外部装置は、前記フローのセキュリティの異常又は異常の予兆を判定して検知し、
前記パケット中継装置は、
第１のフローテーブルと、
第２のフローテーブルと、
前記外部装置の判定結果に応じて、前記第１のフローテーブルと前記第２のフローテーブルのいずれかを選択する制御部と、を有し、
前記外部装置が、前記異常又は異常の予兆を検知してない場合は、前記制御部は、前記第１のフローテーブルを選択して、前記フローの受信パケット又は送信パケットは前記第１のフローテーブルを検索対象とし、
前記外部装置が、前記異常又は異常の予兆があると検知した場合は、
前記制御部は、前記第１のフローテーブルから前記第２のフローテーブルに切り替えて前記第２のフローテーブルを選択し、前記異常又は異常の予兆を検知した前記フローを前記第２のフローテーブルに設定し、前記異常又は異常の予兆を検知した前記フローの受信パケット又は送信パケットは前記第２のフローテーブルを検索対象とすることを特徴とするパケット中継システム。
【請求項１１】
前記パケット中継装置に接続された外部分析装置を更に有し、
前記第２のフローテーブルで採取した前記フローの統計の値に基づいて、前記異常又は異常の予兆を検知した前記フローを前記外部分析装置にミラーして、前記外部分析装置が前記ミラーした前記フローを分析することを特徴とする請求項１０に記載のパケット中継システム。
【請求項１２】
前記第１のフローテーブルをＣＡＭ（Ｃｏｎｔｅｎｔｓ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）で構成し、
前記第２のフローテーブルをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成することを特徴とする請求項１０に記載のパケット中継システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット中継装置及びパケット中継システムに関する。
【背景技術】
【０００２】
高セキュリティなネットワークを構築するために、ネットワークシステムでのフロー解析が重要となっている。また、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）時代に向けてＩｏＴ機器による通信フロー数の爆発的な増加が見込まれており、収容エントリ数を莫大に増加させると共に、それに伴う消費電力の増大への対応も要求されている。
【０００３】
特許文献１には、フロー解析のためのフロー統計収集装置を備えたパケット転送装置が開示されている。特許文献１のパケット転送装置は、高速フローテーブルと、大容量フローテーブルと、いずれを検索すべきかを決定する検索処理判定テーブルを備える。パケットを受信した際に検索すべきフローテーブルを決定することにより、高速なフロー検索と多数のフローエントリの統計収集を可能とする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−５１７３６号公報（特許第４３４１４１３号公報）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、セキュリティを目的とするフロー解析向けの統計採取では、セキュリティ上の異常の検知または異常の予兆の検知を契機として、異常フローまたは異常予兆フローに的を絞って統計採取することが重要である。
【０００６】
特許文献１は、検索処理判定テーブルの判定結果に基づいて、正確な統計情報を必要とするフローは容量の少ない高速フローテーブルで検索し、統計精度を必要としないフローは低速の大容量フローテーブルで統計採取の頻度を落として検索するものである。
【０００７】
しかし、特許文献１には、セキュリティ上の異常の検知または異常の予兆の検知を契機として、異常フローまたは異常予兆フローに的を絞って統計採取する技術については言及されていない。
【０００８】
本発明の目的は、セキュリティ上の異常の検知または異常の予兆の検知を契機として、異常フローまたは異常予兆フローに的を絞って統計採取することが可能なパケット中継装置及びパケット中継システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様のパケット中継装置は、受信パケット又は送信パケットのフローの統計をカウントするパケット中継装置であって、前記フローのセキュリティの異常又は異常の予兆を判定して検知するセキュリティ判定部と、第１のフローテーブルと、第２のフローテーブルと、前記セキュリティ判定部の判定結果に応じて、前記第１のフローテーブルと前記第２のフローテーブルのいずれかを選択する制御部と、を有し、前記セキュリティ判定部が、前記異常又は異常の予兆を検知してない場合は、前記制御部は、前記第１のフローテーブルを選択して、前記フローの受信パケット又は送信パケットは前記第１のフローテーブルを検索対象とし、前記セキュリティ判定部が、前記異常又は異常の予兆があると検知した場合は、前記制御部は、前記第１のフローテーブルから前記第２のフローテーブルに切り替えて前記第２のフローテーブルを選択し、前記異常又は異常の予兆を検知した前記フローを前記第２のフローテーブルに設定し、前記異常又は異常の予兆を検知した前記フローの受信パケット又は送信パケットは前記第２のフローテーブルを検索対象とすることを特徴とする。
【００１０】
本発明の一態様のパケット中継装置は、クライアントとサーバを接続し、受信パケット又は送信パケットのフローの統計をカウントするパケット中継装置であって、前記フローのセキュリティの異常又は異常の予兆を判定して検知するセキュリティ判定部と、第１のフローテーブルと、第２のフローテーブルと、前記セキュリティ判定部の判定結果に応じて、前記第１のフローテーブルと前記第２のフローテーブルのいずれかを選択する制御部と、を有し、前記セキュリティ判定部が、前記異常又は異常の予兆を検知してない場合は、前記制御部は、前記第１のフローテーブルを選択し、前記異常又は異常の予兆を検知していない未登録の前記フローの受信パケット又は送信パケットが前記第１のフローテーブルに到着した場合、少なくとも前記クライアントのポート番号に検索マスクをかけて前記第１のフローテーブルに登録し、前記異常又は異常の予兆を検知していない前記フローの受信パケット又は送信パケットに対しては前記第１のフローテーブルを検索対象とし、前記セキュリティ判定部が、前記異常又は異常の予兆があると検知した場合は、前記制御部は、前記第１のフローテーブルから前記第２のフローテーブルに切り替えて前記第２のフローテーブルを選択し、前記異常または異常の予兆を検知した前記フローの受信パケット又は送信パケットに対しては前記第２のフローテーブルを検索対象とすることを特徴とするパケット中継装置。
【００１１】
本発明の一態様のパケット中継システムは、受信パケットまたは送信パケットのフロー統計をカウントするパケット中継装置と、パケット中継装置に接続された外部装置を有するパケット中継システムであって、前記外部装置は、前記フローのセキュリティの異常又は異常の予兆を判定して検知し、前記パケット中継装置は、第１のフローテーブルと、第２のフローテーブルと、前記外部装置の判定結果に応じて、前記第１のフローテーブルと前記第２のフローテーブルのいずれかを選択する制御部と、を有し、前記外部装置が、前記異常又は異常の予兆を検知してない場合は、前記制御部は、前記第１のフローテーブルを選択して、前記フローの受信パケット又は送信パケットは前記第１のフローテーブルを検索対象とし、前記外部装置が、前記異常又は異常の予兆があると検知した場合は、前記制御部は、前記第１のフローテーブルから前記第２のフローテーブルに切り替えて前記第２のフローテーブルを選択し、前記異常又は異常の予兆を検知した前記フローを前記第２のフローテーブルに設定し、前記異常又は異常の予兆を検知した前記フローの受信パケット又は送信パケットは前記第２のフローテーブルを検索対象とすることを特徴とする。
【発明の効果】
【００１２】
本発明の一態様によれば、セキュリティ上の異常の検知または異常の予兆の検知を契機として、異常フローまたは異常予兆フローに的を絞って統計採取することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例のパケット中継装置１００で統計採取するシステム構成図である。
【図２】実施例のパケット中継装置１００と外部装置４００、ＤＰＩ装置５００で連携して統計採取するシステム構成図である。
【図３】実施例のパケット中継装置１００の構成図である。
【図４】受信側統計処理部１０５の構成図である。
【図５】回線毎通信方向テーブル１０６３の構成図である。
【図６】装置内パケット情報８００の構成図である。
【図７】高速フローテーブル１０５５の構成図である。
【図８】大容量フローテーブル１０５８に登録するフロー情報の構成図である。
【図９】高速用詳細検索判定テーブル１０５６の構成図である。
【図１０】大容量用ミラー判定テーブル１０５９の構成図である。
【図１１】高速用カウンタテーブル１０５７の構成図である。
【図１２】大容量用カウンタテーブル１０６０の構成図である。
【図１３】高速フローテーブル１０５５のエントリ登録のフローチャートである。
【図１４】高速フローテーブル１０５５のエントリ削除のフローチャートである。
【図１５】パケット中継装置１００による異常検知を契機とする大容量フローテーブル１０５８のエントリ登録のフローチャートである。
【図１６】外部装置４００による異常検知を契機とする大容量フローテーブル１０５８のエントリ登録のフローチャートである。
【図１７】パケット中継装置１００による大容量カウンタテーブル１０６０の異常検知を契機とする大容量用ミラー判定テーブル１０５９へのミラー設定のフローチャートである。
【図１８】外部装置４００による大容量カウンタテーブル１０６０の異常検知を契機とする大容量用ミラー判定テーブル１０５９へのミラー設定のフローチャートである。
【図１９】タイムアウトを契機とする大容量フローテーブル１０５８のエントリ削除のフローチャートである。
【図２０】ＴＣＰのＦＩＮパケット受信を契機とする大容量フローテーブル１０５８のエントリ削除のフローチャートである。
【図２１】回線毎マスク指示テーブル１０５３の構成図である。
【図２２】ポート番号毎マスク指示テーブル１０５４の構成図である。
【図２３】ＩＰヘッダ情報の構成図である。
【図２４】ＴＣＰヘッダ情報の構成図である。
【発明を実施するための形態】
【００１４】
以下、図面を用いて、実施例について説明する。
【００１５】
図１を参照して、実施例のパケット中継装置１００で統計採取するシステム構成について説明する。  
ＬＡＮ５００とインターネット６００の間の通信フローをパケット中継装置１００が備えるフロー統計機能でフロー統計採取し、採取したフロー統計情報をパケット中継装置１００に接続したアナライザ２００に定期的に送信し、アナライザ２００でフロー統計の解析を行なう。
【００１６】
ここで、フローとは、パケットヘッダ情報の一部が同一であるパケットの集合である。代表的なフローの例は、図２３に示すＩＰヘッダ２３００の送信元ＩＰアドレス２３０８、宛先ＩＰアドレス２３０９、プロトコル２３０６、図２４に示すＴＣＰヘッダ２４００の送信元ポート番号２４０１、宛先ポート番号２４０２）が同一であるパケットの集合である。
【００１７】
実施例では、パケット中継装置１００が備えるセキュリティ機能で異常検知した場合は、異常検知したフローに対してパケット中継装置１００で詳細なフロー統計を採取する。
パケット中継装置１００に対する管理は、管理端末３００で行なう。
【００１８】
図２を参照して、実施例のパケット中継装置１００と外部装置４００、ＤＰＩ装置５００で連携して統計採取するシステムについて説明する。  
ＬＡＮ５００とインターネット６００の間の通信フローをパケット中継装置１００が備えるフロー統計機能でフロー統計採取し、採取したフロー統計情報をパケット中継装置１００に接続したアナライザ２００に定期的に送信し、アナライザ２００でフロー統計の解析を行なう。
【００１９】
パケット中継装置１００からＦＷ（ＦｉｒｅＷａｌｌ）、ＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）、ＤＤｏＳ緩和装置等のセキュリティ機能を備える外部装置４００に通信フローをミラーして、外部装置４００でセキュリティ上の分析を行い、異常を検知した場合は異常検知したパケット情報として、異常検知したパケット全体または異常検知したパケットのヘッダ情報（Ｌ２ヘッダ、Ｌ３ヘッダ、Ｌ４ヘッダ、Ｌ７ヘッダ）を外部装置４００からパケット中継装置１００に送信する。なお、ミラーとは、パケット中継装置１００が受信または送信する通信フローのパケットを複製して、解析のためにパケット中継装置１００に接続された外部装置４００または外部装置４０１またはＤＰＩ装置５００に送信する機能を指す。
【００２０】
実施例では、パケット中継装置１００は、外部装置４００で異常検知したパケット情報に基づいて、異常検知したフローに対してパケット中継装置１００で詳細なフロー統計を採取する。
【００２１】
実施例では、異常検知したフローに対してパケット中継装置１００で採取した詳細なフロー統計情報を機械学習機能を備える外部装置４０１に送信し、外部装置４０１の機械学習機能で異常を検知した場合は異常検知したパケット情報を外部装置４０１からパケット中継装置１００に送信する。
【００２２】
実施例では、パケット中継装置１００は、外部装置４０１で異常検知したパケット情報に基づいて、異常検知したフローをパケット中継装置１００からＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）装置５００にミラーして、ＤＰＩ装置５００で異常検知したフローのＬ７情報やペイロードを含めたより詳細な分析を行なう。パケット中継装置１００に対する管理は、管理端末３００で行なう。
【００２３】
図３を参照して、パケット中継装置１００の構成について説明する。  
パケット中継装置１００の管理は、回線１１９に接続した管理端末３００から行なう。
【００２４】
図６を参照して、パケット中継装置１００内部でパケットの情報を送受信するための装置内パケット情報８００について説明する。  
装置内パケット情報８００は、受信回線情報８０１と、受信論理インタフェース情報８１０と、送信回線情報８０２と、送信論理インタフェース情報８１１と、パケットのＢｙｔｅ長８０３と、パケット中継装置１００内の各種判定結果を格納する判定結果８０４と、パケットのＬ２情報８０５と、パケットのＬ３情報８０６と、パケットのＬ４情報８０７と、パケットのＬ７情報８０８と、ペイロード８０９のフィールドで構成する。パケット中継装置１００の内部で未確定の情報を格納するフィールドには、未確定であることを示す値を格納する。
【００２５】
パケット受信部１０２では、パケット中継装置１００の受信回線１０１からパケットを受信すると、装置内パケット情報８００の受信回線情報８０１にパケットの受信回線番号を格納する。そして、受信論理インタフェース情報８１０に未確定を示す値を格納して、送信回線情報８０２に未確定を示す値を格納して、送信論理インタフェース情報８１０に未確定を示す値を格納して、パケットのＢｙｔｅ長を測定して装置内パケット情報８００のＢｙｔｅ長８０３に格納する。そして、判定結果８０４に未確定を示す値を格納して、パケットのＬ２情報を抽出してＬ２情報８０５に格納して、パケットのＬ３情報を抽出してＬ３情報８０６に格納して、パケットのＬ４情報をＬ４情報８０７に格納して、パケットのＬ７情報をＬ７情報８０８に格納して、パケットのペイロードをペイロード８０９に格納して、受信側パケット処理部１０３に送信する。受信回線１０１は、複数の回線で構成する。
【００２６】
受信側パケット処理部１０３では、パケットの受信論理インタフェースを受信回線またはＴａｇ−ＶＬＡＮのＶＬＡＮ情報を含むＬ２情報８０５、Ｌ３情報８０６、Ｌ４情報８０７から判定する受信論理インタフェース判定、送信回線を判定するルーティング処理、パケットの転送優先度を判定するＱｏＳ判定処理、ミラーの可否を判定するミラー判定、必要に応じてＬ２情報８０５の送信元ＭＡＣアドレス、宛先ＭＡＣアドレスの書き換え判定、Ｌ３情報８０６のＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の書き換え判定等を行なう。そして、受信論理インタフェースを受信論理インタフェース情報８１０に格納して、送信回線を装置内パケット情報８００の送信回線情報８０２に格納して、ＱｏＳ判定結果とミラー判定結果を判定結果８０４に格納して、書き換え後の送信元ＭＡＣアドレス、宛先ＭＡＣアドレスをＬ２情報８０５に格納して、書き換え後のＴＴＬをＬ３情報８０６に格納して、受信側セキュリティ判定部１０４に送信する。
【００２７】
受信側セキュリティ判定部１０４では、フィルタやｕＲＰＦ、ポリサー等のセキュリティ機能でパケットの異常検知を行い、異常と判定したパケットに対しては装置内パケット情報８００の判定結果８０４に異常を示す値を格納して、受信側統計処理部１０５に送信する。
【００２８】
受信側統計処理部１０５では、装置内パケット情報８００の各種フィールド値に基づいてフロー統計を採取して、パケット中継処理手段１０６を経由して、送信側パケット処理部１０７に送信する。
【００２９】
送信側パケット処理部１０７では、パケットの送信論理インタフェースを送信回線またはＴａｇ−ＶＬＡＮのＶＬＡＮ情報を含むＬ２情報８０５、Ｌ３情報８０６、Ｌ４情報８０７から判定する送信論理インタフェース判定、パケットの転送優先度を判定するＱｏＳ判定処理、ミラーの可否を判定するミラー判定を行う。そして、送信論理インタフェースを装置内パケット情報８００の送信論理インタフェース情報８１１に格納して、ＱｏＳ判定結果とミラー判定結果を判定結果８０４に格納して、送信側セキュリティ判定部１０８に送信する。
【００３０】
送信側セキュリティ判定部１０８では、フィルタやｕＲＰＦ、ポリサー等のセキュリティ機能でパケットの異常検知を行い、異常と判定したパケットに対しては装置内パケット情報８００の判定結果８０４に異常を示す値を格納して、送信側統計処理部１０９に送信する。送信側統計処理部１０９では、装置内パケット情報８００の各種フィールド値に基づいてフロー統計を採取して、パケット送信部１１０に送信する。
【００３１】
パケット送信部１１０では、装置内パケット情報８００の判定結果８０４のＱｏＳ判定結果に基づいた転送優先制御と、ミラー判定結果に基づいた装置内パケット情報８００のコピーと、Ｌ２情報８０５、Ｌ３情報８０６、Ｌ４情報８０７、Ｌ７情報８０８、ペイロード８０９を抽出して送信パケットの生成を行い、送信回線１１２から送信パケットを送信する。送信回線１１２は、複数の回線で構成する。
【００３２】
なお、外部装置４００からの受信パケットは受信回線１１３から受信し、外部装置４０１からの受信パケットは受信回線１１４で受信し、外部装置４００への送信パケットは送信回線１１５から送信し、外部装置４０１への送信パケットは送信回線１１６から送信し、ＤＰＩ装置５００への送信パケットは送信回線１１７から送信する。
【００３３】
受信側統計処理部１０５で採取した受信側フロー統計情報と送信側統計処理部１０９で採取した送信側フロー統計情報は、制御ＣＰＵ１１１が定期的に参照して、フロー統計情報を格納した送信パケットを生成して、回線１１８に接続したアナライザ２００に送信する。
【００３４】
図４に、受信側統計処理部１０５の構成図を示す。なお、以降の実施例はパケット中継装置１００の受信側での処理を前提に説明するが、送信側での処理も同様である。
【００３５】
受信側統計処理部１０５で受信側セキュリティ判定部１０４から装置内パケット情報８００を受信すると、装置内パケット情報８００の受信回線情報８０１、Ｌ２情報８０５、Ｌ３情報８０６、Ｌ４情報８０７のうち高速フローテーブル１０５５での検索に必要な情報を抽出して、高速フローテーブル１０５５に入力する。
【００３６】
図７に高速フローテーブル１０５５の構成図を示す。高速フローテーブル１０５５は、例えばＣＡＭ（Ｃｏｎｔｅｎｔｓ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）のような高性能な検索デバイスで構成する。高速フローテーブル１０５５は、フロー統計採取の対象とするフローを設定する高速フローエントリ１０５５１〜１０５５４から構成する。
【００３７】
高速フローエントリ１０５５１〜１０５５４は、受信回線フィールド１０５５０１、ビットマスクによるマスク付きの送信元ＩＰ（ＳＩＰ）フィールド１０５５０２、マスク付きの宛先ＩＰ（ＤＩＰ）マスクフィールド１０５５０３、ＴＯＳフィールド１０５５０４、Ｌ４層のプロトコルＰＲＴフィールド、Ｌ４層のマスク付きの送信元ポート番号（ＳＰＯＲＴ）フィールド１０５５０６、Ｌ４層のマスク付きの宛先ポート番号（ＤＰＯＲＴ）フィールド１０５５０７から構成する。
【００３８】
図７に示す例では、受信回線１に対する高速フローエントリ１０５５１と１０５５２ではＳＩＰ、ＤＩＰ、ＳＰＯＲＴ、ＤＰＯＲＴをマスク付きで設定し、受信回線３に対する高速フローエントリ１０５５３ではマスク設定せず、受信回線４に対する高速フローエントリ１０５５４ではＳＰＯＲＴ、ＤＰＯＲＴをマスク付きで設定する。このように、マスク設定は回線番号毎に行なうことができる。
【００３９】
マスク設定した場合、連続したＩＰアドレスまたは連続したポート番号を持つ複数のフローを集約して設定することが可能となる。特にＩｏＴデバイスの統計採取の場合、同一サブネット内で多数のＩｏＴデバイスのＩＰアドレスが登録されるので、上述のマスク設定による集約効果として効率よくサブネット毎のＩｏＴデバイスを設定できる。
【００４０】
また、同一サブネット内の複数のＩｏＴデバイスが同一の攻撃を受けた場合、攻撃に伴う通信は複数のＩｏＴデバイスで同期した挙動を示すため、上述のマスク設定による集約効果と攻撃通信の振る舞いを効率よく検知できる統計を提供できる。エントリ数を高速フローテーブル１０５５をＣＡＭで構成する場合、検索に必要な情報を抽出して高速フローテーブル１０５５に入力すると、高速フローテーブルは入力された情報に対し一致する高速フローエントリ１０５５１〜１０５５４を検索し、高速フローエントリ１０５５１〜１０５５４のうち最若番のアドレスの高速フローエントリのアドレスを出力する。
【００４１】
なお、入力された情報に対し一致する高速フローエントリ１０５５１〜１０５５４が存在しない場合は、装置内パケット情報８００は受信側統計処理制御部１０５１は高速フローテーブルに対する未登録フローであると判定し、高速フローエントリに対するエントリ登録フローを実施するが、フローの詳細は後述する。高速フローテーブル１０５５から出力されたアドレスを受信側統計処理制御部１０５１が受信すると、受信側統計処理制御部１０５１はアドレスを高速用詳細検索判定テーブルを参照するためのアドレスに変換し、変換後のアドレスでアドレスを高速用詳細検索判定テーブル１０５６を参照する。
【００４２】
図９に、高速用詳細検索判定テーブル１０５６の構成図を示す。高速用詳細検索判定テーブル１０５６は、高速フローテーブル１０５５のアドレスに対応するアドレス毎に詳細検索の必要性の有無を設定する高速用詳細検索判定エントリ１０５６１〜１０５６４から構成し、高速用詳細検索判定エントリ１０５６１〜１０５６４は、詳細検索の必要性の有無を設定する詳細検索判定フィールド１０５６０１で構成する。
【００４３】
高速用詳細検索判定エントリ１０５６１〜１０５６４が詳細検索無しを示す値である場合は、更に大容量フローテーブル１０５８を検索する必要なく、高速フローテーブルで一致したフローエントリがフロー統計を採取すべきフローエントリであると確定する。高速用詳細検索判定エントリ１０５６１〜１０５６４が詳細検索有りを示す値である場合は、更に大容量フローテーブル１０５８を検索する必要があり、大容量フローテーブルで一致したフローエントリがフロー統計を採取すべきフローエントリであると確定する。
【００４４】
図９に示す例では、高速フローエントリ１０５５１に対応する高速用詳細検索判定エントリ１０５６１は詳細検索無し、高速フローエントリ１０５５２に対応する高速用詳細検索判定エントリ１０５６２は詳細検索有り、高速フローエントリ１０５５３に対応する高速用詳細検索判定エントリ１０５６３は詳細検索無し、高速フローエントリ１０５５４に対応する高速用詳細検索判定エントリ１０５６４は詳細検索無しの設定である。
【００４５】
高速用詳細検索判定エントリ１０５６１〜１０５６４が詳細検索無しを示す値であった場合は、受信側統計処理制御部１０５１で高速フローテーブル１０５５から出力されたアドレスを高速用カウンタテーブル１０５７を参照するためのアドレスに変換し、変換後のアドレスで高速用カウンタテーブル１０５７を参照して、統計値の加算処理を行なうことにより統計採取を行なう。
【００４６】
図１１に、高速用カウンタテーブル１０５７の構成図を示す。高速用カウンタテーブル１０５７は、高速フローテーブル１０５５のアドレスに対応するアドレス毎に高速用カウンタエントリ１０５７１〜１０５７４から構成する。高速用カウンタエントリ１０５７１〜１０５７４は、パケット数を統計採取するパケットカウンタフィールド１０５７０１、Ｂｙｔｅ数を統計採取するＢｙｔｅカウンタフィールド１０５７０２、統計採取時刻を採取する前回統計採取時刻フィールド１０５７０３、タイムアウト時間を設定するタイムアウト時間１０５７０４から構成する。高速用カウンタテーブル１０５７を参照すると、パケットカウンタフィールド１０５７０１の値に受信側統計処理制御部１０５１で１を加算して、パケットカウンタフィールド１０５７０１に書き戻す。
【００４７】
また、Ｂｙｔｅカウンタフィールド１０５７０２の値に受信側統計処理制御部１０５１で装置内パケット情報８００のＢｙｔｅ長８０３を加算して、Ｂｙｔｅカウンタフィールド１０５７０２に書き戻す。また、タイマ１０６１が示す現在時刻を、前回統計採取時刻フィールド１０５７０３に書く。タイムアウト時間１０５７０４は、フロー毎の通信が終了したと判定するための時間であり、パケットが到着時のタイマの示す現在時刻と前回統計採取時刻フィールド１０５７０３の差がタイムアウト時間１０５７０４より大である場合には、フロー毎の通信終了と受信側統計処理制御部１０５１で判定する。通信終了と判定した場合のタイムアウト処理フローは、後述する。
【００４８】
高速用カウンタテーブル１０５７による統計採取処理を終了すると、装置内パケット情報８００を受信側統計処理部１０５からパケット中継処理手段１０６へ送信する。
【００４９】
高速用詳細検索判定エントリ１０５６１〜１０５６４が詳細検索有りを示す値であった場合は、装置内パケット情報８００の受信回線情報８０１、Ｌ２情報８０５、Ｌ３情報８０６、Ｌ４情報８０７のうち大容量フローテーブル１０５５での検索に必要な情報を抽出する。そして、抽出した情報に基づいて受信側統計処理制御部１０５１で大容量フローテーブル１０５８を参照するアドレスを算出し、算出後のアドレスで大容量フローテーブル１０５８を参照して、大容量フローテーブル１０５１を用いて統計採取する際のフロー毎に対応するＨａｓｈ値を得る。
【００５０】
大容量フローテーブルを用いたフロー検索としては、Ｈａｓｈ検索の他、フロー条件を大容量フローテーブルに設定したリストを順次一致検索する線形検索など別の検索方式を用いても良く、本発明は大容量フローテーブルの検索方式に依存しない技術である。
【００５１】
図８に、大容量フローテーブル１０５８に登録するフロー情報の構成図を示す。大容量フローテーブル１０５８に登録する大容量フローエントリに対応するフロー情報１０５８１〜１０５８４は、受信回線フィールド１０５８０１、マスク無しのＳＩＰフィールド１０５８０２、マスク無しのＤＩＰフィールド１０５８０３、ＴＯＳフィールド１０５８０４、ＰＲＴフィールド１０５８０５、マスク無しのＳＰＯＲＴフィールド１０５８０６、マスク無しのＤＰＯＲＴフィールド１０５８０７から構成する。
【００５２】
図８に示す例では、受信回線１の高速フローエントリ１０５５１に対応する高速用詳細検索判定エントリ１０５６１は詳細検索無しであるから、高速フローエントリ１０５５１のフロー情報に対応する１０５８１は未登録である。受信回線１の高速フローエントリ１０５５２に対応する高速用詳細検索判定エントリ１０５６２は詳細検索有りであるから、高速フローエントリ１０５５２のフロー情報でＳＩＰ、ＤＩＰ、ＳＰＯＲＴ、ＤＰＯＲＴに関するマスクにより集約されたフローの一例としてＳＩＰ２、ＤＩＰ２、ＴＯＳ２、ＰＲＴがＵＤＰ、ＳＰＯＲＴ２、ＤＰＯＲＴ２のフロー情報１０５８２に対する大容量フローエントリを大容量フローテーブル１０５８に登録する。
【００５３】
ＳＩＰ、ＤＩＰ、ＳＰＯＲＴ、ＤＰＯＲＴに関するマスクを解除した各フロー情報に対する大容量フローエントリも、大容量フローテーブル１０５８に登録する。例えば、高速フローテーブル１０５５でＳＩＰの下位１ビット、ＤＩＰの下位２ビットをマスクした高速フローエントリに対し詳細検索有りと設定する場合、大容量フローテーブル１０５８にはＳＩＰの下位ビットとＤＩＰの下位ビットに関する組み合わせとして、（ＳＩＰの下位ビット、ＤＩＰの下位ビット）＝（０，００）（０，１０）  （０，０１）  （０，１１）の４フローに展開したフロー情報にたいする大容量フローエントリ４エントリを登録する。
【００５４】
大容量フローテーブル１０５８をＲＡＭで構成する場合、ＣＡＭより大容量のエントリを収容可能であるが、ＣＡＭと比較すると検索性能は低くなるため、全フローの検索には向いていない。しかし、ＣＡＭより多数のエントリを収容可能であるため、例えば高速フローテーブル１０５５にマスク付きで集約して登録したフローエントリの一部を、圧縮を解除して展開した多数のフローエントリとして大容量フローテーブル１０５８に登録し、当該の一部のフローだけを大容量フローテーブル１０５８で検索するという用途に適している。
【００５５】
大容量フローテーブル１０５８を参照して、大容量フローテーブル１０５８に基づいて統計採取するフロー毎のＨａｓｈ値を得ると、受信側統計処理部制御部１０５１でＨａｓｈ値から大容量用ミラー判定テーブル１０５９を参照するためのアドレスに変換して、大容量用ミラー判定テーブル１０５９を参照する。
【００５６】
図１０に、大容量用ミラー判定テーブル１０５９の構成図を示す。大容量用ミラー判定テーブル１０５９は、大容量フローテーブル１０５８の大容量フローエントリに対応するフロー情報１０５８１〜１０５８４に対応する大容量用ミラー判定エントリ１０５９１〜１０５９４で構成する。大容量用ミラー判定エントリは、フロー情報１０５８１〜１０５８４の各フローに対してミラーを実施するか否かを設定する大容量用ミラー判定情報１０５９０１で構成する。
【００５７】
図１０に示す例では、フロー情報１０５８１は未登録なので、フロー情報１０５８１に対応する大容量用ミラー判定エントリ１０５９１には「ミラー無し」としてミラーしないことを示す値を設定する。フロー情報１０５８２に対応する大容量用ミラー判定エントリ１０５９２には「ミラー有り」としてミラーすることを示す値を設定している。フロー情報１０５８３は未登録なので、フロー情報１０５８３に対応する大容量用ミラー判定エントリ１０５９３には「ミラー無し」としてミラーしないことを示す値を設定する。
【００５８】
フロー情報１０５８４に対応する大容量用ミラー判定エントリ１０５９４には「ミラー無し」としてミラーしないことを示す値を設定している。大容量用ミラー判定テーブル１０５９を参照して得られた大容量用ミラー判定情報１０５９０１は、受信側統計処理部制御部１０５１で装置内パケット情報８００の判定結果８０４に転写する。大容量用ミラー判定情報１０５９０１を転写した判定結果８０４は、パケット送信部１１０でミラーの実施可否を判定する情報として参照する。
【００５９】
大容量用ミラー判定テーブル１０５９に関する処理を終了すると、受信側統計処理部制御部１０５１で、大容量フローテーブル１０５８に基づいて統計採取するフロー毎のＨａｓｈ値から大容量用カウンタテーブル１０６０を参照するためのアドレスに変換し、変換後のアドレスで大容量用カウンタテーブル１０６０を参照して、統計値の加算処理を行なうことにより統計採取を行なう。
【００６０】
図１２に、大容量用カウンタテーブル１０６０の構成図を示す。大容量用カウンタテーブル１０６０は、大容量フローテーブル１０５８のアドレスに対応するアドレス毎に大容量用カウンタエントリ１０６０１〜１０６０４から構成する。
【００６１】
大容量用カウンタエントリ１０６０１〜１０６０４は、パケット数を統計採取するパケットカウンタフィールド１０６００１、Ｂｙｔｅ数を統計採取するＢｙｔｅカウンタフィールド１０６００２、統計採取時刻を採取する前回統計採取時刻フィールド１０６００３、タイムアウト時間を設定するタイムアウト時間１０６００４から構成する。大容量用カウンタテーブル１０６０を参照すると、パケットカウンタフィールド１０６００１の値に受信側統計処理制御部１０５１で１を加算して、パケットカウンタフィールド１０５７０１に書き戻す。
【００６２】
また、Ｂｙｔｅカウンタフィールド１０６００２の値に受信側統計処理制御部１０５１で装置内パケット情報８００のＢｙｔｅ長８０３を加算して、Ｂｙｔｅカウンタフィールド１０６００２に書き戻す。また、タイマ１０６１が示す現在時刻を、前回統計採取時刻フィールド１０６００３に書く。タイムアウト時間１０６００４は、フロー毎の通信が終了したと判定するための時間でる。パケットが到着時のタイマの示す現在時刻と前回統計採取時刻フィールド１０６００３の差がタイムアウト時間１０６００４より大である場合には、フロー毎の通信終了と受信側統計処理制御部１０５１で判定する。通信終了と判定した場合のタイムアウト処理フローは、後述する。
【００６３】
大容量用カウンタテーブル１０６０による統計採取処理を終了すると、装置内パケット情報８００を受信側統計処理部１０５からパケット中継処理手段１０６へ送信する。
【００６４】
以上では、高速フローテーブル１０５５でマスクを用いたフローエントリの集約により高速フローテーブル１０５５のエントリ数を削減して消費電力を削減すると共に、異常検知した場合は異常検知したフローが属する高速フローテーブル１０５５の集約した高速フローエントリに対応する高速用詳細検索判定エントリ１０５６２の詳細検索判定フィールド１０５６０２の設定を「詳細検索無し」から「詳細検索有り」に変更する。
【００６５】
そして、異常検知したフローが属する高速フローテーブル１０５５の集約フローエントリを大容量フローテーブル１０５８にマスクを解除したフローエントリとして登録し、マスクを解除したフロー毎に詳細に統計採取し、更に大容量フローテーブル１０５８を用いた統計により異常検知した場合は、異常検知したフローに対する大容量フローエントリに対する大容量用ミラー判定エントリ１０５９２の大容量用ミラー判定情報１０５９０１の設定を「ミラー無し」から「ミラー有り」に変更する。異常検知したフローをＤＰＩ装置５００にミラーしてＬ７情報８０８、ペイロード８０９を含めた詳細分析を行なう実施例１について説明した。
【００６６】
次に、実施例１で各テーブルに対するエントリ登録とエントリ削除のフローと、フローにおいて用いるテーブル構成について説明する。
【００６７】
図４のフローグループ学習部１０５２は、制御ＣＰＵ１１１が高速フローテーブル１０５５に対する高速フローエントリを登録する際に、高速フローエントリを集約するためのマスク設定を学習するために用いる。
【００６８】
フローグループ学習部１０５２では、制御ＣＰＵ１１１からエントリ登録の契機として送信された未登録パケットの装置内パケット情報８００から受信回線情報８０１と送信回線情報８０２を抽出して、受信回線情報８０１と送信回線情報８０２の各々に基づいて回線毎マスク指示テーブル１０５３を参照する。
【００６９】
なお、制御ＣＰＵ１１１が送信する未登録パケットの装置内パケット情報８００は、受信側統計処理部制御部１０５１が到着パケットを未登録パケットと判定した際に制御ＣＰＵ１１１に対してエントリ登録要求と共に送信する装置内パケット情報８００である。なお、回線毎マスク指示テーブル１０５３を回線毎ではなく図６に示す論理インタフェース毎の論理インタフェース毎マスク指示テーブルとすることで、回線毎のマスク設定ではなく論理インタフェース毎のマスク設定とすることも可能である。  論理インタフェース毎マスク指示テーブルとする場合には、以下の図２１に関する説明の「回線」を「論理インタフェース」と読み替える。
【００７０】
図２１に、回線毎マスク指示テーブル１０５３の構成図を示す。  
回線毎マスク指示テーブル１０５３は、回線番号をアドレス１０５３００として、アドレス毎に回線毎マスク指示エントリ１０５３１〜１０５３４から構成する。回線毎マスク指示エントリ１０５３１〜１０５３４は、ＳＩＰに対しビット毎のマスクをかけすＳＩＰマスク有無を示すＳＩＰマスクフィールド１０５３０１、ＤＩＰマスク有無を示すＤＩＰマスクフィールド１０５３０２、ＳＰＯＲＴマスク有無を示すＳＰＯＲＴマスクフィールド１０５３０３  、ＤＰＯＲＴマスク有無を示すＤＰＯＲＴマスクフィールド１０５３０４から構成する。回線毎マスク指示テーブル１０５３の設定は、ユーザが回線毎に統計採取したい分解能に基づいて、管理端末３００経由でパケット中継装置１００に設定する。
【００７１】
制御ＣＰＵ１１１が回線毎マスク指示テーブル１０５３を参照した際に、回線毎マスク指示テーブル１０５３がＳＩＰマスク有りを指示していた場合は、制御ＣＰＵ１１１からエントリ登録の契機として送信された未登録パケットの装置内パケット情報８００からＬ３情報８０６のＳＩＰを抽出する。そして、ＳＩＰをフローグループ学習部１０５２から受信側パケット処理部１０３に送信し、受信側パケット処理部１０３は受信したＳＩＰでルーティングテーブル１０３１を参照して、当該のＳＩＰのネットワークアドレスとマスク情報を得る。
【００７２】
制御ＣＰＵ１１１が回線毎マスク指示テーブル１０５３を参照した際に、回線毎マスク指示テーブル１０５３がＤＩＰマスク有りを指示していた場合は、制御ＣＰＵ１１１からエントリ登録の契機として送信された未登録パケットの装置内パケット情報８００からＬ３情報８０６のＤＩＰを抽出する。そして、ＤＩＰをフローグループ学習部１０５２から受信側パケット処理部１０３に送信し、受信側パケット処理部１０３は受信したＤＩＰでルーティングテーブル１０３１を参照して、当該のＤＩＰのネットワークアドレスとマスク情報を得る。
【００７３】
制御ＣＰＵ１１１が回線毎マスク指示テーブル１０５３を参照した際に、回線毎マスク指示テーブル１０５３がＳＰＯＲＴマスク有りを指示していた場合は、制御ＣＰＵ１１１からエントリ登録の契機として送信された未登録パケットの装置内パケット情報８００からＬ３情報８０６のＳＰＯＲＴを抽出する。そして、ＳＰＯＲＴをフローグループ学習部１０５２からポート番号毎マスク指示テーブル１０５４に送信し、当該のＳＰＯＲＴに対するマスク情報を得る。
【００７４】
制御ＣＰＵ１１１が回線毎マスク指示テーブル１０５３を参照した際に、回線毎マスク指示テーブル１０５３がＤＰＯＲＴマスク有りを指示していた場合は、制御ＣＰＵ１１１からエントリ登録の契機として送信された未登録パケットの装置内パケット情報８００からＬ３情報８０６のＤＰＯＲＴを抽出する。そして、ＤＰＯＲＴをフローグループ学習部１０５２からポート番号毎マスク指示テーブル１０５４に送信し、当該のＤＰＯＲＴに対するマスク情報を得る。
【００７５】
図２２に、ポート番号毎マスク指示テーブル１０５４の構成図を示す。ポート番号毎マスク指示テーブル１０５４は、ポート番号をアドレス１０５４００として、アドレス毎にポート毎マスク指示エントリ１０５４１〜１０５４６から構成する。ポート毎マスク指示エントリ１０５４１〜１０５４６は、ポートに対しビット毎のマスクをかけるポートマスク有無を示すポートマスクフィールド１０５４０１と、連続したポート番号空間にポートマスクをかける下位ビットマスクのビット数を示すマスクビット数フィールド１０５４０２から構成する。
【００７６】
ポート毎マスク指示テーブル１０５４の設定は、ユーザがポート毎に統計採取したい分解能に基づいて、管理端末３００経由でパケット中継装置１００に設定する。
【００７７】
図２２に示す例では、ＦＴＰのデータ通信を示すポート番号２０とＦＴＰのコントロール通信を示すポート番号２１を、同じＦＴＰに関する通信を示すポート番号として集約してエントリ登録する場合の設定例を示している。
【００７８】
ＦＴＰのデータ通信を示すポート番号２０とＦＴＰのコントロール通信を示すポート番号２１のポートマスクフィールド１０５４０１を「ポートマスク有り」に設定し、マスクビット数フィールド１０５４０２を１に設定する。これにより、ポート番号２０（２進数の１０１００）とポート番号２１（２進数の１０１０１）の２エントリを１０１０ｘ（ｘ：マスクビット）という１エントリで表現することが可能となり、登録エントリを集約することで登録エントリ数を削減することができる。
【００７９】
また、図２２に示す例では、ポート番号４９１５２（２進数の１１００００００００００００００）からポート番号６５５３５（２進数の１１１１１１１１１１１１１１１１）を、クライアント側に短期間だけ発生するポート番号であるエフェメラルポート（短命ポート）として集約してエントリ登録する場合の設定例を示している。
【００８０】
ポート番号４９１５２からポート番号６５５３５のポートマスクフィールド１０５４０１を「ポートマスク有り」に設定し、マスクビット数フィールド１０５４０２を１４に設定することで、ポート番号４９１５２からポート番号６５５３５の１６３８４エントリを１１ｘｘｘｘｘｘｘｘｘｘｘｘｘｘという１エントリで表現することが可能となる。この結果、登録エントリを集約することで登録エントリ数を削減することができる。
【００８１】
また、通信用途に対し一意に定まるポート番号はサーバ側に設定され、クライアント側のポート番号は通信用途によらないエフェメラルポートとして設定されるため、クライアント側のポート番号によらずサーバ側のポート番号だけでエントリを集約することによりフローエントリ数を削減することも可能である。この場合、受信側統計処理部１０５または送信側統計処理部１０９各々の回線毎通信方向テーブル１０６３で回線毎に通信方向を設定し、クライアント→サーバ方向の通信ではＳＰＯＲＴ（クライアント側のポート番号）を全ビットマスクする。また、サーバ→クライアント方向の通信ではＤＰＯＲＴ（クライアント側のポート番号）を全ビットマスクして登録する。これにより、クライアント側のポート番号によらずサーバ側のポート番号だけによるエントリの集約を実現できる。
【００８２】
図５に、回線毎通信方向テーブル１０６３の構成図を示す。  
回線毎通信方向テーブル１０６３は、回線毎の通信方向を設定する回線毎通信方向エントリ１０６３１〜１０６３３から構成する。回線毎通信方向エントリ１０６３１は、通信方向を設定する通信方向フィールド１０６３０１で構成する。図５に示す例では、回線番号１に対する回線毎通信方向エントリ１０６３１は「クライアント→サーバ」方向の通信であり、回線番号３に対する回線毎通信方向エントリ１０６３２は「サーバ→クライアント」方向の通信である。回線番号４に対する回線毎通信方向エントリ１０６３３は「クライアント→サーバ」方向の通信である。回線毎通信方向テーブル１０６３の設定は、ユーザが回線の受信側、送信側毎にネットワークにおけるサーバとクライアントの配置構成に応じて、管理端末３００経由でパケット中継装置１００に設定する。
【００８３】
なお、回線毎通信方向テーブル１０６３を回線毎ではなく図６に示す論理インタフェース毎の論理インタフェース毎通信方向テーブルとすることで、回線毎のマスク設定ではなく論理インタフェース毎の通信方向を設定することも可能である。論理インタフェース毎通信方向テーブルとする場合には、図５に関する説明の「回線」を「論理インタフェース」と読み替える。
【００８４】
以上に説明したテーブルを用いた、高速フローテーブル１０５５、高速用詳細検索判定テーブル１０５６、高速用カウンタテーブル１０５７、大容量フローテーブル１０５８、大容量用ミラー判定テーブル１０５９、大容量用カウンタテーブル１０６０に対するエントリ登録とエントリ削除のフローを、以下に説明する。
【００８５】
図１３に、高速フローテーブル１０５５のエントリ登録のフローチャートを示す。  
高速フローテーブル１０５５のエントリ登録のフローチャートは、ＳＴＡＲＴ（ステップ９００）を起点とする。受信側統計処理部制御部１０５１に受信パケットが到着すると（ステップ９０１）、高速フローテーブル１０５５を受信パケットで検索する（ステップ９０２）。
【００８６】
高速フローテーブル１０５５で受信パケットに一致するＨＩＴエントリの有無を判定し（ステップ９０３）、ＨＩＴエントリが有る場合は、エントリ登録せずＥＮＤ（ステップ９０４）でフローチャートを終了する。ＨＩＴエントリが無い場合は、受信側統計処理部制御部１０５１から制御ＣＰＵ１１１宛にエントリ登録要求と受信パケットの装置内パケット情報８００を送信（ステップ９０５）する。
【００８７】
制御ＣＰＵ１１１は、エントリ登録要求と受信パケットの装置内パケット情報８００を受信すると、装置内パケット情報８００のＬ３情報８０６のＳＩＰ、ＤＩＰ、ＳＰＯＲＴ、ＤＰＯＲＴに基づいて回線毎マスク指示テーブル１０５３を参照する（ステップ９０６）。
【００８８】
ＳＩＰで回線毎マスク指示テーブル１０５３を参照した結果、回線毎マスク指示テーブル１０５３でＳＩＰのマスクを指示しているか判定（ステップ９０７）し、指示していない場合は後述のステップ９２３に進む。指示している場合は、制御ＣＰＵ１１１がＳＩＰでルーティングテーブル１０４１を検索（ステップ９０８）する。検索結果、ＳＩＰに一致したルーティングエントリを制御ＣＰＵ１１１が読み出すことで、ＳＩＰに対するネットワークアドレスと、ＳＩＰからネットワークアドレスを得るためのマスク情報を取得（ステップ９０９）する。
【００８９】
例えば、ＳＩＰが１９２．１６８．１．４０で、１９２．１６８．１．４０が一致するルーティングテーブル１０４１のルーティングエントリが１９２．１６８．１．０／２４の場合、ネットワークアドレスは１９２．１６８．１．０である。ＳＩＰ１９２．１６８．１．４０の下位８ビット（ホストアドレス部）をマスクしたマスク情報で高速フローエントリを設定することで、ネットワークアドレスは１９２．１６８．１．０に所属するホストのＩＰアドレス１９２．１６８．１．１〜１９２．１６８．１．２５４のフローを集約する高速フローエントリを設定することができる（なお、１９２．１６８．１．０／２４は１９２．１６８．１．０のネットワークアドレスと１９２．１６８．１．２５５のブロードキャストアドレスも含む）。
【００９０】
次に、ステップ９０５で制御ＣＰＵ１１１が受信した装置内パケット情報８００のＬ３情報８０６のＳＩＰをステップ９０９で取得したマスク情報付きのネットワークアドレス（上述の例における１９２．１６８．１．０／２４のＣＩＤＲ表記のＩＰアドレスに相当する情報）に変更（ステップ９１０）した装置内パケット情報８００を登録エントリデータとして、ステップ９２３に進む。
【００９１】
ステップ９０８でＳＩＰに一致するルーティングエントリが存在しない場合は、ステップ９１０で装置内パケット情報８００のＬ３情報８０６のＳＩＰの変更をせず、そのまま装置内パケット情報８００  を登録エントリデータとして、ステップ９２３に進む。
【００９２】
同様に、ステップ９０７の処理と並行してＤＩＰで回線毎マスク指示テーブル１０５３を参照した結果、回線毎マスク指示テーブル１０５３でＤＩＰのマスクを指示しているか判定（ステップ９１１）し、指示していない場合は後述のステップ９２３に進む。
【００９３】
指示している場合は、制御ＣＰＵ１１１がＤＩＰでルーティングテーブル１０４１を検索（ステップ９１２）する。検索結果、ＤＩＰに一致したルーティングエントリを制御ＣＰＵ１１１が読み出すことで、ＤＩＰに対するネットワークアドレスと、ＤＩＰからネットワークアドレスを得るためのマスク情報を取得（ステップ９１３）する。
【００９４】
次に、ステップ９０５で制御ＣＰＵ１１１が受信した装置内パケット情報８００のＬ３情報８０６のＤＩＰをステップ９０９で取得したマスク情報付きのネットワークアドレスに変更（ステップ９１４）した装置内パケット情報８００を登録エントリデータとして、ステップ９２３に進む。
【００９５】
ステップ９０８でＤＩＰに一致するルーティングエントリが存在しない場合は、ステップ９１４で装置内パケット情報８００のＬ３情報８０６のＤＩＰの変更をせず、そのまま装置内パケット情報８００を登録エントリデータとして、ステップ９２３に進む。
【００９６】
同様に、ステップ９０７の処理と並行してＳＰＯＲＴで回線毎マスク指示テーブル１０５３を参照した結果、回線毎マスク指示テーブル１０５３でＳＰＯＲＴのマスクを指示しているか判定（ステップ９１５）し、指示していない場合は後述のステップ９２３に進む。
【００９７】
指示している場合は、制御ＣＰＵ１１１がＳＰＯＲＴでポート番号毎マスク指示テーブル１０５４を参照（ステップ９１６）する。参照結果、ＳＰＯＲＴのポートマスクフィールド１０５４０１とマスクビット数フィールド１０５４０２を制御ＣＰＵ１１１が読み出すことで、ＳＰＯＲＴに対するマスク情報を取得（ステップ９１７）する。
【００９８】
次に、ステップ９０５で制御ＣＰＵ１１１が受信した装置内パケット情報８００のＬ３情報８０６のＳＰＯＲＴをステップ９０９で取得したマスク情報付きのＳＰＯＲＴに変更（ステップ９１８）した装置内パケット情報８００  を登録エントリデータとして、ステップ９２３に進む。
【００９９】
同様に、ステップ９０７の処理と並行してＤＰＯＲＴで回線毎マスク指示テーブル１０５３を参照した結果、回線毎マスク指示テーブル１０５３でＤＰＯＲＴのマスクを指示しているか判定（ステップ９１９）し、指示していない場合は後述のステップ９２３に進む。
【０１００】
指示している場合は、制御ＣＰＵ１１１がＤＰＯＲＴでポート番号毎マスク指示テーブル１０５４を参照（ステップ９２０）する。参照結果、ＤＰＯＲＴのポートマスクフィールド１０５４０１とマスクビット数フィールド１０５４０２を制御ＣＰＵ１１１が読み出すことで、ＤＰＯＲＴに対するマスク情報を取得（ステップ９２１）する。
【０１０１】
次に、ステップ９０５で制御ＣＰＵ１１１が受信した装置内パケット情報８００のＬ３情報８０６のＤＰＯＲＴをステップ９０９で取得したマスク情報付きのＤＰＯＲＴに変更（ステップ９２２）した装置内パケット情報８００  を登録エントリデータとして、ステップ９２３に進む。
【０１０２】
ステップ９２３では、制御ＣＰＵ１１１が高速フローテーブル１０５５の空きエントリ検索（ステップ９２３）し、空きエントリの有無を判定（ステップ９２４）する。空きエントリが無い場合は、高速フローテーブル１０５５に空きエントリ無しで登録不可となりエントリ登録せずＥＮＤ（ステップ９２５）でフローチャートを終了する。
【０１０３】
空きエントリがある場合は、制御ＣＰＵ１１１が高速フローテーブル１０５５の空きエントリｉに  受信パケットの装置内パケット情報８００をステップ９１０、ステップ９１４、ステップ９１８、ステップ９２２で書き換えた登録エントリデータでエントリ登録（ステップ９２６）する。
【０１０４】
次に、制御ＣＰＵ１１１が高速用詳細検索判定テーブル１０５６に「詳細検索無し」の詳細検索判定エントリｉを登録（ステップ９２７）する。次に、制御ＣＰＵ１１１が高速用カウンタテーブル１０５７の  高速用カウンタエントリｉのパケットカウンタ１０５７０１、Ｂｙｔｅカウンタ１０５７０２、前回統計採取時刻１０５７０３をクリアタイムアウト時間１０５７０４を設定（ステップ９２８）して、エントリ登録終了となりＥＮＤ（ステップ９２９）でフローチャートを終了する。
【０１０５】
図１４に、高速フローテーブル１０５５のエントリ削除のフローチャートを示す。  
高速フローテーブル１０５５のエントリ削除のフローチャートは、ＳＴＡＲＴ（ステップ１０００）を起点とする。高速フローテーブル１０５５のエントリ削除では、高速フローエントリ１０５５１は複数のフローを集約したエントリであるため、特定のフローが通信終了したことをＴＣＰのＦＩＮフラグ等で明示的に判定できた場合であってもエントリ削除できない。従って、高速フローエントリ１０５５１に対する高速フローカウンタエントリ１０５７１に対する統計採取が一定のタイムアウト期間発生しないことを基準としてタイムアウトと判定し、高速フローエントリ１０５５１をエントリ削除する方式とする。
【０１０６】
まず、高速用カウンタエントリのエントリ番号を示す変数ｉを０とする。また高速用カウンタエントリの全エントリ数をｎとする（ステップ１００１）。タイマ１０６１が高速用カウンタエントリｉのタイムアウトチェック時刻であるか否かを判定（ステップ１００２）し、タイムアウトチェック時刻で無い場合は、ｉに１を加算（ステップ１００３）して、ｉがｎ＋１に等しいか判定（ステップ１００４）する。
【０１０７】
ｉがｎ＋１に等しくない場合は、ステップ１００２に進み、ｉがｎ＋１に等しい場合は高速用カウンタエントリの全エントリに対するタイムアウトの判定を終了したことになるので、また高速用カウンタエントリの先頭からタイムアウト判定を始めるため、ステップ１００１に進む。
【０１０８】
タイムアウトチェック時刻である場合は、高速用カウンタテーブル１０５７の  
高速用カウンタエントリｉを読み出し（ステップ１００５）して、「タイマ１０６１−高速用カウンタエントリｉの前回統計採取時刻１０５７０３＞タイムアウト時間１０５７０４」であるか否かを判定（ステップ１００６）するタイムアウト判定の処理をする。ステップ１００６がＮＯである場合は、高速用カウンタエントリｉはタイムアウトでないと判定したので、次の高速用カウンタエントリの判定に進むため、ステップ１００３に進む。
【０１０９】
ステップ１００６がＹＥＳである場合は、高速用カウンタエントリｉはタイムアウトであると判定したので、受信側統計処理部制御部１０５１は制御ＣＰＵ１１１に高速フローテーブル１０５５の高速フローエントリｉの削除要求を送信（ステップ１００７）する。すると、制御ＣＰＵ１１１は高速用カウンタテーブル１０５７の高速用カウンタエントリｉを読み出し（ステップ１００９）する。
【０１１０】
読み出した高速用カウンタエントリｉのパケットカウンタ１０５７０１とＢｙｔｅカウンタ１０５７０２を、受信側統計処理部制御部１０５１から制御ＣＰＵ１１１に送信（ステップ１０１０）する。制御ＣＰＵ１１１は、受信したパケットカウンタ１０５７０１とＢｙｔｅカウンタ１０５７０２をアナライザ２００へ送信（ステップ１０１１）する。次に、制御ＣＰＵ１１１が高速用カウンタテーブル１０５７の  高速用カウンタエントリｉを削除（ステップ１０１３）してエントリ削除終了となり、ＥＮＤ（ステップ１０１４）でフローチャートを終了する。
【０１１１】
図１５に、パケット中継装置１００による異常検知を契機とする大容量フローテーブル１０５８のエントリ登録のフローチャートを示す。
【０１１２】
パケット中継装置１００による異常検知を契機とする大容量テーブル１０５８エントリ登録フローチャートは、ＳＴＡＲＴ（ステップ１１００）を起点とする。受信側統計処理部制御部１０５１に受信パケット到着（ステップ１１０１）すると、受信パケットが受信側判定部１０４で異常検知済であるか判定（ステップ１１０２）する。判定結果、異常検知が未である場合は、大容量フローテーブル１０５８に対するエントリ登録をせず、ＥＮＤ（ステップ１１０３）でフローチャートを終了する。
【０１１３】
判定結果、異常検知済の場合は、高速フローテーブル１０５５を受信パケットで検索（ステップ１１０４）し、高速フローテーブル１０５５で受信パケットに一致するＨＩＴエントリの有無を判定（ステップ１１０５）する。これは、実施例では異常検知したフローを大容量フローテーブル１０５８に登録し、まず、高速フローテーブル１０５５を検索して詳細検索有りと判定した場合に大容量フローテーブル１０５８を検索して異常検知したフローに関するフロー統計を採取する方式としているためである。
【０１１４】
異常検知したフローに対する高速フローエントリが高速フローテーブル１０５５に未登録である場合には、詳細検索の有無を判定できないので、大容量フローテーブル１０５８の検索をすることができなくなってしまう。そのため、異常検知したフローに対する高速フローエントリが高速フローテーブル１０５５に登録済か確認し、未登録である場合には登録する処理が必要である。
【０１１５】
ステップ１１０５で受信パケットに一致するＨＩＴエントリが有りと判定した場合は、ｉに高速フローエントリ１０５５のＨＩＴエントリ番号を代入（ステップ１１０６）して、ステップ１１１１に進む。
【０１１６】
ステップ１１０５で受信パケットに一致するＨＩＴエントリが有りと判定した場合は、図１３のフローチャートにおけるステップ９０５〜ステップ９２８の処理を実施（ステップ１１０７）する。ステップ９０５〜ステップ９２８の処理において、ステップ９２５の処理を実施したか否かを判定（ステップ１１０８）し、ステップ９２５の処理を実施した場合は、高速フローテーブル１０５５に空きエントリ無しで登録不可となり、ＥＮＤ（ステップ１１０９）でフローチャートを終了する。
【０１１７】
ステップ９２５の処理を実施しなかった場合は、ｉに高速テーブル１０５５の登録エントリ番号を代入（ステップ１１１０）し、ステップ１１１１へ進む。  
ステップ１１１１では、制御ＣＰＵ１１１１が大容量フローテーブル１０５８の空きエントリを検索（ステップ１１１１）する。  
ステップ１１１１の検索結果、空きエントリの有無を判定（ステップ１１１２）し、空きエントリ無しの場合は大容量フローテーブル１０５８に空きエントリ無しで登録不可となり、ＥＮＤ（ステップ１１１３）でフローチャートを終了する。
【０１１８】
空きエントリ有りの場合は、制御ＣＰＵ１１１が大容量フローテーブル１０５８の空きエントリｊに受信パケットの装置内パケット情報８００のうち大容量フローテーブル１０５８のエントリ登録に必要な情報を受信パケットヘッダとしてエントリ登録（ステップ１１１４）する。
【０１１９】
次に、制御ＣＰＵ１１１がステップ１１１４で大容量フローテーブル１０５８に登録した大容量フローエントリｊに対応する大容量用ミラー判定テーブル１０５９に、「ミラー無し」のミラー判定エントリｊを登録（ステップ１１１５）する。
【０１２０】
次に、制御ＣＰＵ１１１がステップ１１１４で大容量フローテーブル１０５８に登録した大容量フローエントリｊに対応する大容量用カウンタテーブル１０６０の大容量用カウンタエントリｊのパケットカウンタ１０６００１、Ｂｙｔｅカウンタ１０６００２、前回統計採取時刻１０６００３をクリアし、タイムアウト時間１０６００４を設定（ステップ１１１６）する。
【０１２１】
次に、制御ＣＰＵ１１１がステップ１１０６またはステップ１１１０で決定した高速フローテーブル１０５５の高速フローエントリｉに対応する高速用詳細検索判定テーブル１０５６の詳細検索判定エントリｉに「詳細検索有り」と設定（ステップ１１１７）して、エントリ登録終了となり、ＥＮＤ（ステップ１１１８）でフローチャートを終了する。
【０１２２】
図１６に、外部装置４００による異常検知を契機とする大容量フローテーブル１０５８のエントリ登録のフローチャートを示す。
【０１２３】
外部装置４００による異常検知を契機とする大容量フローテーブル１０５８のエントリ登録のフローチャートは、ＳＴＡＲＴ（ステップ１２００）を起点とする。外部装置４００で異常検知（ステップ１２０１）すると、外部装置４００がパケット中継装置１００に異常検知パケットのパケット情報を送信（ステップ１２０２）する。
【０１２４】
パケット中継装置１００が異常検知パケットのパケット情報を受信すると、パケット情報を制御ＣＰＵ１１１に送信し、制御ＣＰＵ１１１で異常検知パケットのパケット情報を受信（ステップ１２０３）する。制御ＣＰＵ１１１で異常検知パケットのパケット情報を受信すると、制御ＣＰＵ１１１が高速フローテーブル１０５５を受信した異常検知パケットのパケット情報で検索（ステップ１２０４）する。
【０１２５】
検索結果、高速フローテーブル１０５５に異常検知パケットに一致するＨＩＴエントリの有無を判定（ステップ１２０５）する。ステップ１２０５で異常検知パケットに一致するＨＩＴエントリが有りと判定した場合は、ｉに高速フローエントリ１０５５のＨＩＴエントリ番号を代入（ステップ１２０６）して、ステップ１１１１に進む。
【０１２６】
ステップ１２０５で受信パケットに一致するＨＩＴエントリが有りと判定した場合は、図１３のフローチャートにおけるステップ９０５〜ステップ９２８の処理を実施（ステップ１２０７）する。ステップ９０５〜ステップ９２８の処理において、ステップ９２５の処理を実施したか否かを判定（ステップ１２０８）し、ステップ９２５の処理を実施した場合は、高速フローテーブル１０５５に空きエントリ無しで登録不可となり、ＥＮＤ（ステップ１２０９）でフローチャートを終了する。
【０１２７】
ステップ９２５の処理を実施しなかった場合は、ｉに高速テーブル１０５５の登録エントリ番号を代入（ステップ１２１０）し、ステップ１２１１へ進む。ステップ１２１１では、制御ＣＰＵ１１１１が大容量フローテーブル１０５８の空きエントリを検索（ステップ１２１１）する。
【０１２８】
ステップ１２１１の検索結果、空きエントリの有無を判定（ステップ１２１２）し、空きエントリ無しの場合は大容量フローテーブル１０５８に空きエントリ無しで登録不可となり、ＥＮＤ（ステップ１２１３）でフローチャートを終了する。
【０１２９】
空きエントリ有りの場合は、制御ＣＰＵ１１１が大容量フローテーブル１０５８の空きエントリｊに異常検知パケットの装置内パケット情報８００のうち大容量フローテーブル１０５８のエントリ登録に必要な情報を異常検知パケットヘッダとしてエントリ登録（ステップ１２１４）する。
【０１３０】
次に、制御ＣＰＵ１１１がステップ１１１４で大容量フローテーブル１０５８に登録した大容量フローエントリｊに対応する大容量用ミラー判定テーブル１０５９に、「ミラー無し」のミラー判定エントリｊを登録（ステップ１２１５）する。
【０１３１】
次に、制御ＣＰＵ１１１がステップ１１１４で大容量フローテーブル１０５８に登録した大容量フローエントリｊに対応する大容量用カウンタテーブル１０６０の大容量用カウンタエントリｊのパケットカウンタ１０６００１、Ｂｙｔｅカウンタ１０６００２、前回統計採取時刻１０６００３をクリアし、タイムアウト時間１０６００４を設定（ステップ１１１６）する。
【０１３２】
次に、制御ＣＰＵ１１１がステップ１１０６またはステップ１１１０で決定した高速フローテーブル１０５５の高速フローエントリｉに対応する高速用詳細検索判定テーブル１０５６の詳細検索判定エントリｉに「詳細検索有り」と設定（ステップ１２１７）して、エントリ登録終了となり、ＥＮＤ（ステップ１２１８）でフローチャートを終了する。
【０１３３】
図１７に、パケット中継装置１００による大容量カウンタテーブル１０６０の異常検知を契機とする大容量用ミラー判定テーブル１０５９へのミラー設定のフローチャートを示す。
【０１３４】
パケット中継装置１００による大容量カウンタテーブル１０６０の異常検知を契機とする大容量用ミラー判定テーブル１０５９へのミラー設定のフローチャートは、ＳＴＡＲＴ（ステップ１３００）を起点とする。制御ＣＰＵ１１１が大容量用カウンタテーブル１０６０の大容量用カウンタエントリｉのパケットカウンタ１０６００１、Ｂｙｔｅカウンタ１０６００２で異常検知（ステップ１３０１）すると、制御ＣＰＵ１１１が大容量用ミラー判定テーブル１０５９のミラー判定エントリｉに「ミラー有り」と設定（ステップ１３０２）して、ミラー設定終了となり、ＥＮＤ（ステップ１３０３）でフローチャートを終了する。
【０１３５】
図１８に、外部装置４００による大容量カウンタテーブル１０６０の異常検知を契機とする大容量用ミラー判定テーブル１０５９へのミラー設定のフローチャートを示す。
【０１３６】
外部装置４００による大容量カウンタテーブル１０６０の異常検知を契機とする大容量用ミラー判定テーブル１０５９へのミラー設定のフローチャートは、ＳＴＡＲＴ（ステップ１４００）を起点とする。外部装置４００が大容量用カウンタテーブル１０６０の  大容量用カウンタエントリｉのパケットカウンタ１０６００１、Ｂｙｔｅカウンタ１０６００２で異常検知（ステップ１４０１）すると、外部装置４００がパケット中継装置１００に異常検知の情報と異常検知した大容量用カウンタエントリｉの情報を送信（ステップ１４０２）する。
【０１３７】
パケット中継装置１００は、異常検知の情報と異常検知した大容量用カウンタエントリｉの情報を受信すると、異常検知の情報と異常検知した大容量用カウンタエントリｉの情報を制御ＣＰＵ１１１に送信する。制御ＣＰＵ１１１が異常検の情報と異常検知した大容量用カウンタエントリｉの情報を受信（ステップ１４０３）すると、制御ＣＰＵ１１１が大容量用ミラー判定テーブル１０５９のミラー判定エントリｉに「ミラー有り」と設定（ステップ１４０４）し、ミラー設定終了となり、ＥＮＤ（ステップ１４０５）でフローチャートを終了する。
【０１３８】
なお、ステップ１４０１で外部装置４００が機械学習機能を備える場合、大容量用カウンタエントリｉのパケットカウンタ１０６００１、Ｂｙｔｅカウンタ１０６００２による異常検知は、大容量用カウンタエントリｉのパケットカウンタ１０６００１、Ｂｙｔｅカウンタ１０６００２の情報を制御ＣＰＵ１１１が定期的に読み出して機械学習機能を備える外部装置４００に送信する。そして、外部装置４００が備える機械学習を用いて大容量用カウンタエントリｉのパケットカウンタ１０６００１、Ｂｙｔｅカウンタ１０６００２を分析して異常検知する方法としても構わない。
【０１３９】
図１９に、タイムアウトを契機とする大容量フローテーブル１０５８のエントリ削除のフローチャートを示す。  
タイムアウトを契機とする大容量フローテーブル１０５８のエントリ削除のフローチャートは、ＳＴＡＲＴ（ステップ１５００）を起点とする。まず、大容量用カウンタエントリのエントリ番号を示す変数ｉを０とする。また大容量用カウンタエントリの全エントリ数をｎとする（ステップ１５０１）。タイマ１０６１が大容量用カウンタエントリｉのタイムアウトチェック時刻であるか否かを判定（ステップ１５０２）し、タイムアウトチェック時刻で無い場合は、ｉに１を加算（ステップ１５０３）して、ｉがｎ＋１に等しいか判定（ステップ１５０４）する。
【０１４０】
ｉがｎ＋１に等しくない場合は、ステップ１５０２に進み、ｉがｎ＋１に等しい場合は大容量用カウンタエントリの全エントリに対するタイムアウトの判定を終了したことになるので、また大容量用カウンタエントリの先頭からタイムアウト判定を始めるため、ステップ１５０１に進む。
【０１４１】
タイムアウトチェック時刻である場合は、大容量用カウンタテーブル１０６０の大容量用カウンタエントリｉを読み出し（ステップ１５０５）して、「タイマ１０６１−大容量用カウンタエントリｉの前回統計採取時刻１０６００３＞タイムアウト時間１０６００４」であるか否かを判定（ステップ１５０６）するタイムアウト判定の処理をする。
【０１４２】
ステップ１５０６がＮＯである場合は、大容量用カウンタエントリｉはタイムアウトでないと判定したので、次の大容量用カウンタエントリの判定に進むため、ステップ１５０３に進む。
【０１４３】
ステップ１５０６がＹＥＳである場合は、大容量用カウンタエントリｉはタイムアウトであると判定したので、受信側統計処理部制御部１０５１は制御ＣＰＵ１１１に大容量フローテーブル１０５８の大容量フローエントリｉの削除要求を送信（ステップ１５０７）する。すると、制御ＣＰＵ１１１は大容量用カウンタテーブル１０６０の大容量用カウンタエントリｉを読み出し（ステップ１５０９）する。
【０１４４】
読み出した大容量用カウンタエントリｉのパケットカウンタ１０６００１とＢｙｔｅカウンタ１０６００２を、受信側統計処理部制御部１０５１から制御ＣＰＵ１１１に送信（ステップ１５１０）する。制御ＣＰＵ１１１は、受信したパケットカウンタ１０６００１とＢｙｔｅカウンタ１０６００２をアナライザ２００へ送信（ステップ１５１１）する。次に、制御ＣＰＵ１１１が大容量用カウンタテーブル１０６０の  大容量用カウンタエントリｉを削除（ステップ１５１３）してエントリ削除終了となり、ＥＮＤ（ステップ１５１４）でフローチャートを終了する。
【０１４５】
図２０に、ＴＣＰのＦＩＮパケット受信を契機とする大容量フローテーブル１０５８のエントリ削除のフローチャートを示す。  
ＴＣＰのＦＩＮパケット受信を契機とする大容量フローテーブル１０５８のエントリ削除のフローチャートは、ＳＴＡＲＴ（ステップ１６００）を起点とする。受信側統計処理部制御部１０５１に受信パケットが到着（ステップ１６０１）すると、受信パケットはＴＣＰかつＦＩＮフラグ＝１であるか否かを判定（ステップ１６０２）する。受信パケットはＴＣＰかつＦＩＮフラグ＝１でない場合は、通信終了ではないため削除不要であり、ＥＮＤ（ステップ１６０３）でフローチャートを終了する。
【０１４６】
受信パケットはＴＣＰかつＦＩＮフラグ＝１である場合は、受信パケットの統計採取処理（ステップ１６０４）を実施して、受信側統計処理部制御部１０５１から制御ＣＰＵ１１１宛にエントリ削除要求と受信パケットの装置内パケット情報８００を送信（ステップ１６０５）する。制御ＣＰＵ１１１が受信パケットの装置内パケット情報８００のうち大容量フローテーブル１０５８の検索に必要な情報で大容量フローテーブル１０５８の削除エントリを検索（ステップ１６０６）すると、削除エントリｉの有無を判定（ステップ１６０７）する。削除エントリｉが無い場合は、削除せず終了となり、ＥＮＤ（ステップ１６０８）でフローチャートを終了する。
【０１４７】
削除エントリｉが有る場合は、制御ＣＰＵ１１１が大容量フローテーブル１０５７の大容量フローテーブルエントリｉを削除（ステップ１６０９）して、制御ＣＰＵ１１１が大容量用カウンタテーブル１０６０の大容量用カウンタエントリｉを読み出す（ステップ１６１０）。読み出した大容量用カウンタエントリｉのパケットカウンタ１０６００１とＢｙｔｅカウンタ１０６００２を制御ＣＰＵ１１１に送信する（ステップ１６１１）。
【０１４８】
制御ＣＰＵ１１１が受信したパケットカウンタ１０６００１とＢｙｔｅカウンタ１０６００２をアナライザ２００へ送信（ステップ１６１２）して、制御ＣＰＵ１１１が大容量用ミラー判定テーブル１０５９の大容量用ミラー判定エントリｉを削除する（ステップ１６１３）。制御ＣＰＵ１１１が大容量用カウンタテーブル１０６０の大容量用カウンタエントリｉを削除（ステップ１６１４）して、エントリ削除終了となり、ＥＮＤ（ステップ１６１５）でフローチャートを終了する。
【０１４９】
上述のように、実施例では、以下の態様を有する。この結果、高速フローテーブルに登録する際のフローエントリ数を圧縮してフローエントリ数の増大を抑えると共に、消費電力の増大を抑えることができる。つまり、セキュリティ上の異常の検知または異常の予兆の検知を契機として、異常フローまたは異常予兆フローに的を絞って統計採取できる。また、高速フローテーブルに登録する際のフローエントリ数を圧縮してフローエントリ数の増大を抑えると共に、消費電力の増大を抑えることができる。
【０１５０】
［態様１］
受信パケットまたは送信パケットのフロー統計をカウントするパケット中継装置であって、第一のフローテーブルと第二のフローテーブルを備え、異常または異常の予兆を検知していないフローの受信パケットまたは送信パケットは第一のフローテーブルを検索対象とし、異常または異常の予兆を検知すると、異常または異常の予兆を検知したフローを第二のフローテーブルに設定し、異常または異常の予兆を検知したフローの受信パケットまたは送信パケットは第二のフローテーブルを検索対象とする。  
態様１のパケット中継装置によれば、異常または異常の予兆を検知したフローを、異常または異常の予兆を検知したフローの統計採取に適したフローテーブルで検索することができる。
【０１５１】
［態様２］
態様１のパケット中継装置であって、パケット中継装置と異なる外部装置で異常または異常の予兆を検知すると、異常または異常の予兆を検知したフローの情報を外部装置から受信し、異常または異常の予兆を検知したフローの情報を第二のフローテーブルに設定する。  
態様２のパケット中継装置によれば、外部装置で異常または異常の予兆を検知したフローを、異常または異常の予兆を検知したフローの統計採取に適したフローテーブルで検索することができる。
【０１５２】
［態様３］
態様１のパケット中継装置であって、第二のフローテーブルで採取したフロー統計の値に基づいて異常または異常の予兆を検知したフローをミラーする。  
態様３のパケット中継装置によれば、自装置のフロー統計で異常または異常の予兆を検知したフローをＤＰＩ装置にミラーして、自装置では実施できないセキュリティ分析を外部装置で実施することができる。また、ＤＰＩ装置は分析性能が低いため分析負荷を低減する必要があるが、自装置のフロー統計で異常または異常の予兆を検知したフローだけをＤＰＩ装置にミラーすることで、ＤＰＩ装置に対する分析負荷を低減することができる。
【０１５３】
［態様４］
態様１のパケット中継装置であって、第一のフローテーブルをＣＡＭで構成し、第二のフローテーブルをＲＡＭで構成する。  
態様４のパケット中継装置によれば、第一のフローテーブルを高速検索可能なＣＡＭで構成し、第二のフローテーブルを大容量のＲＡＭで構成することができる。
【０１５４】
［態様５］
態様４のパケット中継装置であって、異常または異常の予兆を検知していない第一のフローテーブルに未登録のフローの受信パケットまたは送信パケットが到着すると、少なくとも送信元ＩＰアドレスまたは宛先ＩＰアドレスのいずれかのネットワークアドレスのホスト部に検索マスクをかけてＣＡＭに登録する。  
態様５のパケット中継装置によれば、送信元ＩＰアドレスまたは宛先ＩＰアドレスをネットワークアドレス毎に束ねてＣＡＭに登録することができるので、ＣＡＭに登録するエントリ数を圧縮することができると共にＣＡＭの消費電力を低減できる。
【０１５５】
［態様６］
態様５のパケット中継装置であって、異常または異常の予兆を検知すると、異常または異常の予兆を検知したフローが一致するＣＡＭに登録したエントリを削除し、第二のフローテーブルのＲＡＭに、ＣＡＭから削除したエントリに一致するフローの全てが一致する複数のエントリを登録する。  
態様６のパケット中継装置によらなければ、異常または異常の予兆を検知後も、異常または異常の予兆を検知したフローに対しまずＣＡＭを検索するとネットワークアドレス毎に束ねたエントリに一致してしまい、異常または異常の予兆を検知したフローのホスト毎の統計採取ができない。これに対し、態様６のパケット中継装置によれば、異常または異常の予兆を検知後も、異常または異常の予兆を検知したフローに対しまずＣＡＭを検索して、ＣＡＭに一致エントリがない場合はＲＡＭを検索して異常または異常の予兆を検知したフローのホスト毎の統計採取ができる。
【０１５６】
［態様７］
態様４のパケット中継装置であって、異常または異常の予兆を検知していない第一のフローテーブルに未登録のフローの受信パケットまたは送信パケットが到着すると、少なくともＬ４層の送信元ポート番号または宛先ポート番号のいずれかに対し、ポート番号の一部ビットに検索マスクをかけてＣＡＭに登録する。  
態様７のパケット中継装置によれば、複数の送信元ポート番号または複数の宛先ポート番号を束ねてＣＡＭに登録することができるので、ＣＡＭに登録するフローエントリ数を圧縮することができると共にＣＡＭの消費電力を低減できる。
【０１５７】
［態様８］
態様７のパケット中継装置であって、異常または異常の予兆を検知していない第一のフローテーブルに未登録のフローの受信パケットまたは送信パケットが到着すると、少なくとも送信元ポート番号または宛先ポート番号のいずれかに対し、ポート番号の下位ビットに検索マスクをかけてＣＡＭに登録する。  
態様８のパケット中継装置によれば、送信元ポート番号または宛先ポート番号の連続したポート番号を束ねてＣＡＭに登録することができる。この結果、ＣＡＭに登録するフローエントリ数を圧縮することができると共にＣＡＭの消費電力を低減できる。
【０１５８】
［態様９］
態様７のパケット中継装置であって、検索マスクをかける一部ビット位置または下位ビット位置を、ポート番号毎に設定する記憶手段を備える。  
態様９のパケット中継装置によれば、送信元ポート番号または宛先ポート番号のうち、いずれかの連続したポート番号を束ねてＣＡＭに登録するか指定することができる。
【０１５９】
［態様１０］
態様７のパケット中継装置であって、異常または異常の予兆を検知すると、異常または異常の予兆を検知したフローが一致するＣＡＭに登録したエントリを削除し、第二のフローテーブルのＲＡＭに、ＣＡＭから削除したエントリに一致するフローの全てが一致する複数のエントリを登録する。  
態様１０のパケット中継装置によらなければ、異常または異常の予兆を検知後も、異常または異常の予兆を検知したフローに対しまずＣＡＭを検索すると複数の送信元ポート番号または複数の宛先ポート番号を束ねたエントリに一致してしまい、異常または異常の予兆を検知したフロー毎の統計採取ができない。これに対して、態様１０のパケット中継装置によれば、異常または異常の予兆を検知後も、異常または異常の予兆を検知したフローに対しまずＣＡＭを検索して、ＣＡＭに一致エントリがない場合はＲＡＭを検索して異常または異常の予兆を検知したフローの送信元ポートまたは宛先ポート毎の統計採取ができる。
【０１６０】
［態様１１］
受信パケットまたは送信パケットのフロー統計をカウントしてクライアントとサーバを接続するパケット中継装置であって、第一のフローテーブルと第二のフローテーブルを備え、異常または異常の予兆を検知していない第一のフローテーブルに未登録のフローの受信パケットまたは送信パケットが到着すると、少なくともクライアント側のポート番号に検索マスクをかけてＣＡＭに登録し、異常または異常の予兆を検知していないフローの受信パケットまたは送信パケットに対しては第一のフローテーブルを検索対象とし、異常または異常の予兆を検知したフローの受信パケットまたは送信パケットに対しては第二のフローテーブルを検索対象として制御部が切り換える。  
態様１１のパケット中継装置によれば、クライアント側ポートでは短期間に多数発生する短命ポートを区別せずにフローエントリを登録するので、高速フローエントリ数の増大を防止することができる。
【符号の説明】
【０１６１】
１００  パケット中継装置
１０１  受信回線
１０２  パケット受信部
１０３  受信側パケット処理部
１０３１  ルーティングテーブル
１０４  受信側セキュリティ判定部
１０５  受信側統計処理部
１０５１  受信側統計処理制御部
１０５２  フローグループ学習部
１０５３  回線毎マスク指示テーブル
１０５４  ポート番号毎マスク指示テーブル
１０５５  高速フローテーブル
１０５６  高速用詳細検索判定テーブル
１０５７  高速用カウンタテーブル
１０５８  大容量フローテーブル
１０５９  大容量用ミラー判定テーブル
１０６０  大容量用カウンタテーブル
１０６１  タイマ
１０６２  タイムアウト判定部
１０６３  回線毎通信方向テーブル
１０６  パケット中継処理手段
１０７  送信側パケット処理部
１０８  送信側セキュリティ判定部
１０９  送信側統計処理部
１１０  パケット送信部
１１１  制御ＣＰＵ
３００  管理端末
４００  外部装置
４０１  外部装置
５００  ＤＰＩ装置
【図１】
2018191210.tif 000003
【図２】
2018191210.tif 000004
【図３】
2018191210.tif 000005
【図４】
2018191210.tif 000006
【図５】
2018191210.tif 000007
【図６】
2018191210.tif 000008
【図７】
2018191210.tif 000009
【図８】
2018191210.tif 000010
【図９】
2018191210.tif 000011
【図１０】
2018191210.tif 000012
【図１１】
2018191210.tif 000013
【図１２】
2018191210.tif 000014
【図１３】
2018191210.tif 000015
【図１４】
2018191210.tif 000016
【図１５】
2018191210.tif 000017
【図１６】
2018191210.tif 000018
【図１７】
2018191210.tif 000019
【図１８】
2018191210.tif 000020
【図１９】
2018191210.tif 000021
【図２０】
2018191210.tif 000022
【図２１】
2018191210.tif 000023
【図２２】
2018191210.tif 000024
【図２３】
2018191210.tif 000025
【図２４】
2018191210.tif 000026