IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌ・ティ・ティ・アドバンステクノロジ株式会社の特許一覧

<>
  • 特開-データ取得装置及びデータ取得方法 図1
  • 特開-データ取得装置及びデータ取得方法 図2
  • 特開-データ取得装置及びデータ取得方法 図3
  • 特開-データ取得装置及びデータ取得方法 図4
  • 特開-データ取得装置及びデータ取得方法 図5
  • 特開-データ取得装置及びデータ取得方法 図6
  • 特開-データ取得装置及びデータ取得方法 図7
  • 特開-データ取得装置及びデータ取得方法 図8
  • 特開-データ取得装置及びデータ取得方法 図9
  • 特開-データ取得装置及びデータ取得方法 図10
  • 特開-データ取得装置及びデータ取得方法 図11
  • 特開-データ取得装置及びデータ取得方法 図12
  • 特開-データ取得装置及びデータ取得方法 図13
  • 特開-データ取得装置及びデータ取得方法 図14
  • 特開-データ取得装置及びデータ取得方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023106807
(43)【公開日】2023-08-02
(54)【発明の名称】データ取得装置及びデータ取得方法
(51)【国際特許分類】
   H04L 69/22 20220101AFI20230726BHJP
【FI】
H04L69/22
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022007754
(22)【出願日】2022-01-21
(11)【特許番号】
(45)【特許公報発行日】2023-02-10
(71)【出願人】
【識別番号】000102739
【氏名又は名称】エヌ・ティ・ティ・アドバンステクノロジ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】右近 祐太
(72)【発明者】
【氏名】片山 勝
(72)【発明者】
【氏名】宮崎 昭彦
(57)【要約】
【課題】任意のプロトコルにおいて、より容易に必要となるデータを取得すること。
【解決手段】通信データの先頭から有効データまでのオフセットと、有効データのデータ長と、を含む解析パラメータに基づいて、前記通信データから有効データを取得し、取得された有効データを出力する有効データ取得部、を備えるデータ取得装置である。
【選択図】図1
【特許請求の範囲】
【請求項1】
通信データの先頭から有効データまでのオフセットと、有効データのデータ長と、を含む解析パラメータに基づいて、前記通信データから有効データを取得し、取得された有効データを出力する有効データ取得部、
を備えるデータ取得装置。
【請求項2】
前記有効データ取得部は、前記通信データを複数に分割し、分割されたそれぞれの領域を含む複数のデータのうち一つを取得することで前記有効データを取得する、請求項1に記載のデータ取得装置。
【請求項3】
前記有効データ取得部は、前記通信データを複数に分割し、分割されたそれぞれの領域を含む複数のデータのうち一つを取得する処理を実行し、
取得された一つのデータをさらに複数に分割し、分割されたそれぞれの領域を含む複数のデータのうち一つを取得するという処理を1又は複数回実行することで前記有効データを取得する、請求項1に記載のデータ取得装置。
【請求項4】
前記通信データに対して有効データ以外のビットをマスクするデータマスク部をさらに備え、
前記有効データ取得部は、前記データマスク部によってマスクされた通信データから前記有効データを取得する、請求項1から3のいずれか一項に記載のデータ取得装置。
【請求項5】
前記有効データ取得部は、一つの通信データから複数の有効データを取得し、
複数の有効データに対して論理和を計算することで有効ヘッダを作成する論理和計算部をさらに備える、請求項1から4のいずれか一項に記載のデータ取得装置。
【請求項6】
前記通信データを保持して複数サイクルにわたって前記データマスク部に出力するデータ保持部を更に備える、請求項4に記載のデータ取得装置。
【請求項7】
データ取得装置が、通信データの先頭から有効データまでのオフセットと、有効データのデータ長と、を含む解析パラメータに基づいて、前記通信データから有効データを取得するステップと、
データ取得装置が、取得された有効データを出力するステップと、
を有するデータ取得方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ取得装置及びデータ取得方法の技術に関する。
【背景技術】
【0002】
近年、SDN(Software-Defined Network)やNFV(Network functions Virtualization)などの仮想化技術が進展している。これらの仮想化技術の進展に伴い、VXLAN(Virtual eXtensible Local Area Network)やMPLS(Multi-Protocol Label Switching)やSRv6(Segment Routing over IPv6)などの新しいプロトコルを用いたネットワークが登場している。ネットワークの多様化により、ネットワーク装置には様々なプロトコルに対するパケット処理が求められている。
【0003】
これまで、パケット処理を高速に行うためにASIC(Application Specific Integrated Circuit)が用いられてきた。しかし、ASICの開発は膨大な時間とコストがかかるため、現在の多様なネットワークに向けて開発することは現実的でない。ネットワークの目まぐるしい変化に対応するため、CPU(Central Processing Unit)やFPGA(Field-Programmable Gate Array)を用いたパケット処理が注目されている。これらのデバイスの開発に関しては、パケット処理プログラムを開発すればよく、ASICに比べて開発に要する時間やコストが小さい。
【0004】
パケット処理プログラムを効率的に開発するためのプログラミング言語も提案されている(例えば非特許文献1、非特許文献2を参照。)。これらのプログラミング言語を用いることで、設計者はネットワークや用途に応じたパケットヘッダ解析機能やパケット処理機能を簡単に設計できる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】P4.org, “P4 Language Tutorial”,2018,<https://opennetworking.org/wp-content/uploads/2020/12/P4_D2_East_2018_01_basics.pdf>
【非特許文献2】Xilinx,“SDNet Packet Processor User Guide”,October 2017,<https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_3/UG1012-sdnet-packet-processor.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般的なネットワーク装置を新しいプロトコルに対応させるには、パケットヘッダ解析機能を追加開発しなければならない。しかし、非特許文献1や非特許文献2に記載の技術を用いた開発であっても、仕様検討からプログラムの作成までに少なくとも数日の時間を要する。また、一般的な追加開発では、デグレーションが発生していないかシステム全体を再検証する必要がある。そのため、検証工程にも多くの時間を要する。このようにパケットヘッダ解析機能の開発には、時間とコストを要してしまうという課題があった。このような問題は、パケットに限定された問題ではなく、ヘッダ情報を有する通信データ全般に共通する問題である。
【0007】
上記事情に鑑み、本発明は、任意のプロトコルにおいて、より容易に必要となるデータを取得することができる技術の提供を目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様は、通信データの先頭から有効データまでのオフセットと、有効データのデータ長と、を含む解析パラメータに基づいて、前記通信データから有効データを取得し、取得された有効データを出力する有効データ取得部、を備えるデータ取得装置である。
【0009】
本発明の一態様は、上記のデータ取得装置であって、前記有効データ取得部は、前記通信データを複数に分割し、分割されたそれぞれの領域を含む複数のデータのうち一つを取得することで前記有効データを取得する。
【0010】
本発明の一態様は、上記のデータ取得装置であって、前記有効データ取得部は、前記通信データを複数に分割し、分割されたそれぞれの領域を含む複数のデータのうち一つを取得する処理を実行し、取得された一つのデータをさらに複数に分割し、分割されたそれぞれの領域を含む複数のデータのうち一つを取得するという処理を1又は複数回実行することで前記有効データを取得する。
【0011】
本発明の一態様は、上記のデータ取得装置であって、前記通信データに対して有効データ以外のビットをマスクするデータマスク部をさらに備え、前記有効データ取得部は、前記データマスク部によってマスクされた通信データから前記有効データを取得する。
【0012】
本発明の一態様は、上記のデータ取得装置であって、前記有効データ取得部は、一つの通信データから複数の有効データを取得し、複数の有効データに対して論理和を計算することで有効ヘッダを作成する論理和計算部をさらに備える。
【0013】
本発明の一態様は、上記のデータ取得装置であって、前記通信データを保持して複数サイクルにわたって前記データマスク部に出力するデータ保持部を更に備える。
【0014】
本発明の一態様は、データ取得装置が、通信データの先頭から有効データまでのオフセットと、有効データのデータ長と、を含む解析パラメータに基づいて、前記通信データから有効データを取得するステップと、データ取得装置が、取得された有効データを出力するステップと、を有するデータ取得方法である。
【発明の効果】
【0015】
本発明により、任意のプロトコルにおいて、より容易に必要となるデータを取得することが可能となる。
【図面の簡単な説明】
【0016】
図1】本発明の実施形態に係るヘッダ解析技術の概略を示す図である。
図2】本発明の第1実施形態に係るデータ取得装置の具体例(ヘッダ解析部20)の構成例を示すブロック図である。
図3】本発明の実施形態に係る有効データ取得部22aの構成例を示すブロック図である。
図4】本発明の実施形態に係る有効データ取得部22aの構成例を示すブロック図である。
図5図4の有効データ取得部22aを用いてN=2048ビットのパケット10から有効データ14cを取得する具体的な手順である。
図6】本発明の第2実施形態に係るヘッダ解析部20を示すブロック図である。
図7】本発明の第3実施形態に係るヘッダ解析部20を示すブロック図である。
図8】本発明の第4実施形態に係るヘッダ解析部20を示すブロック図である。
図9】本発明の第3実施形態に係るヘッダ解析部20の処理の具体例を示すフローチャートである。
図10】本発明の実施形態(第1~第4に共通)に係るヘッダ解析部20の解析パターン登録処理に用いられる解析パターンファイルの一例を示す図である。
図11】本発明の実施形態(第1~第4に共通)に係るヘッダ解析部20に対する解析パラメータ登録処理の具体例を示すフローチャートである。
図12】本発明の実施形態に係るヘッダ解析部20のユースケースであるトラフィック監視システム120の構成を示すブロック図である。
図13】トラフィック監視システム120に用いられるルールファイルの一例を示す図である。
図14】トラフィック監視システム120に用いられる変換プログラム140の概略を示す図である。
図15】トラフィック監視システム120の運用手順の一例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について図面を参照して説明する。図1は本発明の実施形態に係るヘッダ解析技術の概略を示す図である。本発明のヘッダ解析技術は、任意のPDU(Protocol Data Unit)に対して適用することができる。本発明の実施形態では、任意のPDUにおいて必要となるデータを含む一部分のデータ(以下「有効データ」という。)が、1又は複数取得される。有効データが複数取得される場合には、各有効データがそれぞれ出力されてもよいし、複数の有効データを結合することで得られる有効ヘッダが出力されてもよい。有効データが1つである場合には、1つの有効データが出力される。以下の説明では、PDUの具体例としてパケットを用いて説明する。ただし、本発明を適用可能なPDUはパケットに限定される必要なく、例えばフレームであってもよい。
【0018】
適用されるプロトコルに応じて、1又は複数の解析パラメータが定義される。解析パラメータは、オフセット及び有効データ長の2つの値を含む。オフセットは、データの先頭から有効データの先頭までのデータ長を示す。有効データ長は、オフセットによって示された有効データの先頭から有効データの末尾までのデータの長さ(有効データのデータ長)を示す。
【0019】
図1の例では、3つの解析パラメータが定義されている。1つ目の解析パラメータは、有効データ1を示す情報であり、オフセット1及び有効データ長1を含むように定義されている。オフセット1は、パケットの先頭から有効データ1までのデータ長を示し、有効データ長1は有効データ1のデータ長を示す。2つ目の解析パラメータ及び3つ目の解析パラメータも、それぞれ有効データ2及び有効データ3のオフセット及び有効データ長を示す。これらの解析パラメータに基づいて、各有効データが取得され、取得された有効データを結合することによって有効ヘッダが生成される。
【0020】
解析パラメータは、例えばユーザによって定義されてもよいし、他の者によって定義されてもよい。有効データを取得する装置において解析パラメータを設定することによって、任意のプロトコルに応じて有効データを取得するための設定を容易に迅速に行うことが可能となる。
【0021】
有効データは、例えば、MACアドレスやIPアドレス等のアドレスに関する情報、ポート番号、プロトコル番号、VLAN ID、VNI、MPLSラベル、SRv6のセグメントリスト、TCPフラグ、シーケンス番号、ペイロード等の情報である。ただし、有効データはこれらの具体例に限定されるものではない。これらの有効データを含む有効ヘッダは、様々な通信処理(例えばパケット処理)に利用できる。例えば、有効データは、パケット識別、ネットワーク識別、サイバー攻撃検知、ジッタ計測、レイテンシ計測、コネクション数計測、パケットロス検出などに用いられてもよい。
【0022】
図2は本発明の第1実施形態に係るデータ取得装置の具体例(ヘッダ解析部20)の構成例を示すブロック図である。ヘッダ解析部20はデータマスク部21a~21cと、有効データ取得部22a~22cと、論理和計算部23と、ビット拡張部24と、セレクタ制御部25と、を備える。なお、ヘッダ解析部20が一度に取得できる有効データの数はデータマスク部21及び有効データ取得部22の数に依存する。
【0023】
ヘッダ解析部20はNビットのパケット10(解析対象の通信データ)の入力を受ける。ヘッダ解析部20は、入力されたパケット10から有効データ14a~14cを取得してMビットの有効ヘッダ11を作成する(N>M、N、Mは整数)。この機能により不要な情報を除去することで、後段に転送するデータ量の削減や、後段の処理負荷を下げる効果が期待できる。
【0024】
ヘッダ解析部20の各ブロックの役割を説明する。データマスク部21(21a~21c)は入力されたパケット10に対してビットマスクを行い、不要なビットをマスクする。例えば、データマスク部21は、不要なビットを“0”に置き換えることでマスクを行っても良い。データマスク部21は、マスクデータ(マスクで使用されるデータ。例えば上述した“0”を1又は複数並べたもの)をビット拡張部24より受け取ってもよい。このように構成されることで、メモリリソースを必要とせずマスクを行うことが可能となる。
【0025】
ビット拡張部24は、参照データを拡張してマスクデータを作成する。例えば、参照データを4倍に拡張するビット拡張部24では、参照データ「0b1001」が入力されると、マスクデータ「0b1111_0000_0000_1111」が作成される。ビット拡張部24の目的は、ヘッダ解析部20のメモリリソースの削減である。一般的なPDU(例えばパケット)のサイズは数十バイト~十キロバイトであることから、マスクデータのサイズは最大で十キロバイトになることが多い。さらに、データマスク部21a~21cの数だけマスクデータが必要である。FPGAなどのハードウェアはメモリリソースが限られるため、マスクデータをそのまま保持するとヘッダ解析部20が多くのメモリリソースを消費し、他機能の実装に影響する可能性がある。そこで、ビット拡張部24でデータサイズの小さい参照データを保持し、参照データを拡張することでマスクデータを作成する。このように構成されることで、ヘッダ解析部20のメモリリソースを減らすことが可能となる。この場合、ビット拡張部24は、記憶装置(例えば半導体記憶装置)を備え、ユーザ等によって設定される参照データを記憶しておく。なお、ビット拡張部24において参照データのデータ拡張の倍率が高いほど、マスクデータの精度は低下する。低精度のマスクデータでは、有効データ14a~14c以外のビットもマスク対象外になる可能性がある。よって、マスクデータの精度とメモリリソースのトレードオフを考慮してビット拡張部24の倍率を決める必要がある。
【0026】
有効データ取得部22a~22cは、マスクしたパケットから有効データ14a~14cを取得する。なお、取得するデータには有効データ以外の領域(例えばマスクされた領域)が含まれる。これは有効データ取得部22a~22c間で有効データ14a~14cの位置が重ならないように調整するためである。有効データ14a~14cの取得方法については後述する。
【0027】
論理和計算部23は、結合部の一具体例である。論理和計算部23は、有効データ取得部22a~22cで取得したデータに対して論理演算を行い、有効ヘッダ11を作成する。前述したように、論理和計算部23に入力される各データは有効データ14a~14cの位置が重ならないように調整されている。そのため、論理和計算部23は単純にビットごとの論理和を計算すればよい。
【0028】
セレクタ制御部25は、解析パラメータに基づいて有効データ取得部22a~22cのセレクタを制御する。解析パラメータに応じてセレクタ設定を変更することで、取得する有効データの位置を変えることができる。
【0029】
図3は本発明の実施形態に係る有効データ取得部22aの構成を示すブロック図である。有効データ取得部22aは、複数のデータ切出し部30と複数のセレクタ31とを備える。例えば、有効データ取得部22aは、データ切出し部30a~30fとセレクタ31a~31dを備える。有効データ取得部22aは、複数のステージに分かれている。例えば、有効データ取得部22aは11のステージに分かれている。1つのステージは、2つのデータ切出し部30と1つのセレクタ31とを有する。
【0030】
データ切出し部30a~30fの役割は、入力されたデータの上半分もしくは下半分を取得することである。ただし、単純に二分割すると有効データ27a~27cが分割の境界線上にあった場合に欠落してしまう。そのため、データ切出し部30a~30fはMビット(取得データサイズ)余分に取得する。
【0031】
ステージ1を例にデータ切出し部30a~30fの動作とセレクタ31a~31dの動作とを説明する。図3に示すように、有効データ取得部22aに入力するパケットサイズをN=2048ビットとする。小さいパケットに対しては上位ビットを0で埋めればよい。このときデータ切出し部30aは、入力されたパケットの上位1024ビットと取得データサイズ(Mビット)のデータを取得する。一方、データ切出し部30bは入力されたパケットから下位1024+Mビットのデータを取得する。これらのデータのうち片方がセレクタ31aで選択され、次のステージに送られる。セレクタ31aがどちらのデータを選択するかは、セレクタ制御部25の制御によって制御される。
【0032】
図3の有効データ取得部22aは、11段のステージで処理することでN=2048ビットのパケットに対して1ビット単位で切り出し位置を制御できる。しかし、これほど高精度な制御は不要な場合もある。ステージ段数が多いと処理遅延が大きくなるし、多くの計算リソースが必要になる。そのため、ステージ段数は適当な値に設計されるべきである。例えば、図4の有効データ取得部22aのようにステージ段数を減らすことができる。図4の有効データ取得部22aでは、64ビット単位で切り出し位置を制御できる。このように構成することで、制御の精度が低下し、必要とされない部分のデータがより多く含まれてしまう可能性が高くなるが、処理遅延と計算リソースとを削減できる。例えば図3図4とを比べると、図4の場合は6ステージ分の処理遅延と計算リソースとを削減できる。
【0033】
図5は、図4の有効データ取得部22aを用いてN=2048ビットのパケット10から有効データ14cを取得する具体的な手順である。有効データ14cまでのオフセットを1600ビット、データ長を128ビットとする。また、取得するデータサイズを384ビット、マージン15を64ビットとする。
【0034】
このとき取得するデータに321~448ビット目の有効データ14cと449~512ビット目のマージン15を残さなければならない。各ステージでこれらのデータを残すには、ステージ1からステージ4では下位のデータを、ステージ5では上位のデータを選択して残せばよい。ステージ5の出力において、下位64ビットは余分であり削除してよい。
【0035】
パケットサイズ、オフセット、データ長、データサイズ、マージン15は定数のため、各ステージにおける切り出し方は一意に決まる。よって、セレクタ31a~31dの設定は事前に決定できる。
【0036】
図6は本発明の第2実施形態に係るヘッダ解析部20を示すブロック図である。第2実施形態に係るヘッダ解析部20は、有効データ14a~14cを出力する構成である。この構成は図2の構成から論理和計算部23を除いたものである。
【0037】
有効データ取得部22a~22cは設定により様々なデータ長の有効データ14a~14cを取得するため、このヘッダ解析部20の出力は有効データ14a~14c以外にマスクされたデータを含むことがある。また、この構成では有効データ取得部22a~22cの間で有効データ14a~14cの位置調整が不要である。そのため、有効データ14a~14cは出力の上位もしくは下位に寄せてしまってよい。
【0038】
この構成では、有効データ14a~14cごとに出力先を変えることができる。そのため、ヘッダ解析部20の後段に位置するモジュールは、必要な有効データのみ受け取ることができる。
【0039】
図7は本発明の第3実施形態に係るヘッダ解析部20を示すブロック図である。第3実施形態に係るヘッダ解析部20は、時分割処理により有効ヘッダ11を出力する構成である。この構成は図2の構成にデータ保持部70と記憶部71とを加えたものである。
【0040】
この構成では、データ保持部70は、受信されたパケット10を保持する。データ保持部70は、複数サイクルの間継続して各サイクルで後段に保持しているパケット10を繰り返し転送する。ビット拡張部24とセレクタ制御部25は、サイクル毎に適切なマスクデータとセレクタ設定をデータマスク部21a~21c、有効データ取得部22a~22cに送信する。これにより、有効データ取得部22a~22cはサイクルごとに異なる有効データを取得できる。有効データ取得部22a~22cが出力したデータに対し、論理和計算部23は毎サイクルで論理演算を行い、その結果を記憶部71に保持する。そして、論理和計算部23は、記憶部71に保持されていた各計算結果に対して最終サイクルで再度論理和演算を行い、有効ヘッダ11を作成して出力する。以上の動作により、データマスク部21a~21cと有効データ取得部22a~22cとの数によらずヘッダ解析部20は複数の有効データを取得することができる。
【0041】
図8は本発明の第4実施形態に係るヘッダ解析部20を示すブロック図である。第4実施形態に係るヘッダ解析部20は、時分割処理により有効データを出力する構成である。この構成は図2の構成にデータ保持部70を加え、論理和計算部23を除いたものである。
【0042】
基本的な動作は、図7の構成と同じである。ただし、第4実施形態では、論理和演算を行わず、サイクル毎に有効データが出力される。図の例では、入力したパケット10に対し、3つの有効データ取得部22a~22cで有効データを取得し、サイクル1において3種類の有効データを出力している。一方、サイクル2では、有効データ取得部22bと22cは取得すべき有効データがない。そのため、有効データ取得部22bと22cは、マスクされたデータ(例えばオール“0”のデータ)を出力する。
【0043】
図9は本発明の第3実施形態に係るヘッダ解析部20の処理の具体例を示すフローチャートである。ヘッダ解析部20は、受信したパケット10を保持し(ステップS101)、マスク値を読み込んでからパケット10に対してマスク処理を行う(ステップS102、ステップS103)。その後、ヘッダ解析部20は、セレクタ設定を行いマスクしたパケットに対して有効データ取得処理を行う(ステップS104、ステップS105)。ヘッダ解析部20は、取得したデータに対して論理和の計算を行い(ステップS106)、その結果を記憶部に格納する(ステップS107)。ヘッダ解析部20は、有効データ取得処理の回数をカウントし、規定回数に到達したかを判定する(ステップS108)。到達していなければ、ヘッダ解析部20は、ステップS102からステップS107までの処理を繰り返す。一方、到達していれば、ヘッダ解析部20は、記憶部71に格納したすべての計算結果に対して論理和を計算することで有効ヘッダを作成し、出力する(ステップS109)。
【0044】
なお、第1実施形態及び第2実施形態のヘッダ解析部20のように、時分割処理を行わない場合、ステップS108の規定処理回数は1であり、ステップS101及びステップS109の処理は不要である。また、第2実施形態及び第4実施形態のヘッダ解析部20のように、有効ヘッダではなく有効データを出力する場合、ステップS106とステップS107とステップS109との処理が不要である。
【0045】
図10は、本発明の実施形態(第1~第4に共通)に係るヘッダ解析部20の解析パターン登録処理に用いられる解析パターンファイルの一例を示す図である。このファイルは、パターン番号100(pattern)、解析パラメータ101a~101c(field1~3)、フィールド名102を有する。パターン番号100は、ヘッダ解析部20に対応しており、各行に登録した解析パラメータ101a~101cがその番号に対応するヘッダ解析部20に登録される。
【0046】
解析パラメータ101a~101cは、それぞれデータマスク部21a~21cと有効データ取得部22a~22cの設定値である。ここでは、有効データ14a~14cの最上位ビット(Ah、Bh、Ch、Dh、Eh)と最下位ビット(Al、Bl、Cl、Dl、El)でオフセット12a~12cとデータ長13a~13cとを指定している。例えば、解析パターン100(pattern1)の解析パラメータ101a(field1)について、オフセットはパケット長をNビットとするとN-Ahであり、データ長はAh-Al+1である。
【0047】
フィールド名102は、解析パラメータ101a~101cと有効データ14a~14cとの名称を対応させるために用いられる。ここではカンマで区切られているが、表し方はこれに限られない。解析パラメータ101a~101cだけでは有効データの種類が不明であるが、ユーザや別アプリケーションは、フィールド名102を参照することでどのようなヘッダ解析が行われるかを知ることができる。なお、解析パラメータの具体的な内容は図10に示したものに限定される必要は無い。
【0048】
図11は、本発明の実施形態(第1~第4に共通)に係るヘッダ解析部20に対する解析パラメータ登録処理の具体例を示すフローチャートである。この処理は、例えば後述する設定制御部126によって実行されてもよいし、他の装置に設定制御部126の機能が実装されてもよい。この場合、設定制御部126は、情報処理装置を用いて構成される。
【0049】
設定制御部126は、解析パターンファイルを読み込み(ステップS201)、パターン1の第一の解析パラメータを取得する(ステップS202)。設定制御部126は、続いて解析パラメータから前述した方法で参照データとセレクタ設定を計算する(ステップS203、ステップS204)。設定制御部126は、未取得の解析パラメータがないかチェックし(ステップS205)、あればステップS202からステップS204を繰り返す。未取得の解析パラメータがなくなると、設定制御部126は、次のパターン番号に対して同様の処理を行う。設定制御部126は、これらの処理を未取得のパターン番号がなくなるまで繰り返す(ステップS206)。その後、設定制御部126は、参照データとセレクタ設定とをパターン番号に対応するヘッダ解析部20に登録する(ステップS207、ステップS208)。
【0050】
図12は本発明の実施形態に係るヘッダ解析部20のユースケースであるトラフィック監視システム120の構成を示すブロック図である。トラフィック監視システム120は、パケット受信部121、ヘッダ解析部20a~20c、ルールマッチング部122、トラフィック分析部123、表示部124、アクション部125、設定制御部126を備える。なお、ヘッダ解析部20は図12に示すように並列に並べることで複数の解析パターンで処理できる。なお、以下の説明では、各ヘッダ解析部20が有効ヘッダを生成して出力する構成を例に説明するが、各ヘッダ解析部20は有効ヘッダではなく各有効データを出力するように構成されてもよい。
【0051】
パケット受信部121がネットワーク127からパケットを受信すると、そのパケットはヘッダ解析部20a~20cで解析され、有効ヘッダが作成される。ルールマッチング部122は、有効ヘッダを検索キーとして完全一致又は部分一致のルール検索を行い、パケットをルールごとに分類する。トラフィック分析部123は、ルールごとにパケット数計測、パケットバイト数計測、ジッタ計測、レイテンシ計測、コネクション数計測、フロー数計測、マイクロバースト検出などの処理を行う。これらの分析結果は、表示部124で可視化されたり、アクション部125でアラートや外部機器操作などのアクションのトリガーに用いられたりする。
【0052】
表示部124には、ディスプレイ等の画像出力装置が用いられる。表示部124では、ルールごとに分析結果を表示する。表示部124は、分析結果の表示のために、ルール情報が必要になることがある。ルールファイルだけでは有効データの種類が分からないが、解析パターンファイルのフィールド名102を参照することで解決できる。
【0053】
図13はトラフィック監視システム120に用いられるルールファイルの一例を示す図である。ルールファイルは、ルール要素130a~130c(field1~3)、パラメータ131を含む。このファイルに記載されたルールがトラフィック監視システム120に登録される。
【0054】
ルール要素130a~130cには、有効データの値が16進数で記されてもよい。これは解析パラメータ101a~101cに任意の有効データが登録されることに起因して、特定の有効データに特化した記載が難しいためである。仮に特別な記載を許容した場合、ルール登録処理が複雑になる可能性がある。
【0055】
ルール要素130a~130cに登録する値について、IPv4を例に説明する。登録したいIPアドレスが「192.168.0.1」の場合、「C0A80001」となる。また、「192.168.0.0/24」といったサブネットを登録したい場合は「C0A800」とすればよい。
【0056】
パラメータ131には、ルールマッチング部122やトラフィック分析部123、アクション部125に対するパラメータが記載される。例えば、ルールマッチング部122に対してはホワイトリストやブラックリスト、パケットキャプチャ対象などに関する情報が記載される。トラフィック分析部123に対しては、トラフィック量の閾値やジッタ・レイテンシ計測の分解能などの情報が記載される。アクション部に対しては、アクション対象などのパラメータが記載される。
【0057】
図14は、トラフィック監視システム120に用いられる変換プログラム140の概略を示す図である。先述したように、ルールファイルには16進数でルールを登録することが望ましい。しかし、そのような登録方法は視認性を低下させる。そこで、変換プログラム140を用いてユーザが作成したルールファイルをシステム向けのルールファイル(HEX)に変換してもよい。このような変換プログラムは、例えば設定制御部126によって実行されてもよい。
【0058】
変換プログラム140は、ルールファイルと解析パターンファイルとを入力する。変換プログラム140は、ルール要素130a~130cを16進数に変換する。ルール要素130a~130cと解析パターンのデータ長とが一致しない場合、変換プログラム140は、解析パターンのデータ長に合うようにルール要素130a~130cをシフトさせてもよい。
【0059】
図15はトラフィック監視システム120の運用手順の一例を示す図である。この手順は、全てが情報処理装置(例えばトラフィック監視システム120)によって実行されてもよいし、一部が人間によって実行されてもよい。この手順では、はじめに監視対象のネットワークからパケットを取得し、パケット解析アプリケーション150を用いて解析し、取得する有効データを決める。その後、解析パターンを解析パターンファイルに、ルールをルールファイルに、それぞれ登録する。この登録処理は、パケット解析アプリケーション150と連携して自動で行われても良いし、手動で行われてもよい。また、この時点でルールファイルは視認性の高い記述であってもよい。作成された解析パターンファイルとルールファイルとを変換プログラム140に入力し、システム向けのルールファイル(HEX)を作成する。その後、解析パターンファイルとルールファイル(HEX)とをトラフィック監視システム120に入力し、登録処理を行った後、トラフィック監視が開始される。監視結果は統計情報ファイルに出力される。
【0060】
このように構成されたヘッダ解析部20は、パケットの先頭からのオフセットとデータ長とが設定されることで、任意のプロトコルに対して必要なデータを取得することが可能となる。すなわち、任意のプロトコルの通信データにおいて必要なデータを取得するために要する設定の手間を大幅に削減し、より容易に設定することが可能となる。
【0061】
上述したヘッダ解析部20は、例えばCPU等のプロセッサーとメモリーとを用いて構成されてもよい。なお、ヘッダ解析部20の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されても良い。上記のプログラムは、コンピューター読み取り可能な記録媒体に記録されても良い。コンピューター読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM、半導体記憶装置(例えばSSD:Solid State Drive)等の可搬媒体、コンピューターシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。上記のプログラムは、電気通信回線を介して送信されてもよい。
【0062】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0063】
10…パケット、11…有効ヘッダ、12a~12c…オフセット、13a~13c…データ長、14a~14c…有効データ、15…マージン、20…ヘッダ解析部、21a~21c…データマスク部、22a~22c…有効データ取得部、23…論理和計算部、24…ビット拡張部、25…セレクタ制御部、30a~30f…データ切出し部、31a~31d…セレクタ、70…データ保持部、71…記憶部、100…パターン番号、101a~101c…解析パラメータ、102…フィールド名、121…パケット受信部、122…ルールマッチング部、123…トラフィック分析部、124…表示部、125…アクション部、126…設定制御部、130a~130c…ルール要素、131…パラメータ、140…変換プログラム、150…パケット解析アプリケーション
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【手続補正書】
【提出日】2023-01-10
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
通信データの先頭から有効データまでのオフセットと、有効データのデータ長と、を含む解析パラメータに基づいて、前記通信データから有効データを取得し、取得された有効データを出力する有効データ取得部と、
前記通信データに対して有効データ以外のビットをマスクするデータマスク部と、
前記通信データを保持して複数サイクルにわたって前記データマスク部に出力するデータ保持部と、
を備え
前記データマスク部は、サイクルに応じたマスクデータを用いて前記通信データに対して有効データ以外のビットをマスクし、
前記有効データ取得部は、前記データマスク部によってマスクされた通信データから前記有効データを取得する、データ取得装置。
【請求項2】
前記有効データ取得部は、前記通信データを複数に分割し、分割されたそれぞれの領域を含む複数のデータのうち一つを取得することで前記有効データを取得する、請求項1に記載のデータ取得装置。
【請求項3】
前記有効データ取得部は、前記通信データを複数に分割し、分割されたそれぞれの領域を含む複数のデータのうち一つを取得する処理を実行し、
取得された一つのデータをさらに複数に分割し、分割されたそれぞれの領域を含む複数のデータのうち一つを取得するという処理を1又は複数回実行することで前記有効データを取得する、請求項1に記載のデータ取得装置。
【請求項4】
前記有効データ取得部は、一つの通信データから複数の有効データを取得し、取得された前記有効データそれぞれの位置が重ならないように所定長のデータ内にそれぞれ配置することで、有効データ毎にデータを生成し、
前記有効データ取得部によって生成された前記有効データ毎のデータの論理和を計算することで有効ヘッダを作成する論理和計算部をさらに備える、請求項1からのいずれか一項に記載のデータ取得装置。
【請求項5】
データ取得装置が、通信データの先頭から有効データまでのオフセットと、有効データのデータ長と、を含む解析パラメータに基づいて、前記通信データから有効データを取得する有効データ取得ステップと、
データ取得装置のデータマスク部が、前記通信データに対して有効データ以外のビットをマスクするデータマスクステップと、
データ取得装置のデータ保持部が、前記通信データを保持して複数サイクルにわたって前記データマスク部に出力するデータ保持ステップと、
データ取得装置が、取得された有効データを出力するステップと、
を有し、
前記データマスクステップにおいて、サイクルに応じたマスクデータを用いて前記通信データに対して有効データ以外のビットをマスクし、
前記有効データ取得ステップにおいて、前記データマスクステップでマスクされた通信データから前記有効データを取得する、データ取得方法。