[go: up one dir, main page]

WO2021095179A1 - 振り分け装置、振り分け方法、振り分けプログラム - Google Patents

振り分け装置、振り分け方法、振り分けプログラム Download PDF

Info

Publication number
WO2021095179A1
WO2021095179A1 PCT/JP2019/044603 JP2019044603W WO2021095179A1 WO 2021095179 A1 WO2021095179 A1 WO 2021095179A1 JP 2019044603 W JP2019044603 W JP 2019044603W WO 2021095179 A1 WO2021095179 A1 WO 2021095179A1
Authority
WO
WIPO (PCT)
Prior art keywords
header
distribution
frame
sorting
packet
Prior art date
Application number
PCT/JP2019/044603
Other languages
English (en)
French (fr)
Inventor
裕平 林
浩 大澤
千晴 森岡
寛規 井上
孟朗 西岡
勇樹 三好
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/776,299 priority Critical patent/US20220400079A1/en
Priority to JP2021555707A priority patent/JP7239016B2/ja
Priority to PCT/JP2019/044603 priority patent/WO2021095179A1/ja
Publication of WO2021095179A1 publication Critical patent/WO2021095179A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/35Flow control; Congestion control by embedding flow control information in regular packets, e.g. piggybacking

Definitions

  • the present invention relates to a sorting device, a sorting method, and a sorting program.
  • IPFIX IE315, sFlow Header Sampling, etc. IPFIX IE315, sFlow Header Sampling, etc.
  • this function is applied to a router in the network through which the tunneling packet flows, the Outer part and Inner part of the tunneling packet are sampled at the same time. Therefore, the router can analyze the communication flow of the Inner packet included in the tunnel passing through a certain router by counting the pair of the sample Outer part and Inner part for each exporter.
  • processing threads are parallelized to distribute the load in order to improve communication flow analysis.
  • FIG. 7 is a diagram illustrating a packet distribution process according to the prior art.
  • a header sampling xFlow packet such as IPFIX IE315, sFlow header sampling, etc. that holds the information of the inner part of the tunnel packet in the user header is input to the general-purpose server will be described as an example (see (1) in FIG. 7). ).
  • the processing threads are parallelized in order to improve the processing capacity per chassis, the xFlow packets having the same "same source exporter" and "same Outer header in the sample” are the same. It is necessary to perform distribution so that it is processed by the processing thread of (see (2) in FIG. 7). This is because the statistical processing of Inner packets with the same Outer header sent from the same exporter is completed by the same processing thread.
  • the RSS (Receive Side Scaling) function described in Non-Patent Document 1 is a NIC (Network Interface Card) that load balances packet processing based on 5-tuple, which is information existing at a fixed position of a packet. ) HW function. That is, according to the RSS (Receive Side Scaling) function, packets can be distributed on a 5-tuple basis.
  • the header sampling xFlow is distributed to the same processing thread for each tunnel of the source collector, and the signal flow analysis is completed.
  • the present invention has been made in view of the above, and an object of the present invention is to provide a distribution device, a distribution method, and a distribution program capable of appropriately executing load distribution of processing threads that perform communication flow analysis.
  • the sorting device acquires a frame and a sorting key, embeds the sorting key in the header of the frame, and based on the value of the sorting key in the header, It is characterized by having a distribution function unit for distributing frames to processing threads.
  • the sorting method according to the present invention is a sorting method executed by the sorting device, which acquires a frame and a sorting key, embeds the sorting key in the header of the frame, and based on the value of the sorting key in the header, the frame. Is included in the process of allocating the above to the processing thread.
  • the distribution program acquires a frame and a distribution key, embeds the distribution key in the header of the frame, and distributes the frame to the processing thread based on the value of the distribution key in the header. Let it run.
  • FIG. 1 is a diagram illustrating a sorting process according to the embodiment.
  • FIG. 2 is a diagram showing an example of the configuration of the processing device according to the embodiment.
  • FIG. 3 is a diagram illustrating a flow of sorting processing by the sorting unit shown in FIG.
  • FIG. 4 is a diagram illustrating a flow of sorting processing by the sorting unit shown in FIG.
  • FIG. 5 is a diagram illustrating a processing procedure of the distribution processing according to the embodiment.
  • FIG. 6 is a diagram showing an example of a computer in which a processing device is realized by executing a program.
  • FIG. 7 is a diagram illustrating a packet distribution process according to the prior art.
  • FIG. 8 is a diagram illustrating a packet distribution process according to the prior art.
  • FIG. 9 is a diagram illustrating a packet distribution process according to the prior art.
  • FIG. 1 is a diagram illustrating a sorting process according to the embodiment. As shown in FIG. 1, the sorting process by the sorting function unit 13 in the present embodiment will be described.
  • the distribution function unit 13 in the present embodiment acquires a frame and a distribution key, embeds the distribution key in the header of the frame, and distributes the frame to the processing thread based on the value of the distribution key in the header.
  • the distribution function unit 13 embeds, for example, the distribution key "A" in the Ether header of the Ether frame based on the frame and the distribution key (see (1) in FIG. 1). Then, the distribution function unit 13 distributes frames to the processing thread that performs the communication flow analysis based on the distribution key in the Ether header (see (2) in FIG. 1).
  • the distribution function unit 13 distributes the frame in which "A" is embedded in the Ether header to the processing thread A. Further, the distribution function unit 13 distributes the frame in which "B" is embedded in the Ether header to the processing thread B.
  • the frame and the distribution key are acquired, the distribution key is embedded in the Ether header of the frame, and the frame is distributed to the processing thread based on the value of the distribution key in the Ether header. Therefore, according to the present embodiment, it is possible to analyze the communication flow while distributing the load of the processing thread even for the tunneled flow.
  • FIG. 2 is a diagram showing an example of the configuration of the processing device according to the embodiment.
  • the tunneling packets in the frame are distributed to the processing threads, and the communication flow analysis is performed.
  • the processing device 100 uses header sampling xFlow (eg, sFlow header sampling, IPFIX IE315) to sample a part of the beginning of the tunneling packet inside the tunneling network for the convenience of packet transfer.
  • header sampling xFlow eg, sFlow header sampling, IPFIX IE315
  • IPFIX IE315 IPFIX IE315
  • a predetermined program is read into a computer or the like including a ROM (Read Only Memory), a RAM (Random Access Memory), a CPU (Central Processing Unit), etc., and the CPU executes the predetermined program. It is realized by. Further, the processing device 100 has a communication interface for transmitting and receiving various information to and from other devices connected via a network or the like. Then, the processing device 100 has a NIC (Network Interface Card) or the like, and communicates with other devices via a telecommunication line such as a LAN (Local Area Network) or the Internet.
  • NIC Network Interface Card
  • the processing device 100 includes a sorting unit 10 (sorting device) that sorts flow packets, and a plurality of parallel processing threads 20 that perform signal flow analysis.
  • sorting unit 10 sorting device
  • parallel processing threads 20 that perform signal flow analysis.
  • the distribution unit 10 distributes the flow packet that has received the input to the processing thread by using the function of the distribution function unit 13 described above.
  • the distribution unit 10 is arranged at the entrance of the receiving chassis of the header sampling xFlow packet, distributes the flow packet to a plurality of flow packet processing threads based on the xFlow header information and the Outer header information in the sample, and distributes the flow packet to the processing thread. Enables load distribution.
  • the flow packet input to the distribution unit 10 is a packet in which an arbitrary protocol header added to the Ether header for tunneling is stacked. Also, packets destined for a certain collector from the same exporter have the same header values.
  • the distribution unit 10 includes a header discrimination unit 11 (discrimination unit), a hash calculation unit 12 (calculation unit), and a distribution function unit 13.
  • the header determination unit 11 analyzes the flow packet and determines the xFlow header information and the Outer header position in the sample.
  • the header determination unit 11 analyzes the protocol stack of the flow packet and specifies the xFlow header information and the Outer header position in the sample.
  • the header discrimination unit 11 may discriminate the type of header, the Outer header in the sample, and the like by using the method described in Japanese Patent Application No. 2019-097069.
  • the header discriminating unit 11 discriminates the protocol stack pattern indicating the type and arrangement of each protocol header of the input flow packet according to the discriminating rule.
  • the protocol stack pattern is information indicating the type and arrangement of each protocol header.
  • the header discriminating unit 11 searches for packets having a known protocol stack pattern in order from the lower header, and discriminates a discriminant tree for discriminating the protocol stack pattern, and a specific bit inside a packet having a known protocol stack pattern. Discrimination to discriminate the protocol stack pattern created based on the column
  • the protocol stack pattern of the input packet is discriminated by using the discriminant logical expression or the protocol config file showing the header information of each standardized protocol.
  • the discrimination rule may be one generated in advance by another device, or may be one generated by learning the input packet using the protocol config file.
  • the header discrimination unit 11 may discriminate the header by using another method.
  • the hash calculation unit 12 performs hash calculation with the xFlow header information and the Outer header position in the sample as inputs, and outputs the hash value.
  • the hash calculation unit 12 outputs the same hash value for flows having the same exporter and the same Outer header. This hash value functions as a distribution key.
  • the distribution function unit 13 writes the hash value output from the hash calculation unit 12 into the Ether header of the flow packet as a distribution key, and distributes the flow packet to the processing thread based on the Ether header. Since the same hash value is embedded as a distribution key for flows having the same exporter and the same Outer header, the distribution function unit 13 can distribute each flow packet to the corresponding processing thread.
  • the header sampling packet has the same header value from the same exporter, and the packet for a certain collector has the same header value.
  • the distribution unit 10 processes the subsequent flow in order to appropriately distribute these packets.
  • the header determination unit 11 analyzes the protocol stack of the flow packet and specifies the xFlow header information and the Outer header position in the sample (see (1) in FIG. 3). Specifically, when the header determination unit 11 receives the input of the header sampling packet, the header discrimination unit 11 receives the L2 header type (VLAN (Virtual LAN), MPLS (Multi-Protocol Label Switching), etc.) and xFlow type (for this packet). sFlow, IPFIX, etc.), Outer header, etc. in the sample are discriminated (see (1) in FIG. 4). Then, the header discrimination unit 11 extracts the xFlow header information and the Outer header of this header sampling packet as sample information based on the discrimination result (see (1) of FIG. 4), and outputs the sample information to the hash calculation unit 12.
  • L2 header type VLAN (Virtual LAN), MPLS (Multi-Protocol Label Switching), etc.
  • xFlow type for this packet.
  • the hash calculation unit 12 performs hash calculation that outputs the processing thread number by inputting the xFlow header information and the Outer header information in the sample so that the flow of the same exporter and the same Outer is processed by the same processing thread (Fig.). See 3 (2)). That is, the hash calculation unit 12 takes the sample information output from the header determination unit 11 as input, calculates the processing thread number, and outputs it (see (2) in FIG. 4).
  • the distribution function unit 13 embeds the hash value output from the hash calculation unit 12 in the Ether header of the header sampling packet, and distributes the hash value to the processing thread based on the Ether header ((3) in FIG. 3 and (3) in FIG. 4). )reference).
  • the packet of the Outer header "O-1” is embedded in the Ether net as a distribution key with the xFlow header information "FN" and the Outer header "O-1" as inputs. Therefore, it is distributed to the processing thread 20A according to this distribution key.
  • the hash value is embedded in the Ether net as the distribution key by inputting the xFlow header information "FA” and Outer header "O-2", so this distribution key. According to, it is distributed to the processing thread 20M.
  • FIG. 5 is a diagram illustrating a processing procedure of the distribution processing according to the embodiment.
  • the header discriminating unit 11 when the header discriminating unit 11 receives the input of the packet (step S1), the header discriminating unit 11 analyzes the flow packet and performs a header discriminating process for discriminating the xFlow header information and the Outer header position in the sample (step S1). S2).
  • the hash calculation unit 12 performs a hash calculation with the xFlow header information and the Outer header position in the sample as inputs, and performs a hash calculation process for outputting the hash value (step S3).
  • the distribution function unit 13 writes the hash value output from the hash calculation unit 12 as a distribution key in the Ether header of the flow packet, and distributes the flow packet to the processing thread based on the Ether header (step). S4).
  • the frame and the distribution key are acquired, the distribution key is embedded in the header of the frame, and the frame is distributed to the processing thread based on the value of the distribution key in the header.
  • the load distribution of the processing thread can be appropriately executed by distributing the frame to the processing thread using the value of the distribution key in the header.
  • the distribution unit 10 analyzes the packet to which an arbitrary protocol header is added after the Ether header in order to perform tunneling, and determines the xFlow header information and the Outer header position in the sample. Then, the distribution unit 10 performs a hash calculation with the xFlow header information and the Outer header position in the sample as inputs, and outputs the hash value. The distribution unit 10 writes the hash value as a distribution key in the Ether header of the packet, and distributes the packet to the processing thread based on the Ether header.
  • the hash value used as the distribution key is calculated by inputting the xFlow header information and the Outer header position in the sample. Therefore, in the present embodiment, packets having the same xFlow header information and Outer header position in the sample are distributed to the same processing thread because the same hash value is used as the distribution key.
  • the signal flow analysis of the Inner packet with the same Outer sent from the same exporter is performed by the same processing thread. It will be possible to complete it. Therefore, according to the present embodiment, the signal flow analysis can be executed with high accuracy. Then, according to the present embodiment, even for the tunneled flow, the distribution to the processing thread can be appropriately executed, so that the load distribution can be appropriately executed.
  • each component of each of the illustrated devices is a functional concept and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of the device is functionally or physically distributed in arbitrary units according to various loads and usage conditions. Can be integrated and configured. Further, each processing function performed by each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.
  • FIG. 6 is a diagram showing an example of a computer in which the processing device 100 is realized by executing a program.
  • the computer 1000 has, for example, a memory 1010 and a CPU 1020.
  • the computer 1000 also has a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. Each of these parts is connected by a bus 1080.
  • Memory 1010 includes ROM 1011 and RAM 1012.
  • the ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1090.
  • the disk drive interface 1040 is connected to the disk drive 1100.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100.
  • the serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120.
  • the video adapter 1060 is connected to, for example, the display 1130.
  • the hard disk drive 1090 stores, for example, an OS (Operating System) 1091, an application program 1092, a program module 1093, and program data 1094. That is, the program that defines each process of the processing device 100 is implemented as a program module 1093 in which a code that can be executed by a computer is described.
  • the program module 1093 is stored in, for example, the hard disk drive 1090.
  • a program module 1093 for executing a process similar to the functional configuration in the processing device 100 is stored in the hard disk drive 1090.
  • the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).
  • the setting data used in the processing of the above-described embodiment is stored as program data 1094 in, for example, a memory 1010 or a hard disk drive 1090. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 into the RAM 1012 as needed, and executes the program.
  • the program module 1093 and the program data 1094 are not limited to those stored in the hard disk drive 1090, but may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module 1093 and the program data 1094 may be stored in another computer connected via a network (LAN, WAN (Wide Area Network), etc.). Then, the program module 1093 and the program data 1094 may be read by the CPU 1020 from another computer via the network interface 1070.
  • LAN Local Area Network
  • WAN Wide Area Network
  • Processing device 10 Sorting unit 11 Header discriminating unit 12 Hash calculation unit 13 Sorting function unit 20 Processing thread

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

振り分け部(10)は、フレームと振り分けキーとを取得し、フレームのヘッダに振り分けキーを埋め込み、ヘッダの振り分けキーの値に基づいて、フレームを処理スレッドに振り分ける振り分け機能部(13)を有する。

Description

振り分け装置、振り分け方法、振り分けプログラム
 本発明は、振り分け装置、振り分け方法、振り分けプログラムに関する。
 従来、パケットの先頭バイトをサンプルし、xFlowとして送出するルータ機能(IPFIX IE315,sFlow Header Sampling等)がある。トンネリングパケットが流れるネットワーク内のルータに、この機能を適用すると、トンネリングパケットのOuter部及びInner部が同時にサンプルされる。このため、ルータは、サンプルのOuter部及びInner部のペアをエクスポーター毎にカウントすることで、あるルータを通過するトンネルに含まれるInnerパケットの通信フロー分析を行うことができる。
"Receive Side Scalingの概要",[令和1年11月7日検索],インターネット<URL:https://docs.microsoft.com/ja-jp/windows-hardware/drivers/network/introduction-to-receive-side-scaling>
 このルータ機能においては、通信フロー分析の向上のために処理スレッドを並列化し、負荷分散を行う。
 図7は、従来技術に係るパケットの振り分け処理を説明する図である。図7では、ユーザヘッダにトンネルパケットのInner部の情報を保持するIPFIX IE315,sFlow header sampling等のヘッダサンプリングxFlowパケットが汎用サーバに入力される場合を例に説明する(図7の(1)参照)。図7に示すように、筐体あたりの処理能力向上のため、処理スレッドを並列化する場合、「送出元エクスポーターが同じ」かつ「サンプル内のOuterヘッダが同じ」であるxFlowパケットが、同一の処理スレッドで処理されるよう振り分けを行う必要がある(図7の(2)参照)。これは、同一エクスポーターから送出される同一Outerヘッダが付いていたInnerパケットの統計処理を、同一処理スレッドで完結させるためである。
 図8及び図9は、従来技術に係るパケットの振り分け処理を説明する図である。図8に示すように、非特許文献1に記載のRSS(Receive Side Scaling)機能は、パケットの固定位置に存在する情報である5-tupleを基にパケット処理を負荷分散するNIC(Network Interface Card)のHW機能である。すなわち、RSS(Receive Side Scaling)機能によれば、5-tupleベースでパケットを振り分け可能である。
 ここで、トンネリングされたフローの分析においては、トンネル内の通信フローの分析のために、送信元コレクタのトンネル毎に同一処理スレッドにヘッダサンプリングxFlowを振り分け、信号フロー分析を完結させる。
 しかしながら、トンネリングされたフローの場合、同一エクスポーターから、あるコレクタに対して送出されたヘッダサンプリングフローパケットは、ヘッダの値が全て同じである(図9の(1)参照)。このため、トンネリングされたフローに対して5-tupleベースの振り分けを実行した場合、振り分け先に偏りが生じ、ロードバランスを行うことができないという問題があった(図9の(2)参照)。
 本発明は、上記に鑑みてなされたものであって、通信フロー分析を行う処理スレッドの負荷分散を適切に実行することができる振り分け装置、振り分け方法、振り分けプログラムを提供することを目的とする。
 上述した課題を解決し、目的を達成するために、本発明に係る振り分け装置は、フレームと振り分けキーとを取得し、フレームのヘッダに振り分けキーを埋め込み、ヘッダの振り分けキーの値に基づいて、フレームを処理スレッドに振り分ける振り分け機能部、を有することを特徴とする。
 また、本発明に係る振り分け方法は、振り分け装置が実行する振り分け方法であって、フレームと振り分けキーとを取得し、フレームのヘッダに振り分けキーを埋め込み、ヘッダの振り分けキーの値に基づいて、フレームを処理スレッドに振り分ける工程を含んだことを特徴とする。
 また、本発明に係る振り分けプログラムは、フレームと振り分けキーとを取得し、フレームのヘッダに振り分けキーを埋め込み、ヘッダの振り分けキーの値に基づいて、フレームを処理スレッドに振り分けるステップと、をコンピュータに実行させる。
 本発明によれば、トンネリングされたフローに対して、処理スレッドの負荷分散をしながら通信フロー分析が可能になる。
図1は、実施の形態における振り分け処理を説明する図である。 図2は、実施の形態における処理装置の構成の一例を示す図である。 図3は、図2に示す振り分け部による振り分け処理の流れについて説明する図である。 図4は、図2に示す振り分け部による振り分け処理の流れについて説明する図である。 図5は、実施の形態に係る振り分け処理の処理手順を説明する図である。 図6は、プログラムが実行されることにより、処理装置が実現されるコンピュータの一例を示す図である。 図7は、従来技術に係るパケットの振り分け処理を説明する図である。 図8は、従来技術に係るパケットの振り分け処理を説明する図である。 図9は、従来技術に係るパケットの振り分け処理を説明する図である。
 以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態]
[本実施の振り分け機構]
 図1は、実施の形態における振り分け処理を説明する図である。図1に示すように、本実施の形態における振り分け機能部13による振り分け処理を説明する。本実施の形態における振り分け機能部13は、フレームと振り分けキーとを取得し、フレームのヘッダに振り分けキーを埋め込み、ヘッダの振り分けキーの値に基づいて、フレームを処理スレッドに振り分ける。
 具体的に、振り分け機能部13は、フレームと振り分けキーを基に、EtherフレームのEtherヘッダに、例えば、振り分けキー「A」を埋め込む(図1の(1)参照)。そして、振り分け機能部13は、Etherヘッダ内の振り分けキーに基づいて、通信フロー分析を行う処理スレッドにフレームを振り分ける(図1の(2)参照)。
 図1の例の場合、振り分け機能部13は、Etherヘッダに「A」が埋め込まれたフレームについては、処理スレッドAに振り分ける。また、振り分け機能部13は、Etherヘッダに「B」が埋め込まれたフレームについては、処理スレッドBに振り分ける。
 このように、実施の形態では、フレームと振り分けキーとを取得し、フレームのEtherヘッダに振り分けキーを埋め込み、Etherヘッダの振り分けキーの値に基づいて、フレームを処理スレッドに振り分ける。このため、本実施の形態によれば、トンネリングされたフローに対しても処理スレッドの負荷分散をしながら通信フロー分析が可能になる。
[処理装置の概要]
 まず、図1を用いて、実施の形態に係る処理装置の構成について説明する。図2は、実施の形態における処理装置の構成の一例を示す図である。図2に示す処理装置100では、フレームのうちトンネリングパケットを処理スレッドに振り分けて、通信フロー分析を行う。特に、処理装置100は、パケット転送の都合上トンネリングを行っているネットワークの内部において,ヘッダサンプリングxFlow(例:sFlow header sampling,IPFIX IE315)を用いてトンネリングパケットの先頭の一部をサンプリングしたフローパケット(ヘッダサンプリングパケット)の振り分けを行う場合を例に説明する。
 処理装置100は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。また、処理装置100は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースを有する。そして、処理装置100は、NIC(Network Interface Card)等を有し、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置との間の通信を行う。
 処理装置100は、図2に示すように、処理装置100は、フローパケットの振り分けを行う振り分け部10(振り分け装置)と、信号フロー分析を行う複数の並列化された処理スレッド20とを有する。
[振り分け部の構成]
 続いて、振り分け部10の構成について説明する。振り分け部10は、前述の振り分け機能部13の機能を用いて、入力を受け付けたフローパケットを処理スレッドに振り分ける。
 振り分け部10は、ヘッダサンプリングxFlowパケットの受信筐体入口に配置され、xFlowヘッダ情報及びサンプル内のOuterヘッダの情報を基に,複数のフローパケット処理スレッドに対しフローパケットの振り分けを行い処理スレッドの負荷分散を可能とする。なお、振り分け部10に入力されるフローパケットは、トンネリングを行うためにEtherヘッダに付加された任意のプロトコルヘッダがスタックされたパケットである。また、同一エクスポーターから、あるコレクタ向きのパケットは、ヘッダの値が全て同じものとなる。振り分け部10は、ヘッダ判別部11(判別部)、ハッシュ演算部12(計算部)及び振り分け機能部13を有する。
 ヘッダ判別部11は、フローパケットを解析し、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を判別する。ヘッダ判別部11は、フローパケットのプロトコルスタック解析を行い、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を特定する。
 例えば、ヘッダ判別部11は、特願2019―097069号公報に記載の方法を用いて、ヘッダの種別やサンプル内のOuterヘッダ等を判別してもよい。ヘッダ判別部11は、判別ルールにしたがって、入力されたフローパケットの各プロトコルヘッダの種別と配置とを示すプロトコルスタックパターンを判別する。プロトコルスタックパターンは、各プロトコルヘッダの種別と配置とを示す情報である。
 具体的には、ヘッダ判別部11は、プロトコルスタックパターンが既知のパケットを下位ヘッダから順次捜査して作成されたプロトコルスタックパターンを判別する判別木、プロトコルスタックパターンが既知のパケットの内部の特定bit列を基に作成されたプロトコルスタックパターンを判別する判別論理式、または、標準化された各プロトコルのヘッダ情報を示すプロトコルconfigファイルを用いて、入力されたパケットのプロトコルスタックパターンを判別する。判別ルールは、予め他の装置で生成されたものでもよく、入力されたパケットについてプロトコルconfigファイルを用いて学習することで生成されたものでもよい。なお、ヘッダ判別部11は、他の方法を用いて、ヘッダの判別を行ってもよい。
 ハッシュ演算部12は、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を入力としたハッシュ計算を行い、ハッシュ値を出力する。ハッシュ演算部12は、同一エクスポーターでありかつ同一Outerヘッダを有するフローについては、同一のハッシュ値を出力する。このハッシュ値が、振り分けキーとして機能する。
 振り分け機能部13は、ハッシュ演算部12から出力されたハッシュ値を振り分けキーとして、フローパケットのEtherヘッダに書き込み、Etherヘッダを基に、フローパケットを処理スレッドに振り分ける。同一エクスポーターでありかつ同一Outerヘッダを有するフローについては同一のハッシュ値が振り分けキーとして埋め込まれるため、振り分け機能部13は、各フローパケットを、それぞれ対応する処理スレッドに振り分けることができる。
[振り分け処理の流れ]
 次に、図3及び図4を参照して、図2に示す振り分け部10による振り分け処理の流れについて説明する。図3及び図4は、図2に示す振り分け部による振り分け処理の流れを説明する図である。
 図3に示すように、ヘッダサンプリングパケットは、同一エクスポーターから、あるコレクタ向きのパケットは、ヘッダの値が全て同じとなる。振り分け部10は、これらのパケットを適切に振り分けるために、以降の流れの処理を行う。
 まず、ヘッダ判別部11は、フローパケットのプロトコルスタック解析を行い、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を特定する(図3の(1)参照)。具体的には、ヘッダ判別部11は、ヘッダサンプリングパケットの入力を受け付けると、このパケットついて、L2ヘッダの種別(VLAN(Virtual LAN)、MPLS(Multi-Protocol Label Switching)等)、xFlowの種別(sFlow、IPFIX等)、サンプル内のOuterヘッダ等を判別する(図4の(1)参照)。そして、ヘッダ判別部11は、判別結果を基に、このヘッダサンプリングパケットのxFlowヘッダ情報及びOuterヘッダをサンプル情報として抽出し(図4の(1)参照)、ハッシュ演算部12に出力する。
 ハッシュ演算部12は、同一エクスポーターかつ同一Outerのフローが同じ処理スレッドで処理されるよう、xFlowヘッダ情報及びサンプル内のOuterヘッダ情報を入力とし、処理スレッド番号を出力するハッシュ計算を行う(図3の(2)参照)。すなわち、ハッシュ演算部12は、ヘッダ判別部11から出力されたサンプル情報を入力として、処理スレッド番号を計算して出力する(図4の(2)参照)。
 振り分け機能部13は、ハッシュ演算部12から出力されたハッシュ値をヘッダサンプリングパケットのEtherヘッダに埋め込み、Etherヘッダを基に処理スレッドに振り分けを行う(図3の(3)及び図4の(3)参照)。
 これによって、図3に示すように、Outerヘッダ「O-1」のパケットは、xFlowヘッダ情報「F-N」及びOuterヘッダ「O-1」を入力としてハッシュ値が振り分けキーとしてEtherネットに埋め込まれているため、この振り分けキーにしたがって、処理スレッド20Aに振り分けられる。これに対し、Outerヘッダ「O-2」のパケットは、xFlowヘッダ情報「F-A」及びOuterヘッダ「O-2」を入力としてハッシュ値が振り分けキーとしてEtherネットに埋め込まれているため、この振り分けキーにしたがって、処理スレッド20Mに振り分けられる。
[振り分け処理の処理手順]
 続いて、振り分け部10による振り分け処理の処理手順について説明する。図5は、実施の形態に係る振り分け処理の処理手順を説明する図である。
 図5に示すように、ヘッダ判別部11は、パケットの入力を受け付けると(ステップS1)、フローパケットを解析し、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を判別するヘッダ判別処理を行う(ステップS2)。
 続いて、ハッシュ演算部12は、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を入力としたハッシュ計算を行い、ハッシュ値を出力するハッシュ演算処理を行う(ステップS3)。
 そして、振り分け機能部13は、ハッシュ演算部12から出力されたハッシュ値を振り分けキーとして、フローパケットのEtherヘッダに書き込み、Etherヘッダを基に、フローパケットを処理スレッドに振り分ける振り分け処理を行う(ステップS4)。
[実施の形態の効果]
 このように、実施の形態では、フレームと振り分けキーとを取得し、フレームのヘッダに振り分けキーを埋め込み、ヘッダ内の振り分けキーの値に基づいて、フレームを処理スレッドに振り分ける。本実施の形態によれば、ヘッダ内の振り分けキーの値を用いてフレームを処理スレッドに振り分けることによって、処理スレッドの負荷分散を適切に実行することができる。
 また、実施の形態に係る振り分け部10は、トンネリングを行うためにEtherヘッダ以降に任意のプロトコルヘッダが付加されたパケットを解析し、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を判別する。そして、振り分け部10は、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を入力としたハッシュ計算を行い、ハッシュ値を出力する。振り分け部10は、ハッシュ値を振り分けキーとしてパケットのEtherヘッダに書き込み、Etherヘッダを基に、パケットを処理スレッドに振り分ける。
 このように、本実施の形態では、振り分けキーとして使用するハッシュ値が、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を入力として計算されたものである。このため、本実施の形態では、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置が同一のパケットは、同一のハッシュ値が振り分けキーとして使用されるため、同一の処理スレッドに振り分けられる。
 したがって、本実施の形態では、トンネリングによって、ヘッダの値が全て同じであるパケットに対しても、同一エクスポーターから送出される同一Outerが付いていたInnerパケットの信号フロー分析を同一の処理スレッドで完結させることが可能になる。このため、本実施の形態によれば、信号フロー分析を高精度で実行することができる。そして、本実施の形態によれば、トンネリングされたフローに対しても、処理スレッドへの振り分けを適切に実行できるため、負荷分散を適切に実行することができる。
[システム構成等]
 図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
 また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
 図6は、プログラムが実行されることにより、処理装置100が実現されるコンピュータの一例を示す図である。コンピュータ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を記憶する。すなわち、処理装置100の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、処理装置100における機能構成と同様の処理を実行するためのプログラムモジュール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によって読み出されてもよい。
 以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
 100 処理装置
 10 振り分け部
 11 ヘッダ判別部
 12 ハッシュ演算部
 13 振り分け機能部
 20 処理スレッド

Claims (5)

  1.  フレームと振り分けキーとを取得し、前記フレームのヘッダに前記振り分けキーを埋め込み、前記ヘッダの振り分けキーの値に基づいて、前記フレームを処理スレッドに振り分ける振り分け機能部、
     を有することを特徴とする振り分け装置。
  2.  トンネリングを行うためにEtherヘッダに任意のプロトコルヘッダが付加されたパケットを解析し、xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を判別する判別部と、
     xFlowヘッダ情報及びサンプル内のOuterヘッダ位置を入力としたハッシュ計算を行い、ハッシュ値を出力するハッシュ計算を行う計算部と、
     をさらに有し、
     前記振り分け機能部は、前記ハッシュ値を前記振り分けキーとして前記パケットのEtherヘッダに書き込み、前記Etherヘッダを基に、前記パケットを処理スレッドに振り分けることを特徴とする請求項1に記載の振り分け装置。
  3.  前記判別部は、各プロトコルヘッダの種別と配置とを示すプロトコルスタックパターンが既知のパケットを下位ヘッダから順次走査して作成されたプロトコルスタックパターンを判別する判別木、プロトコルスタックパターンが既知のパケットの内部の特定bit列を基に作成されたプロトコルスタックパターンを判別する判別論理式、または、標準化された各プロトコルのヘッダ情報を示すプロトコルconfigファイルを用いて、入力されたパケットのプロトコルスタックパターンを判別することを特徴とする請求項2に記載の振り分け装置。
  4.  振り分け装置が実行する振り分け方法であって、
     フレームと振り分けキーとを取得し、前記フレームのヘッダに前記振り分けキーを埋め込み、前記ヘッダの振り分けキーの値に基づいて、前記フレームを処理スレッドに振り分ける工程
     を含んだことを特徴とする振り分け方法。
  5.  フレームと振り分けキーとを取得し、前記フレームのヘッダに前記振り分けキーを埋め込み、前記ヘッダの振り分けキーの値に基づいて、前記フレームを処理スレッドに振り分けるステップと、
     をコンピュータに実行させるための振り分けプログラム。
PCT/JP2019/044603 2019-11-13 2019-11-13 振り分け装置、振り分け方法、振り分けプログラム WO2021095179A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/776,299 US20220400079A1 (en) 2019-11-13 2019-11-13 Sort device, sort method, and sort program
JP2021555707A JP7239016B2 (ja) 2019-11-13 2019-11-13 振り分け装置、振り分け方法、振り分けプログラム
PCT/JP2019/044603 WO2021095179A1 (ja) 2019-11-13 2019-11-13 振り分け装置、振り分け方法、振り分けプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/044603 WO2021095179A1 (ja) 2019-11-13 2019-11-13 振り分け装置、振り分け方法、振り分けプログラム

Publications (1)

Publication Number Publication Date
WO2021095179A1 true WO2021095179A1 (ja) 2021-05-20

Family

ID=75912091

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/044603 WO2021095179A1 (ja) 2019-11-13 2019-11-13 振り分け装置、振り分け方法、振り分けプログラム

Country Status (3)

Country Link
US (1) US20220400079A1 (ja)
JP (1) JP7239016B2 (ja)
WO (1) WO2021095179A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024024058A1 (ja) * 2022-07-28 2024-02-01 日本電信電話株式会社 分析装置、分析方法、分析プログラム及び分析システム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022176034A1 (ja) * 2021-02-16 2022-08-25 日本電信電話株式会社 変換装置、変換方法及び変換プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000315997A (ja) * 1999-04-30 2000-11-14 Toshiba Corp 暗号通信方法及びノード装置
JP2003218920A (ja) * 2002-01-18 2003-07-31 Fujitsu Ltd Mplsネットワークシステム
JP2005064882A (ja) * 2003-08-13 2005-03-10 Fujitsu Ltd 高位レイヤ処理方法及びシステム
JP2011049794A (ja) * 2009-08-27 2011-03-10 Alaxala Networks Corp パケットフロー統計値取得システム及びパケットフロー統計値取得方法
JP2013514691A (ja) * 2009-12-17 2013-04-25 アルカテル−ルーセント 複数のデータを処理するための方法および通信パケットをスイッチングするためのスイッチングデバイス
JP2016021697A (ja) * 2014-07-15 2016-02-04 株式会社日立製作所 通信システム、通信装置、及び、制御装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4023281B2 (ja) * 2002-10-11 2007-12-19 株式会社日立製作所 パケット通信装置及びパケットスイッチ
GB2443005A (en) * 2006-07-19 2008-04-23 Chronicle Solutions Analysing network traffic by decoding a wide variety of protocols (or object types) of each packet
US8365045B2 (en) * 2007-12-10 2013-01-29 NetCee Systems, Inc. Flow based data packet processing
US8681819B2 (en) * 2011-01-31 2014-03-25 International Business Machines Corporation Programmable multifield parser packet
US8811401B2 (en) * 2012-06-21 2014-08-19 Breakingpoint Systems, Inc. Binding of network flows to process threads
US20130343377A1 (en) * 2012-06-21 2013-12-26 Jonathan Stroud Hash-based packet distribution in a computer system
US9807204B2 (en) * 2015-03-06 2017-10-31 Ixia Optimized message processing
JP7135980B2 (ja) * 2019-04-09 2022-09-13 日本電信電話株式会社 登録システム、登録方法及び登録プログラム
US11924111B2 (en) * 2019-06-03 2024-03-05 Nippon Telegraph And Telephone Corporation Signal transfer device and signal transfer method
US11876782B2 (en) * 2021-02-08 2024-01-16 Nvidia Corporation Header-based packet filtering and inferencing to identify malicious network traffic using neural networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000315997A (ja) * 1999-04-30 2000-11-14 Toshiba Corp 暗号通信方法及びノード装置
JP2003218920A (ja) * 2002-01-18 2003-07-31 Fujitsu Ltd Mplsネットワークシステム
JP2005064882A (ja) * 2003-08-13 2005-03-10 Fujitsu Ltd 高位レイヤ処理方法及びシステム
JP2011049794A (ja) * 2009-08-27 2011-03-10 Alaxala Networks Corp パケットフロー統計値取得システム及びパケットフロー統計値取得方法
JP2013514691A (ja) * 2009-12-17 2013-04-25 アルカテル−ルーセント 複数のデータを処理するための方法および通信パケットをスイッチングするためのスイッチングデバイス
JP2016021697A (ja) * 2014-07-15 2016-02-04 株式会社日立製作所 通信システム、通信装置、及び、制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024024058A1 (ja) * 2022-07-28 2024-02-01 日本電信電話株式会社 分析装置、分析方法、分析プログラム及び分析システム

Also Published As

Publication number Publication date
US20220400079A1 (en) 2022-12-15
JPWO2021095179A1 (ja) 2021-05-20
JP7239016B2 (ja) 2023-03-14

Similar Documents

Publication Publication Date Title
CN104702588B (zh) 解析器、分组处理装置以及相关方法
US8176300B2 (en) Method and apparatus for content based searching
US8638793B1 (en) Enhanced parsing and classification in a packet processor
US20220345423A1 (en) Generation of descriptive data for packet fields
US8681819B2 (en) Programmable multifield parser packet
EP2868045B1 (en) A method of and network server for detecting data patterns in an input data stream
US20140324900A1 (en) Intelligent Graph Walking
US10313495B1 (en) Compiler and hardware interactions to remove action dependencies in the data plane of a network forwarding element
JP7135980B2 (ja) 登録システム、登録方法及び登録プログラム
CN101563908A (zh) 分析网络流的装置和方法
US20130100803A1 (en) Application based bandwidth control for communication networks
JP7215604B2 (ja) 変換装置、変換方法及び変換プログラム
US9965434B2 (en) Data packet processing
US20120163392A1 (en) Packet processing apparatus and method
JP7239016B2 (ja) 振り分け装置、振り分け方法、振り分けプログラム
WO2022176035A1 (ja) 変換装置、変換方法及び変換プログラム
US10965600B2 (en) Metadata extraction
US20140092900A1 (en) Methods and apparatuses to split incoming data into sub-channels to allow parallel processing
US8379639B2 (en) Packet classification
JP7517583B2 (ja) 変換装置、変換方法及び変換プログラム
US10015291B2 (en) Host network controller
WO2021001879A1 (ja) トラフィック監視装置、およびトラフィック監視方法
US20230239379A1 (en) Data acquisition device and data acquisition method
JP4669453B2 (ja) フロー情報処理装置および方法
WO2022269786A1 (ja) 通信データ識別装置およびその方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19952767

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021555707

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19952767

Country of ref document: EP

Kind code of ref document: A1