JP7135980B2 - 登録システム、登録方法及び登録プログラム - Google Patents

登録システム、登録方法及び登録プログラム Download PDF

Info

Publication number
JP7135980B2
JP7135980B2 JP2019074324A JP2019074324A JP7135980B2 JP 7135980 B2 JP7135980 B2 JP 7135980B2 JP 2019074324 A JP2019074324 A JP 2019074324A JP 2019074324 A JP2019074324 A JP 2019074324A JP 7135980 B2 JP7135980 B2 JP 7135980B2
Authority
JP
Japan
Prior art keywords
packet
header information
information
filter unit
registration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019074324A
Other languages
English (en)
Other versions
JP2020174257A (ja
Inventor
裕平 林
裕志 鈴木
伊知郎 工藤
浩 大澤
勇樹 三好
孟朗 西岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2019074324A priority Critical patent/JP7135980B2/ja
Priority to US17/602,033 priority patent/US20220182361A1/en
Priority to PCT/JP2020/013678 priority patent/WO2020209085A1/ja
Publication of JP2020174257A publication Critical patent/JP2020174257A/ja
Application granted granted Critical
Publication of JP7135980B2 publication Critical patent/JP7135980B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、登録システム、登録方法及び登録プログラムに関する。
近年、インターネットの普及に伴い、DDoS攻撃が急増している。このような攻撃に対する解析ツールとして、Mitigation装置やIDS(Intrusion Detection System)やWAF(Web Application Firewall)等の解析ツールが使用される。
ところで、トンネリングパケット、すなわちカプセル化パケットを解析するために、アウターヘッダを削除後、解析を行う必要があった。そして、解析結果を基にネットワークでフィルタや帯域制限等の制御を行うためには、インナーヘッダから元のアウターヘッダを検索する必要があった。このため、パケットのインナーヘッダとアウターヘッダとを対応付けておく必要がある。
Ixia,"Vision ONE",[平成31年3月22日検索],インターネット<URL:https://www.ixiacom.com/ja/products/vision-one> Ixia,"Vision ONE DATA SHEET",[平成31年3月22日検索],インターネット<URL:https://www.ixiacom.com/sites/default/files/2017-07/915-6691-01-V-DS-Vision-ONE.pdf>
しかしながら、従来では、カプセル化パケットからインナーヘッダ及びアウターヘッダを抽出後、全パケットについてインナーヘッダ及びアウターヘッダを対応付けてデータベース(DB)に登録していた。このため、従来の方法では、DB登録の処理負荷が高く、処理の高速化が難しいという問題があった。また、従来では、DBの全ての対応付けにアクセスし、インナーヘッダ情報から元のアウターヘッダ情報を検索していたため、DBへのアクセスに対する負荷も高かった。
本発明は、上記に鑑みてなされたものであって、カプセル化パケットのインナーヘッダ及びアウターヘッダの対応関係のDBへの登録処理の高速化を可能にする登録システム、登録方法及び登録プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る登録装置は、カプセル化パケットのインナーヘッダ情報及びアウターヘッダ情報を抽出する抽出部と、インナーヘッダ情報及びアウターヘッダ情報のハッシュ値を、一連のフローの最初のパケットが到着したか否かを示す到着情報をアドレス毎に登録したハッシュテーブルのアドレスとして計算し、ハッシュテーブルを基に、一連のフローの最初のパケットのインナーヘッダ情報及びアウターヘッダ情報を通過させるフィルタ部と、フィルタ部が通過させた最初のパケットのインナーヘッダ情報とアウターヘッダ情報とを対応付けてデータベースに登録する登録部と、を有することを特徴とする。
本発明によれば、カプセル化パケットのインナーヘッダ及びアウターヘッダの対応関係のDBへの登録処理の高速化を可能にする。
図1は、実施の形態1に係る通信システムの構成の一例を示す図である。 図2は、図1に示すDBの登録情報例を示す図である。 図3は、図1に示す登録装置の構成の一例を示す図である。 図4は、図1に示す登録装置による登録処理の流れを説明する図である。 図5は、図1に示す登録装置による登録処理の流れを説明する図である。 図6は、図3に示すフィルタ部の機能を説明する図である。 図7は、図3に示すフィルタ部の処理の流れを説明する図である。 図8は、図3に示すフィルタ部の処理の流れを説明する図である。 図9は、フローの継続時間分布情報の一例を示す図である。 図10は、図6に示すハッシュテーブルのエントリリフレッシュを説明する図である。 図11は、実施の形態1に係る登録処理の処理手順を示すフローチャートである。 図12は、図11に示すフィルタ処理の処理手順を示すフローチャートである。 図13は、図6に示すハッシュテーブルのエントリリフレッシュ処理の処理手順を示すフローチャートである。 図14は、実施の形態2に係る登録装置の構成の一例を示す図である。 図15は、図14に示すフィルタ部の機能を説明する図である。 図16は、図14に示すフィルタ部の処理の流れを説明する図である。 図17は、図14に示すフィルタ部の処理の流れを説明する図である。 図18は、図15に示すハッシュテーブルのエントリリフレッシュを説明する図である。 図19は、実施の形態2に係るフィルタ処理の処理手順を示すフローチャートである。 図20は、図15に示すハッシュテーブルのエントリリフレッシュ処理の処理手順を示すフローチャートである。 図21は、実施の形態3に係る登録装置の構成の一例を示す図である。 図22は、図21に示すフィルタ部の機能を説明する図である。 図23は、図21に示すフィルタ部の処理の流れを説明する図である。 図24は、図21に示すフィルタ部の処理の流れを説明する図である。 図25は、図21に示すフィルタ部の処理の流れを説明する図である。 図26は、図21に示すフィルタ部の処理の流れを説明する図である。 図27は、図22に示すハッシュテーブルのエントリリフレッシュを説明する図である。 図28は、実施の形態3に係るフィルタ処理の処理手順を示すフローチャートである。 図29は、図22に示すハッシュテーブルのエントリリフレッシュ処理の処理手順を示すフローチャートである。 図30は、実施の形態4に係る登録装置の構成の一例を示す図である。 図31は、図30に示すフィルタ部の機能を説明する図である。 図32は、図30に示すフィルタ部の処理の流れを説明する図である。 図33は、図30に示すフィルタ部の処理の流れを説明する図である。 図34は、図30に示すフィルタ部の処理の流れを説明する図である。 図35は、図30に示すフィルタ部の処理の流れを説明する図である。 図36は、図31に示すハッシュテーブルのエントリリフレッシュを説明する図である。 図37は、実施の形態4に係るフィルタ処理の処理手順を示すフローチャートである。 図38は、図31に示すハッシュテーブルのエントリリフレッシュ処理の処理手順を示すフローチャートである。 図39は、実施の形態5に係る登録装置の構成の一例を示す図である。 図40は、実施の形態5における振分処理の流れを説明する図である。 図41は、実施の形態に係る振分処理の処理手順のフローチャートである。 図42は、実施の形態6におけるDBに対する情報の投入の流れを説明する図である。 図43は、実施の形態7に係る通信システムの構成の一例を示す図である。 図44は、図43に示すフローコレクタによるフローの振分制御処理を説明する図である。 図45は、図43に示すフローコレクタによるフローの振分制御処理を説明する図である。 図46は、図43に示す通信システムにおけるコアへの振分制御処理の処理手順を示すシーケンス図である。 図47は、プログラムが実行されることにより、登録装置が実現されるコンピュータの一例を示す図である。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態1]
[通信システムの概要]
まず、図1を用いて、実施の形態1に係る通信システムの構成について説明する。図1は、実施の形態に係る通信システムの構成の一例を示す図である。
図1に示すように、通信システム1は、ネットワークNと、登録装置10と、DB20と、検索装置30とを有する。通信システム1は、パケットの転送の過程においてトンネリングを行っているネットワーク内部のシステムである。
登録装置10は、ネットワークNを介して、トンネルトラフィックフローの入力を受け付ける。登録装置10は、カプセル化パケットのインナー(inner)ヘッダ情報及びアウター(outer)ヘッダ情報を抽出し、パケットのinnerヘッダ情報とouterヘッダ情報とを対応付けてDB20に登録する。登録装置10は、一連のフローの最初のパケットのinnerヘッダ情報とouterヘッダ情報とをDB20に登録する。
DB20は、パケットのinnerヘッダ情報とouterヘッダ情報とが対応付けて登録されている。DB20は、innerヘッダ情報からouterヘッダ情報の検索、または、outerヘッダ情報からinnerヘッダ情報の検索を可能とする。
図2は、図1に示すDB20の登録情報例を示す図である。図2に示すように、DB20は、時刻情報と、innerヘッダの5tuple及びouterヘッダの5tupleとを対応付けて登録する。具体的には、DB20は、パケットに付与された通番、パケットの受信日時、パケットのinnerソースIPアドレス等を含むinnerヘッダ情報、パケットのouterソースIPアドレス等を含むouterヘッダ情報及び更新日時を含むデータを、1組のinnerヘッダ情報及びouterヘッダ情報との対応付け情報として登録する。
検索装置30は、DB20にアクセスし、パケットのinnerヘッダ情報またはouterヘッダ情報を検索する。検索装置30は、DB20にアクセスし、innerヘッダ情報からouterヘッダ情報を検索する。または、検索装置30は、DB20にアクセスし、outerヘッダ情報からinnerヘッダ情報の検索を可能とする。
検索装置30が、innerヘッダ情報からouterヘッダ情報の検索する例について説明する。例えば、ヘッダストリップしたパケットをセキュリティ装置等で分析をし、この分析結果がinnerヘッダ情報しか含んでいない際、分析結果を基にネットワークへ何らかの制御を行いたい場合には、innerヘッダ情報からouterヘッダ情報を検索する必要がある。このような場合、検索装置30は、DB20にアクセスして、innerヘッダ情報からouterヘッダ情報の検索し、検索結果を制御装置に送信する。
[登録装置の構成]
次に、図1に示す登録装置10の構成について説明する。図3は、図1に示す登録装置10の構成の一例を示す図である。図3に示すように、登録装置10は、通信部11、記憶部12及び制御部13を有する。
通信部11は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部11は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置と制御部13(後述)との間の通信を行う。例えば、通信部11は、ネットワークNを介して、トンネルトラフィックフローの入力を受け付ける。
記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。記憶部12は、登録装置10で実行されるOS(Operating System)や各種プログラムを記憶する。さらに、記憶部12は、プログラムの実行で用いられる各種情報を記憶する。
記憶部12は、フロー継続時間分布情報121を記憶する。フロー継続時間分布情報121は、予め計測された複数のフロー継続時間に基づくフロー継続時間の分布を示す情報である。
制御部13は、登録装置10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。制御部13は、抽出部131、フィルタ部132及び登録部133を有する。
抽出部131は、新規到着したinnerフローの組を選別するために、入力を受け付けたカプセル化パケットのinnerヘッダ情報及びouterヘッダ情報を抽出する。抽出部131は、カプセル化パケットのinnerヘッダとouterヘッダとの5tupleの組を抽出する。
フィルタ部132は、登録対象のinnerヘッダ情報及びouterヘッダ情報を選別し、登録対象のinnerヘッダ情報及びouterヘッダ情報以外をフィルタする。フィルタ部132は、一連のフローの最初のパケットが到着したか否かを示す到着情報をアドレス毎に登録したハッシュテーブルを用いる。フィルタ部132は、innerヘッダ情報及びouterヘッダ情報のハッシュ値をハッシュテーブルのアドレスとして計算する。具体的には、フィルタ部132は、innerヘッダの5tupleとouterヘッダの5tupleとを連結した情報のハッシュ値をハッシュテーブルのアドレスとして計算する。フィルタ部132は、このハッシュテーブルを基に、一連のフローの最初のパケットを通過させる。
登録部133は、フィルタ部132が通過させた、一連のフローの最初のパケットのinnerヘッダ情報とouterヘッダ情報とを対応付けてDB20に登録する。登録部133は、DB20に、時刻情報と、innerヘッダの5tuple及びouterヘッダの5tupleとの組を対応付け情報として登録する。
[登録処理の流れ]
次に、登録装置10による登録処理について説明する。図4及び図5は、図1に示す登録装置10による登録処理の流れを説明する図である。図4には、説明のためにDB20も記載する。
図4及び図5に示すように、抽出部131にカプセル化パケットが入力されると、抽出部131は、事前に設定されたプロトコルconfigにしたがって、カプセル化パケットのinnerヘッダとouterヘッダとの5tupleの組を抽出する。
そして、フィルタ部132は、事前に設定されたフローの定義や、事前に求められたフロー継続時間分布情報121を基に、一連のフローの最初のパケット、すなわち、新規到着したパケットのinnerヘッダの5tupleとouterヘッダの5tupleとを通過させる。
登録部133は、フィルタ部132が通過させた、新規到着したパケットのinnerヘッダとouterヘッダとの5tupleのDB登録クエリを、時刻情報とともにDB20に出力し、DB20への登録を行う。
例えば、図5に示すパケットP11は、一連のフローの最初のパケット(1stpacker)、すなわち、新規到着したパケットであり、DB登録に必要な情報である(図5の(1)参照)。このため、フィルタ部132は、パケットP11の情報を通過させる。これに対し、innerフローの後続のパケットP14の情報は、既にパケットP11の情報が登録されているため、DB登録に不要な情報になる(図5の(2)参照)。したがって、フィルタ部132は、パケットP14の情報をフィルタする。
[フィルタ部の処理]
次に、フィルタ部132の処理内容について説明する。図6は、図3に示すフィルタ部132の機能を説明する図である。
図6に示すように、フィルタ部132は、事前に設定されたフローの定義に基づいてハッシュ値を計算するハッシュ関数部1321と、ハッシュテーブル1322を用いてフィルタを行う。
ハッシュテーブル1322は、アドレス、到着情報である到着フラグ、及び、タイマの項目を有する。到着フラグは、一連のフローの最初のパケットが到着したか否かを示すフラグであり、innerフローの5tuple情報が新規到着フローのものか否かを判別するために使用する。到着フラグは、「0」が未達であることを示し、「1」が到着済みであることを示す。タイマは、ハッシュ衝突を抑えるために定期的なエントリリフレッシュを行うために使用するカウントダウンタイマである。到着フラグのデフォルト値は「0」であり、タイマのデフォルト値は全て「1」である。
図7及び図8は、図3に示すフィルタ部132の処理の流れを説明する図である。ハッシュ関数部1321は、フローの定義と、innerヘッダの5tuple及びouterヘッダの5tupleの情報とを入力とし、ハッシュ関数を用いて、innerヘッダの5tupleとouterヘッダの5tupleとを連結した情報ハッシュ値を、アドレスとして計算する。フィルタ部132は、計算したアドレスでハッシュテーブル1322の行にアクセスする。
例えば、図7を参照して、パケットP11の処理について説明する。この場合、フィルタ部132は、ハッシュテーブル1322のうち、計算したアドレス「0x0003」の行にアクセスする。ここで、この行の到着フラグは「0」であるため、パケットP11は、一連のフローの最初のパケットである。フィルタ部132は、このアドレス「0x0003」の行の到着フラグを「0」から「1」に変更し(図7の(1)参照)、パケットP11のinnerヘッダとouterヘッダとの5tupleを通す(図7の(2)参照)。
また、図8を参照して、パケットP21の処理について説明する。この場合、フィルタ部132は、ハッシュテーブル1322のうち、計算したアドレス「0x0007」の行にアクセスする。ここで、この行の到着フラグは「1」である(図8の(1)参照)。これより、パケットP21は、最初のパケットが既に到着済みであるフローのパケットであるため、フィルタ部132は、パケットP21の情報をフィルタする(図8の(2)参照)。
続いて、ハッシュテーブル1322のエントリリフレッシュについて説明する。ハッシュテーブル1322に古いエントリを残したままにすると、衝突が起こりやすくなり、フィルタ精度が悪くなる。そこで、フィルタ部132は、フローの継続時間の分布を基に、所定のタイミングでエントリをリフレッシュし、古いエントリを初期化する。
図9は、フローの継続時間分布情報の一例を示す図である。図9では、フロー継続時間と確率密度関数との関係を示す。図10は、図6に示すハッシュテーブル1322のエントリリフレッシュを説明する図である。
フィルタ部132は、図9に例示するフローの継続時間の分布から、αパーセンタイル(0≦α≦1)に該当するフロー継続時間x(sec)を求める。そして、フィルタ部132は、このフロー継続時間x(sec)を用いて、リフレッシュタイミングを設定する。
まず、タイマのbit数が1以上の場合について説明する。この場合、フィルタ部132は、リフレッシュ間隔を「x/(タイマのbit数^2)」とする。フィルタ部132は、リフレッシュ間隔毎にタイマをデクリメントする。そして、フィルタ部132は、タイマのbit数が全て「0」になったエントリの到着フラグを「1」から「0」に変更するとともに(図10の(1)参照)、タイマも「1111」に変更することによって、エントリをリフレッシュする。
そして、タイマのbit数が1以外の場合について説明する。この場合、フィルタ部132は、リフレッシュ間隔を「x」とする。フィルタ部132は、リフレッシュ間隔毎に、全ての到着フラグを「0」に変更し、タイマもデフォルト値に変更して、エントリをリフレッシュする。なお、ハッシュテーブル1322は、bit数が比較的少ない到着フラグ欄及びタイマ欄を有し、この2つの欄の処理を要するため、例えば、高速・低容量であるキャッシュに保持される。
[登録処理の処理手順]
次に、実施の形態1に係る登録処理の処理手順について説明する。図11は、実施の形態1に係る登録処理の処理手順を示すフローチャートである。
図11に示すように、登録装置10は、カプセル化パケットの入力を受け付けると(ステップS1)、抽出部131は、カプセル化パケットのinnerヘッダ情報及びouterヘッダ情報を抽出する抽出処理を行う(ステップS2)。
フィルタ部132は、innerヘッダ情報及びouterヘッダ情報のハッシュ値をハッシュテーブルのアドレスとして計算し、到着情報をアドレス毎に登録したハッシュテーブルを基に、一連のフローの最初のパケットを通過させるフィルタ処理を行う(ステップS3)。
登録部133は、フィルタ部132が通過させた、一連のフローの最初のパケットのinnerヘッダ情報とouterヘッダ情報とを対応付けてDB20に登録する登録処理を行う(ステップS4)。
[フィルタ処理の処理手順]
次に、図11に示すフィルタ処理(ステップS3)について説明する。図12は、図11に示すフィルタ処理の処理手順を示すフローチャートである。
図12に示すように、フィルタ部132は、フローの定義情報と、innerヘッダの5tuple及びouterヘッダの5tupleの情報とを入力とし(ステップS11,S12)、ハッシュ関数を用いてアドレスを計算する(ステップS13)。フィルタ部132は、計算したアドレスでハッシュテーブル1322の行にアクセスする(ステップS14)。
フィルタ部132は、アクセスした行の到着フラグは「0」または「1」のいずれであるかを判定する(ステップS15)。到着フラグが「0」である場合(ステップS15:0)、フィルタ部132は、このパケットが一連のフローの最初のパケットであると判定し、アクセスした行の到着フラグを「0」から「1」に変更する(ステップS16)。そして、フィルタ部132は、このパケットのinnerヘッダとouterヘッダとの5tupleを通す(ステップS17)。
これに対し、到着フラグが「1」である場合(ステップS15:1)、フィルタ部312は、最初のパケットが既に到着済みであるフローのパケットであると判定し、このパケットのinnerヘッダとouterヘッダとの5tupleをフィルタする(ステップS18)。
[ハッシュテーブルのエントリリフレッシュ処理]
次に、ハッシュテーブル1322のエントリリフレッシュ処理について説明する。図13は、図6に示すハッシュテーブルのエントリリフレッシュ処理の処理手順を示すフローチャートである。
図13に示すように、フィルタ部132は、フローの継続時間分布情報を取得し(ステップS21)、フロー継続時間分布においてαパーセンタイル(0≦α≦1)に該当するフロー継続時間x(sec)を取得する(ステップS22)。そして、フィルタ部132は、タイマのbit数が1以上であるか否かを判定する(ステップS23)。
タイマのbit数が1以上である場合(ステップS23:Yes)、フィルタ部132は、リフレッシュ間隔を「x/(タイマのbit数^2)」とする(ステップS24)。フィルタ部132は、リフレッシュ間隔毎にタイマをデクリメントする(ステップS25)。フィルタ部132は、タイマのbit数が全て「0」になったエントリの到着フラグを、「1」からデフォルト値である「0」に変更して(ステップS26)、エントリをリフレッシュする。
また、タイマのbit数が1以外である場合(ステップS23:No)、フィルタ部132は、リフレッシュ間隔を「x」とする(ステップS27)。フィルタ部132は、リフレッシュ間隔毎に、全ての到着フラグを、デフォルト値である「0」に変更して(ステップS28)、エントリをリフレッシュする。
[実施の形態1の効果]
このように、実施の形態1では、DB20は、パケットのinnerヘッダ情報とouterヘッダ情報とが対応付けて登録されている。このため、実施の形態1によれば、innerヘッダ情報からouterヘッダ情報の検索、または、outerヘッダ情報からinnerヘッダ情報の検索を可能とする。
また、実施の形態1では、DB20には、一連のフローの最初のパケットのinnerヘッダ情報とouterヘッダ情報の対応付け情報のみがDB20に登録される。このため、実施の形態1によれば、全パケットについて対応付け情報を登録していた場合と比して、情報登録の処理負荷が低減でき、処理の高速化を可能にする。そして、実施の形態1によれば、全パケットについて対応付け情報を登録していた場合と比して、DB20に登録されている対応付け情報自体の数が少ないため、DB20へのアクセス及び検索に対する負荷を低減でき、検索の高速化を図ることも可能になる。
[実施の形態2]
次に、実施の形態2について説明する。図14は、実施の形態2に係る登録装置の構成の一例を示す図である。
図14に示すように、実施の形態2に係る登録装置210は、図3に示す制御部13に代えて、制御部213を有する。制御部213は、制御部13と同様の機能を有する。制御部213は、フィルタ部2132を有する。フィルタ部2132は、一連のフローの最初のパケットが到着したか否かを示す到着情報を、タイムアウト時刻で示したハッシュテーブルを用いて、フィルタ処理を行う。
[フィルタ部の処理]
次に、フィルタ部2132の処理内容について説明する。図15は、図14に示すフィルタ部2132の機能を説明する図である。
図15に示すように、フィルタ部2132は、ハッシュテーブル1322Aを用いる。ハッシュテーブル1322Aは、アドレス及びタイムアウト時刻を項目として有する。タイムアウト時刻は、ハッシュ衝突を抑制のための定期的なエントリリフレッシュの実行のために使用する。タイムアウト時刻のデフォルト値は、「0000-00-00 00:00:00」である。
図16及び図17は、図14に示すフィルタ部2132の処理の流れを説明する図である。ハッシュ関数部1321は、フローの定義と、innerヘッダの5tuple及びouterヘッダの5tupleの情報とを入力とし、ハッシュ関数を用いて、innerヘッダの5tuple及びouterヘッダの5tupleの情報とを連結した情報のハッシュ値を、アドレスとして計算する。フィルタ部2132は、計算したアドレスでハッシュテーブル1322Aの行にアクセスする。
例えば、図16を参照して、パケットP11の処理について説明する。この場合、フィルタ部2132は、ハッシュテーブル1322Aのうち、計算したアドレス「0x0003」の行にアクセスする。ここで、この行のタイムアウト時刻はデフォルト値であるので、パケットP11は、一連のフローの最初のパケットである。このため、フィルタ部2132は、このアドレス「0x0003」の行のタイムアウト時刻を、現在時刻にx(sec)を加えた時刻に変更し(図16の(1)参照)、パケットP11のinnerヘッダとouterヘッダとの5tupleを通す(図16の(2)参照)。x(sec)は、例えば、図9に例示するフローの継続時間の分布のうち、αパーセンタイル(0≦α≦1)に該当するフロー継続時間である。
また、図17を参照して、パケットP21の処理について説明する。この場合、フィルタ部2132は、ハッシュテーブル1322Aのうち、計算したアドレス「0x0007」の行にアクセスする。ここで、この行のタイムアウト時刻は、デフォルト値ではない(図17の(1)参照)。これより、パケットP21は、最初のパケットが既に到着済みであるフローのパケットであることから、フィルタ部2132は、パケットP21の情報をフィルタする(図17の(2)参照)。
続いて、ハッシュテーブル1322Aのエントリリフレッシュについて説明する。図18は、図15に示すハッシュテーブル1322Aのエントリリフレッシュを説明する図である。
フィルタ部2132は、ハッシュテーブル1322Aの各エントリのタイムアウト時刻を、所定のタイミングでリフレッシュして衝突を抑制する。具体的には、フィルタ部2132は、現在時刻がタイムアウト時刻を超えたエントリのリフレッシュを行う。
例えば、現在時刻がアドレス「0x0007」のタイムアウト時刻「2018-06-05 09:25:01」を超えた場合について説明する。この場合、フィルタ部2132は、このエントリのタイムアウト時刻を「2018-06-05 09:25:01」から、デフォルト値の「0000-00-00 00:00:00」に変更することによって(図18の(1)参照)、古いエントリを初期化する。なお、ハッシュテーブル1322Aは、bit数が比較的多いタイムアウト時刻欄を有するが、タイムアウト時刻欄の処理のみで足りるため、例えば、低速・高容量であるメモリに保持される。
[フィルタ処理の処理手順]
登録装置210は、図11に示す処理を図11に示す順序で実行することによって登録処理を行う。このうち、フィルタ処理は、図12に示す処理手順と異なる処理手順で実行される。そこで、図19を参照して、実施の形態2に係るフィルタ処理について説明する。図19は、実施の形態2に係るフィルタ処理の処理手順を示すフローチャートである。
図19に示すステップS31~ステップS34は、図12に示すステップS11~ステップS14と同じ処理である。フィルタ部2132は、アクセスした行のタイムアウト時刻はデフォルト値であるか否かを判定する(ステップS35)。
タイムアウト時刻がデフォルト値である場合(ステップS35:Yes)、フィルタ部2132は、このパケットが一連のフローの最初のパケットであると判定し、アクセスした行のタイムアウト時刻を現在時刻にx(sec)を加えた時刻に変更する(ステップS36)。そして、フィルタ部2132は、このパケットのinnerヘッダとouterヘッダとの5tupleを通す(ステップS37)。
これに対し、タイムアウト時刻がデフォルト値でない場合(ステップS35:No)、フィルタ部2132は、最初のパケットが既に到着済みであるフローのパケットであると判定し、このパケットのinnerヘッダとouterヘッダとの5tupleをフィルタする(ステップS38)。
[ハッシュテーブルのエントリリフレッシュ処理]
次に、ハッシュテーブル1322Aのエントリリフレッシュ処理について説明する。図20は、図15に示すハッシュテーブル1322Aのエントリリフレッシュ処理の処理手順を示すフローチャートである。
フィルタ部2132は、ハッシュテーブル1322Aに、現在時刻がタイムアウト時刻を超えたエントリがあるか否かを判定する(ステップS41)。フィルタ部2132は、現在時刻がタイムアウト時刻を超えたエントリがあると判定するまで、ステップS41の処理を送り返す。
そして、現在時刻がタイムアウト時刻を超えたエントリがある場合(ステップS41:Yes)、フィルタ部2132は、タイムアウト時刻をデフォルト値「0000-00-00 00:00:00」に変更し(ステップS42)、ステップS41に進む。
[実施の形態2の効果]
このように、フィルタ部2132は、到着情報をタイムアウト時刻で示したハッシュテーブルを用いて、フィルタ処理を行い、一連のフローの最初のパケットのinnerヘッダ情報及びouterヘッダ情報以外をフィルタする。この結果、実施の形態2においても、一連のフローの最初のパケットのinnerヘッダ情報とouterヘッダ情報の対応付け情報のみがDB20に登録されるため、実施の形態1と同様の効果を奏する。
[実施の形態3]
次に、実施の形態3について説明する。実施の形態3では、フィルタ処理において、さらに、衝突検知bit(衝突検知値)を計算することによって、ハッシュ衝突を抑制し、DB20への対応付け情報の登録漏れを防止している。図21は、実施の形態3に係る登録装置の構成の一例を示す図である。
図21に示すように、実施の形態3に係る登録装置310は、図3に示す制御部13に代えて、制御部313を有する。制御部313は、制御部13と同様の機能を有する。制御部313は、フィルタ部3132を有する。
フィルタ部3132は、到着情報である到着フラグと、検知bit(検知値)と、タイマとをアドレスに対応付けて登録するハッシュテーブルを用いる。検知bitは、一連のフローの最初のパケットにおけるinnerヘッダ情報、outerヘッダ情報及びアドレスのハッシュ値である。検知bitは、一連のフローの最初のパケットにおけるinnerヘッダの5tupleと、outerヘッダの5tupleと、アドレスとを連結した情報のハッシュ値である。
フィルタ部3132は、処理対象のパケットにおけるinnerヘッダ情報及びouterヘッダ情報のハッシュ値をハッシュテーブルのアドレスとして計算する。そして、フィルタ部3132は、innerヘッダ情報、outerヘッダ情報及びアドレスのハッシュ値を、衝突検知bitとして計算する。
フィルタ部3132は、ハッシュテーブルのうち処理対象のパケットのアドレスと同アドレスのエントリにおいて、到着フラグが未到着であることを示す場合、処理対象のパケットのinnerヘッダ情報及びouterヘッダ情報を、最初のパケットのinnerヘッダ情報及びouterヘッダ情報として通過させる。
また、フィルタ部3132は、到着フラグが到着済みであることを示し、かつ、検知bitと衝突検知bitとが同値である場合には、このパケットのinnerヘッダ情報及びouterヘッダ情報をフィルタする。
また、フィルタ部3132は、到着フラグが到着済みであることを示し、かつ、検知bitと衝突検知bitとが異なる場合には、衝突を検知する。そして、フィルタ部3132は、衝突を検知した場合、処理対象のパケットのinnerヘッダ情報及びouterヘッダ情報をサンプリングして通過させる。
[フィルタ部の処理]
次に、フィルタ部3132の処理内容について説明する。図22は、図21に示すフィルタ部3132の機能を説明する図である。
図22に示すように、フィルタ部3132は、アドレス計算用のハッシュ関数部1321と、衝突検知bit計算用のハッシュ関数部1321Bと、ハッシュテーブル1322Bと、を用いてフィルタ処理を行う。
ハッシュ関数部1321Bは、innerヘッダ情報、outerヘッダ情報及びアドレスを入力とし、ハッシュ関数を用いて衝突検知bitを計算する。ハッシュテーブル1322Bは、アドレス、到着フラグ、タイマ及び検知bitの項目を有する。検知bitは、ハッシュの衝突を検知するために使用する。検知bitのデフォルト値は、全て「0」である。
図23~図26は、図21に示すフィルタ部3132の処理の流れを説明する図である。ハッシュ関数部1321は、フローの定義と、innerヘッダの5tuple及びouterヘッダの5tupleの情報とを入力とし、ハッシュ関数を用いて、innerヘッダの5tupleと、outerヘッダの5tupleとを連結した情報のハッシュ値を、アドレスとして計算する。ハッシュ関数部1321Bは、innerヘッダの5tupleと、outerヘッダの5tupleと、ハッシュ関数部1321が計算したアドレスとを入力とし、ハッシュ関数を用いて、innerヘッダの5tupleと、outerヘッダの5tupleと、ハッシュ関数部1321が計算したアドレスとを連結情報のハッシュ値を、衝突検知bitとして計算する。フィルタ部3132は、計算したアドレスでハッシュテーブル1322Bの行にアクセスする。
例えば、図23を参照して、パケットP11の処理について説明する。この場合、フィルタ部3132は、ハッシュテーブル1322Bのうちアドレス「0x0003」の行にアクセスする。ここで、この行の到着フラグは「0」であるため、パケットP11は、一連のフローの最初のパケットである。
そこで、フィルタ部3132は、アドレス「0x0003」の行の到着フラグを「0」から「1」に変更する(図23の(1)参照)。続いて、フィルタ部3132は、検知bitを、デフォルト値の「000」から、ハッシュ関数部1321Bを用いて計算したパケットP11の衝突検知bit「101」に変更する(図23の(2)参照)。そして、フィルタ部3132は、パケットP11のinnerヘッダとouterヘッダとの5tupleを通す(図23の(3)参照)。
また、図24を参照して、パケットP21の処理について説明する。この場合、フィルタ部3132は、ハッシュテーブル1322Bのうちアドレス「0x0007」の行にアクセスする。ここで、この行の到着フラグは「1」であり(図24の(1)参照)、かつ、検知bit「110」と、ハッシュ関数部1321Bを用いて計算したパケットP21の衝突検知bit「110」とが同値である(図24の(2)参照)。
そこで、フィルタ部3132は、パケットP21については、最初のパケットが既に到着済みであるフローのパケットであると判定し、パケットP21の情報をフィルタする(図24の(3)参照)。
また、図25及び図26を参照して、パケットP31の処理について説明する。この場合、パケットP31は、パケットP21に対し、同アドレスであり(図25(1)参照)、衝突検知bitは異なるアドレスになる。フィルタ部132は、ハッシュテーブル1322のうちアドレス「0x0007」の行にアクセスする。
この際、この行の到着フラグは、「1」であるものの、検知bit「110」と、計算したパケットP31の衝突検知bit「001」とが一致しないため、フィルタ部3132は、衝突(ハッシュ衝突)を検知する(図25の(2)参照)。そして、フィルタ部3132は、処理対象のパケットP31のフローについては、サンプリングして、innerヘッダ情報及びouterヘッダ情報を通過させる(図26の(3)参照)。例えば、フィルタ部3132は、パケットP31のフローから、1000個に1個をサンプリングして通過させる。すなわち、フィルタ部3132は、ハッシュ衝突したパケットのフローについてはサンプリングした一部のパケットP31,P3nを通過させる。
続いて、ハッシュテーブル1322Bのエントリリフレッシュについて説明する。図27は、図22に示すハッシュテーブル1322Bのエントリリフレッシュを説明する図である。
フィルタ部3132は、フローの継続時間の分布を基に、所定のタイミングでエントリをリフレッシュし、古いエントリを初期化する。リフレッシュ間隔は、フローの継続時間の分布とタイマに割り当てたbit数とを基に計算される。
まず、フィルタ部3132は、フィルタ部132と同様に、フローの継続時間の分布(例えば、図9参照)から、αパーセンタイル(0≦α≦1)に該当するフロー継続時間x(sec)を求める。
続いて、タイマのbit数が1以上の場合について説明する。この場合、フィルタ部3132は、フィルタ部132における処理と問うように、リフレッシュ間隔を「x/(タイマのbit数^2)」として、リフレッシュ間隔毎にタイマをデクリメントする。そして、フィルタ部3132は、タイマのbit数が全て「0」になったエントリの到着フラグを「1」から「0」に変更するとともに(図27の(1)参照)、タイマも「0000」から「1111」に変更する(図27の(2)参照)。さらに、フィルタ部3132は、このエントリの検知bitも「110」から「000」(図27の(3)参照)に変更する。これによって、フィルタ部3132は、エントリをリフレッシュする。
そして、タイマのbit数が1以外の場合について説明する。この場合、フィルタ部3132は、リフレッシュ間隔を「x」とする。フィルタ部132は、リフレッシュ間隔毎に、全ての到着フラグを「0」に変更し、タイマを「1111」に変更し、検知bitを「000」に変更して、エントリをリフレッシュする。
[フィルタ処理の処理手順]
登録装置310は、図11に示す処理を図11に示す順序で実行することによって登録処理を行う。このうち、フィルタ処理は、図12に示す処理手順と異なる処理手順で実行される。そこで、図28を用いて、実施の形態3に係るフィルタ処理について説明する。図28は、実施の形態3に係るフィルタ処理の処理手順を示すフローチャートである。
図28に示すステップS51~ステップS53は、図11に示すステップS11~ステップS13と同じ処理である。フィルタ部3132は、処理対象のパケットのinnerヘッダ情報、outerヘッダ情報及びアドレスを入力とし、ハッシュ関数を用いて衝突検知bitを計算する(ステップS54)。フィルタ部3132は、計算したアドレスでハッシュテーブル1322Bの行にアクセスする(ステップS55)。
アクセスした行の到着フラグが「0」である場合(ステップS56:0)、フィルタ部3132は、このパケットが一連のフローの最初のパケットであると判定し、アクセスした行の到着フラグを「0」から「1」に変更する(ステップS57)。フィルタ部3132は、この行の検知bitを、ステップS54において計算した衝突検知bitに変更する(ステップS58)。そして、フィルタ部3132は、このパケットのinnerヘッダとouterヘッダとの5tupleを通す(ステップS59)。
これに対し、到着フラグが「1」である場合(ステップS56:1)、フィルタ部3132は、この行の検知bitと、ステップS54において計算した衝突検知bitとが同値であるか否かを判定する(ステップS60)。
検知bitと衝突検知bitとが同値である場合(ステップS60:Yes)、フィルタ部3132は、このパケットが、既に到着済みであるフローのパケットであると判定し、このパケットのinnerヘッダとouterヘッダとの5tupleをフィルタする(ステップS61)。
一方、検知bitと衝突検知bitとが異なる値である場合(ステップS60:No)、フィルタ部3132は、衝突を検知し、処理対象のパケットのフローについては、サンプリングして、innerヘッダとouterヘッダとの5tupleを通す(ステップS62)。
[ハッシュテーブルのエントリリフレッシュ処理]
次に、ハッシュテーブル1322Bのエントリリフレッシュ処理について説明する。図29は、図22に示すハッシュテーブル1322Bのエントリリフレッシュ処理の処理手順を示すフローチャートである。
図29に示すステップS71~ステップS75は、図13に示すステップS21~25と同じ処理である。フィルタ部3132は、タイマのbit数が全て「0」になったエントリの到着フラグ及び検知bitをデフォルト値に変更して(ステップS76)、エントリをリフレッシュする。
また、図29に示すステップS77は、図13に示すステップS27と同じ処理である。フィルタ部3132は、リフレッシュ間隔毎に、全ての到着フラグ及び検知bitをデフォルト値に変更して(ステップS78)、エントリをリフレッシュする。
[実施の形態3の効果]
このように、実施の形態3に係る登録装置310は、衝突検知bitを計算し、ハッシュテーブル1322Bに登録されている検知bitと比較することによって、衝突の発生を検知することができる。ここで、衝突が発生している場合とは、2つ以上の(innerヘッダ,outerヘッダ)の組み合わせが同じハッシュ値である場合である。登録装置310では、衝突が検知されたパケットについては、サンプリングして、1000個に1個等のみをDB20へ登録する。
このように、登録装置310は、異なる内容のinnerヘッダ情報及びouterヘッダ情報の組み合わせが、同一のハッシュ値として計算された場合であっても、一方の組み合わせをサンプリングしてDB20に登録する。この結果、実施の形態3によれば、情報の登録漏れを防止するとともに、DB20への登録負荷を低減することを可能にする。
[実施の形態4]
次に、実施の形態4について説明する。図30は、実施の形態4に係る登録装置の構成の一例を示す図である。
図30に示すように、実施の形態4に係る登録装置410は、図14に示す制御部213に代えて、制御部413を有する。制御部413は、制御部213と同様の機能を有する。制御部413は、フィルタ部4132を有する。
フィルタ部4132は、到着情報であるタイムアウト時刻と、検知bitとをアドレスに対応付けて登録するハッシュテーブルを用いる。フィルタ部4132は、フィルタ処理において、さらに、衝突検知bitを計算することによって、ハッシュ衝突を抑制し、DB20への対応付け情報の登録漏れを防止している。
フィルタ部4132は、ハッシュテーブルのうち処理対象のパケットのアドレスと同アドレスのエントリにおいて、タイムアウト時刻がデフォルト値である場合には、処理対象のパケットのinnerヘッダ情報及びouterヘッダ情報を最初のパケットのinnerヘッダ情報及びouterヘッダ情報として通過させる。
また、フィルタ部4132は、タイムアウト時刻がデフォルト値ではなく、かつ、検知bitと衝突検知bitとが同値である場合には、このパケットのinnerヘッダ情報及びouterヘッダ情報をフィルタする。
また、フィルタ部4132は、タイムアウト時刻がデフォルト値ではなく、かつ、検知bitと衝突検知bitとが異なる場合には、衝突を検知する。そして、フィルタ部4132は、ハッシュテーブルの空のエントリに処理対象のパケットにおける衝突検知bitを、検知bitとして登録し、処理対象のパケットのinnerヘッダ情報及びouterヘッダ情報を通過させる。
[フィルタ部の処理]
次に、フィルタ部4132の処理内容について説明する。図31は、図30に示すフィルタ部4132の機能を説明する図である。
図31に示すように、フィルタ部4132は、アドレス計算用のハッシュ関数部1321と、衝突検知bit計算用のハッシュ関数部1321Bと、ハッシュテーブル1322Cと、を用いてフィルタ処理を行う。
ハッシュテーブル1322Cは、アドレス、タイムアウト時刻、検知bit及びチェインポインタの項目を有する。チェインポインタは、衝突が起きている際に別のエントリにアクセするために使用する。チェインポインタのデフォルト値は「0x0000」である。
図32~図35は、図30に示すフィルタ部4132の処理の流れを説明する図である。実施の形態3と同様に、ハッシュ関数部1321は、フローの定義と、innerヘッダの5tuple及びouterヘッダの5tupleの情報とを入力とし、ハッシュ関数を用いて、innerヘッダの5tupleとouterヘッダの5tupleとを連結した情報のハッシュ値を、アドレスとして計算する。ハッシュ関数部1321Bは、innerヘッダの5tuple及びouterヘッダの5tupleと、ハッシュ関数部1321が計算したアドレスを入力とし、ハッシュ関数を用いて、innerヘッダの5tupleと、outerヘッダの5tupleと、ハッシュ関数部1321が計算したアドレスとを連結した情報のハッシュ値を、衝突検知bitとして計算する。フィルタ部3132は、計算したアドレスでハッシュテーブル1322Cの行にアクセスする。
例えば、図32を参照して、パケットP11の処理について説明する。この場合、フィルタ部3132は、ハッシュテーブル1322Cのうちアドレス「0x0003」の行にアクセスする。ここで、この行のタイムアウト時刻はデフォルト値であるので、パケットP11は、一連のフローの最初のパケットである。このため、フィルタ部3132は、アドレス「0x0003」の行のタイムアウト時刻を、デフォルト値から、現在時刻にx(sec)を加えた時刻に変更する(図32の(1)参照)。x(sec)は、例えば、図9に例示するフローの継続時間の分布から、αパーセンタイル(0≦α≦1)に該当するフロー継続時間である。
そして、フィルタ部4132は、検知bitを「000」から、パケットP11の衝突検知bit「101」に変更する(図32の(2)参照)。続いて、フィルタ部4132は、パケットP11のinnerヘッダとouterヘッダとの5tupleを通す(図32の(3)参照)。
また、図33及び図34を参照して、パケット31の処理について説明する。この場合、フィルタ部4132は、ハッシュテーブル1322Cのうち、計算したアドレス「0x0007」の行にアクセスする。ここで、この行のタイムアウト時刻がデフォルト値ではなく、この行の検知bit「110」と、計算したP31の衝突検知bit「001」とが一致しないため、フィルタ部4132は、衝突を検知する(図33の(1)及び図34の(1)参照)。
この場合、フィルタ部4132は、アドレス「0x0007」の行のチェインポインタがデフォルト値の場合には、開番地法を用いて、別の空のエントリに、パケットP31の情報を登録する。具体的には、フィルタ部4132は、アドレス「0x0007」の行のチェインポインタを、「0x0000」から、開番地法で求めた空のエントリのアドレス「0x0009」に変更する(図34の(2)参照)。
そして、フィルタ部4132は、アドレス「0x0009」の行に進み、この行のタイムアウト時刻をデフォルト値から、現在時刻にx(sec)を加えた時刻に変更する(図34の(3)参照)。フィルタ部4132は、検知bitを、デフォルト値の「000」から、計算したパケットP31の衝突検知bit「101」に変更する(図34の(4)参照)。続いて、フィルタ部3132は、パケットP31のinnerヘッダとouterヘッダとの5tupleを通す(図34の(5)参照)。
また、図35を参照して、パケット21の処理について説明する。この場合、フィルタ部4132は、ハッシュテーブル1322Cのうち、計算したアドレス「0x0007」の行にアクセスする。ここで、この行のタイムアウト時刻がデフォルト値ではなく、検知bit「110」と、ハッシュ関数部1321Bを用いて計算したパケットP21の衝突検知bit「110」とが一致するため、フィルタ部4132は、パケットP21の情報をフィルタする(図35の(1)参照)。
続いて、図35を参照して、パケットP32の処理について説明する。この場合、フィルタ部4132は、ハッシュテーブル1322Cのうち、計算したアドレス「0x0007」の行にアクセスする。この場合、この行のタイムアウト時刻がデフォルト値ではなく、検知bit「110」と、ハッシュ関数部1321Bを用いて計算したパケットP31の衝突検知bit「001」とが一致しない。そこで、フィルタ部4132は、チェインポインタの値を用い、アドレス「0x0009」の行にアクセスする。そして、フィルタ部4132は、アドレス「0x0009」の行のタイムアウト時刻がデフォルト値ではなく、検知bit「001」と、計算したパケットP32の衝突検知bit「001」とが一致するため、パケットP32をフィルタする(図35の(2)参照)。
続いて、ハッシュテーブル1322Cのエントリリフレッシュについて説明する。図36は、図31に示すハッシュテーブル1322Cのエントリリフレッシュを説明する図である。
具体的には、フィルタ部4132は、現在時刻がタイムアウト時刻を超えたエントリのリフレッシュを行う。例えば、現在時刻がアドレス「0x0009」のタイムアウト時刻「2018-06-07 02:31:41」を超えた場合について説明する。この場合、フィルタ部4132は、このエントリのタイムアウト時刻を「2018-06-07 02:31:41」から、デフォルト値の「0000-00-00 00:00:00」に変更し(図36の(1)参照)、検知bitを「001」から「000」に変更することによって(図36の(2)参照)、古いエントリを初期化する。
[フィルタ処理の処理手順]
登録装置410は、図11に示す処理を図11に示す順序で実行することによって登録処理を行う。このうち、フィルタ処理は、図12に示す処理手順と異なる処理手順で実行される。そこで、図37を参照して、実施の形態4に係るフィルタ処理について説明する。図37は、実施の形態4に係るフィルタ処理の処理手順を示すフローチャートである。
図37に示すステップS81~ステップS83は、図12に示すステップS11~ステップS13と同じ処理である。図37に示すステップS84及びステップS85は、図28に示すステップS54及びステップS55と同じ処理である。
タイムアウト時刻がデフォルト値である場合(ステップS86:Yes)、フィルタ部4132は、このパケットが一連のフローの最初のパケットであると判定し、アクセスした行のタイムアウト時刻を現在時刻にx(sec)を加えた時刻に変更する(ステップS87)。フィルタ部4132は、この行の検知bitを、ステップS84において計算した衝突検知bitに変更する(ステップS88)。そして、フィルタ部4132は、このパケットのinnerヘッダとouterヘッダとの5tupleを通す(ステップS89)。
これに対し、タイムアウト時刻がデフォルト値でない場合であり(ステップS86:No)、この行の検知bitとステップS84において計算した衝突検知bitとが同値である場合(ステップS90:Yes)、フィルタ部4132は、このパケットが、既に到着済みであるフローのパケットであると判定し、このパケットのinnerヘッダとouterヘッダとの5tupleをフィルタする(ステップS91)。
一方、この行の検知bitと衝突検知bitとが異なる値である場合(ステップS90:No)、フィルタ部4132は、衝突を検知し、開番地法を用いて、別の空のエントリに、処理対象のパケットのアドレスを登録する。そして、フィルタ部4132は、アドレスを登録した行のタイムアウト時刻を、デフォルト値から、現在時刻にx(sec)を加えた時刻に変更し(ステップS92)、この行の検知bitをデフォルト値から衝突検知bitの値に変更する(ステップS93)。続いて、フィルタ部4132は、処理対象のパケットのinnerヘッダとouterヘッダとの5tupleを通す(ステップS94)。
[ハッシュテーブルのエントリリフレッシュ処理]
次に、ハッシュテーブル1322Cのエントリリフレッシュ処理について説明する。図38は、図31に示すハッシュテーブル1322Cのエントリリフレッシュ処理の処理手順を示すフローチャートである。
図38に示すステップS101及びステップS102は、図20に示すステップS41及びステップS42と同じ処理である。そして、フィルタ部4132は、検知bitをデフォルト値に変更して(ステップS103)、エントリをリフレッシュする。
[実施の形態4の効果]
このように、実施の形態4に係る登録装置410は、衝突検知bitを計算し、ハッシュテーブル1322Bに登録されている検知bitと比較することによって、実施の形態4と同様に、衝突の発生を検知することができる。さらに、登録装置410は、衝突が検知されたフローについては、開番地法を用いて、別の空のエントリに登録する。
このように、登録装置310は、異なる内容のinnerヘッダ情報及びouterヘッダ情報の組み合わせが、同一のハッシュ値として計算された場合であっても、一方の組み合わせをハッシュテーブル1322Cの空のエントリに登録する。この結果、実施の形態4によれば、情報の登録漏れを防止するとともに、DB20への登録負荷を低減することを可能にする。
[実施の形態5]
次に、実施の形態5について説明する。実施の形態5は、各機能の消費リソース量情報を基に、各機能をサーバ内の各コアに配備する。図39は、実施の形態5に係る登録装置の構成の一例を示す図である。
図39に示すように、実施の形態5に係る登録装置510は、図3に示す制御部13に代えて、制御部513を有する。制御部513は、制御部13と同様の機能を有する。制御部513は、フォーマット変換部5134、ヘッダ登録部130及び振分部5137を有する。
フォーマット変換部5134は、ネットワークNを介して入力されたトンネルパケットを、フォーマットによらず、解析可能であるフォーマットに変換する。フォーマット変換部5134は、トンネリングを行うためにEtherヘッダ以降に付加された任意のプロトコルヘッダがスタックされたパケットから、解析対象以外のプロトコルヘッダを除外したフォーマットに変換する。フォーマット変換部5134は、判別部5135及び変換部5136を有する。
判別部5135は、予め作成された判別ルールにしたがって、入力されたパケットの各プロトコルヘッダの種別と配置とを示すプロトコルスタックパターンを判別する。判別ルールは、例えば、他の装置で予め作成され、この判別部5135に事前設定される。
判別ルールは、プロトコルスタックパターンが既知のパケットを下位ヘッダから順次捜査して作成されたプロトコルスタックパターンを判別する判別木、プロトコルスタックパターンが既知のパケットの内部の特定bit列を基に作成されたプロトコルスタックパターンを判別する判別論理式、または、標準化された各プロトコルのヘッダ情報を示すプロトコルconfigファイルである。判別ルールは、判別用情報122として、記憶部12に記憶される。
また、判別部5135は、複数の判別ルールを組み合わせて使用してもよい。例えば、判別部5135は、判別木または判別論理式を用いて判別が不可能なパケットについては、プロトコルconfigファイルを用いてプロトコルスタックパターンを判別してもよい。
また、フォーマット変換部5134は、判別ルールを作成する学習部を有してもよい。学習部は、入力されたパケットについてプロトコルconfigファイルを用いて学習し、パケットのプロトコルスタックパターンを判別する判別ルールを作成する。学習部は、プロトコルconfigファイルを用いてパケットの下位ヘッダから順次捜査してプロトコルスタックパターンを解析し、解析結果を基にパケット内の特定bit列を基にプロトコルスタックパターンを判別する判別木または判別論理式を作成する。
変換部5136は、判別部5135が判別したプロトコルスタックパターンを基に、パケットのフォーマットを、解析処理対象以外のプロトコルヘッダを除外したフォーマットに変換する。例えば、変換部5136は、トンネリングを行うためにEtherヘッダ以降に付加された任意のプロトコルヘッダがスタックされたパケットに対しパケットストリッピングを行う。
ヘッダ登録部130は、一連のフローの最初のパケットのインナーヘッダ情報及びアウターヘッダ情報をDB20に登録する。ヘッダ登録部130は、抽出部131、フィルタ部132及び登録部133を有する。フィルタ部132は、フィルタ部2132,3132,4132のいずれかであってもよい。
振分部5137は、登録装置510における各機能をCPUコア上で動作させた際に処理オーバーが生じるpps(packets per second)量、言い換えると、パケットロスが生じるpps量を事前に計測し、該計測したpps量の値を基に各コアへの各機能の配備を事前に振り分ける。
[振分処理の流れ]
具体的に、振分部5137による各コアへの各機能の振分処理の流れについて説明する。図40は、実施の形態5における振分処理の流れを説明する図である。
図40では、サーバが、登録装置510に対応する。また、図40のコアのうち、Rxは、パケット受信機能を有する。Txは、パケット送信機能を有する。fctは、フォーマット変換部5134のフォーマット変換機能を有する。fctは、ヘッダ登録部130の抽出部131の機能も有する。in-outは、ヘッダ登録部130のフィルタ部132及び登録部133の機能を有する。
fctまたはin-outは、パケット受信(CPU)よりも低速となる。また、パケット受信(CPU)は、パケット受信(NIC)よりも低速となる。そのため, システム全体の処理量を向上させるため、さらに「パケット受信(NIC)」及び「パケット受信(CPU)」でパケットの振り分けを行う必要がある。
そこで、システム全体で、ある目標のトラヒック量を処理するため,以下の手順を行うことによって機能配備を行う。まず、振分部5137は、各機能をCPUコア上で動作させた際に、処理オーバーが生じるpps量を、事前検証を通じて計測する(図40の(1)参照)。そして、振分部5137は、目標のpps量を処理するために、各機能部が要求するCPUコア数を計算し、各機能をコアごとに分散させて動作させる(図40の(2)参照)。
例えば、NICのキューは短く、パケットロスを生じさせないためには、高速にデキュー/エンキューする必要がある。そのため、パケット受信/パケット送信は、それぞれ単独のコア(例えば、NICのコアRx、NICのコアTx)で動作させる。そして、fctとin-outとを同じコアで動作させると、fctの速度が劣化するため、fctとin-outとは、分離し、各々独立したコアで動作させる。すなわち、コアfctとコアin-outとは、図40に示すように、それぞれ異なるコアで動作させる。
[振分処理の処理手順]
次に、実施の形態5に係る振分処理の処理手順について説明する。図41は、実施の形態に係る振分処理の処理手順のフローチャートである。
図41に示すように、振分部5137は、登録装置510における各機能をCPUコア上で動作させた際に処理オーバーが生じるpps量を事前に計測する(ステップS111)。そして、振分部5137は、各機能部が要求するCPUコア数を計算し(ステップS112)、計測したpps量の値を基に各コアへの各機能の配備を事前に振り分ける(ステップS113)。
[実施の形態5の効果]
このように、実施の形態5では、各機能をCPUコア上で動作させた際に,パケットロスが生じるpps量を事前に把握し、その値を基に、各コアへの各機能の配備を事前に決定する。この結果、実施の形態5によれば、システム全体で、ある目標ppsのトラヒックを、パケットロスなく、フォーマット変換及びinnerヘッダ情報とouterヘッダ情報の対応付けを処理する機能の配備を決定することができる。
[実施の形態6]
次に、実施の形態6について説明する。実施の形態6において、登録装置は、分散された各コアから、時刻情報が付与されたインナーヘッダ情報及びアウターヘッダ情報を集約して収集し、同一のDBに登録する。図42は、実施の形態6におけるDB20に対する情報の投入の流れを説明する図である。
図42に示すように、実施の形態6に係る登録装置(サーバ)は、分散された各コア(コアin-out)から、時刻情報が付された、パケットのinnerヘッダ情報とouterヘッダ情報との対応付け情報を集約して収集し、同一のDB20に投入する(図42の(1)及び図42の矢印Y1参照)。
[実施の形態6の効果]
トンネルプロトコルを用いたトラヒックは、時刻変化によりinnerヘッダ情報とouterヘッダ情報との組み合わせが変化する。これに対し、実施の形態6では、分散された各コアから、時刻情報が付された、パケットのinnerヘッダ情報とouterヘッダ情報との対応付け情報を集約して収集し、同一のDB20に投入する。
これによって、実施の形態6では、時刻経過によりinnerヘッダ情報とouterヘッダ情報との対応関係が変化した場合でも、DB20で対応付け情報を最新化可能とする。この結果、実施の形態6によれば、innerヘッダ情報とouterヘッダ情報との組み合わせが変化した際でも、ユーザは、最新のinnerヘッダ情報とouterヘッダ情報との対応関係を検索することができる。
[実施の形態7]
次に、実施の形態7について説明する。実施の形態7では、フローコレクタと連携することによって、入力されるトラフィックのppsの分布及びコアの使用量に基づいてフローの振分先を決定する。
図43は、実施の形態7に係る通信システムの構成の一例を示す図である。図43に示すように、実施の形態7に係る通信システム701は、図1に示す通信システム1と比して、フローコレクタ740を有する。
フローコレクタ740は、入力されるフローのppsの分布情報及びコアの使用量に基づいて、パケット処理を行う各コアが処理オーバーとなる確率を最小とするようにフローの振り分けを制御する。
[振分制御処理]
次に、図44及び図45を参照して、フローコレクタ740によるフローの振分制御処理について説明する。図44及び図45は、図43に示すフローコレクタ740によるフローの振分制御処理を説明する図である。
図44に示すように、フローコレクタ740のpps分布計測部741には、常時、xFlowが送出されており、pps分布計測部741は、入力されるフローのppsの分布情報を計算する。具体的には、pps分布計測部741は、各フローのppsの過去データを保持し、時間平均、分散を計算する(図43の#常時参照)。フローコレクタ740では、pps分布計測部741からは、フローのppsの分布情報[(flow,μ,σ)]が振分制御部742に出力される。
システムに入力されるトンネルトラフィックフローは、時間によりppsの揺らぎがある。そこで、振分制御部742は、入力されるフローのppsの分布情報及びコアの使用量に基づいて、パケット処理を行う各コアが処理オーバーとなる確率を最小とするようにフローの振り分けを制御する。なお、ここでは、キャリアNWで転送の都合上使用されるトンネル中には多数フローが入っており、各フローのppsの足し合わせは、中心極点定理より正規分布に近似できると暗に仮定している。
振分制御部742は、事前に、パケット処理機能が1コアで処理可能なpps量が設定されている。そして、振分制御部742は、ユーザから、入力フロー(flow)の指示を受けると(図44の#0参照)、振分先コアを計算する(図44の#1参照)。そして、振分制御部742は、登録装置510に、新規入力flow及び振分先コアを送信し、フローの振り分けを指示する(図44の#2参照)。登録装置510では、振分部5137(不図示)は、フローコレクタ740による振分制御にしたがって、各コアへの各機能の配備を振り分ける。
続いて、図45を参照して、振分制御部742による振分先コアの計算処理について説明する。振分制御部742は、フローのppsの分布情報[(flow,μ,σ)]から、フローごとに、μ(pps)、σ(pps^2)を対応付けた表7421を作成する(図45の#1-0参照)。この際、振分制御部742は、表7421において、各フローが引込済みであるか否かを対応付ける。そして、振分制御部742は、表7421において、引き込み済みであるフローについては、振分先のコア情報を対応付ける。
続いて、振分制御部742は、新規の入力flowを受け付けると、表7421を基に、仮に新規入力flowを各コアに振り分けた際に、コアの処理可能ppsを超える確率を計算する(図45の#1-1参照)。そして、振分制御部742は、#1-1において消え算した確率が最も小さいコアを、新規の入力flow(引き込みflow)の振分先コアに選定する(図45の#1-2参照)。
[振分制御処理の処理手順]
次に、通信システム701におけるコアへの振分制御処理の処理手順を説明する。図46は、図43に示す通信システム701におけるコアへの振分制御処理の処理手順を示すシーケンス図である。
図46に示すように、フローコレクタ740は、送出されたトンネルトラフィックフローを取得すると(ステップS121)、各フローのppsの過去データを保持し、フローのppsの分布情報を計算する(ステップS122)。
そして、フローコレクタ740は、新規入力フローの指示を受けると(ステップS123)、パケット処理を行う各コアが処理オーバーとなる確率を最小とするように振分先コアを選定する(ステップS124)。フローコレクタ740は、入力フロー、振分先コアを示す情報を、振分制御情報として登録装置510に送信する(ステップS125)。登録装置510は、フローコレクタ740による振分制御にしたがって、式フローを、選定されたコアに振り分ける(ステップS126)。
[実施の形態7の効果]
このように、実施の形態7では、フローコレクタ740と連携することによって、時間や時期によるトンネルトラフィックフローの揺らぎを考慮しながら、パケット処理を行う登録装置510の各コアが処理オーバーとなる確率を最小とするようにフローの振り分けを制御する。したがって、実施の形態7によれば、特定のコアへの処理の集中を防ぎ、パケットロスを低減することが可能になる。
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図47は、プログラムが実行されることにより、登録装置10,210,310,410,510が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、登録装置10,210,310,410,510の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、登録装置10,210,310,410,510における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
1,701 通信システム
10,210,310,410,510 登録装置
20 データベース(DB)
30 検索装置
11 通信部
12 記憶部
13,213,313,413,513 制御部
121 フロー継続時間分布情報
130 ヘッダ登録部
131 抽出部
132,2132,3132,4132 フィルタ部
133 登録部
740 フローコレクタ
5134 フォーマット変換部
5135 判別部
5136 変換部
5137 振分部
N ネットワーク

Claims (8)

  1. カプセル化パケットのインナーヘッダ情報及びアウターヘッダ情報を抽出する抽出部と、
    前記インナーヘッダ情報及び前記アウターヘッダ情報のハッシュ値を、一連のフローの最初のパケットが到着したか否かを示す到着情報をアドレス毎に登録したハッシュテーブルのアドレスとして計算し、前記ハッシュテーブルを基に、前記一連のフローの最初のパケットのインナーヘッダ情報及びアウターヘッダ情報を通過させるフィルタ部と、
    前記フィルタ部が通過させた前記最初のパケットのインナーヘッダ情報とアウターヘッダ情報とを対応付けてデータベースに登録する登録部と、
    を有することを特徴とする登録システム。
  2. 前記ハッシュテーブルは、前記一連のフローの最初のパケットにおけるインナーヘッダ情報、アウターヘッダ情報及び前記アドレスのハッシュ値を、検知値として、前記アドレスに対応付けて登録し、
    前記フィルタ部は、処理対象のパケットにおけるインナーヘッダ情報、アウターヘッダ情報及び前記アドレスのハッシュ値を衝突検知値として計算し、前記ハッシュテーブルのうち前記処理対象のパケットのアドレスと同アドレスのエントリにおいて、前記到着情報が未到着であることを示す場合には、前記処理対象のパケットのインナーヘッダ情報及びアウターヘッダ情報を前記最初のパケットのインナーヘッダ情報及びアウターヘッダ情報として通過させ、前記到着情報が到着済みであることを示し、かつ、前記検知値と前記衝突検知値とが異なる場合には、衝突を検知することを特徴とする請求項1に記載の登録システム。
  3. 前記フィルタ部は、衝突を検知した場合、前記処理対象のパケットのインナーヘッダ情報及びアウターヘッダ情報をサンプリングして通過させる、または、前記ハッシュテーブルの空のエントリに前記処理対象のパケットにおける前記衝突検知値を検知値として登録することを特徴とする請求項2に記載の登録システム。
  4. 当該登録システムにおける各機能をCPUコア上で動作させた際にパケットロスが生じるpps(packets per second)量を事前に計測し、該計測したpps量の値を基に各コアへの各機能の配備を事前に振り分ける振分部と、
    をさらに有することを特徴とする請求項1~3のいずれか一つに記載の登録システム。
  5. 前記登録部は、分散された各コアから、時刻情報が付与されたインナーヘッダ情報及びアウターヘッダ情報を集約して収集し、同一のデータベースに登録することを特徴とする請求項4に記載の登録システム。
  6. 入力されるフローのppsの分布情報及びコアの使用量に基づいて、パケット処理を行う各コアが処理オーバーとなる確率を最小とするようにフローの振り分けを制御するフローコレクタをさらに有し、
    前記振分部は、前記フローコレクタによる振分制御にしたがって、各コアへの各機能の配備を振り分けることを特徴とする請求項4または5に記載の登録システム。
  7. 登録システムが実行する登録方法であって、
    カプセル化パケットのインナーヘッダ情報及びアウターヘッダ情報を抽出する工程と、
    前記インナーヘッダ情報及び前記アウターヘッダ情報のハッシュ値を、一連のフローの最初のパケットが到着したか否かを示す到着情報をアドレス毎に登録したハッシュテーブルのアドレスとして計算し、前記ハッシュテーブルを基に、前記一連のフローの最初のパケットのインナーヘッダ情報及びアウターヘッダ情報を通過させる工程と、
    通過した前記最初のパケットのインナーヘッダ情報とアウターヘッダ情報とを対応付けてデータベースに登録する工程と、
    を含んだことを特徴とする登録方法。
  8. カプセル化パケットのインナーヘッダ情報及びアウターヘッダ情報を抽出するステップと、
    前記インナーヘッダ情報及び前記アウターヘッダ情報のハッシュ値を、一連のフローの最初のパケットが到着したか否かを示す到着情報をアドレス毎に登録したハッシュテーブルのアドレスとして計算し、前記ハッシュテーブルを基に、前記一連のフローの最初のパケットのインナーヘッダ情報及びアウターヘッダ情報を通過させるステップと、
    通過した前記最初のパケットのインナーヘッダ情報とアウターヘッダ情報とを対応付けてデータベースに登録するステップと、
    をコンピュータに実行させることを特徴とする登録プログラム。
JP2019074324A 2019-04-09 2019-04-09 登録システム、登録方法及び登録プログラム Active JP7135980B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019074324A JP7135980B2 (ja) 2019-04-09 2019-04-09 登録システム、登録方法及び登録プログラム
US17/602,033 US20220182361A1 (en) 2019-04-09 2020-03-26 Registration system, registration method, and registration program
PCT/JP2020/013678 WO2020209085A1 (ja) 2019-04-09 2020-03-26 登録システム、登録方法及び登録プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019074324A JP7135980B2 (ja) 2019-04-09 2019-04-09 登録システム、登録方法及び登録プログラム

Publications (2)

Publication Number Publication Date
JP2020174257A JP2020174257A (ja) 2020-10-22
JP7135980B2 true JP7135980B2 (ja) 2022-09-13

Family

ID=72750821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019074324A Active JP7135980B2 (ja) 2019-04-09 2019-04-09 登録システム、登録方法及び登録プログラム

Country Status (3)

Country Link
US (1) US20220182361A1 (ja)
JP (1) JP7135980B2 (ja)
WO (1) WO2020209085A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200403922A1 (en) * 2019-06-24 2020-12-24 Vmware, Inc. Load balancing of l2vpn traffic over multiple ipsec vpn tunnels
US20240121193A1 (en) * 2021-02-02 2024-04-11 Nippon Telegraph And Telephone Corporation Traffic engineering device, traffic engineering method, and traffic engineering program
JPWO2022172456A1 (ja) * 2021-02-15 2022-08-18
US20240129221A1 (en) 2021-02-16 2024-04-18 Nippon Telegraph And Telephone Corporation Conversion device, conversion method, and conversion program
WO2022176034A1 (ja) * 2021-02-16 2022-08-25 日本電信電話株式会社 変換装置、変換方法及び変換プログラム
US11818045B2 (en) 2021-04-05 2023-11-14 Bank Of America Corporation System for performing dynamic monitoring and prioritization of data packets
US11743156B2 (en) * 2021-04-05 2023-08-29 Bank Of America Corporation System for performing dynamic monitoring and filtration of data packets

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318739A (ja) 2001-02-14 2002-10-31 Mitsubishi Electric Corp 不正侵入データ対策処理装置、不正侵入データ対策処理方法及び不正侵入データ対策処理システム
WO2018066228A1 (ja) 2016-10-06 2018-04-12 日本電信電話株式会社 フロー情報解析装置、フロー情報解析方法及びフロー情報解析プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9398043B1 (en) * 2009-03-24 2016-07-19 Juniper Networks, Inc. Applying fine-grain policy action to encapsulated network attacks
US9167501B2 (en) * 2011-08-29 2015-10-20 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US9692820B2 (en) * 2013-04-06 2017-06-27 Citrix Systems, Inc. Systems and methods for cluster parameter limit
US9356866B1 (en) * 2014-01-10 2016-05-31 Juniper Networks, Inc. Receive packet steering for virtual networks
US10432484B2 (en) * 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318739A (ja) 2001-02-14 2002-10-31 Mitsubishi Electric Corp 不正侵入データ対策処理装置、不正侵入データ対策処理方法及び不正侵入データ対策処理システム
WO2018066228A1 (ja) 2016-10-06 2018-04-12 日本電信電話株式会社 フロー情報解析装置、フロー情報解析方法及びフロー情報解析プログラム

Also Published As

Publication number Publication date
US20220182361A1 (en) 2022-06-09
JP2020174257A (ja) 2020-10-22
WO2020209085A1 (ja) 2020-10-15

Similar Documents

Publication Publication Date Title
JP7135980B2 (ja) 登録システム、登録方法及び登録プログラム
JP6535809B2 (ja) 異常検出装置、異常検出システム、及び、異常検出方法
US9866540B2 (en) System and method for rule matching in a processor
US7609629B2 (en) Network controller and control method with flow analysis and control function
US10097464B1 (en) Sampling based on large flow detection for network visibility monitoring
EP2868045B1 (en) A method of and network server for detecting data patterns in an input data stream
US9979624B1 (en) Large flow detection for network visibility monitoring
EP3905622A1 (en) Botnet detection method and system, and storage medium
US10536360B1 (en) Counters for large flow detection
CN108701187A (zh) 混合硬件软件分布式威胁分析
US10567426B2 (en) Methods and apparatus for detecting and/or dealing with denial of service attacks
US8555374B2 (en) High performance packet processing using a general purpose processor
CN101460983A (zh) 恶意攻击检测系统和相关的使用方法
US20130100803A1 (en) Application based bandwidth control for communication networks
CN109842588B (zh) 网络数据检测方法及相关设备
Kostas et al. IoTDevID: A behavior-based device identification method for the IoT
US10003515B1 (en) Network visibility monitoring
CN109194608B (zh) 一种基于流的DDoS攻击与闪拥事件检测方法
KR101448550B1 (ko) 트래픽 분류 장치 및 방법
WO2016182582A1 (en) Methods, systems, and non-transitory computer readable media for generating a tree structure with nodal comparison fields and cut values for rapid tree traversal and reduced numbers of full comparisons at leaf nodes
CN110493253B (zh) 一种基于树莓派设计的家用路由器的僵尸网络分析方法
WO2022156293A1 (zh) 处理告警日志的方法、装置及存储介质
US11870693B2 (en) Kernel space based capture using intelligent packet selection paradigm and event output storage determination methodology
US11863416B2 (en) Imparting device, imparting method, and imparting program
CN111368294B (zh) 病毒文件的识别方法和装置、存储介质、电子装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210721

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R150 Certificate of patent or registration of utility model

Ref document number: 7135980

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150