WO2011102086A1 - ループ検出装置、システム、方法およびプログラム - Google Patents

ループ検出装置、システム、方法およびプログラム Download PDF

Info

Publication number
WO2011102086A1
WO2011102086A1 PCT/JP2011/000437 JP2011000437W WO2011102086A1 WO 2011102086 A1 WO2011102086 A1 WO 2011102086A1 JP 2011000437 W JP2011000437 W JP 2011000437W WO 2011102086 A1 WO2011102086 A1 WO 2011102086A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
information
loop
flow
predetermined information
Prior art date
Application number
PCT/JP2011/000437
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 JP2012500487A priority Critical patent/JP5673663B2/ja
Priority to US13/137,145 priority patent/US8804537B2/en
Publication of WO2011102086A1 publication Critical patent/WO2011102086A1/ja

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/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge

Definitions

  • the present invention relates to a loop detection device, a loop detection system, a loop detection method, and a loop detection program for detecting a loop packet that stays in a network without arriving at a destination or a loop flow including the loop packet.
  • Patent Document 1 A technique for detecting the presence or absence of excessive traffic is described in Patent Document 1.
  • the device described in Patent Literature 1 holds a threshold value for determining whether or not the flow rate is equal to or higher than a set bandwidth, and detects an excessive flow by comparing the threshold value and the flow rate.
  • Non-Patent Document 1 there is a system in which the controller controls the communication path and the like for each flow by controlling the switches belonging to the network.
  • An example of such a system is a system to which OpenFlow is applied.
  • OpenFlow is a protocol for the controller to control the switch, and the specification of OpenFlow is described in Non-Patent Document 1.
  • a packet that does not arrive at the destination device and continues to circulate inside the network is called a loop packet.
  • a flow including a loop packet is called a loop flow. Since a network failure may occur due to the presence of the loop packet, it is preferable to detect the loop packet or the loop flow.
  • the load on the apparatus can be reduced by reducing the amount of memory used and the amount of calculation.
  • an object of the present invention is to provide a loop detection device, a loop detection system, a loop detection method, and a loop detection program that can detect a loop packet or a loop flow with a small processing load.
  • a loop detection device includes a packet including first predetermined information in a packet and second predetermined information in a packet from a packet information extraction device that extracts information from a packet transmitted and received between packet transfer devices. Based on the receiving means for receiving information and the first predetermined information included in the packet information, the packet whose information has been extracted by the packet information extracting device is classified, and the number of classified packets is set as the first predetermined information. Counting every time, the classification means for specifying the first predetermined information whose count result is equal to or greater than the first threshold, and the first predetermined information specified by the classification means, the reception means has received The second predetermined information included in the packet information is used to determine whether or not the packet having the first predetermined information specified by the classification means is a loop packet. Flow identified by a first predetermined information, characterized in that it comprises a determining means for determining whether a loop flow.
  • a loop detection system includes a packet information extraction device that extracts information from packets transmitted and received between packet transfer devices, and a loop that detects loop packets or loop flows using information extracted by the packet information extraction device. And a packet information extracting device for extracting packet information including first predetermined information in the packet and second predetermined information in the packet from the packet passing through the packet information extracting device. Means for transmitting packet information to the loop detection device, the loop detection device receiving the packet information from the packet information extraction device, and first predetermined information included in the packet information Then, classify the packets whose information has been extracted by the packet information extraction device, and calculate the number of classified packets.
  • the loop detection method is configured to extract first predetermined information in a packet and second predetermined information in a packet from a packet information extraction device that extracts information from packets transmitted and received between packet transfer devices.
  • the packet information including the received packet information is classified based on the first predetermined information included in the packet information, and the packet whose information is extracted by the packet information extracting device is classified for each first predetermined information.
  • the first predetermined information whose count result is equal to or greater than the first threshold is specified, and the second predetermined information included in the received packet information is targeted for the specified first predetermined information. Whether the packet having the specified first predetermined information is a loop packet or whether the flow specified by the first predetermined information is a loop flow Or wherein the determining.
  • the loop detection program allows a computer to receive information from a packet information extraction device that extracts information from a packet transmitted and received between packet transfer devices, and a first predetermined information in the packet and a second predetermined information in the packet.
  • the packet information extracting device classifies the packets whose information is extracted based on the first predetermined information included in the packet information, and sets the number of classified packets to the first
  • the classification process for identifying the first predetermined information whose count result is equal to or greater than the first threshold, and the first predetermined information identified in the classification process for reception
  • a packet having the first predetermined information specified by the classification processing is a loop packet. For determining whether or, characterized in that the first flow specified by predetermined information to execute the judgment process for judging whether or not the loop flow.
  • a loop packet or loop flow can be detected with a small processing load.
  • step S230 It is explanatory drawing which shows process progress of step S230. It is a flowchart which shows the process progress of a loop flow determination process. It is a flowchart which shows the operation
  • FIG. FIG. 1 is a block diagram showing an example of the first embodiment of the loop detection system of the present invention.
  • the loop detection system of the present invention includes a measurement device 100 and a loop detection device 200.
  • the measuring device 100 is arranged between the switches 300 that transfer packets in the network, and extracts information from the packets transmitted and received between the switches 300. Further, the measuring apparatus 100 may be realized by the switch 300. That is, the switch 300 may also be configured to perform an operation as the measurement device 100.
  • a network is formed by the plurality of switches 300, and packets of a plurality of flows are transferred to the destination device via each switch. However, a loop flow may occur.
  • Each switch 300 may be referred to as a packet transfer device that transfers a packet.
  • the measuring device 100 measures the flow.
  • “measurement” means extracting information from the packet. That is, the measuring device 100 extracts information from a packet that passes through the measuring device 100. Therefore, the measuring device 100 can also be called a packet information extracting device.
  • the measuring device 100 is realized by a router, for example.
  • the loop detection device 200 is connected to the measurement device 100 and detects a loop packet or a loop flow based on information extracted by the measurement device 100.
  • the loop detection apparatus 200 is realized by a server computer, for example.
  • the loop detection device 200 may be connected to a plurality of measurement devices 100. In that case, the loop detection apparatus 200 performs processing for each individual measurement apparatus 100. Further, the loop detection device 200 and the measurement device 100 may be realized by the same device.
  • Each flow includes, for example, a transmission side IP address, a reception side IP address, a transmission side port number, a reception side port number, a transmission side MAC (Media Access Control) address, a reception side MAC address, a protocol ID (protocol identification information), etc. Can be identified by the parameters. Therefore, a combination of one or more parameters among the parameters exemplified above can be used as a flow identifier.
  • transmission side means “transmission source”
  • reception side” means “destination”.
  • a case where “a pair of a transmission side MAC address and a reception side MAC address” is used as a flow identifier is exemplified, but a combination of other parameters may be used as a flow identifier.
  • One parameter may be a flow identifier.
  • parameters other than the exemplified parameters may be used as the flow identifier. Packets having a common flow identifier are packets of the same flow.
  • FIG. 2 is a flowchart showing the operation in the first embodiment.
  • the measuring device 100 measures a flow passing through itself. That is, the measuring device 100 extracts information from a packet that passes through the measuring device 100. Then, the measurement device 100 transmits the extracted information to the loop detection device 200 (step S100). At this time, the measurement apparatus 100 converts the extracted information into a format that can be received by the loop detection apparatus 200, and transmits the converted information to the loop detection apparatus 200.
  • measurement information Information extracted from the packet and converted into a format receivable by the loop detection apparatus 200 is referred to as measurement information, and is represented by a code MSR.
  • the measurement apparatus 100 performs format conversion on information extracted from a packet in accordance with the format of xFlow technology such as sFlow, NetFlow, PSAMP, IPFIX, or the like.
  • the measurement apparatus 100 may create measurement information MSR using information dumped by full capture.
  • the measurement information MSR includes a flow identifier and a packet payload. However, the measurement information MSR may be created so as to include a flow identifier and a packet TTL (Time-To-Live) as in a modification of the first embodiment described later.
  • TTL Time-To-Live
  • the measurement apparatus 100 creates the measurement information MSR according to the sFlow format will be described as an example.
  • the measuring apparatus 100 extracts information on the first 128 bytes of the received packet. This information includes the flow identifier and the payload of the packet.
  • the measurement device 100 periodically transmits measurement information MSR to the loop detection device 100.
  • the loop detection device 200 receives the measurement information MSR from the measurement device 100, and investigates the presence / absence of a loop packet based on the measurement information MSR. If there is a packet determined to be a loop packet, loop detection apparatus 200 detects the packet as a loop packet (step S200). In step S200, the loop detection apparatus 200 uses the flow identifier included in the measurement information MSR to identify a packet that may be a loop packet. The loop detection apparatus 200 determines whether the packet is a loop packet by using the flow identifier and payload included in the measurement information MSR for the packet.
  • the loop detection apparatus 200 includes a flow identifier (in this example, a transmission-side MAC address and a reception-side MAC address) included in the received measurement information MSR.
  • the packet from which the flow identifier is extracted is classified according to the combination of the above), and the number of classified packets is counted for each flow identifier.
  • the count result for each flow identifier means the number of packets for each flow observed by the measuring apparatus 100 (that is, the number of observations of each flow). Since the loop packet is a packet that remains in the network, the loop packet is highly likely to be observed multiple times by the measurement apparatus 100.
  • the loop detection apparatus 200 identifies a packet of a flow whose count result value is equal to or greater than a predetermined threshold (hereinafter referred to as a candidate specifying threshold) as a packet that may be a loop packet.
  • a packet that may be a loop packet is referred to as a loop packet candidate.
  • a flow whose count result value is equal to or greater than a candidate specifying threshold is a loop flow candidate.
  • the loop flow is a flow specified by the flow identifier of the loop packet.
  • the loop detection apparatus 200 refers to the flow identifier and payload included in the measurement information MSR extracted from the loop packet candidate in the process of determining whether the loop packet candidate is a loop packet for the loop packet candidate.
  • the loop packet candidates are classified for each set of flow identifier and payload, and the number of classified loop packet candidates is counted. This count result means the number of observations by the measuring apparatus 100 for each packet (for each loop packet candidate).
  • the loop detection apparatus 200 determines that a loop packet candidate whose count result is equal to or greater than a predetermined threshold (hereinafter referred to as a loop packet determination threshold) is a loop packet.
  • a predetermined threshold hereinafter referred to as a loop packet determination threshold
  • step S200 first, a loop packet candidate is specified, the number of observations of the loop packet candidate including the same flow identifier and payload is counted for the loop packet candidate, and the loop packet is obtained from the count result. It is determined whether or not there is.
  • a loop packet candidate (that is, a target for counting the number of packet observations using the flow identifier and payload) is determined, and the payload is examined only for that loop packet candidate. Compared to the case where the payload is examined for all packets, Thus, it is possible to reduce the processing load such as memory usage and calculation amount.
  • FIG. 3 is a block diagram illustrating a configuration example of the measurement apparatus 100.
  • the measuring device 100 includes a processing device 101 that performs measurement.
  • the processing device 101 includes a capture unit 110 that captures information from a packet that passes through the measurement device 100 itself, and a measurement information creation unit that creates measurement information MSR by performing format conversion on the information captured by the capture unit 110 120.
  • the capture unit 110 and the measurement information creation unit 120 are realized by a CPU of a computer that operates according to a program, for example.
  • a program storage unit (not shown) of the measurement device 100 stores the program, and the CPU of the measurement device 100 operates as the capture unit 110 and the measurement information creation unit 120 according to the program.
  • the capture unit 110 and the measurement information creation unit 120 may be realized by separate units.
  • step S100 the capture unit 110 captures the first 128 bytes of information from the packet passing through the measuring device 100. That is, the first 128 bytes of information are extracted from the packet.
  • This information includes a flow identifier (transmitting side MAC address and receiving side MAC address) and a payload.
  • the capture unit 110 may periodically capture information from the packet. Alternatively, a packet may be selected at random and information may be captured from the packet.
  • the measurement information creation unit 120 creates measurement information MSR by converting the information captured by the capture unit 110 into the sFlow format.
  • the measurement information creation unit 120 transmits the created measurement information MSR to the loop detection device 200 at regular intervals.
  • the case where sFlow is applied to transmission / reception of the measurement information MSR between the measurement apparatus 110 and the loop detection apparatus 200 is taken as an example, but other techniques such as NetFlow, PSAMP, and IPFIX may be applied. Good.
  • a technique other than sFlow is applied, the information extracted from the packet is not limited to the first 128 bytes.
  • FIG. 4 is a block diagram illustrating a configuration example of the loop detection apparatus 200.
  • the loop detection device 200 includes a processing device 201 that identifies a loop packet candidate and determines a loop packet, and a storage device 202.
  • the processing device 201 performs writing and reading with respect to the storage device 202 to advance the processing.
  • the processing device 201 includes a reception unit 210, a classification unit 220, and a detection unit 230.
  • the receiving unit 210 receives the measurement information MSR transmitted by the measurement device 110.
  • the classification unit 220 identifies loop packet candidates.
  • the detection unit 230 determines whether the loop packet candidate is a loop packet and detects the loop packet.
  • the reception unit 210, the classification unit 220, and the detection unit 230 are realized by, for example, a CPU of a computer that operates according to a loop detection program.
  • the program storage unit (not shown) of the loop detection device 200 stores the loop detection program, and the CPU of the loop detection device 200 operates as the reception unit 210, the classification unit 220, and the detection unit 230 according to the loop detection program. do it.
  • the processing device 201 corresponds to a CPU.
  • the reception unit 210, the classification unit 220, and the detection unit 230 may be realized as separate units.
  • the storage device 202 is realized by, for example, a RAM (Random Access Memory) or an HDD (Hard Disk Drive).
  • the storage device 202 stores measurement information MSR, observation number information OBFLOW for each flow, observation number information OBPKT for each packet, and configuration information CONF.
  • the measurement information MSR is received information received from the measurement device 110, and includes the flow identifier and payload of the packet that is the source of the measurement information MSR.
  • the observation number information OBFLOW for each flow is information indicating the number of observations of each flow in the measuring apparatus 100.
  • a counting filter which is a kind of Bloom filter is used for the data structure of the observation frequency information OBFLOW for each flow.
  • FIG. 5 is an explanatory diagram conceptually showing an example of observation number information OBFLOW for each flow.
  • the storage device 202 stores the count result of the number of packet observations for each flow identifier (in other words, the number of observations for each flow) in the field for each flow. For the flow classification, the flow identifier in the packet header included in the measurement information MSR is used, and the payload is not considered.
  • the classification unit 220 refers to the flow identifier in the measurement information MSR received from the measurement apparatus 100 and increments the count value of the field corresponding to the flow identifier by 1.
  • the classification unit 220 determines that a packet of a flow whose count value is equal to or greater than a candidate specifying threshold is a loop packet candidate. This processing can also be said to be processing for determining a flow whose count value is equal to or greater than a candidate specifying threshold value as a loop flow candidate.
  • the number of observations OBPKT for each packet is information indicating the number of observations of each packet (more specifically, a loop packet candidate) in the measurement apparatus 100.
  • a counting filter which is a kind of Bloom filter, is used as the data structure of the observation count OBPKT for each packet.
  • FIG. 6 is an explanatory diagram conceptually showing an example of observation number information OBPKT for each packet.
  • the storage device 202 stores the number of packet observations by the measurement device 100 in a field for each packet. For packet classification, a flow identifier and a payload in a packet header included in the measurement information MSR are used.
  • the detection unit 230 refers to the flow identifier and payload in the measurement information MSR received from the measurement apparatus 100, and increments the count value of the field corresponding to the set of the flow identifier and payload by one.
  • the detection unit 230 determines that the loop packet candidate corresponding to the field whose count value is equal to or greater than the loop packet determination threshold is a loop packet.
  • the configuration information CONF is information including various setting values related to the loop detection apparatus 200, such as a cycle for refreshing the observation count information OBFLOW for each flow and the observation count OBPKT for each packet, a threshold for candidate identification, a threshold for loop packet determination, and the like. is there.
  • FIG. 7 is a flowchart showing an example of processing progress of loop packet detection processing (step S200, see FIG. 2) performed by the loop detection device 200.
  • FIG. 8 is a conceptual diagram schematically showing processing performed by the loop detection apparatus 200.
  • the receiving unit 210 receives the measurement information MSR transmitted by the measurement device 100 and stores the measurement information MSR in the storage device 202 (step S210).
  • the measurement information MSR includes a packet header and payload observed by the measurement apparatus 100.
  • the header includes a flow identifier (transmitting side MAC address and receiving side MAC address).
  • the classification unit 220 classifies the packet flow that is the basis of the measurement information MSR based on the measurement information MSR received in step S210 (step S220).
  • the classification unit 220 classifies the flows based on the flow identifiers (the transmission side MAC address and the reception side MAC address) in the header included in the measurement information MSR. However, the classification unit 220 converts the flow identifier into a hash value, and classifies the flow with the hash value.
  • the classification unit 220 increments the count value of the field corresponding to the hash value obtained by converting the flow identifier by 1 in the observation count information OBFLOW for each flow.
  • FIG. 9 is an explanatory diagram showing the process of step S220.
  • the classification unit 220 calculates a hash value using the flow identifier included in the measurement information MSR received in step S210 as KEY (step S221).
  • the classification unit 220 may calculate the hash value by substituting the transmission side MAC address and the reception side MAC address as KEY into the hash function.
  • the hash function a commonly used SHA-1, MD2, or the like may be used, but other hash functions may be used.
  • the classification unit 220 increments the count value of the field corresponding to the hash value calculated in step S221 by 1 in the observation count information OBFLOW for each flow (step S222).
  • This value is the number of packet observations of the flow indicated by the flow identifier set as KEY in step S221, and can be said to be the number of flow observations.
  • the classification unit 220 may calculate the hash value of the flow identifier for each of the plurality of hash functions. Then, the classification unit 220 may prepare separate observation frequency information OBFLOW for each hash function, and may update the count value for each hash function in step S222. In this case, count values for the types of hash functions are obtained for one flow identifier, but the minimum value among the count values may be adopted as the number of flow observations. By using a plurality of hash functions in this way, it is possible to reduce counting errors due to hash value collisions. In order to reduce the calculation amount and the memory usage, one hash function may be used.
  • the classification unit 220 compares the count value updated in step S222 with a candidate specifying threshold included in the configuration information CONF (step S223). If the count value is equal to or greater than the candidate specifying threshold (Yes in step S223), the classification unit 220 causes the detection unit 230 to perform a step regarding the flow identifier corresponding to the count value and the payload extracted from the packet together with the flow identifier.
  • the process of S230 (see FIG. 7) is started. This means that a packet from which a flow identifier corresponding to a count value that is equal to or greater than a candidate specifying threshold is extracted as a loop packet candidate. It also means that the flow indicated by the flow identifier is a loop flow candidate. On the other hand, if the count value is less than the candidate specifying threshold value (No in step S223), the process ends for the flow identifier corresponding to the count value.
  • the classification unit 220 executes the processing from step S221 onward for each flow identifier in the information received from the measuring device 100.
  • the detection unit 230 uses the flow identifier corresponding to the count value equal to or greater than the candidate specifying threshold in the observation count information OBFLOW for each flow, and the payload extracted from the packet together with the flow identifier, and the flow identifier and It is determined whether or not the loop packet candidate including the payload corresponds to the loop packet (step S230).
  • the detection unit 230 converts the combination of the flow identifier and the payload into a hash value, and increments the count value of the field corresponding to the hash value by 1 in the observation count information OBPKT for each packet.
  • the detection unit 230 compares the count value with a loop packet determination threshold value, and detects a packet including a pair of a flow identifier and a payload corresponding to the count value that is equal to or greater than the loop packet determination threshold value as a loop packet. .
  • FIG. 10 is an explanatory diagram showing the process of step S230.
  • step S223 shown in FIG. 9 if the classification unit 220 identifies a flow identifier corresponding to the count value equal to or greater than the candidate specifying threshold, the detection unit 230 is extracted from the packet together with the flow identifier and the flow identifier. The payload is read from the measurement information MSR. Then, the detection unit 230 calculates a hash value using the combination of the flow identifier and the payload as KEY (step S231). In this example, the detection unit 230 may calculate a hash value by substituting the transmission side MAC address, the reception side MAC address, and the payload into the hash function as KEY. As the hash function, a commonly used SHA-1, MD2, or the like may be used, but other hash functions may be used.
  • the hash function a commonly used SHA-1, MD2, or the like may be used, but other hash functions may be used.
  • the detection unit 230 increments the count value of the field corresponding to the hash value calculated in step S231 by 1 in the observation count information OBPKT for each packet (step S232). This value is the number of observations of the loop packet candidate including the flow identifier and payload set as KEY in step S231.
  • the detection unit 230 may calculate a hash value of a set of a flow identifier and a payload for each of a plurality of hash functions. And the detection part 230 may prepare the separate observation frequency information OBPKT for every hash function, and may update a count value for every hash function in step S232. In this case, a count value corresponding to the type of hash function is obtained for one set of the flow identifier and the payload, and the smallest value among the count values may be adopted as the number of packet observations. By using a plurality of hash functions in this way, it is possible to reduce counting errors due to hash value collisions. In order to reduce the calculation amount and the memory usage, one hash function may be used.
  • the detection unit 230 compares the count value updated in step S232 with the loop packet determination threshold included in the configuration information CONF (step S233). If the count value is equal to or greater than the loop packet determination threshold value (Yes in step S233), the detection unit 230 determines that the loop packet candidate including the combination of the flow identifier and the payload corresponding to the count value is a loop packet. If the count value is less than the loop packet determination threshold value (No in step S233), the detection unit 230 ends the processing related to the loop packet candidate without detecting the loop packet candidate as a loop packet.
  • the classification unit 220 periodically refreshes the observation number information OBFLOW for each flow at a refresh cycle defined by the configuration information CONF.
  • the detection unit 230 also refreshes the observation count OBPKT for each packet at a period defined by the configuration information CONF. Each count value is initialized to 0 by the refresh.
  • step S230 the detection unit 230 uses the flow identifier and the field that does not change end-to-end.
  • processing may be performed using field information that changes for each packet.
  • the payload is an example of “field information that does not change end-to-end and changes for each packet even in the same flow”.
  • Other examples of “field information that does not change end-to-end and changes for each packet even in the same flow” include TCP (Transmission Control Protocol) sequence number, ID field information, RTP (Real -time (Transport Protocol) There is also a sequence number. Therefore, in step S230, a flow identifier and a TCP sequence number may be used. Further, the flow identifier and ID field information may be used. Further, a flow identifier and an RTP sequence number may be used.
  • the capture unit 110 of the measurement device 100 extracts information including field information that does not change end-to-end and changes for each packet even in the same flow, and information including a flow identifier from the packet, and performs measurement.
  • the information creation unit 120 may include the field information and the flow identifier in the measurement information MSR.
  • the detecting unit 230 uses the flow identifier and “field information that does not change end-to-end and changes for each packet even in the same flow”, and is similar to step S230 described above. What is necessary is just to process.
  • the classification unit 220 counts the number of flow observations in the measurement apparatus 100 for each flow identifier, and identifies the flow identifier whose count value is equal to or greater than the candidate specifying threshold. And the detection part 230 counts the packet observation frequency in the measuring device 100 for every group of the flow identifier and the payload extracted from the packet with the flow identifier only for the flow identifier. Then, a packet including a pair of a flow identifier and a payload whose count value is equal to or greater than the loop packet determination threshold is detected as a loop packet. In this way, the classification unit 220 screens the packets, and only the screened packets (loop packet candidates) need to count the number of packet observations for each set of flow identifier and payload. Amount of memory and memory usage can be reduced.
  • the latter When comparing the flow identifier and the set of flow identifier and payload, the latter has a larger amount of data. Therefore, if all the packets that are the basis of the measurement information MSR are classified for each flow identifier / payload pair and the number of observations is counted without screening, the calculation amount and the memory usage amount increase. In addition, since the types of pairs of flow identifiers and payloads increase, hash value collision probabilities also increase when hash values are calculated. In the present invention, the screening of the classification unit 220 narrows down the objects for which the number of observations is counted by classification for each set of flow identifier and payload, and thus the processing load can be suppressed. In addition, an increase in the hash value collision probability can be prevented.
  • the case where the loop detection system detects a loop packet has been described as an example, but a loop flow may be detected. Even when the loop flow is detected, the operation of the measuring apparatus 100 is the same as the above-described operation. If there is a count value of the observation number information OBPKT that is equal to or greater than the loop packet determination threshold value in step S233, the detection unit 230 of the loop detection apparatus 200 sets a combination of a flow identifier and a payload corresponding to the count value. And the flow specified by the flow identifier may be determined as a loop flow. Other operations are the same as those in the above embodiment. Even in the case of detecting a loop flow, the effect of suppressing the processing load can be obtained.
  • the measurement processing 100 creates measurement information MSR so as to include a flow identifier and a packet TTL, and the loop detection apparatus 200 refers to the measurement information MSR to make a loop flow.
  • An embodiment for detecting the above will be described. Note that description of the same processing as in the first embodiment is omitted.
  • the loop flow is a detection target.
  • the measuring device 100 and the loop detection device 200 include the components illustrated in FIGS. 3 and 4, respectively.
  • TTL is a parameter stored in the packet, and an initial value is set by the transmission source of the packet, and the parameter is decremented by 1 every time the parameter passes through the switch 300 (see FIG. 1). Note that the number of bytes in the TTL is 1 byte.
  • the measuring apparatus 100 includes the constituent elements illustrated in FIG. 3 and creates the measurement information MSR.
  • the capture unit 110 (see FIG. 3) of the measurement device 100 extracts information including the flow identifier and the TTL from the packet passing through the measurement device 100.
  • the measurement information creation unit 120 performs format conversion on the information extracted by the capture unit 110, and creates measurement information MSR.
  • the measurement information creation unit 120 transmits measurement information MSR including a flow identifier and TTL to the loop detection apparatus 200.
  • the loop detection apparatus 200 includes the components illustrated in FIG.
  • the storage device 202 stores observation number information for each TTL in each flow instead of the observation number information OBPKT for each packet.
  • this information is referred to as TTL observation frequency information.
  • a counting filter is also used for the data structure of the TTL observation count information.
  • the number of measurements per TTL is counted for each flow. Therefore, in this modification, a counting filter is held for each flow.
  • the configuration information CONF includes a loop flow determination threshold value that is compared with the TTL count value included in the TTL observation count information instead of the loop packet determination threshold value.
  • the reception unit 210 and the classification unit 220 of the loop detection apparatus 200 are the same as those in the first embodiment, and execute Step S210 and Step S220 shown in FIG. 7 (specifically, Steps S221 to S223 shown in FIG. 9). .
  • step S223 if the updated count value is equal to or greater than the candidate specifying threshold, the classification unit 220 observes the TTL detected together with the flow identifier for the flow identifier corresponding to the count value. The number of times is updated, and the detection unit 230 starts processing for determining whether or not the flow indicated by the flow identifier is a loop flow (loop flow determination processing). Therefore, in this modification, the detection unit 230 performs a loop flow determination process instead of step S230 shown in FIG.
  • FIG. 11 is a flowchart showing the progress of the loop flow determination process.
  • the detection unit 230 uses the flow identifier and the TTL extracted from the packet as the measurement information MSR. Read from. This flow identifier is hereinafter referred to as a “flow identifier of interest”.
  • the detection unit calculates a hash value using the read TTL as KEY (step S241).
  • the detection unit 230 may calculate the TTL hash value by substituting TTL as KEY into the hash function.
  • the detection unit 230 increments the count value corresponding to the hash value calculated in step S241 among the count values of each TTL related to the flow identifier of interest in the TTL observation count information (step S242). That is, in the flow indicated by the focused flow identifier, the number of times of observation of the TTL read from the measurement information MSR in step S241 is increased by one.
  • the detection unit 230 compares the number of fields having a count value of 1 or more (that is, the number of observed TTL types) with the loop flow determination threshold for the flow identifier of interest (step S243). If the number of observed TTL types is equal to or greater than the loop flow determination threshold value (Yes in step S243), the detection unit 230 determines the loop indicated by the focused flow identifier as a loop float. If the number of observed TTL types is less than the loop flow determination threshold value (No in step S243), the detection unit 230 ends the process related to the focused flow identifier without detecting the loop flow. To do.
  • the route from the transmission source to the transmission destination does not frequently change. Therefore, it is considered that the packets of the same flow among the packets passing through the measuring device 100 arranged in the network have passed through the same route, and the probability that the TTL of each packet is the same value is high.
  • the loop flow packet repeatedly passes through the measuring device 100, circulates in the network, and passes through the measuring device 100 again. Even for the same packet, the TTL when it arrives at the measuring device 100 is different from the TTL when it arrives at the measuring device 100 last time. Therefore, if there are many types of observed TTLs for the flow of interest, it can be determined that the flow is a loop flow. In this modification, a loop flow is detected using this fact.
  • the detection unit 230 uses the field information that changes each time a packet is transferred to perform the processing in steps S241 to S243. Can be done. TTL is an example of “field information that changes every time a packet is transferred”.
  • the capture unit 110 of the measurement device 100 extracts information including field information that changes each time the packet is transferred and information including the flow identifier from the packet, and the measurement information creation unit 120 includes the field information and the flow.
  • An identifier may be included in the measurement information MSR.
  • the detection unit 230 may perform the same processing as steps S241 to S243 described above using the flow identifier and “field information that changes every time the packet is transferred”.
  • the detection unit 230 may perform the processes of steps S241 to S243 using information on the input port.
  • FIG. The present invention is also applicable to a network system in which a certain control device (not shown) centrally manages packet transfer devices (for example, the switch 300 shown in FIG. 1) on the network.
  • the second embodiment is an embodiment realized in such a network system.
  • the network system is not particularly limited as long as the control device controls each packet transfer device (switch 300 shown in FIG. 1), but here, an explanation will be given by taking OpenFlow technology as an example.
  • OpenFlow captures communication as an end-to-end flow and realizes route control, failure recovery, load balancing, and optimization in units of flows.
  • An OpenFlow switch that functions as a packet transfer device communicates with a control device (OpenFlow controller) via a secure channel.
  • the OpenFlow switch holds a flow table defining classification information, actions, and flow statistical information for each flow.
  • the classification information is information for collating with the header of the packet and determining whether the packet is a packet of a flow corresponding to the classification information.
  • the action is information that defines the processing content for the packet of the flow corresponding to the action information.
  • the OpenFlow switch When the OpenFlow switch receives a packet, the OpenFlow switch compares the packet with the classification information in each entry of the flow table to determine which flow the packet is. Then, the process defined by the action of the flow is executed for the packet. For example, the packet is transferred to the OpenFlow switch determined by the action.
  • the OpenFlow switch when the OpenFlow switch cannot identify the flow of a packet by matching each entry in the flow table, the OpenFlow switch sends the packet to the OpenFlow controller via the secure channel, and the classification corresponding to the flow of the packet. Request information and action decisions. Note that a packet whose flow cannot be specified even after collating with each entry in the flow table is called a first packet.
  • the OpenFlow controller determines the route of the first packet, for example, and sets the classification information and action of the new flow in each OpenFlow switch on the route. With this setting, each OpenFlow switch on the route can sequentially transfer new packets along the determined route.
  • the loop detection system according to the second embodiment also includes a measurement device 100 and a loop detection device 200 as shown in FIG.
  • a case where each switch 300 shown in FIG. 1 is an open flow switch will be described as an example.
  • the OpenFlow switch is simply referred to as a switch.
  • a flow by freely combining the following parameters. That is, input port (Ingress Port), MAC DA (MAC destination address, ie, MAC address on the receiving side), MAC SA (MAC source address, ie, MAC address on the sending side), Ethernet (registered trademark) type (TPID), VLAN ID (Virtual LAN ID), VLAN TYPE (priority), IP SA (IP source address), IP DA (IP destination address), IP protocol, source port (TCP / UDP (User Datagram Protocol)-Source Port), ICMP ( Internet Control Message Message Protocol) Type, destination port (TCP / UDP Destination Port), or ICMP code may be freely combined to define the flow identifier.
  • a case where a pair of a transmission side MAC address and a reception side MAC address is used as a flow identifier will be described as an example, but another combination of parameters may be used as a flow identifier.
  • the measuring apparatus 100 (see FIG. 1) is arranged between the switches 300 and extracts information from packets transmitted and received between the switches 300.
  • the measuring device 100 is realized by a router, for example.
  • the loop detection apparatus 200 detects a loop packet or a loop flow based on the information extracted by the measurement apparatus 100.
  • the loop detection apparatus 200 is realized by a server computer, for example. These points are the same as those in the first embodiment or its modification.
  • the loop detection device 200 instructs the measurement device 100 to delete the loop packet, and the measurement device 100 detects the detected loop packet according to the instruction. Alternatively, the packet having the flow identifier of the detected loop flow is deleted.
  • the loop detection device 200 may be connected to a plurality of measurement devices 100. In that case, the loop detection apparatus 200 performs processing for each individual measurement apparatus 100. Further, the loop detection device 200 and the measurement device 100 may be realized by the same device. Further, the loop detection device 200 may be realized by the same device as the open flow controller (not shown).
  • the measurement apparatus 100 extracts information including a flow identifier and a payload from the packet, and creates measurement information MSR including the flow identifier and the payload. Further, in the following description, for the sake of simplicity of explanation, a case where the loop detection apparatus 200 detects a loop packet will be described as an example.
  • FIG. 12 is a flowchart showing the operation in the second embodiment.
  • the same processes as those in the second embodiment are denoted by the same reference numerals as those in FIG. 2, and detailed description thereof is omitted.
  • the measuring apparatus 100 extracts information including a flow identifier and a payload from a packet passing through the measuring apparatus 100, converts the format of the information, and creates measurement information MSR. Then, the measurement device 100 periodically transmits the measurement information MSR to the loop detection device 100 (Step S100).
  • the loop detection apparatus 200 refers to the measurement information MSR and identifies a packet that may be a loop packet (loop packet candidate). Then, using the flow identifier and the payload for the loop packet candidate as a target, it is determined whether or not it is a loop packet (step S200).
  • steps S100 and S200 are the same as those in the first embodiment. Therefore, it is possible to suppress an increase in memory usage and calculation amount when specifying a loop packet.
  • the loop detection apparatus 200 creates control information that defines processing for a loop packet, and transmits the control information to the measurement information 100 (step S300).
  • the process for the loop packet is a discard process.
  • the loop detection apparatus 200 designates the flow identifier of the loop packet, creates control information indicating that the packet including the flow identifier is discarded, and transmits the control information to the measurement information 100.
  • the loop detection apparatus 200 holds path information (referred to as PAT) for each flow, and in step S300, the switch 300 through which the loop packet passes is identified from the flow identifier of the loop packet and the path information PAT. May be. And the loop detection apparatus 200 may transmit control information to each switch on the path
  • PAT path information
  • the measuring apparatus 100 that has received the control information discards a packet that meets the conditions defined in the control information among the packets that pass through the control information (step S400). For example, when a packet including a flow identifier defined in the control information arrives at the measuring device 100, the measuring device 100 discards the packet.
  • each switch 300 is also set in the control information among the packets transferred to itself. Discard packets that meet the conditions.
  • the loop detection apparatus 200 controls the measuring apparatus 100 or the switch 300 so as to discard the loop packet.
  • the measuring apparatus 100 or the switch 300 controls the loop packet according to the control. Discard. Therefore, in the second embodiment, in addition to the effect of the first embodiment, the effect that the loop packet staying in the network can be discarded and the network resource can be used effectively is obtained.
  • FIG. 13 is a block diagram illustrating a configuration example of the measurement apparatus 100 according to the second embodiment.
  • the measuring device 100 according to the second embodiment includes a processing device 101 and a storage device 102 that stores control information CON.
  • the storage device 102 stores the control information CON received from the loop detection device 200.
  • the control information CON includes a condition for identifying the loop packet (for example, a flow identifier of the loop packet), and an action instruction for the packet that matches the condition.
  • the control instruction content for the packet is not limited to packet discarding.
  • the control information CON may instruct QoS (Quality of Service) control for a packet that matches a condition.
  • the control information CON may instruct bandwidth control for a packet that matches a condition.
  • QoS Quality of Service
  • the processing apparatus 101 includes a capture unit 110, a measurement information creation unit 120, and a flow control unit 130.
  • the capture unit 110 and the measurement information creation unit 120 are the same as those in the first embodiment, and a description thereof will be omitted.
  • the flow control unit 130 receives the control information CON transmitted from the loop detection device 200 and stores it in the storage device 102. Further, the flow control unit 130 determines whether or not a packet passing through the measuring device 100 matches a condition included in the control information CON. If the packet matches, the flow control unit 130 discards the packet according to the control information CON. If the packet does not match the condition, the flow control unit 130 passes the packet.
  • the capture unit 110, the measurement information creation unit 120, and the flow control unit 130 are realized by a CPU of a computer that operates according to a program, for example.
  • the flow measurement function (capture unit 110 and measurement information creation unit 120) and the flow control function (flow control unit 130) do not need to be realized by one device, and are realized by different devices. May be.
  • the flow measurement function may be realized by a probe, and the flow control function may be realized by a router. In this case, a collection of the probe and the router corresponds to the measuring device 100.
  • each switch also includes the flow control device 130 and the storage device 102 described above.
  • FIG. 14 is a block diagram illustrating a configuration example of the loop detection apparatus 200 according to the second embodiment. Constituent elements similar to those in the first embodiment are denoted by the same reference numerals as those in FIG.
  • the loop detection device 200 includes a processing device 201 and a storage device 202.
  • the processing apparatus 201 includes a reception unit 210, a classification unit 220, a detection unit 230, and a control information creation unit 240.
  • the reception unit 210, the classification unit 220, and the detection unit 230 are the same as those in the first embodiment.
  • control information creation unit 240 creates control information CON including a condition for identifying the loop packet and an instruction to discard a packet that matches the condition.
  • the control information creation unit 240 may include the flow identifier of the flow including the loop packet in the control information CON as a condition for identifying the loop packet. Further, not only the flow identifier but also the payload may be included in the control information CON as a condition for identifying the loop packet.
  • the control information creation unit 240 transmits the created control information CON to the measuring device 100.
  • the control information creation unit 240 may store the control information CON in the storage device 202.
  • control information creation unit 240 may specify the flow path indicated by the flow identifier of the loop packet and transmit the control information CON to each switch 300 on the path. Alternatively, the control information creation unit 240 may transmit the control information CON to the individually selected switch among the switches on the identified route. For example, the control information CON may be transmitted only to the switch at the entrance of the network among the switches on the path.
  • the reception unit 210, the classification unit 220, the detection unit 230, and the control information creation unit 240 are realized by a CPU of a computer that operates according to a loop detection program, for example.
  • the CPU may operate as the reception unit 210, the classification unit 220, the detection unit 230, and the control information creation unit 240 according to the loop detection program.
  • the reception unit 210, the classification unit 220, the detection unit 230, and the control information creation unit 240 may be realized as separate units.
  • the storage device 202 stores measurement information MSR, observation count information OBFLOW for each flow, observation count information OBKT for each packet, and configuration information CONF.
  • the storage device 202 may further store route information PAT and control information CON.
  • the route information PAT is information indicating the route of each flow.
  • FIG. 15 is an explanatory diagram conceptually illustrating an example of the route information PAT.
  • the path information PAT associates a flow identifier with information representing a link on the path for each flow.
  • “1” or “0” indicates whether each link is a link on the route as information indicating the link on the route. When it corresponds to a link on the route, “1” is described, and when it corresponds to a link on the route, “0” is described.
  • FIG. 15 is an explanatory diagram conceptually illustrating an example of the route information PAT.
  • the path information PAT associates a flow identifier with information representing a link on the path for each flow.
  • “1” or “0” indicates whether each link is a link on the route as information indicating the link on the route. When it corresponds to a link on the route, “1” is described, and when it corresponds to a link on the route, “0” is described.
  • each link should just be identified by the combination of the identification information of the switch of the both ends of a link, for example.
  • the loop detection apparatus 200 may receive the path information PAT from an open flow controller (not shown) and store it in the storage device 202, for example.
  • the OpenFlow controller receives a first packet from the switch and determines a route for the flow of the first packet
  • the flow identifier of the flow and the route may be associated with each other and transmitted to the loop detection apparatus 200.
  • the loop detection device 200 may receive the information and store it in the storage device 202 as route information PAT.
  • the loop detection device 200 receives the first packet from the switch, When the route for the flow of the first packet is determined, the flow identifier of the flow and the route are associated with each other and stored in the storage device 202 as the route information PAT.
  • steps S100 and S200 shown in FIG. 12 are the same as those in the first embodiment, and a description thereof will be omitted.
  • steps S300 and S400 after the loop packet is detected in step S200 will be described.
  • control information creating unit 240 creates control information CON including a flow identifier of the flow of the loop packet as a condition for identifying the loop packet. Further, as a condition for identifying the loop packet, control information CON including a payload as well as a flow identifier may be created. Specifically, this flow identifier or payload is a flow identifier or payload corresponding to a count value counted up above the loop packet determination threshold in the observation count information for each packet. In addition, the control information creation unit 240 also includes information indicating that the packet matching the condition is to be discarded in the control information. The control information creation unit 240 transmits the created control information CON to the measuring device 100 (step S300). The control information creation unit 240 may transmit control information to the measurement apparatus 100 according to an existing communication protocol such as TCP or UDP, for example.
  • control information creation unit 240 refers to the path information PAT, identifies the switch on the path corresponding to the flow identifier of the loop packet among the switches in the OpenFlow network, and transmits control information to each switch. May be. Further, the control information creation unit 240 may transmit control information only to individually selected switches (for example, switches at the entrance of the network) among the switches on the route.
  • the flow control unit 130 When the flow control unit 130 (see FIG. 13) of the measuring device 100 receives the control information CON from the loop detection device 200, the flow control unit 130 stores the control information CON in the storage device 102. Then, the flow control unit 130 processes a packet that passes through the measuring device 100 according to the control information CON. That is, the flow control unit 130 collates a condition (for example, a flow identifier) included in the control information CON with a packet that has arrived at the measuring apparatus 100, and controls the packet if the packet matches the condition. Discard according to information CON. Since the packet that matches the condition is a loop flow packet, the packet that stays in the network is discarded. As already described, the condition included in the control information CON may be a combination of a flow identifier and a payload.
  • a condition included in the control information CON may be a combination of a flow identifier and a payload.
  • the detection unit 230 of the loop detection device 200 detects a loop packet.
  • the detection unit 230 of the loop detection device 200 includes the loop packet.
  • a flow may be detected.
  • the operations in steps S300 and S400 in this case are the same as the operations when the detection unit 230 detects a loop packet.
  • the control information creation unit 240 may include the flow identifier of the loop flow in the control information.
  • the loop detection apparatus 200 uses a flow identifier and a packet that is a field that does not change end-to-end and has the same flow. Processing may be performed using field information that changes every time.
  • the payload is an example of such field information.
  • Other examples of “field information that does not change end-to-end and changes for each packet even in the same flow” include a TCP sequence number, ID field information, and an RTP sequence number. Therefore, the loop detection apparatus 200 may use such information.
  • the measurement processing 100 creates the measurement information MSR so as to include the flow identifier and the packet TTL, and the loop detection apparatus 200 uses the TTL to execute the loop flow. It may be detected.
  • the operation in which the measurement processing 100 creates the measurement information MSR so as to include the flow identifier and the packet TTL is the same as that of the modification of the first embodiment.
  • the operation of detecting a loop flow using the TTL using the TTL is also the same as that of the modification of the first embodiment. That is, in step S200, the receiving unit 210 performs the process of step S210 (see FIG. 7), and the classification unit 220 performs the process of step S220 (see FIG.
  • the detection unit 230 may perform the processes of steps S241 to S243 shown in FIG.
  • the control information creation unit 240 includes the flow identifier of the loop flow in the control information as a condition for identifying the loop packet in step S300 (see FIG. 12). The other points are the same as the operation of the second embodiment already described.
  • the information used in steps S241 to S243 is not limited to TTL, and may be “field information that changes every time a packet is transferred”. Examples of such information include input port information in addition to TTL.
  • the loop packet candidate is specified using the flow identifier extracted from the packet, and the loop packet or loop flow is specified using the payload or TTL extracted from the packet.
  • Information used for specifying a loop packet candidate may be information other than the flow identifier. Further, the information used for specifying the loop packet or the loop flow may not be a payload or the like.
  • the classification unit 220 may classify a packet using a payload extracted from the packet and specify a loop packet candidate.
  • the detection part 230 may detect a loop packet or a loop flow using the flow identifier or TTL extracted from the packet.
  • the measurement apparatus 100 creates measurement information MSR including the payload and TTL and transmits the measurement information MSR to the loop detection apparatus 200, or creates measurement information MSR including the payload and the flow identifier. Or just send it to
  • the TTL described in the above description is not limited to the TTL in the IP header, but may be a TTL in a MPLS (Multiprotocol Label Switching) shim header.
  • MPLS Multiprotocol Label Switching
  • FIG. 16 is an explanatory diagram showing an example of the minimum configuration of the loop detection apparatus of the present invention.
  • FIG. 17 is an explanatory diagram showing an example of the minimum configuration of the loop detection system of the present invention.
  • the loop detection system of the present invention includes a packet information extraction device 70 and a loop detection device 80 (see FIG. 17).
  • the packet information extraction device 70 (for example, the measurement device 100) extracts information from packets transmitted and received between packet transfer devices (for example, the switch 300).
  • the loop detection device 80 (for example, the loop detection device 200) detects a loop packet or a loop flow using the information extracted by the packet information extraction device 70.
  • the packet information extracting device 70 includes an extracting unit 71 and a transmitting unit 72.
  • the extraction means 71 for example, the capture unit 110
  • first predetermined information for example, a flow identifier
  • second predetermined information for example, the packet
  • Payload or TTL for example, information on the first 128 bytes of the packet
  • the loop detection device 80 of the present invention includes a receiving means 81, a classification means 82, and a determination means 83.
  • the receiving unit 81 (for example, the receiving unit 210) receives packet information from the packet information extracting device.
  • the classification means 82 (for example, the classification unit 220) classifies the packets whose information is extracted by the packet information extraction device based on the first predetermined information included in the packet information, and sets the number of classified packets to the first Is counted for each predetermined information, and first predetermined information whose count result is equal to or greater than a first threshold (for example, a threshold for candidate identification) is specified.
  • a first threshold for example, a threshold for candidate identification
  • the determination unit 83 targets the first predetermined information specified by the classification unit 82, and uses the second predetermined information included in the packet information received by the reception unit 81. Whether the packet having the first predetermined information specified by the classification means 82 is a loop packet or whether the flow specified by the first predetermined information is a loop flow To do.
  • a loop packet or a loop flow can be specified. Then, the classification unit 82 narrows down the first predetermined information, and the determination unit 83 performs the process on the narrowed down first predetermined information. Therefore, the processing load in the process of specifying the loop packet or loop flow Can be reduced.
  • the packet having the first predetermined information specified by the classification means using the second predetermined information included in the information is a loop packet, or Loop detecting device, characterized in that the flow specified by the predetermined information 1 comprises a determining means for determining whether a loop flow.
  • the receiving means includes, as the first predetermined information, a flow identifier for identifying the flow of the packet, and the second predetermined information is a field that does not change end-to-end and has the same flow. 2.
  • the loop detection device according to appendix which receives packet information including field information that changes for each packet.
  • the receiving means includes, as the first predetermined information, a flow identifier for identifying the flow of the packet, and as the second predetermined information, at least the packet payload, TCP sequence number, ID field information, RTP.
  • the loop detection device according to Supplementary Note 1 or Supplementary Note 2, which receives packet information including any of the sequence numbers.
  • the determination means classifies the packet having the flow identifier specified by the classification means based on the set of the flow identifier and the second predetermined information, and determines the number of classified packets as the flow identifier and the second identifier. Whether the packet having the flow identifier specified by the classifying means is a loop packet by counting each pair with the predetermined information and comparing the count result with the second threshold value, or the flow 4.
  • the loop detection device according to supplementary note 2 or supplementary note 3, which determines whether or not the flow specified by the identifier is a loop flow.
  • the receiving means includes a flow identifier for identifying a flow of a packet as the first predetermined information, and a packet including information on a field that changes every time the packet is transferred as the second predetermined information.
  • the loop detection device according to appendix 1, which receives information.
  • the reception means receives the packet information including the flow identifier for identifying the flow of the packet as the first predetermined information and the packet information including the TTL or the input port information as the second predetermined information. Or the loop detection device according to appendix 5.
  • the determination means classifies the second predetermined information for each flow identifier specified by the classification means, and compares the number of classified second predetermined information types with the third threshold value.
  • the loop detection device according to supplementary note 5 or supplementary note 6, wherein the flow identifier identified by the flow identifier identified by the classification unit determines whether the flow is a loop flow.
  • a path information storage unit that stores path information indicating a flow path for each flow identifier, and includes at least a loop packet or a flow identifier of the loop flow determined by the determination unit as a condition of the control target packet, Control that creates control information for instructing control on a packet that matches a condition, specifies a packet transfer device on a route corresponding to the flow identifier based on the route information, and transmits the control information to the packet transfer device 9.
  • the loop detection device according to any one of appendix 1 to appendix 8, comprising information creation means.
  • control information creating means creates control information instructing at least one of packet discard, QoS control, and bandwidth control.
  • a packet information extraction device that extracts information from packets transmitted and received between packet transfer devices, and a loop detection device that detects a loop packet or loop flow using information extracted by the packet information extraction device
  • a packet information extracting device for extracting packet information including first predetermined information in the packet and second predetermined information in the packet from a packet passing through the packet information extracting device; Transmission means for transmitting packet information to the loop detection device, the loop detection device based on reception means for receiving the packet information from the packet information extraction device and first predetermined information included in the packet information
  • the packet information extracting device classifies the packets whose information is extracted, and sets the number of classified packets to a first predetermined number Counting for each information, the classification means for specifying the first predetermined information whose count result is equal to or greater than the first threshold, and the first predetermined information specified by the classification means are targeted and received by the reception means Whether the packet having the first predetermined information specified by the classifying means is a loop packet by using the second predetermined information included in the packet information,
  • the extraction means includes a flow identifier for identifying a packet flow as the first predetermined information, and the second predetermined information is a field that does not change end-to-end and is the same flow.
  • the loop detection system according to appendix 11, wherein packet information including field information that changes for each packet is extracted.
  • the first predetermined information whose count result is equal to or greater than the first threshold is specified, the first predetermined information specified is used, and the second predetermined information included in the received packet information is used.
  • the specified packet having the first predetermined information is a loop packet, or whether the flow specified by the first predetermined information is a loop flow.
  • Loop detecting method characterized by a constant.
  • the first predetermined information includes a flow identifier for identifying the flow of the packet, and the second predetermined information is a field that does not change end-to-end and is the same flow for each packet. 14.
  • the computer includes first predetermined information in the packet and second predetermined information in the packet from a packet information extraction device that extracts information from a packet transmitted and received between the packet transfer devices. Based on reception processing for receiving packet information, first predetermined information included in the packet information, the packet information extraction device classifies the packets extracted information, and sets the number of classified packets to the first predetermined information Counting for each information, the first predetermined information identified by the classification process that identifies the first predetermined information whose count result is equal to or greater than the first threshold, and the first predetermined information identified by the classification process are received by the reception process Whether the packet having the first predetermined information specified by the classification process is a loop packet using the second predetermined information included in the packet information, Others, loop detection program for the first flow specified by predetermined information to execute the judgment process for judging whether or not the loop flow.
  • the computer includes a flow identifier for identifying the packet flow as the first predetermined information, and the second predetermined information is a field that does not change end-to-end and has the same flow. 16.
  • the loop detection program according to appendix 15 which receives packet information including field information that changes for each packet.
  • the receiving unit includes a flow identifier for identifying a packet flow as the first predetermined information, and the second predetermined information is a field that does not change end-to-end and has the same flow. 18.
  • the reception unit includes a flow identifier for identifying a packet flow as the first predetermined information, and includes at least a packet payload, a TCP sequence number, ID field information, RTP as the second predetermined information.
  • Item 18 The loop detection device according to appendix 17, which receives packet information including any of the sequence numbers.
  • the determination unit classifies packets having the flow identifier specified by the classification unit based on the set of the flow identifier and the second predetermined information, and determines the number of classified packets as the flow identifier and the second identifier. Whether or not the packet having the flow identifier specified by the classification unit is a loop packet by counting each pair with the predetermined information and comparing the count result with the second threshold value, or the flow Item 19.
  • the loop detection device according to appendix 18, which determines whether or not the flow specified by the identifier is a loop flow.
  • the reception unit includes a flow identifier for identifying a flow of a packet as the first predetermined information, and a packet including information on a field that changes every time the packet is transferred as the second predetermined information.
  • Item 18 The loop detection device according to appendix 17, which receives information.
  • the reception unit includes a flow identifier for identifying a flow of a packet as the first predetermined information, and receives packet information including TTL or input port information as the second predetermined information.
  • the loop detection device described in 1.
  • the determination unit classifies the second predetermined information for each flow identifier specified by the classification unit, and compares the number of classified second predetermined information types with the third threshold value.
  • the loop detection device according to attachment 21, wherein it is determined whether or not the flow specified by the flow identifier specified by the classification unit is a loop flow.
  • a packet information extraction device that extracts information from packets transmitted and received between packet transfer devices, and a loop detection device that detects loop packets or loop flows using information extracted by the packet information extraction device, The packet information extracting device extracts, from the packet passing through the packet information extracting device, packet information including first predetermined information in the packet and second predetermined information in the packet; A transmission unit that transmits packet information to the loop detection device, the loop detection device based on a reception unit that receives the packet information from the packet information extraction device and first predetermined information included in the packet information The packet information extracting device classifies the packets whose information has been extracted, and the number of the classified packets is the first predetermined information.
  • the present invention is preferably applied to a loop detection system that detects a loop packet or a loop flow.
  • Measurement apparatus 110 Capture part 120 Measurement information creation part 130 Flow control part 200 Loop detection system 202 Storage device 210 Reception part 220 Classification part 230 Detection part 240 Control information creation part 300 Switch

Landscapes

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

Abstract

ループパケットまたはループフローを少ない処理負荷で検出することができるループ検出装置を提供する。分類手段82は、パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する。判定手段83は、分類手段82によって特定された第1の所定の情報を対象とし、受信手段81が受信したパケット情報に含まれる第2の所定の情報を利用して、分類手段82に特定された第1の所定の情報を有するパケットがループパケットであるか否か、または、その第1の所定の情報で特定されるフローがループフローであるか否かを判定する。

Description

ループ検出装置、システム、方法およびプログラム
 本発明は、宛先に到着せずにネットワーク内に滞留し続けるループパケット、または、ループパケットが含まれるループフローを検出するループ検出装置、ループ検出システム、ループ検出方法、およびループ検出プログラムに関する。
 過大なトラフィックの有無を検出する技術が特許文献1に記載されている。特許文献1に記載された装置は、設定帯域以上の流量になったか否かを判定するための閾値を保持し、その閾値と流量とを比較することによって、過大フローを検出する。
 また、ネットワークに属する各スイッチに対する制御をコントローラが行うことにより、コントローラがフロー毎に通信経路等を制御するシステムがある。このようなシステムの例として、オープンフローが適用されたシステムがある。オープンフローは、コントローラがスイッチを制御するためのプロトコルであり、オープンフローの仕様は非特許文献1に記載されている。
特開2009-27400号公報
"OpenFlow Switch Specification Version 0.9.0"、2009年7月20日、[平成22年2月4日検索]、インターネット<http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
 宛先となる装置に到着せずに、ネットワークの内部で循環し続けるパケットを、ループパケットという。また、ループパケットを含むフローをループフローという。ループパケットの存在によりネットワーク障害が発生する場合があるので、ループパケットやループフローを検出することが好ましい。
 特許文献1に記載された装置では、過大フローを検出することでループ障害の発生を推定することができるが、どのパケットがループパケットに該当するのかに関しては特定することができない。また、過大フローが必ずしもループフローであるとは限らないため、高い精度でループフローを検出することができない。
 また、ループパケットまたはループフローの検出処理を実現する場合において、メモリの使用量や計算量を少なくして装置の負荷を軽減できることが好ましい。
 そこで、本発明は、ループパケットまたはループフローを少ない処理負荷で検出することができるループ検出装置、ループ検出システム、ループ検出方法、およびループ検出プログラムを提供することを目的とする。
 本発明によるループ検出装置は、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、パケット内の第1の所定の情報およびパケット内の第2の所定の情報を含むパケット情報を受信する受信手段と、パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類手段と、分類手段によって特定された第1の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる第2の所定の情報を利用して、分類手段に特定された第1の所定の情報を有するパケットがループパケットであるか否か、または、その第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを備えることを特徴とする。
 また、本発明によるループ検出システムは、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置と、パケット情報抽出装置が抽出した情報を用いてループパケットまたはループフローを検出するループ検出装置とを備え、パケット情報抽出装置が、当該パケット情報抽出装置を通過するパケットから、パケット内の第1の所定の情報およびパケット内の第2の所定の情報を含むパケット情報を抽出する抽出手段と、パケット情報をループ検出装置に送信する送信手段とを含み、ループ検出装置が、パケット情報抽出装置からパケット情報を受信する受信手段と、パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類手段と、分類手段によって特定された第1の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる第2の所定の情報を利用して、分類手段に特定された第1の所定の情報を有するパケットがループパケットであるか否か、または、その第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを含むことを特徴とする。
 また、本発明によるループ検出方法は、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、パケット内の第1の所定の情報およびパケット内の第2の所定の情報を含むパケット情報を受信し、パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定し、特定した第1の所定の情報を対象とし、受信したパケット情報に含まれる第2の所定の情報を利用して、特定した第1の所定の情報を有するパケットがループパケットであるか否か、または、その第1の所定の情報で特定されるフローがループフローであるか否かを判定することを特徴とする。
 また、本発明によるループ検出プログラムは、コンピュータに、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、パケット内の第1の所定の情報およびパケット内の第2の所定の情報を含むパケット情報を受信する受信処理、パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類処理、および、分類処理で特定した第1の所定の情報を対象とし、受信処理で受信したパケット情報に含まれる第2の所定の情報を利用して、分類処理で特定した第1の所定の情報を有するパケットがループパケットであるか否か、または、その第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定処理を実行させることを特徴とする。
 本発明によれば、ループパケットまたはループフローを少ない処理負荷で検出することができる。
本発明のループ検出システムの第1の実施形態の例を示すブロック図である。 第1の実施形態における動作を示すフローチャートである。 計測装置の構成例を示すブロック図である。 ループ検出装置の構成例を示すブロック図である。 フロー毎の観測回数情報の一例を概念的に示す説明図である。 パケット毎の観測回数情報の一例を概念的に示す説明図である。 ループパケット検出処理の処理経過の例を示すフローチャートである。 ループ検出装置が行う処理を模式的に示す概念図である。 ステップS220の処理経過を示す説明図である。 ステップS230の処理経過を示す説明図である。 ループフロー判定処理の処理経過を示すフローチャートである。 第2の実施形態における動作を示すフローチャートである。 第2の実施形態における計測装置の構成例を示すブロック図である。 第2の実施形態におけるループ検出装置の構成例を示すブロック図である。 経路情報の一例を概念的に示す説明図である。 本発明のループ検出装置の最小構成の例を示す説明図である。 本発明のループ検出システムの最小構成の例を示す説明図である。
 以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
 図1は、本発明のループ検出システムの第1の実施形態の例を示すブロック図である。本発明のループ検出システムは、計測装置100と、ループ検出装置200とを備える。計測装置100は、ネットワーク内でパケットを転送するスイッチ300間に配置され、スイッチ300間で送受信されるパケットから情報を抽出する。また、計測装置100がスイッチ300により実現されていてもよい。すなわち、スイッチ300が、計測装置100としての動作も行う構成であってもよい。
 複数のスイッチ300によりネットワークが形成され、複数のフローのパケットが各スイッチを経由して、宛先の装置まで転送される。ただし、ループフローが生じる場合もある。各スイッチ300は、パケットを転送するパケット転送装置と称してもよい。
 計測装置100は、フローの計測を行う。ここで、「計測」とは、パケットから情報を抽出することを意味する。すなわち、計測装置100は、自身を通過するパケットから情報を抽出する。従って、計測装置100は、パケット情報抽出装置と称することもできる。計測装置100は、例えば、ルータによって実現される。
 本実施形態において、ループ検出装置200は、計測装置100に接続され、計測装置100が抽出した情報に基づいてループパケットまたはループフローを検出する。以下の説明では、説明を簡単にするために、ループ検出装置200がループパケットを検出する場合を例に説明する。ループ検出装置200は、例えば、サーバコンピュータによって実現される。ループ検出装置200は、複数の計測装置100に接続されていてもよい。その場合、ループ検出装置200は、個々の計測装置100毎に処理を行う。また、ループ検出装置200と計測装置100とが同一の装置で実現されていてもよい。
 ここで、各フローを識別する情報(以下、フロー識別子と記す。)について説明する。各フローは、例えば、送信側IPアドレス、受信側IPアドレス、送信側ポート番号、受信側ポート番号、送信側MAC(Media Access Control)アドレス、受信側MACアドレス、プロトコルID(プロトコルの識別情報)等のパラメータによって識別することができる。従って、上記の例示したパラメータのうちの1つ以上のパラメータの組み合わせをフロー識別子として用いることができる。なお、例示したパラメータの名称において、「送信側」とは「送信元」を意味し、「受信側」とは、「宛先」を意味する。以下の説明では、「送信側MACアドレスと受信側MACアドレスとの組」をフロー識別子とする場合を例示するが、他のパラメータの組み合わせをフロー識別子としてもよい。また、一つのパラメータをフロー識別子としてもよい。また、例示したパラメータ以外のパラメータをフロー識別子としてもよい。共通のフロー識別子を有するパケットは、同じフローのパケットである。
 図2は、第1の実施形態における動作を示すフローチャートである。
 計測装置100は、自身を通過するフローを計測する。すなわち、計測装置100は、自身を通過するパケットから情報を抽出する。そして、計測装置100は、抽出した情報をループ検出装置200に送信する(ステップS100)。このとき、計測装置100は、抽出した情報を、ループ検出装置200が受信可能なフォーマットに変換し、変換後の情報をループ検出装置200に送信する。
 パケットから抽出され、ループ検出装置200で受信可能なフォーマットに変換された情報を計測情報と記し、符号MSRで表す。計測装置100は、sFlow,NetFlow,PSAMP,IPFIX等のxFlow技術のフォーマットに従って、パケットから抽出した情報に対してフォーマット変換を行う。計測装置100は、フルキャプチャでダンプした情報を用いて、計測情報MSRを作成してもよい。
 計測情報MSRには、フロー識別子およびパケットのペイロードが含まれる。ただし、後述する第1の実施形態の変形例のように、フロー識別子およびパケットのTTL(Time-To-Live)を含むように計測情報MSRを作成してもよい。
 本実施形態では、計測装置100がsFlowのフォーマットに従って計測情報MSRを作成する場合を例にして説明する。この場合、計測装置100は、受信したパケットの先頭128バイトの情報を抽出する。この情報には、フロー識別子およびパケットのペイロードが含まれる。
 また、計測装置100は、計測情報MSRを周期的にループ検出装置100に送信する。
 ループ検出装置200は、計測装置100から計測情報MSRを受信し、計測情報MSRに基づいて、ループパケットの有無を調査する。そして、ループ検出装置200は、ループパケットであると判定されるパケットがあるならば、そのパケットをループパケットとして検出する(ステップS200)。ステップS200において、ループ検出装置200は、計測情報MSRに含まれるフロー識別子を利用して、ループパケットの可能性のあるパケットを特定する。そして、ループ検出装置200は、そのパケットを対象として、計測情報MSRに含まれるフロー識別子およびペイロードを利用して、ループパケットであるか否かを判定する。
 より詳細には、ループパケットの可能性のあるパケットを特定する処理で、ループ検出装置200は、受信した計測情報MSRに含まれるフロー識別子(本例では、送信側MACアドレスと受信側MACアドレスとの組)により、そのフロー識別子の抽出元のパケットを分類し、フロー識別子毎に、分類したパケットの数をカウントする。このフロー識別子毎のカウント結果は、計測装置100が観測したフロー毎のパケット数(すなわち、各フローの観測回数)を意味する。ループパケットは、ネットワーク内に滞留し続けているパケットであるので、ループパケットは計測装置100で複数回観測される可能性が高い。そのため、ループ検出装置200は、カウント結果の値が、予め定めた閾値(以下、候補特定用閾値と記す。)以上となったフローのパケットを、ループパケットの可能性があるパケットとして特定する。以下、ループパケットの可能性があるパケットを、ループパケット候補と記す。また、カウント結果の値が、候補特定用閾値以上になったフローは、ループフロー候補であるということができる。なお、ループフローは、ループパケットのフロー識別子によって特定されるフローである。
 そして、ループ検出装置200は、ループパケット候補を対象として、ループパケットであるか否かを判定する処理では、ループパケット候補から抽出された計測情報MSRに含まれるフロー識別子およびペイロードを参照して、フロー識別子およびペイロードの組毎に、ループパケット候補を分類し、分類したループパケット候補の数をカウントする。このカウント結果は、計測装置100によるパケット毎(ループパケット候補毎)の観測回数を意味する。ループ検出装置200は、このカウント結果が、予め定めた閾値(以下、ループパケット判定用閾値と記す。)以上となっているループパケット候補を、ループパケットであると判定する。
 このように、ステップS200において、まず、ループパケット候補を特定し、そのループパケット候補を対象にして、同じフロー識別子およびペイロードを含むループパケット候補の観測回数をカウントし、そのカウント結果からループパケットであるか否かを判定する。ループパケット候補(すなわち、フロー識別子およびペイロードを用いてパケット観測回数をカウントする対象)を定め、そのループパケット候補に関してのみペイロードの調査を行うので、全パケットに対してペイロードを調査する場合と比較して、メモリ使用量や計算量等の処理負荷を軽減することができる。
 以下、各装置の構成例や動作例を詳しく説明する。
 図3は、計測装置100の構成例を示すブロック図である。計測装置100は、計測を行う処理装置101を備える。処理装置101は、計測装置100自身を通過するパケットから情報をキャプチャするキャプチャ部110と、キャプチャ部110によってキャプチャされた情報に対してフォーマット変換を行うことによって計測情報MSRを作成する計測情報作成部120とを含む。キャプチャ部110および計測情報作成部120は、例えば、プログラムに従って動作するコンピュータのCPUによって実現される。この場合、計測装置100のプログラム記憶部(図示せず)がプログラムを記憶し、計測装置100のCPUがそのプログラムに従って、キャプチャ部110および計測情報作成部120として動作する。キャプチャ部110と計測情報作成部120がそれぞれ別のユニットで実現されていてもよい。
 ステップS100(図2参照)において、キャプチャ部110は、計測装置100を通過するパケットから先頭の128バイトの情報をキャプチャする。すなわち、パケットから先頭の128バイトの情報を抽出する。この情報には、フロー識別子(送信側MACアドレスおよび受信側MACアドレス)とペイロードとが含まれている。なお、キャプチャ部110は、周期的にパケットから情報をキャプチャしてもよい。あるいは、ランダムにパケットを選び、そのパケットから情報をキャプチャしてもよい。
 そして、計測情報作成部120は、キャプチャ部110がキャプチャした情報を、sFlowのフォーマットに変換することにより、計測情報MSRを作成する。計測情報作成部120は、作成した計測情報MSRを、一定期間毎にループ検出装置200に送信する。
 本実施形態では、計測装置110とループ検出装置200との間の計測情報MSRの送受信にsFlowを適用する場合を例にしているが、NetFlow,PSAMP,IPFIX等の他の技術を適用してもよい。sFlow以外の技術を適用する場合、パケットから抽出される情報は、先頭の128バイトに限定されない。
 図4は、ループ検出装置200の構成例を示すブロック図である。ループ検出装置200は、ループパケット候補の特定やループケットの判定を行う処理装置201と、記憶装置202とを備える。
 処理装置201は、記憶装置202に対して書き込みや読み込みを行って、処理を進める。処理装置201は、受信部210と、分類部220と、検出部230とを含む。受信部210は、計測装置110が送信した計測情報MSRを受信する。分類部220は、ループパケット候補を特定する。検出部230は、ループパケット候補がループパケットであるか否かを判定し、ループパケットを検出する。
 受信部210、分類部220および検出部230は、例えば、ループ検出プログラムに従って動作するコンピュータのCPUによって実現される。この場合、ループ検出装置200のプログラム記憶部(図示せず)がループ検出プログラムを記憶し、ループ検出装置200のCPUがそのループ検出プログラムに従って、受信部210、分類部220および検出部230として動作すればよい。この場合、処理装置201がCPUに相当する。また、受信部210、分類部220および検出部230が別々のユニットで実現されていてもよい。
 記憶装置202は、例えば、RAM(Random Access Memory)やHDD(Hard Disk Drive)によって実現される。記憶装置202は、計測情報MSRと、フロー毎の観測回数情報OBFLOWと、パケット毎の観測回数情報OBPKTと、コンフィグ情報CONFとを記憶する。
 計測情報MSRは、計測装置110から受信した受信した情報であり、計測情報MSRの元となったパケットのフロー識別子およびペイロードを含んでいる。
 フロー毎の観測回数情報OBFLOWは、計測装置100における各フローの観測回数を示す情報である。本実施形態では、フロー毎の観測回数情報OBFLOWのデータ構造に、ブルームフィルタの一種であるカウンティングフィルタを用いる。図5は、フロー毎の観測回数情報OBFLOWの一例を概念的に示す説明図である。記憶装置202は、フロー毎のフィールドに、フロー識別子毎のパケット観測回数(換言すれば、各フローの観測回数)のカウント結果を記憶する。フローの分類には、計測情報MSRに含まれるパケットヘッダ内のフロー識別子が用いられ、ペイロードは考慮されない。分類部220は、計測装置100から受信した計測情報MSR内のフロー識別子を参照し、そのフロー識別子に対応するフィールドのカウント値を1増加させる。分類部220は、カウント値が候補特定用閾値以上となったフローのパケットをループパケット候補と判定する。この処理は、カウント値が候補特定用閾値以上となったフローをループフロー候補と判定する処理であるということもできる。
 パケット毎の観測回数OBPKTは、計測装置100における各パケット(より詳しくは、ループパケット候補)の観測回数を示す情報である。本実施形態では、パケット毎の観測回数OBPKTのデータ構造として、ブルームフィルタの一種であるカウンティングフィルタを用いる。図6はパケット毎の観測回数情報OBPKTの一例を概念的に示す説明図である。記憶装置202は、パケット毎のフィールドに、計測装置100によるパケット観測回数を記憶する。パケットの分類には、計測情報MSRに含まれるパケットヘッダ内のフロー識別子とペイロードが用いられる。検出部230は、計測装置100から受信した計測情報MSR内のフロー識別子およびペイロードを参照し、そのフロー識別子およびペイロードの組に対応するフィールドのカウント値を1増加させる。検出部230は、カウント値がループパケット判定用閾値以上になったフィールドに該当するループパケット候補をループパケットと判定する。
 なお、ここでは、フロー毎の観測回数情報OBFLOWやパケット毎の観測回数OBPKTのデータ構造にカウンティングフィルタを用いる場合を示すが、他のデータ構造を用いてもよい。
 コンフィグ情報CONFは、フロー毎の観測回数情報OBFLOWおよびパケット毎の観測回数OBPKTをリフレッシュする周期や、候補特定用閾値、ループパケット判定用閾値等の、ループ検出装置200に関する各種設定値を含む情報である。
 図7は、ループ検出装置200が行うループパケット検出処理(ステップS200、図2参照)の処理経過の例を示すフローチャートである。また、図8は、ループ検出装置200が行う処理を模式的に示す概念図である。
 受信部210は、計測装置100が送信する計測情報MSRを受信し、その計測情報MSRを記憶装置202に格納する(ステップS210)。この計測情報MSRは、計測装置100が観測したパケットのヘッダおよびペイロードを含んでいる。ヘッダは、フロー識別子(送信側MACアドレスおよび受信側MACアドレス)を含んでいる。
 分類部220は、ステップS210で受信した計測情報MSRに基づいて、その計測情報MSRの元となるパケットのフローを分類する(ステップS220)。分類部220は、計測情報MSRに含まれているヘッダ内のフロー識別子(送信側MACアドレスおよび受信側MACアドレス)によりフローを分類する。ただし、分類部220は、フロー識別子をハッシュ値に変換し、そのハッシュ値でフローを分類する。分類部220は、フロー毎の観測回数情報OBFLOWにおいて、フロー識別子を変換したハッシュ値に対応するフィールドのカウント値を1増加させる。
 図9は、ステップS220の処理経過を示す説明図である。ステップS220において、分類部220は、ステップS210で受信した計測情報MSRに含まれるフロー識別子をKEYとしてハッシュ値を算出する(ステップS221)。本例では、分類部220は、送信側MACアドレスおよび受信側MACアドレスをKEYとしてハッシュ関数に代入することによって、ハッシュ値を計算すればよい。ハッシュ関数としては、一般的に用いられているSHA-1やMD2等を用いればよいが、他のハッシュ関数を用いてもよい。
 次に、分類部220は、フロー毎の観測回数情報OBFLOWにおいて、ステップS221で計算したハッシュ値に対応するフィールドのカウント値を1増加させる(ステップS222)。この値は、ステップS221でKEYとしたフロー識別子が示すフローのパケット観測回数であり、フローの観測回数であるとも言える。
 ステップS221において、分類部220は、複数のハッシュ関数に関して、それぞれフロー識別子のハッシュ値を計算してもよい。そして、分類部220は、ハッシュ関数毎に別々の観測回数情報OBFLOWを用意しておき、ステップS222では、ハッシュ関数毎にカウント値を更新してもよい。この場合、一つのフロー識別子に対して、ハッシュ関数の種類分のカウント値が得られるが、そのカウント値のうち、最小の値をフロー観測回数として採用すればよい。このように複数のハッシュ関数を用いることで、ハッシュ値の衝突によるカウントのミスを軽減することができる。また、計算量やメモリ使用量をより少なくする場合には、一つのハッシュ関数を用いればよい。
 ステップS222の次に、分類部220は、ステップS222で更新したカウント値と、コンフィグ情報CONFに含まれている候補特定用閾値とを比較する(ステップS223)。カウント値が候補特定用閾値以上であれば(ステップS223におけるYes)、分類部220は、そのカウント値に対応するフロー識別子と、そのフロー識別子とともにパケットから抽出されたペイロードに関して、検出部230にステップS230(図7参照)の処理を開始させる。このことは、候補特定用閾値以上となったカウント値に対応するフロー識別子が抽出されたパケットをループパケット候補としていることを意味する。また、フロー識別子が示すフローをループフロー候補としていることを意味する。一方、カウント値が候補特定用閾値未満であれば(ステップS223におけるNo)、そのカウント値に対応するフロー識別子に関して、処理を終了する。
 分類部220は、計測装置100から受信した情報における各フロー識別子について、それぞれステップS221以降の処理を実行する。
 検出部230は、フロー毎の観測回数情報OBFLOWにおいて、候補特定用閾値以上になったカウント値に対応するフロー識別子と、そのフロー識別子とともにパケットから抽出されたペイロードとを用いて、そのフロー識別子およびペイロードを含むループパケット候補が、ループパケットに該当するか否かを判定する(ステップS230)。検出部230は、ステップS230において、フロー識別子とペイロードとの組をハッシュ値に変換し、パケット毎の観測回数情報OBPKTにおいて、そのハッシュ値に対応するフィールドのカウント値を1増加させる。検出部230は、そのカウント値とループパケット判定用閾値とを比較し、ループパケット判定用閾値以上となったカウント値に対応するフロー識別子とペイロードとの組を含むパケットを、ループパケットとして検出する。
 図10は、ステップS230の処理経過を示す説明図である。図9に示すステップS223において、分類部220が候補特定用閾値以上のカウント値に対応するフロー識別子を特定したならば、検出部230は、そのフロー識別子と、そのフロー識別子とともにパケットから抽出されたペイロードとを計測情報MSRから読み出す。そして、検出部230は、そのフロー識別子およびペイロードの組をKEYとしてハッシュ値を算出する(ステップS231)。本例では、検出部230は、送信側MACアドレスおよび受信側MACアドレスとペイロードとをKEYとしてハッシュ関数に代入することによって、ハッシュ値を計算すればよい。ハッシュ関数としては、一般的に用いられているSHA-1やMD2等を用いればよいが、他のハッシュ関数を用いてもよい。
 次に、検出部230は、パケット毎の観測回数情報OBPKTにおいて、ステップS231で計算したハッシュ値に対応するフィールドのカウント値を1増加させる(ステップS232)。この値は、ステップS231でKEYとしたフロー識別子およびペイロードを含むループパケット候補の観測回数である。
 ステップS231において、検出部230は、複数のハッシュ関数に関して、それぞれフロー識別子およびペイロードの組のハッシュ値を計算してもよい。そして、検出部230は、ハッシュ関数毎に別々の観測回数情報OBPKTを用意しておき、ステップS232では、ハッシュ関数毎にカウント値を更新してもよい。この場合、フロー識別子とペイロードの一つの組に対して、ハッシュ関数の種類分のカウント値が得られるが、そのカウント値のうち、最小の値をパケット観測回数として採用すればよい。このように複数のハッシュ関数を用いることで、ハッシュ値の衝突によるカウントのミスを軽減することができる。また、計算量やメモリ使用量をより少なくする場合には、一つのハッシュ関数を用いればよい。
 ステップS232の次に、検出部230は、ステップS232で更新したカウント値と、コンフィグ情報CONFに含まれているループパケット判定用閾値とを比較する(ステップS233)。カウント値がループパケット判定用閾値以上であれば(ステップS233におけるYes)、検出部230は、そのカウント値に対応するフロー識別子およびペイロードの組を含むループパケット候補をループパケットであると判定する。また、カウント値がループパケット判定用閾値未満であれば(ステップS233におけるNo)、検出部230は、そのループパケット候補をループパケットとして検出せずに、そのループパケット候補に関する処理を終了する。
 また、分類部220は、コンフィグ情報CONFで規定されているリフレッシュの周期で、フロー毎の観測回数情報OBFLOWを定期的にリフレッシュする。同様に、検出部230も、コンフィグ情報CONFで規定されている周期で、パケット毎の観測回数OBPKTをリフレッシュする。リフレッシュにより、各カウント値は0に初期化される。
 上記の説明では、ステップS230でフロー識別子およびペイロードを用いる場合を例にして説明したが、検出部230は、ステップS230で、フロー識別子と、エンドツーエンド(End-to-End)で変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報とを用いて処理を行えばよい。ペイロードは、「エンドツーエンドで変化しないフィールドであって、同一フローであってもパケット毎に変化するフィールドの情報」の一例である。「エンドツーエンドで変化しないフィールドであって、同一フローであってもパケット毎に変化するフィールドの情報」の他の例として、TCP(Transmission Control Protocol )シーケンス番号、IDフィールドの情報、RTP(Real-time Transport Protocol)シーケンス番号もある。よって、ステップS230では、フロー識別子とTCPシーケンス番号とを用いてもよい。また、フロー識別子とIDフィールドの情報とを用いてもよい。また、フロー識別子とRTPシーケンス番号とを用いてもよい。
 すなわち、計測装置100のキャプチャ部110は、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報と、フロー識別子とを含む情報をパケットから抽出し、計測情報作成部120は、そのフィールドの情報とフロー識別子を計測情報MSRに含めればよい。そして、検出部230は、フロー識別子と、「エンドツーエンドで変化しないフィールドであって、同一フローであってもパケット毎に変化するフィールドの情報」とを用いて、上記のステップS230と同様の処理を行えばよい。
 本実施形態によれば、分類部220が、フロー識別子毎に計測装置100におけるフロー観測回数をカウントし、そのカウント値が候補特定用閾値以上になったフロー識別子を特定する。そして、検出部230は、そのフロー識別子のみを対象として、フロー識別子と、フロー識別子とともにパケットから抽出されたペイロードとの組毎の計測装置100におけるパケット観測回数をカウントする。そして、そのカウント値がループパケット判定用閾値以上になったフロー識別子とペイロードの組を含むパケットを、ループパケットとして検出する。このように、分類部220がパケットをスクリーニングし、スクリーニングされたパケット(ループパケット候補)のみに関して、フロー識別子とペイロードの組毎にパケット観測回数をカウントすればよいので、ループパケット検出のための計算量やメモリ使用量を抑えることができる。
 フロー識別子と、フロー識別子およびペイロードの組とを比較すると、後者の方がデータ量が多い。よって、スクリーニングせずに、計測情報MSRの元となる全パケットを、フロー識別子とペイロードの組毎に分類して観測回数をカウントしていくと計算量やメモリ使用量が多くなってしまう。また、フロー識別子とペイロードの組の種類が増加するので、ハッシュ値の計算を行うときにハッシュ値の衝突確率も増加してしまう。本発明では、分類部220のスクリーニングにより、フロー識別子とペイロードの組毎に分類して観測回数をカウントする対象を絞り込んでいるので、処理負荷を抑えることができる。また、ハッシュ値の衝突確率の増加を防止することができる。
 また、上記の実施形態では、ループ検出システムが、ループパケットを検出する場合を例にして説明したが、ループフローを検出してもよい。ループフローを検出する場合においても、計測装置100の動作は上記の動作と同様である。また、ループ検出装置200の検出部230は、ステップS233において、ループパケット判定用閾値以上になっている観測回数情報OBPKTのカウント値があるならば、そのカウント値に対応するフロー識別子およびペイロードの組を特定し、そのフロー識別子によって特定されるフローをループフローと判定すればよい。他の動作は、上記の実施形態と同様である。ループフローを検出する場合にも、処理負荷を抑えるという効果が得られる。
 次に、第1の実施形態の変形例として、計測処理100が、フロー識別子およびパケットのTTLを含むように計測情報MSRを作成し、ループ検出装置200がその計測情報MSRを参照してループフローを検出する実施形態を説明する。なお、第1の実施形態と同様の処理については説明を省略する。本変形例では、ループフローが検出対象となる。本変形例においても、計測装置100およびループ検出装置200は、それぞれ図3、図4に例示する構成要素を含む。
 TTLは、パケットに格納されているパラメータであり、パケットの送信元で初期値が設定され、パラメータがスイッチ300(図1参照)を経由する毎に、スイッチ300によって1ずつ減算される。なお、TTLのバイト数は1バイトである。
 本変形例においても、計測装置100は、図3に例示する構成要素を含み、計測情報MSRを作成する。ただし、計測装置100のキャプチャ部110(図3参照)は、計測装置100を通過するパケットからフロー識別子およびTTLを含む情報を抽出する。そして、計測情報作成部120が、キャプチャ部110によって抽出された情報に対してフォーマット変換を行い、計測情報MSRを作成する。計測情報作成部120は、フロー識別子およびTTLを含む計測情報MSRをループ検出装置200に送信する。
 また、本変形例においても、ループ検出装置200は、図4に例示する構成要素を含む。ただし、記憶装置202は、パケット毎の観測回数情報OBPKTの代わりに、各フローにおけるTTL毎の観測回数情報を記憶する。以下、この情報をTTL観測回数情報と記す。TTL観測回数情報のデータ構造にも、例えば、カウンティングフィルタが用いられる。ただし、個々のフローに関してそれぞれ、TTL毎の計測回数がカウントされる。従って、本変形例では、フロー毎にそれぞれカウンティングフィルタが保持される。
 また、コンフィグ情報CONFは、ループパケット判定用閾値の代わりに、TTL観測回数情報に含まれるTTLのカウント値と比較されるループフロー判定用閾値を含む。
 ループ検出装置200の受信部210および分類部220は、第1の実施形態と同様であり、図7に示すステップS210およびステップS220(具体的には図9に示すステップS221~S223)を実行する。
 ステップS223(図9参照)において、更新後のカウント値が候補特定用閾値以上であるならば、分類部220は、そのカウント値に対応するフロー識別子に関し、そのフロー識別子とともに検出されたTTLの観測回数を更新し、そのフロー識別子が示すフローがループフローであるか否かを判定する処理(ループフロー判定処理)を検出部230に開始させる。従って、本変形例では、検出部230は、図7に示すステップS230の代わりに、ループフロー判定処理を行う。
 図11は、ループフロー判定処理の処理経過を示すフローチャートである。図9に示すステップS223において、分類部220が候補特定用閾値以上のカウント値に対応するフロー識別子を特定したならば、検出部230は、そのフロー識別子とともにパケットから抽出されたTTLを計測情報MSRから読み出す。なお、このフロー識別子を、以下、「着目しているフロー識別子」と記す。検出部は、読み出したTTLをKEYとしてハッシュ値を算出する(ステップS241)。検出部230は、TTLをKEYとしてハッシュ関数に代入することによってTTLのハッシュ値を計算すればよい。
 次に、検出部230は、TTL観測回数情報において、着目しているフロー識別子に関する各TTLのカウント値のうち、ステップS241で計算したハッシュ値に対応するカウント値を1増加させる(ステップS242)。すなわち、着目しているフロー識別子が示すフローにおいて、ステップS241で計測情報MSRから読み出したTTLの観測回数を1増やす。
 TTLのハッシュ値に対応するカウント値の初期値は0であり、TTLが観測されると、そのTTLに関するカウント値は1増加される。よって、着目しているフロー識別子に関する各TTLのうち、カウント値が1以上になっているTTLは、観測されたTTLである。検出部230は、着目しているフロー識別子に関して、カウント値が1以上になっているフィールドの数(すなわち、観測されたTTLの種類の数)と、ループフロー判定用閾値とを比較する(ステップS243)。観測されたTTLの種類の数がループフロー判定用閾値以上であれば(ステップS243におけるYes)、検出部230は、着目しているフロー識別子が示すフローをループフロート判定する。また、観測されたTTLの種類の数がループフロー判定用閾値未満であれば(ステップS243におけるNo)、検出部230は、ループフローを検出せずに、着目しているフロー識別子に関する処理を終了する。
 一般に、ネットワークにおいて、送信元から送信先までの経路は頻繁に変動しない。そのため、ネットワーク内に配置された計測装置100を通過するパケットのうち、同一フローの各パケットは同じ経路を通過してきたと考えられ、その各パケットのTTLは同じ値である確率が高い。
 しかし、ループフローのパケットは、計測装置100を通過して、ネットワーク内を循環し、再度計測装置100を通過することを繰り返す。同じパケットであっても、計測装置100に到着したときのTTLは、前回計測装置100に到着したときのTTLとは異なっている。よって、着目しているフローに関して、観測されるTTLの種類が多ければ、そのフローがループフローであると判定できる。本変形例では、このことを利用して、ループフローを検出している。
 また、この変形例においても、第1の実施形態と同様に、処理負荷を軽減してループフローを検出することができる。
 また、上記の変形例では、ステップS241~S243でTTLを用いる場合を例に説明したが、検出部230は、パケットが転送される毎に変化するフィールドの情報を用いてステップS241~S243の処理を行えばよい。TTLは、「パケットが転送される毎に変化するフィールドの情報」の一例である。
 すなわち、計測装置100のキャプチャ部110は、パケットが転送される毎に変化するフィールドの情報と、フロー識別子とを含む情報をパケットから抽出し、計測情報作成部120は、そのフィールドの情報とフロー識別子を計測情報MSRに含めればよい。そして、検出部230は、フロー識別子と、「パケットが転送される毎に変化するフィールドの情報」とを用いて、上記のステップS241~S243と同様の処理を行えばよい。
 「パケットが転送される毎に変化するフィールドの情報」の例として、TTLの他に、インプットポート(InputPort )の情報が挙げられる。よって、検出部230は、インプットポートの情報を用いてステップS241~S243の処理を行ってもよい。
実施形態2.
 本発明は、ある制御装置(図示略)が、ネットワーク上のパケット転送装置(例えば、図1に示すスイッチ300)を集中管理するネットワークシステムにも適用可能である。第2の実施形態は、そのようなネットワークシステムおいて実現される実施形態である。なお、ネットワークシステムは、制御装置が各パケット転送装置(図1に示すスイッチ300)を制御する態様であれば、特に限定されないが、ここではオープンフロー技術を例にして説明する。
 オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位での経路制御、障害回復、負荷分散、最適化を実現する。パケット転送装置として機能するオープンフロースイッチは、制御装置(オープンフローコントローラ)とセキュアチャネルを介して通信を行う。また、オープンフロースイッチは、フロー毎に分類情報とアクションとフロー統計情報とを定義したフローテーブルを保持する。分類情報は、パケットのヘッダと照合され、そのパケットが分類情報に対応するフローのパケットであるか否かを判断するための情報である。アクションは、そのアクション情報に対応するフローのパケットに対する処理内容を規定した情報である。
 オープンフロースイッチは、パケットを受信すると、そのパケットと、フローテーブルの各エントリにおける分類情報とを照合して、そのパケットがどのフローのパケットであるかを判断する。そして、そのフローのアクションで定められた処理を、そのパケットに対して実行する。例えば、アクションで定められたオープンフロースイッチにそのパケットを転送する。
 また、オープンフロースイッチは、フローテーブルにおける各エントリと照合してもパケットのフローを特定できない場合には、セキュアチャネルを介してそのパケットをオープンフローコントローラに送信し、そのパケットのフローに対応する分類情報、アクションの決定を要求する。なお、フローテーブルにおける各エントリと照合してもフローを特定できないパケットをファーストパケット(First Packet)と呼ぶ。オープンフローコントローラは、この要求に応じて、例えば、ファーストパケットの経路を決定し、経路上の各オープンフロースイッチに、新規フローの分類情報およびアクションを設定する。この設定により、経路上の各オープンフロースイッチは、新たなパケットを、決定された経路に沿って順次転送していくことができる。
 第2の実施形態のループ検出システムも、図1に示すように、計測装置100と、ループ検出装置200とを備える。以下に示す説明では、図1に示す各スイッチ300が、オープンフロースイッチである場合を例にして説明する。以下、オープンフロースイッチを単にスイッチと記す。
 オープンフローでは、以下のパラメータを自由に組み合わせてフローを定義してよい。すなわち、入力ポート(Ingress Port)、MAC DA(MACディスティネーションアドレス、すなわち受信側MACアドレス)、MAC SA(MACソースアドレス、すなわち送信側MACアドレス)、Ethernet(登録商標)タイプ(TPID)、VLAN ID(Virtual LAN ID)、VLAN TYPE(優先度)、IP SA(IPソースアドレス)、IP DA(IPディスティネーションアドレス)、IPプロトコル、ソースポート(TCP/UDP(User Datagram Protocol) Source Port)、ICMP(Internet Control Message Protocol ) Type、ディスティネーションポート(TCP/UDP Destination Port)、あるいは、ICMP Codeを自由に組み合わせることで、フロー識別子を定義してよい。ここでは、送信側MACアドレスと受信側MACアドレスとの組をフロー識別子とする場合を例にして説明するが、他のパラメータの組み合わせをフロー識別子としてもよい。
 計測装置100(図1参照)は、スイッチ300間に配置され、スイッチ300間で送受信されるパケットから情報を抽出する。計測装置100は、例えば、ルータによって実現される。ループ検出装置200は、計測装置100が抽出した情報に基づいてループパケットまたはループフローを検出する。ループ検出装置200は、例えば、サーバコンピュータによって実現される。これらの点は、第1の実施形態またはその変形例と同様である。第2の実施形態では、ループパケットまたはループフローの検出処理に加え、ループ検出装置200が、計測装置100にループパケットの削除を指示し、計測装置100が、その指示に従って、検出されたループパケット、あるいは、検出されたループフローのフロー識別子を有するパケットを削除する。
 また、ループ検出装置200は、複数の計測装置100に接続されていてもよい。その場合、ループ検出装置200は、個々の計測装置100毎に処理を行う。また、ループ検出装置200と計測装置100とが同一の装置で実現されていてもよい。また、ループ検出装置200がオープンフローコントローラ(図示略)と同一の装置で実現されていてもよい。
 計測装置100は、第1の実施形態で説明したように、パケットからフロー識別子およびペイロードを含む情報を抽出し、フロー識別子およびペイロードを含む計測情報MSRを作成する。また、以下の説明では、説明を簡単にするために、ループ検出装置200が、ループパケットを検出する場合を例にして説明する。
 図12は、第2の実施形態における動作を示すフローチャートである。第2の実施形態と同様の処理については、図2と同一の符号を付し、詳細な説明を省略する。
 計測装置100は、自身を通過するパケットからフロー識別子およびペイロードを含む情報を抽出し、その情報をフォーマット変換して計測情報MSRを作成する。そして、計測装置100は、計測情報MSRを周期的にループ検出装置100に送信する(ステップS100)。
 ループ検出装置200は、計測情報MSRを参照し、ループパケットの可能性のあるパケット(ループパケット候補)を特定する。そして、そのループパケット候補を対象として、フロー識別子およびペイロードを利用して、ループパケットであるか否かを判定する(ステップS200)。
 ステップS100,S200の動作は、第1の実施形態と同様である。従って、ループパケットを特定する際におけるメモリ使用量や計算量の増加を抑えることができる。
 第2の実施形態では、ループ検出装置200は、ループパケットに対する処理を規定する制御情報を作成し、その制御情報を計測情報100に送信する(ステップS300)。ループパケットに対する処理とは、具体的には、廃棄処理である。例えば、ループ検出装置200は、ループパケットのフロー識別子を指定し、そのフロー識別子を含むパケットを廃棄する旨の制御情報を作成し、計測情報100に送信する。
 また、ループ検出装置200は、フロー毎の経路情報(PATと記す。)を保持しておき、ステップS300では、ループパケットのフロー識別子と経路情報PATとから、ループパケットが通過するスイッチ300を特定してもよい。そして、ループ検出装置200は、制御情報を、ループパケットが通過する経路上の各スイッチに送信してもよい。
 制御情報を受信した計測装置100は、自身を通過するパケットのうち、その制御情報に定められた条件に合致するパケットを廃棄する(ステップS400)。例えば、制御情報に定められたフロー識別子を含むパケットが計測装置100に到着したときに、計測装置100は、そのパケットを廃棄する。
 また、ループ検出装置200がステップS300で、ループパケットが通過する各スイッチ300に対して制御情報を送信した場合、その各スイッチ300も、自身に転送されたパケットのうち、制御情報に定められた条件に合致するパケットを廃棄する。
 このように、ループ検出装置200は、ループパケットを検出したときに、そのループパケットを廃棄するように、計測装置100またはスイッチ300を制御し、計測装置100やスイッチ300は、その制御に従ってループパケットを廃棄する。従って、第2の実施形態では、第1の実施形態の効果に加えて、ネットワーク内に滞留するループパケットを廃棄して、ネットワーク資源を有効に使用できるという効果も得られる。
 オープンフローが適用されないネットワークでは、例えば、ポートレベルでフロー制御を行う。そのため、例えば、1つのポートを複数のフローが通過する場合、その複数のフローのうち1つのフローがループフローであると検出されると、ループフロー以外のフローがそのポートと通過していても、そのポートを遮断してしまうことがあり得る。これに対し、本発明をオープンフローネットワークに適用した場合には、フロー毎の制御が可能であるので、上記のような場合でも、ポートごと遮断する必要はなく、資源を有効に使うことが可能となる。
 以下、各装置の構成例や動作例を詳しく説明する。
 図13は、第2の実施形態における計測装置100の構成例を示すブロック図である。第2の実施形態における計測装置100は、処理装置101と、制御情報CONを記憶する記憶装置102とを備える。記憶装置102は、ループ検出装置200から受信した制御情報CONを記憶する。制御情報CONは、ループパケットを識別するための条件(例えば、ループパケットのフロー識別子)と、その条件に合致するパケットに対するアクションの指示とを含む。以下に示す説明では、アクションの内容が、パケットの廃棄である場合を例にして説明するが、パケットに対する制御の指示内容は、パケットの廃棄に限定されない。例えば、制御情報CONは、条件に合致するパケットに対してQoS(Quality of Service)制御を指示するものであってもよい。また、例えば、制御情報CONは、条件に合致するパケットに対して帯域制御を指示するものであってもよい。
 また、第2の実施形態では、処理装置101は、キャプチャ部110と、計測情報作成部120と、フロー制御部130とを備える。キャプチャ部110および計測情報作成部120は、第1の実施形態と同様であり、説明を省略する。
 フロー制御部130は、ループ検出装置200が送信した制御情報CONを受信し、記憶装置102に記憶させる。また、フロー制御部130は、計測装置100を通過するパケットが、制御情報CONに含まれる条件に合致するか否かを判定し、合致していれば、制御情報CONに従って廃棄する。パケットが条件に合致していなければ、フロー制御部130は、そのパケットを通過させる。
 キャプチャ部110、計測情報作成部120およびフロー制御部130は、例えば、プログラムに従って動作するコンピュータのCPUによって実現される。
 また、フロー計測機能(キャプチャ部110および計測情報作成部120)と、フロー制御機能(フロー制御部130)とが一台の装置で実現されている必要はなく、それぞれ別の装置で実現されていてもよい。例えば、フロー計測機能がプローブで実現され、フロー制御機能がルータで実現されていてもよい。この場合、プローブとルータとをまとめたものが計測装置100に相当する。
 なお、スイッチも制御情報を受信して制御情報に従ってパケットを破棄する態様では、各スイッチも、上述のフロー制御装置130および記憶装置102を備える。
 図14は、第2の実施形態におけるループ検出装置200の構成例を示すブロック図である。第1の実施形態と同様の構成要素に関しては、図4と同一の符号を付し、説明を省略する。ループ検出装置200は、処理装置201と、記憶装置202とを備える。
 処理装置201は、受信部210と、分類部220と、検出部230と、制御情報作成部240とを備える。受信部210、分類部220および検出部230は、第1の実施形態と同様である。
 制御情報作成部240は、検出部230がループパケットを判定した場合、そのループパケットを識別するための条件と、その条件に合致するパケットを廃棄する旨の指示とを含む制御情報CONを作成する。制御情報作成部240は、ループパケットを識別するための条件として、ループパケットが含まれるフローのフロー識別子を制御情報CONに含めればよい。また、フロー識別子だけでなくペイロードも、ループパケットを識別するための条件として制御情報CONに含めてもよい。
 制御情報作成部240は、作成した制御情報CONを計測装置100に送信する。制御情報作成部240は、その制御情報CONを記憶装置202に記憶させてもよい。
 また、制御情報作成部240は、ループパケットのフロー識別子が示すフローの経路を特定し、その経路上の各スイッチ300に対して制御情報CONを送信してもよい。あるいは、制御情報作成部240は、特定した経路上のスイッチのうち、個別に選択したスイッチに制御情報CONを送信してもよい。例えば、経路上のスイッチのうち、ネットワークの入り口のスイッチに対してだけ制御情報CONを送信してもよい。
 受信部210、分類部220、検出部230および制御情報作成部240は、例えば、ループ検出プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUが、ループ検出プログラムに従って、受信部210、分類部220、検出部230および制御情報作成部240として動作すればよい。また、 受信部210、分類部220、検出部230および制御情報作成部240が別々のユニットで実現されていてもよい。
 記憶装置202は、第1の実施形態と同様に、計測情報MSR、フロー毎の観測回数情報OBFLOW、パケット毎の観測回数情報OBKT、およびコンフィグ情報CONFを記憶する。第2の実施形態では、記憶装置202は、さらに、経路情報PATと、制御情報CONとを記憶していてもよい。
 経路情報PATは、各フローの経路を示す情報である。図15は、経路情報PATの一例を概念的に示す説明図である。図15に示すように、経路情報PATは、フロー毎に、フロー識別子と、経路上のリンクを表す情報とを対応付けている。図15に示す例では、経路上のリンクを表す情報として、個々のリンク毎に、経路上のリンクであるか否かを「1」または「0」で表している。経路上のリンクに該当する場合は、「1」と記述され、経路上のリンクに該当する場合には「0」と記述される。なお、図15に示す例では、フロー識別子として、送信側IPアドレスおよび受信側IPアドレスを用いる場合を例示しているが、フロー識別子としては、ループ検出装置20が処理に用いるフロー識別子を用いることが好ましい。また、各リンクは、例えば、リンクの両端のスイッチの識別情報の組み合わせによって識別されていればよい。
 ループ検出装置200は、例えば、オープンフローコントローラ(図示略)から経路情報PATを受信し、記憶装置202に記憶すればよい。例えば、オープンフローコントローラが、スイッチからファーストパケットを受信して、ファーストパケットのフローに対する経路を決定したときに、そのフローのフロー識別子と経路とを対応付けてループ検出装置200に送信すればよい。ループ検出装置200は、その情報を受信し、経路情報PATとして記憶装置202に記憶させればよい。
 また、ループ検出装置200とオープンフローコントローラとが同一の装置で実現され、ループ検出装置200がオープンフローコントローラとしても動作する場合には、ループ検出装置200が、スイッチからファーストパケットを受信して、ファーストパケットのフローに対する経路を決定したときに、そのフローのフロー識別子と経路とを対応付け、経路情報PATとして記憶装置202に記憶させればよい。
 図12、図13および図14を参照して、第2の実施形態の動作を詳しく説明する。ただし、図12に示すステップS100,S200の動作は、第1の実施形態と同様であり、説明を省略する。ここでは、ステップS200でループパケットが検出された後のステップS300,S400について説明する。
 検出部230がループパケットを検出すると、制御情報作成部240は、そのループパケットを識別するための条件として、そのループパケットのフローのフロー識別子を含む制御情報CONを作成する。また、そのループパケットを識別するための条件として、フロー識別子だけでなくペイロードを含む制御情報CONを作成してもよい。このフロー識別子やペイロードは、具体的には、パケット毎の観測回数情報において、ループパケット判定用閾値以上にカウントアップされたカウント値に対応するフロー識別子やペイロードである。また、制御情報作成部240は、制御情報に、条件に合致したパケットを廃棄することを指示する旨の情報も含める。制御情報作成部240は、作成した制御情報CONを計測装置100に送信する(ステップS300)。制御情報作成部240は、例えば、TCPやUDP等の既存の通信プロトコルに従って制御情報を計測装置100に送信すればよい。
 また、制御情報作成部240は、経路情報PATを参照して、オープンフローネットワーク内のスイッチのうち、ループパケットのフロー識別子に対応する経路上のスイッチを特定し、その各スイッチに制御情報を送信してもよい。また、制御情報作成部240は、経路上のスイッチのうち、個別に選択したスイッチ(例えば、ネットワークの入り口のスイッチ)に対してだけ、制御情報を送信してもよい。
 計測装置100のフロー制御部130(図13参照)は、ループ検出装置200から制御情報CONを受信すると、その制御情報CONを記憶装置102に記憶させる。そして、フロー制御部130は、計測装置100を通過するパケットを、制御情報CONに従って処理する。すなわち、フロー制御部130は、制御情報CONに含まれる条件(例えば、フロー識別子)と、計測装置100に到着したパケットとを照合し、そのパケットが条件に合致していれば、そのパケットを制御情報CONに従い廃棄する。条件に合致するパケットは、ループフローのパケットであるので、ネットワーク内に滞留し続けるパケットが廃棄されることになる。なお、既に説明したように、制御情報CONに含まれる条件は、フロー識別子とペイロードの組み合わせであってもよい。
 また、以上の説明では、ループ検出装置200の検出部230がループパケットを検出する場合を例に説明したが、第1の実施形態で説明したように、ループ検出装置200の検出部230がループフローを検出してもよい。この場合におけるステップS300,S400の動作は、検出部230がループパケットを検出する場合の動作と同様である。この場合においても、制御情報作成部240は、ループフローのフロー識別子を制御情報に含めればよい。
 また、第2の実施形態においても、ループパケットまたはループフローを特定する際にペイロードを用いる場合を例にして説明した。第1の実施形態で説明したように、ループパケットまたはループフローを特定する際には、ループ検出装置200は、フロー識別子と、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報とを用いて処理を行えばよい。ペイロードは、そのようなフィールドの情報の一例である。「エンドツーエンドで変化しないフィールドであって、同一フローであってもパケット毎に変化するフィールドの情報」の他の例として、TCPシーケンス番号、IDフィールドの情報、RTPシーケンス番号もある。よって、ループ検出装置200は、これらの情報を用いてもよい。
 また、第1の実施形態の変形例と同様に、計測処理100が、フロー識別子およびパケットのTTLを含むように計測情報MSRを作成し、ループ検出装置200がTTLを利用して、ループフローを検出してもよい。この場合、計測処理100が、フロー識別子およびパケットのTTLを含むように計測情報MSRを作成する動作は、第1の実施形態の変形例と同様である。また、検出部230がTTLを利用してループフローを検出する動作も、第1の実施形態の変形例と同様である。すなわち、ステップS200では、受信部210がステップS210(図7参照。)の処理を行い、分類部220がステップS220(図7参照。より具体的には図9に示すステップS221~S223)の処理を行う。そして、検出部230は、図11に示すステップS241~S243の処理を行えばよい。なお、この場合、ループフローが検出されるので、制御情報作成部240は、ステップS300(図12参照)において、ループパケットを識別するための条件として、ループフローのフロー識別子を制御情報に含める。その他の点に関しては、既に説明した第2の実施形態の動作と同様である。
 第1の実施形態の変形例で説明したように、ステップS241~S243で用いる情報はTTLに限定されず、「パケットが転送される毎に変化するフィールドの情報」であればよい。このような情報の例として、TTLの他に、インプットポートの情報が挙げられる。
 また、上記の各実施形態やその変形例では、パケットから抽出したフロー識別子を用いてループパケット候補を特定し、パケットから抽出したペイロードまたはTTLを用いてループパケットまたはループフローを特定した。ループパケット候補の特定に用いる情報は、フロー識別子以外の情報であってもよい。また、ループパケットまたはループフローの特定に用いる情報は、ペイロード等でなくてもよい。
 例えば、分類部220は、パケットから抽出されたペイロードを用いてパケットを分類し、ループパケット候補を特定してもよい。そして、検出部230は、パケットから抽出されたフロー識別子またはTTLを用いて、ループパケットまたはループフローを検出してもよい。この場合、計測装置100は、ペイロードとTTLを含む計測情報MSRを作成して、ループ検出装置200に送信したり、あるいは、ペイロードとフロー識別子を含む計測情報MSRを作成して、ループ検出装置200に送信したりすればよい。
 なお、上記の説明で述べたTTLは、IPヘッダにおけるTTLに限定されず、MPLS(Multiprotocol Label Switching)シムヘッダにおけるTTLであってもよい。
 次に、本発明の最小構成について説明する。図16は、本発明のループ検出装置の最小構成の例を示す説明図である。また、図17は、本発明のループ検出システムの最小構成の例を示す説明図である。
 本発明のループ検出システムは、パケット情報抽出装置70と、ループ検出装置80とを備える(図17参照)。パケット情報抽出装置70(例えば、計測装置100)は、パケット転送装置(例えば、スイッチ300)間で送受信されるパケットから情報を抽出する。また、ループ検出装置80(例えば、ループ検出装置200)は、パケット情報抽出装置70が抽出した情報を用いてループパケットまたはループフローを検出する。
 また、パケット情報抽出装置70は、抽出手段71と、送信手段72とを含む。抽出手段71(例えば、キャプチャ部110)は、パケット情報抽出装置70を通過するパケットから、パケット内の第1の所定の情報(例えば、フロー識別子)およびパケット内の第2の所定の情報(例えば、ペイロードまたはTTL)を含むパケット情報(例えば、パケットの先頭128バイトの情報)を抽出する。送信手段72(例えば、計測情報作成部120)は、パケット情報をループ検出装置80に送信する。
 本発明のループ検出装置80(図16、図17参照)は、受信手段81と、分類手段82と、判定手段83とを含む。受信手段81(例えば、受信部210)は、パケット情報抽出装置からパケット情報を受信する。
 分類手段82(例えば、分類部220)は、パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値(例えば、候補特定用閾値)以上になった第1の所定の情報を特定する。
 判定手段83(例えば、検出部230)は、分類手段82によって特定された第1の所定の情報を対象とし、受信手段81が受信したパケット情報に含まれる第2の所定の情報を利用して、分類手段82に特定された第1の所定の情報を有するパケットがループパケットであるか否か、または、その第1の所定の情報で特定されるフローがループフローであるか否かを判定する。
 そのような構成により、ループパケットまたはループフローを特定することができる。そして、分類手段82が、第1の所定の情報を絞り込み、判定手段83が、絞り込まれた第1の所定の情報を対象として処理を行うので、ループパケットまたはループフローを特定する処理における処理負荷を軽減することができる。
 上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を受信する受信手段と、前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類手段と、分類手段によって特定された第1の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる前記第2の所定の情報を利用して、分類手段に特定された前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを備えることを特徴とするループ検出装置。
(付記2)受信手段は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信する付記1に記載のループ検出装置。
(付記3)受信手段は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、少なくともパケットのペイロード、TCPシーケンス番号、IDフィールドの情報、RTPシーケンス番号のいずれかを含むパケット情報を受信する付記1または付記2に記載のループ検出装置。
(付記4)判定手段は、フロー識別子と第2の所定の情報との組に基づいて、分類手段によって特定されたフロー識別子を有するパケットを分類し、分類したパケットの数をフロー識別子と第2の所定の情報との組毎にカウントし、カウント結果と第2の閾値とを比較することによって、分類手段に特定されたフロー識別子を有するパケットがループパケットであるか否か、または、前記フロー識別子で特定されるフローがループフローであるか否かを判定する付記2または付記3に記載のループ検出装置。
(付記5)受信手段は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、パケットが転送される毎に変化するフィールドの情報を含むパケット情報を受信する付記1に記載のループ検出装置。
(付記6)受信手段は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、TTLまたはインプットポートの情報を含むパケット情報を受信する付記1または付記5に記載のループ検出装置。
(付記7)判定手段は、分類手段によって特定されたフロー識別子毎に、第2の所定の情報を分類し、分類された第2の所定の情報の種類の数と第3の閾値とを比較することによって、分類手段に特定されたフロー識別子で特定されるフローがループフローであるか否かを判定する付記5または付記6に記載のループ検出装置。
(付記8)少なくとも、判定手段によって判定されたループパケットまたはループフローのフロー識別子を制御対象パケットの条件として含み、前記条件に合致するパケットに対する制御を指示する制御情報を作成し、前記制御情報をパケット情報抽出装置に送信する制御情報作成手段を備える付記1から付記7のうちのいずれか1項に記載のループ検出装置。
(付記9)フロー識別子毎にフローの経路を表す経路情報を記憶する経路情報記憶手段と、少なくとも、判定手段によって判定されたループパケットまたはループフローのフロー識別子を制御対象パケットの条件として含み、前記条件に合致するパケットに対する制御を指示する制御情報を作成し、前記経路情報に基づいて前記フロー識別子に対応する経路上のパケット転送装置を特定し、当該パケット転送装置に前記制御情報を送信する制御情報作成手段を備える付記1から付記8のうちのいずれか1項に記載のループ検出装置。
(付記10)制御情報作成手段は、少なくとも、パケットの廃棄、QoS制御、帯域制御のいずれかを指示する制御情報を作成する付記8または付記9に記載のループ検出装置。
(付記11)パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置と、パケット情報抽出装置が抽出した情報を用いてループパケットまたはループフローを検出するループ検出装置とを備え、パケット情報抽出装置は、当該パケット情報抽出装置を通過するパケットから、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を抽出する抽出手段と、前記パケット情報をループ検出装置に送信する送信手段とを含み、ループ検出装置は、パケット情報抽出装置から前記パケット情報を受信する受信手段と、前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類手段と、分類手段によって特定された第1の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる前記第2の所定の情報を利用して、分類手段に特定された前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを含むことを特徴とするループ検出システム。
(付記12)抽出手段は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を抽出する付記11に記載のループ検出システム。
(付記13)パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を受信し、前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定し、特定した第1の所定の情報を対象とし、受信したパケット情報に含まれる前記第2の所定の情報を利用して、特定した前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定することを特徴とするループ検出方法。
(付記14)第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信する付記13に記載のループ検出方法。
(付記15)コンピュータに、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を受信する受信処理、前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類処理、および、分類処理で特定した第1の所定の情報を対象とし、受信処理で受信したパケット情報に含まれる前記第2の所定の情報を利用して、分類処理で特定した前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定処理を実行させるためのループ検出プログラム。
(付記16)コンピュータに、受信処理で、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信させる付記15に記載のループ検出プログラム。
(付記17)パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を受信する受信部と、前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類部と、分類部によって特定された第1の所定の情報を対象とし、受信部が受信したパケット情報に含まれる前記第2の所定の情報を利用して、分類部に特定された前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定部とを備えることを特徴とするループ検出装置。
(付記18)受信部は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信する付記17に記載のループ検出装置。
(付記19)受信部は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、少なくともパケットのペイロード、TCPシーケンス番号、IDフィールドの情報、RTPシーケンス番号のいずれかを含むパケット情報を受信する付記17に記載のループ検出装置。
(付記20)判定部は、フロー識別子と第2の所定の情報との組に基づいて、分類部によって特定されたフロー識別子を有するパケットを分類し、分類したパケットの数をフロー識別子と第2の所定の情報との組毎にカウントし、カウント結果と第2の閾値とを比較することによって、分類部に特定されたフロー識別子を有するパケットがループパケットであるか否か、または、前記フロー識別子で特定されるフローがループフローであるか否かを判定する付記18に記載のループ検出装置。
(付記21)受信部は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、パケットが転送される毎に変化するフィールドの情報を含むパケット情報を受信する付記17に記載のループ検出装置。
(付記22)受信部は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、TTLまたはインプットポートの情報を含むパケット情報を受信する付記17に記載のループ検出装置。
(付記23)判定部は、分類部によって特定されたフロー識別子毎に、第2の所定の情報を分類し、分類された第2の所定の情報の種類の数と第3の閾値とを比較することによって、分類部に特定されたフロー識別子で特定されるフローがループフローであるか否かを判定する付記21に記載のループ検出装置。
(付記24)パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置と、パケット情報抽出装置が抽出した情報を用いてループパケットまたはループフローを検出するループ検出装置とを備え、パケット情報抽出装置は、当該パケット情報抽出装置を通過するパケットから、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を抽出する抽出部と、前記パケット情報をループ検出装置に送信する送信部とを含み、ループ検出装置は、パケット情報抽出装置から前記パケット情報を受信する受信部と、前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類部と、分類部によって特定された第1の所定の情報を対象とし、受信部が受信したパケット情報に含まれる前記第2の所定の情報を利用して、分類部に特定された前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定部とを含むことを特徴とするループ検出システム。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2010年2月19日に出願された日本特許出願2010-035096を基礎とする優先権を主張し、その開示の全てをここに取り込む。
産業上の利用の可能性
 本発明は、ループパケットまたはループフローを検出するループ検出システムに好適に適用される。
 100 計測装置
 110 キャプチャ部
 120 計測情報作成部
 130 フロー制御部
 200 ループ検出システム
 202 記憶装置
 210 受信部
 220 分類部
 230 検出部
 240 制御情報作成部
 300 スイッチ

Claims (10)

  1.  パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を受信する受信手段と、
     前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類手段と、
     分類手段によって特定された第1の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる前記第2の所定の情報を利用して、分類手段に特定された前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを備える
     ことを特徴とするループ検出装置。
  2.  受信手段は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信する
     請求項1に記載のループ検出装置。
  3.  受信手段は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、少なくともパケットのペイロード、TCPシーケンス番号、IDフィールドの情報、RTPシーケンス番号のいずれかを含むパケット情報を受信する
     請求項1または請求項2に記載のループ検出装置。
  4.  判定手段は、フロー識別子と第2の所定の情報との組に基づいて、分類手段によって特定されたフロー識別子を有するパケットを分類し、分類したパケットの数をフロー識別子と第2の所定の情報との組毎にカウントし、カウント結果と第2の閾値とを比較することによって、分類手段に特定されたフロー識別子を有するパケットがループパケットであるか否か、または、前記フロー識別子で特定されるフローがループフローであるか否かを判定する
     請求項2または請求項3に記載のループ検出装置。
  5.  受信手段は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、パケットが転送される毎に変化するフィールドの情報を含むパケット情報を受信する
     請求項1に記載のループ検出装置。
  6.  受信手段は、第1の所定の情報として、パケットのフローを識別するフロー識別子を含み、第2の所定の情報として、TTLまたはインプットポートの情報を含むパケット情報を受信する
     請求項1または請求項5に記載のループ検出装置。
  7.  判定手段は、分類手段によって特定されたフロー識別子毎に、第2の所定の情報を分類し、分類された第2の所定の情報の種類の数と第3の閾値とを比較することによって、分類手段に特定されたフロー識別子で特定されるフローがループフローであるか否かを判定する
     請求項5または請求項6に記載のループ検出装置。
  8.  パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置と、
     パケット情報抽出装置が抽出した情報を用いてループパケットまたはループフローを検出するループ検出装置とを備え、
     パケット情報抽出装置は、
     当該パケット情報抽出装置を通過するパケットから、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を抽出する抽出手段と、
     前記パケット情報をループ検出装置に送信する送信手段とを含み、
     ループ検出装置は、
     パケット情報抽出装置から前記パケット情報を受信する受信手段と、
     前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類手段と、
     分類手段によって特定された第1の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる前記第2の所定の情報を利用して、分類手段に特定された前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを含む
     ことを特徴とするループ検出システム。
  9.  パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を受信し、
     前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定し、
     特定した第1の所定の情報を対象とし、受信したパケット情報に含まれる前記第2の所定の情報を利用して、特定した前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定する
     ことを特徴とするループ検出方法。
  10.  コンピュータに、
     パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第1の所定の情報および前記パケット内の第2の所定の情報を含むパケット情報を受信する受信処理、
     前記パケット情報に含まれる第1の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第1の所定の情報毎にカウントし、カウント結果が第1の閾値以上になった第1の所定の情報を特定する分類処理、および、
     分類処理で特定した第1の所定の情報を対象とし、受信処理で受信したパケット情報に含まれる前記第2の所定の情報を利用して、分類処理で特定した前記第1の所定の情報を有するパケットがループパケットであるか否か、または、前記第1の所定の情報で特定されるフローがループフローであるか否かを判定する判定処理
     を実行させるためのループ検出プログラム。
PCT/JP2011/000437 2010-02-19 2011-01-27 ループ検出装置、システム、方法およびプログラム WO2011102086A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012500487A JP5673663B2 (ja) 2010-02-19 2011-01-27 ループ検出装置、システム、方法およびプログラム
US13/137,145 US8804537B2 (en) 2010-02-19 2011-07-22 Loop detecting device, system, method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010035096 2010-02-19
JP2010-035096 2010-02-19

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/137,145 Continuation US8804537B2 (en) 2010-02-19 2011-07-22 Loop detecting device, system, method and program

Publications (1)

Publication Number Publication Date
WO2011102086A1 true WO2011102086A1 (ja) 2011-08-25

Family

ID=44482695

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/000437 WO2011102086A1 (ja) 2010-02-19 2011-01-27 ループ検出装置、システム、方法およびプログラム

Country Status (3)

Country Link
US (1) US8804537B2 (ja)
JP (1) JP5673663B2 (ja)
WO (1) WO2011102086A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI713501B (zh) * 2015-09-23 2020-12-21 香港商阿里巴巴集團服務有限公司 識別網路環路的方法、裝置、流量清洗設備及系統

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9036638B2 (en) 2012-08-09 2015-05-19 International Business Machines Corporation Avoiding unknown unicast floods resulting from MAC address table overflows
US10567261B2 (en) 2015-11-26 2020-02-18 Mitsubishi Electric Corporation Relay device and communication network
EP3400685B1 (en) 2016-01-05 2020-07-01 Telefonaktiebolaget LM Ericsson (PUBL) Mechanism to detect control plane loops in a software defined networking (sdn) network
US10333829B2 (en) * 2016-11-30 2019-06-25 Futurewei Technologies, Inc. Service function chaining and overlay transport loop prevention
US10965556B2 (en) * 2018-10-25 2021-03-30 Cisco Technology, Inc. Sampling traffic telemetry for device classification with distributed probabilistic data structures
JP6674007B1 (ja) * 2018-11-05 2020-04-01 住友電気工業株式会社 車載通信装置、通信制御方法および通信制御プログラム
CN109347705B (zh) * 2018-12-07 2021-03-30 北京东土科技股份有限公司 一种环路检测方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005086762A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd ブリッジ装置
JP2006013737A (ja) * 2004-06-24 2006-01-12 Fujitsu Ltd 異常トラヒック除去装置
JP2009027400A (ja) * 2007-07-19 2009-02-05 Alaxala Networks Corp 過大フロー検出装置、過大フロー検出回路、端末装置及びネットワークノード

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3517114B2 (ja) * 1998-05-29 2004-04-05 株式会社東芝 ノード装置並びにループ検出方法及びパケット送信方法
JP4390649B2 (ja) * 2004-07-14 2009-12-24 富士通株式会社 ネットワークループ検知装置
KR100759796B1 (ko) * 2004-11-10 2007-09-20 한국전자통신연구원 데이터 루핑 현상 검출 장치 및 그 방법
US8437352B2 (en) * 2006-05-30 2013-05-07 Broadcom Corporation Method and system for power control based on application awareness in a packet network switch
US20080130503A1 (en) * 2006-12-01 2008-06-05 Gideon Kaempfer Method and system for forwarding ethernet frames over redundant networks with all links enabled

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005086762A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd ブリッジ装置
JP2006013737A (ja) * 2004-06-24 2006-01-12 Fujitsu Ltd 異常トラヒック除去装置
JP2009027400A (ja) * 2007-07-19 2009-02-05 Alaxala Networks Corp 過大フロー検出装置、過大フロー検出回路、端末装置及びネットワークノード

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI713501B (zh) * 2015-09-23 2020-12-21 香港商阿里巴巴集團服務有限公司 識別網路環路的方法、裝置、流量清洗設備及系統

Also Published As

Publication number Publication date
US20110280145A1 (en) 2011-11-17
JPWO2011102086A1 (ja) 2013-06-17
US8804537B2 (en) 2014-08-12
JP5673663B2 (ja) 2015-02-18

Similar Documents

Publication Publication Date Title
JP5673663B2 (ja) ループ検出装置、システム、方法およびプログラム
US10498612B2 (en) Multi-stage selective mirroring
US10574546B2 (en) Network monitoring using selective mirroring
US9391895B2 (en) Network system and switching method thereof
US8054744B1 (en) Methods and apparatus for flow classification and flow measurement
US20120314605A1 (en) Communication system, path control apparatus, packet forwarding apparatus, and path control method
CN106961387B (zh) 一种基于转发路径自迁移的链路型DDoS防御方法及系统
US20030007454A1 (en) Traffic management in packet-based networks
US20140112187A1 (en) Apparatus for flow-based network monitoring and network monitoring system
KR20130017089A (ko) 애플리케이션 프로토콜 식별 방법 및 장치
JP2023505139A (ja) 伝送品質検出方法、装置およびシステム、ならびに記憶媒体
US20130121170A1 (en) Communication system, node, statistical information collection device, statistical information collection method and program
CN110417674B (zh) 一种数据流量分担方法及装置
JPWO2008108403A1 (ja) ノード装置、ノードシステム、該ノード装置に用いられる統計情報管理テーブルの入替え方法及びプログラム
US20190356564A1 (en) Mode determining apparatus, method, network system, and program
JP2002124990A (ja) ポリシ実行スイッチ
US20210273952A1 (en) Attack response point selecting apparatus and attack response point selecting method
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
Shirali-Shahreza et al. Empowering software defined network controller with packet-level information
EP2618524A1 (en) Method for providing QoS management in a packet-based transport network
EP3278500B1 (en) Processing data items in a communications network
Krishnan et al. Mechanisms for optimizing link aggregation group (LAG) and equal-cost multipath (ECMP) component link utilization in networks
US20220321588A1 (en) Anomaly detection for networking
WO2014148613A1 (ja) ネットワーク統計情報の提供システム、ネットワーク統計情報の提供方法及びプログラム
US11032206B2 (en) Packet-content based WRED protection

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: 11744381

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012500487

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11744381

Country of ref document: EP

Kind code of ref document: A1