The present application claims priority from Japanese application JP 2004-088302 filed on Mar. 25, 2004, the content of which is hereby incorporated by reference into this application.
The present invention relates to information relay technologies and more particularly, to techniques effectively applicable to an information relay apparatus such as router and LAN switch.
The information relay apparatus, for example, a router or LAN switch settles a transmission (send-out) route of a receiving packet in accordance with an address for Internet in the receiving packet and a route information table stored in the information relay apparatus and then transmits (sends out) the packet.
Recently, in a public network or an access network (for example, local IP network) provided by a communication enterprise (for example, ISP (Internet Service Provider)) as a connection network to the Internet, the personal circuit has been shifting progressively to a wide-area Ethernet (registered trademark), so that the communication amount of packets and the number of users utilizing the access network have been increasing drastically. The information relay apparatus increases the number of accommodated high-speed Ethernet circuits (hereinafter simply referred to as circuits) having a bandwidth of, for example, 10 Gbps (Giga bit per second) to have the function of dealing with a process for relaying packets at very high speeds.
With a view of assuring a contract bandwidth such as the minimum warrantable bandwidth for each user utilizing the network (hereinafter simply referred to as a user) in the wide-area Ethernet in which packets are transferred with best effort, the information relay apparatus also have the function to discard a packet flow exceeding a permissible bandwidth for each user by a limited number of packets in excess of the bandwidth. With the function as above, the information relay apparatus prevents the influence due to congestion of packets in the network upon communication bandwidths of other users, thereby observing or complying with the contract bandwidths made with individual users. Further, an information relay apparatus in a unified network for communication of voice and data also has the function of transferring data at different priority degrees in respect of individual types of applications for transmission/reception of data in the form of packets (hereinafter called packet applications). In this manner, the information relay apparatus decides a transfer priority degree referenced to a criterion predetermined in respect of each packet application so that a packet of voice for which transfer with a small delay is required may be transferred preferentially over a packet of data for which a relatively large delay is permitted.
A technique called shaping is described in JP-A-2002-185459, according to which a packet exceeding a permissible bandwidth for each user is limited or packets are transferred at transfer priority degrees which differ for the individual packet application types. It will be appreciated that an apparatus for execution of shaping is called a shaper.
The shaper is located in the information relay apparatus arranged at the outlet of a public network or access network (hereinafter referred to as a communication network), the outlet being the boundary between the communication network and a user network. The shaper manages pieces of contract bandwidth information such as the minimum warrantable bandwidths or maximum permissible bandwidths settled by contracts made between an administrator of the communication network (hereinafter referred to as a network administrator) and users user by user. Then, in the event that the utilization bandwidth utilized by an arbitrary user exceeds the maximum permissible bandwidth, for instance, the shaper discards packets by only a surplus amount. Through this, the communication bandwidth is so limited as not to exceed the maximum permissible bandwidth in respect of each user to prevent the communication bandwidth of anther user from being interfered, thereby assuring the minimum warrantable bandwidth of each user. On the other hand, the shaper distributes impartially remaining bandwidths of circuits to the individual users by taking the contracted minimum warrantable bandwidths and use conditions of network resources into account in order that the circuits can be utilized efficiently. Also, the shaper prepares a plurality of virtual communication paths of different transfer priority degrees in respect of the individual users and distributes packets to the virtual communication paths in accordance with the packet applications, with the result that packets can be transmitted at transfer priority degrees which differ for the individual packet applications. Through this, the minimum bandwidth can be guaranteed in respect of every user in contract and the quality required for each packet can be assured. The distribution of packets can be materialized by providing a plurality of transmission queues of different transfer priority degrees at, for example, a transmitter of the shaper and distributing the packets to these transmission queues.
In the event that a packet or packets in excess of the contract bandwidth flow into the communication network, for instance, congestion occurs in the network or information relay apparatus and there is a possibility that the network administrator cannot observe or comply with the contract bandwidths made with the individual users. Therefore, it is necessary for the network administrator to monitor the use bandwidths user by user for the purpose of performing a process of, for example, discarding packets in excess of the contract bandwidths, thereby protecting resources in the network. Available as means for this purpose is a technique called UPC (Usage Parameter Control) or policing described in JP-A-2003-046555, for instance. To add, an apparatus for executing the UPC or policing is herein called a policer.
The policer is located in the information relay apparatus arranged in the inlet to the communication network (the boundary between user network and communication network). For example, available as an algorithm for bandwidth monitor by the policer is a LB (Leaky Bucket) algorithm represented by a model using a bored leaky bucket having a depth. The information relay apparatus for performing bandwidth monitor by using the LB algorithm as the policer has cumulative amount threshold value information corresponding to the depth of the bucket, monitor bandwidth information indicative of a water leaking speed and corresponding to a contract bandwidth and preceding packet arrival time information indicative of a time at which a preceding packet arrived and calculates a cumulative amount of packets inclusive of a length of a receiving packet added when the packed is received, whereby the apparatus carries out monitoring of violation of contract bandwidth by determining the receiving packet as “compliance” when the cumulative amount is below the threshold value information but conversely as “violation” when the cumulative amount exceeds the threshold value information.
Further, with the communication amount increased and the packet application type diversified, the network administrator asks for the managing function such as monitoring and function to grasp utilization amounts in the communication network and money charging according to utilization amounts. In order to respond to these requirements, the information relay apparatus has, as the function of monitoring traffic in the communication network, the flow statistic function to collect statistic information (flow statistic information) of packets to be relayed. Here, “flow” indicates a series of packets transmitted and received in order to transmit arbitrary data between an arbitrary source and an arbitrary destination. The network administrator can afford to grasp use conditions of the communication network and utilization conditions of each user on the basis of flow statistic information collected by virtue of the flow statistic function. Available as the flow statistic function as above is, for example, an sFlow technology described in RFC (Request for Comment) 3176 “InMon Corporation's sFlow; A Method for Monitoring Traffic in Switched and Router Networks” published by IETF (The Internet Engineering Task Force), for instance.
For example, according to the sFLow technology, a flow sample for collecting transfer packet information and a counter sample for grasping a transfer packet number (the number of packets to be transferred) are picked up individually as flow statistic information. In picking the flow sample, the information relay apparatus extracts feature information pieces, for example, header information pieces from relayed packets at predetermined sampling intervals. Also, the information relay apparatus has, in an interface to the communication network, a counter for counting the number of packets to be transferred and picks a counter sample by adding a count value each time that the apparatus transfers a packet. The thus picked sample is transmitted from the information relay apparatus to, for example, a flow analyzer on real time base. The flow analyzer has the function of totaling, editing and displaying the samples transmitted from the information relay apparatus. The network administrator analyzes the samples of packets the information relay apparatus relays by using the flow analyzer so as to grasp use conditions of the communication network and utilization conditions by each user and utilize the results of analysis for money charge, attack analysis or planning of equipment investment to the communication network. It should be understood that all of the packets the information relay apparatus relays are objects of sample picking in the sFlow technique. Therefore, the network administrator can grasp conditions of a flow relayed by the information relay apparatus more accurately. In addition, by setting the sampling intervals for packets to, for example, 1/1, the information relay apparatus can pick flow samples in respect of all of the packets.
As the widespread use of the Internet proceeds, an attack (DoS (Denial of Service)) takes place frequently in which a great deal of illegal packets is sent to the communication network or a server to impose an excessive load on it for the purpose of stopping communication service. In the wide-area Ethernet network performing relay operations with best effort, network resources are occupied with a great deal of illegal packets supplied through the DoS attack and the communication bandwidths of users utilizing circuits or the information relay apparatus are interfered. In order to protect the communication bandwidth of each user from a flow violative of bandwidth, that is, an abnormal flow, the aforementioned shaper is effective. When illegal packets are sent by a great deal from a predetermined source (attacker) to a predetermined destination (attacked destination), the shaper can limit the bandwidth utilized by an abnormal flow and consequently can assure communication bandwidths of other users. In this case, however, the communication bandwidths for other normal flows forwarded to the attacked destination are hindered.
Further, when a great deal of illegal packets are transmitted from a plurality of attackers to a single attacked destination as in the case of a DDoS (Distributed DoS attack) the occurrence of which has been increasing recently, an abnormal flow from one attacker behaves as a normal flow but as a whole a great deal of illegal packets are sent to the attacked destination. To cope with such an attack, the network administrator must specify the attacker and the attacked destination, specify feature information of the abnormal flow and take countermeasures against the abnormal flow. For the sake of identifying the attacked destination or attacker in the DoS attack or DDOS attack as above, the aforementioned flow statistic technique is effective. By analyzing samples collected through the use of the flow statistic function the information relay apparatus has, the network administrator finds out an abnormal flow which is sent by a great deal to the specified destination to thereby specify the attacker, attacked destination and feature information of the abnormal flow. Further, a packet having the same source, destination and other feature information as those of the specified flow is so set in the information relay apparatus as to be discarded. In this manner, countermeasures against the abnormal flow in the communication network can be taken.
Besides, by setting the permissible bandwidth for the abnormal flow to a smaller bandwidth in the shaper, the influence of a DoS attack can be lessened in the communication network.
It is however unpredictable in advance of start of an attack which source an abnormal flow is sent from and which destination the abnormal flow is sent to. Therefore, in order that the abnormal flow can be specified immediately at the attack start time point, sample picking of all relay packets must always be carried out on the basis of the flow statistic function of the information relay apparatus and flow monitor work using the flow analyzer must always be done by the network administrator. But, because of an increased number of accommodated high-speed circuits of, for example, 10 Gbps and an increased number of users, the information relay apparatus processes a great deal of normal packets and hence the amount of picked samples is large. Accordingly, the network administrator must analyze a great deal of samples and consumes much time to specify a small number of abnormal flows from flows relayed by means of the information relay apparatus. Consequently, there arises a problem that the network administrator cannot specify the abnormal flow immediately and cannot take countermeasures thereagainst.
Accordingly, the present invention provides an information relay apparatus which can reduce the amount of information pieces to be analyzed by the network administrator by detecting automatically congestion due to an abnormal flow and picking flow statistic information automatically only when the congestion takes place.
Also, this invention provides an information relay apparatus which can make the network administrator easily analyze the flow statistic information and specify the abnormal flow by extracting feature information of the abnormal flow to automatically narrow down flows and picking flow statistic information only in respect of the narrowed-down flows.
Further, this invention provides an information relay apparatus which can automatically perform setting such as discard in respect of a specified abnormal flow.
An information relay apparatus according to the invention comprises a bandwidth monitor for executing policing in respect of receiving packets and counting the number of packets which are so determined as to violate contract bandwidths made with individual users, or a bandwidth controller for executing shaping in respect of transmitting packets and counting the number of packets which are so determined as to violate contract bandwidths made with individual users. The information relay apparatus further comprises a flow controller for detecting, from receiving or transmitting packets, a packet having in its header information coincident with flow identification information registered in advance and collecting flow statistic information, and an analyzer for registering in the flow controller, when the number of packets counted by the bandwidth monitor or bandwidth controller exceeds a predetermined threshold value, information for identifying a flow to which the packets belong. In the information relay apparatus, the flow controller detects packets belonging to the flow, in which the number of the packets so determined as to violate contract bandwidths by means of the band monitor or bandwidth controller exceeds the predetermined threshold value, by using the flow identification information registered by the analyzer and collects the flow statistic information from the detected packets.
Since the information relay apparatus specifies, from flows in which packets are discarded owing to, for example, occurrence of congestion, a flow in which the discard number is abnormal and picks flow statistic information concerning the abnormal flow, the flow statistic analyzer receiving the flow statistic information from the information relay apparatus can analyze the abnormal flow relayed by the information relay apparatus, thereby ensuring that an abnormal flow or contract bandwidth violative flow taken advantage of by a DoS attack or DDOS attack can be specified more easily or more speedily.
The present invention will now be described by way of example with reference to the accompanying drawings.
The overall construction of an information relay apparatus to which this invention is applied is illustrated in block diagram form in
Referring first to
The information relay apparatus 1 comprises an apparatus administrator 2 for controlling and managing the whole of the apparatus, a single or a plurality of packet receivers 4 connected to one or more circuits to receive packets from the connected circuits, a single or a plurality of packet transmitters 5 connected to one or more circuits to transmit packets to the connected circuits, a packet relay unit 7 for settling the next transfer destination on the basis of header information contained in a receiving packet, a switch unit 8 for relaying the packet from packet receiver 4 to packet transmitter 5, an input (IN) side flow controller 6-2 for applying flow control to the receiving packet, and an output (OUT) side flow controller 6-1 for applying flow control to a packet to be transmitted. The information relay apparatus 1 further comprises a flow statistic information transmitting module 3 which is connected to a flow statistic analyzer 12 provided externally of the apparatus, as will be described later.
Although not shown, the apparatus administrator 2 has a memory for storing software for control of the overall apparatus and various kinds of software and an execution unit (CPU) for executing the control software and the various kinds of software. The apparatus administrator 2 further includes a discard information analyzer 20 and a flow statistic transmitter 24 as will be described later. It will be appreciated that the discard information analyzer 20 and flow statistic transmitter 24 can be constructed with hardware or in the form of software to be executed by the execution unit. As shown in
The packet receiver 4 includes one or more input ports connected to the one or more circuits, a reception controller 41 for complying with the kind of a circuit to be connected and receiving a packet from the connected circuit and a bandwidth monitor 42 for monitoring and controlling (policing) input bandwidths by using, for example, an LB algorithm. As will be described later, the bandwidth monitor 42 is set in advance with contract bandwidths settled user by user and on the basis of the contract bandwidths, the bandwidth monitor 42 monitors (decides) whether a receiving packet exceeds a contract bandwidth in respect of each user. Also, as will be described later, the bandwidth monitor 42 has a reception counter memory 421 and stores a count value of packets complying with a contract bandwidth (the number of receiving packets) and a count value of packets violating the contract bandwidth and being discarded (the number of discard packets).
The packet transmitter 5 includes one or more output ports connected to one or more circuits, a transmission controller 51 for complying with the kind of a circuit to be connected and transmitting a packet to the connected circuit and a bandwidth controller 52 for performing control of priority degree of packet and controlling (shaping) output bandwidths so as to transmit a packet within a contract bandwidth settled for each user. As will be described later, the bandwidth monitor 52 has transmission queues provided in respect of individual users and adapted to temporarily store packets to be transmitted. The bandwidth controller 52 is set in advance with contract bandwidths settled user by user and with transmission priority degrees settled in respect of individual application types of packets and performs control of priority degrees of packets to be transmitted in respect of individual users and controls the output bandwidth of packet in respect of each transmission queue such that it does not exceed the set contract bandwidth. Also, as will be described later, the bandwidth controller 52 has a transmission counter memory 521 to store a count value of packets to be transmitted in compliance with contract bandwidths (the number of transmitting packets) and a count value of packets violative of the contract bandwidths and to be discarded (the number of discard packets).
It is to be noted that in the foregoing description, the user does not represent each terminal and its utilizer but represents an individual, corporation, organization or group which makes a contract with, for example, a communication enterprise for the sake of utilizing a network offered by the communication enterprise to thereby transmit/receive data (packets). The user as above can be identified by, for example, a VLAN ID, source IP address, destination IP address, source MAC address or destination MAC address contained in the header of a packet.
The flow controllers 6-1 and 6-2 have flow detectors 65-1 and 65-2, respectively, and flow statistic units 66-1 and 66-2, respectively. As will be described later, the flow detectors 65-1 and 65-2 have flow control condition memories 651-1 and 651-2, respectively, each of which stores a plurality of entries each registered with information (conditions) for identifying a flow to be subjected to flow control and with contents (kinds) of flow control to be applied to packets contained in each flow. The flow statistic units 66-1 and 66-2 have flow statistic collection memories 661-1 and 661-2, respectively, each of which stores a sample gathered from a packet.
For example, as shown in
The switch unit 8 receives the packet and transmission route information from the packet relay unit 7 and transfers, in accordance with the transmission route information, the packet to the packet transmitter 5 connected to a circuit to which the packet is to be transmitted or the OUT side flow controller 6-1 provided in correspondence to the packet transmitter 5.
In the information relay apparatus of
Further, in the information relay apparatus 1 of
Next, construction and operation of the individual components of the information relay apparatus 1 will be described in greater detail.
The packet receiver 4 is specifically constructed as illustrated in
Referring to
Referring to
Turning to
When the reception controller 41 of packet receiver 4 receives a packet from a circuit by way of any one of the input ports (step 1001), the received packet is sent to the reception packet processor 422 of bandwidth monitor 42. The reception packet processor 422 specifies a user of the packet from information contained in the header of the packet, for example, VLAN ID or source IP address. The reception packet processor 422 also specifies a priority degree the packet has from DSCP (Differentiated Service Code Point), source or destination IP address or source or destination port number (step 1002). Further, the reception packet processor 422 counts a packet length of the received packet. To add, the aforementioned DSCP is information to be stored in a TOS (Type of Service) field or traffic class field of the header and is set with a value of criterion for control of priority of packet in the information relay apparatus.
Subsequently, the reception packet decider 423 reads values of contract bandwidth, cumulative amount threshold value, sum value and reception time corresponding to the specified user and priority degree from the bandwidth monitor memory 424. As described previously, the read-out sum value and the reception time are a cumulative amount of packets and a time at which a packet is received at the last time, respectively. The reception packet decider 423 multiplies a time lapse between the read-out reception time and the present time by the contract bandwidth to calculate a cumulative value of packet lengths of packets delivered out of the reception packet processor during the time lapse. This value corresponds to an amount decreased from the cumulative amount of packets of the user in the reception packet processor 422. The reception packet decider 423 subtracts the calculated packet length cumulative value from the read-out sum value, thereby calculating a cumulative amount of packets of the user held in the reception packet processor 422 at present. Then, the reception packet decider 423 adds the packet length of the received packet to the calculated cumulative value and compares the sum value with the read-out cumulative amount threshold value (step 1003). If in the step 1003 the sum value is smaller than the cumulative amount threshold value, the reception packet decider 422 determines that the contract bandwidth is complied with, finds out a user ID and a priority degree identification value corresponding to the specified user and priority degree from the storage contents of the reception counter memory 421 (finds out entries in which these information pieces are registered from the reception counter table), reads and adds (+1) the receiving packet number corresponding to the information pieces and stores again the received packet number after addition in the reception counter memory 421 (step 1005). Also, the reception packet decider 422 stores in the bandwidth monitor memory 424 the present time and the calculated sum value as a reception time and a sum value corresponding to the specified user, respectively. Through this, the received packet is held in the reception packet processor 422 (step 1010).
On the other hand, if in the step 1003 the sum value is determined as exceeding the cumulative amount threshold value, the reception packet decider 423 determines that the contract bandwidth is violated, finds out a user ID and a priority degree identification value corresponding to the specified user and priority degree from the storage contents of the reception counter memory 421 (finds out entries registering these pieces of information from the reception counter table), reads and adds (+1) a discard packet number corresponding to the information pieces and stores again the discard packet number after addition in the reception counter memory 421 (step 1006). Also, the reception packet decider 423 determines whether the packet determined as violating the contract bandwidth is discarded or is transferred while decreasing its priority degree (step 1007). This decision is made to the bandwidth monitor 42 on the basis of preset information. For example, this information is set as information indicative of discard or transfer in the bandwidth monitor memory 424. In this case, the reception packet decider 423 reads this information, together with the aforementioned respective information pieces. When settling packet discard, the reception packet decider 423 discards the received packet and ends the packet reception process (step 1009). On the other hand, when settling packet transfer, the reception packet decider 423 updates, for example, the contents of the header of the packet or adds a flag indicative of a new priority degree to the packet so as to decrease the priority degree the packet has (step 1008), thus causing the reception packet processor to hold the data (step 1010).
In parallel with the above process, the reception packet processor 422 sequentially delivers the held packets of the individual users in accordance with contract bandwidths for the individual users (step 1011). The packets delivered out of the reception packet processor 422 are transferred from the packet receiver 4 to the IN side flow controller 6-2 or packet relay unit 7 shown in
Referring to
In
Also, the bandwidth controller 52 includes n user bandwidth controllers 526 for selecting any one of the transmission queues in accordance with the storage conditions of packets in the transmission queues 1 to 4 of the individual users provided in respect of the individual users and the priority degree and contract bandwidths of packets stored in each transmission queue and taking out and delivering a packet stored in the head of the selected transmission queue; and one or more circuit bandwidth controllers 525 provided for individual circuits to be connected and each adapted to select and deliver one of the packets delivered out of the individual user bandwidth controllers 526 in accordance of a bandwidth of circuit, a contract bandwidth of each user or a priority degree of packet.
Here, each transmission queue has a queue length sufficient to store packets of a predetermined amount (for example, packet length or packet number). Packets stored in the individual transmission queues are selected by the user bandwidth controller 526 or circuit bandwidth controller 525 in accordance with contract bandwidth set in connection with the individual users and transmitted from the transmission controller 51. In this manner, in the bandwidth controller 52, the output bandwidth of a packet is so controlled as to be below a contract bandwidth for a user of the packet. Accordingly, unless received packets exceed the contract bandwidth for the user, they are sequentially stored in a transmission queue provided for the user and transmitted by way of the transmission controller 51. But when packets of an amounts in excess of a contract bandwidth for a user are fed and received, the amount of packets to be stored in any transmission queue of the user exceeds an amount of packets to be taken out of the transmission queue and then transmitted. As a result, the packets cannot afford to be stored in the transmission queue and flow out of the transmission queue. Accordingly, the queuing unit 523 of bandwidth controller 52 decides the presence or absence of violation of contract bandwidth by monitoring whether packets desired to be stored in each transmission queue flow out of transmission queue.
Further, the bandwidth controller 52 includes a transmission counter memory 521 for storing a count value of packets stored in the transmission queue in respect of each transmission queue of each user (transmission packet number) and a count value of packets flown out of the transmission queue and discarded (discard packet number).
An example of information to be stored in the transmission counter memory 521 is shown in
Next, operation of the packet transmitter 5 will be described specifically by making reference to
When the packet transmitter 5 receives a packet from the OUT side flow controller 6-1 or switch unit 8 shown in
Subsequently, the queuing unit 523 stores the packet received in a transmission queue settled by the user settling unit 522 from transmission queues 1 to 4 of the user specified by the user settling unit 522 (step 1502). As described previously, packets stored in the transmission queues 1 to 4 provided in respect of the individual users are sequentially taken out of the respective transmission queues in accordance with contract bandwidths and priority degrees set for the individual users and then transmitted. Accordingly, if a packet sent to the packet transmitter 5, that is, a packet about to be transmitted does not exceed the contract bandwidth of the user, the packet is stored in the transmission queue complying with its priority degree and thereafter transmitted. Bu when packets in excess of the contract bandwidth of the user are fed, the amount of packets to be stored exceeds the amount of packets taken out of each transmission queue, so that even the transmission queue complying with the priority degree of the packet cannot afford to store packets and a phenomenon that packets flow out of the transmission queue takes place (for example, a maximum storage amount of the predetermined transmission queue is exceeded). Then, in step 1502, the queuing unit 523 decides whether packets can be stored in the settled transmission queue or flow out of the transmission queue, thereby deciding whether the packet to be transmitted violates the contract bandwidth for the specified user. If in the step 1502 the packets are so determined as not to be stored in the settled transmission queue, the queuing unit 523 finds out transmission queue number and user ID corresponding to the transmission queue and specified user from the storage contents of the transmission counter memory 521 (finds out entries registering these information pieces from the transmission counter table), reads and adds by one (+1) a discard packet number being made to be correspondent to these information pieces and again stores the discard packet number after addition in the transmission counter memory 521 (step 1506). Thereafter, the queuing unit 523 discards the received packet and ends the process (step 1507). If in the step 1502 packets do not flow out of the settled transmission queue, the queuing unit 523 determines that the packet can be stored in the transmission queue, thus permitting the packet to be stored in that transmission queue.
In parallel with the aforementioned process by the user settling unit 522 and queuing unit 523, each user bandwidth controller 526 selects any one transmission queue in accordance with the presence or absence of packets stored in the transmission queues 1 to 4, respectively, their priority degrees and the contract bandwidth of the user and takes out and delivers a packet stored in the head of the selected transmission queue (step 1503). After taking out the packet from any transmission queue, each user bandwidth controller 526 finds out that transmission queue and transmission queue number and user ID corresponding to a user corresponding to the transmission queue of its own from the storage contents of the transmission counter memory 521 (finds out respective entries in the transmission counter table), reads and adds (+1) a transmission packet number correspondent to these information pieces and again stores the transmission packet number after addition to the transmission counter memory 521 (step 1504).
The circuit bandwidth controller 525 provided in correspondence to a circuit to which a packet is to be transmitted in accordance with a transmission route settled by the packet relay unit 7 shown in
The flow controller is constructed specifically as illustrated in
In
Also, the OUT side flow controller 6-1 comprises a flow statistic unit 66-1 for performing, as one of flow control operations, picking the flow statistic information (sample) from the packet. The flow statistic unit 66-1 includes a packet counter 663-1 for counting the number of packets in each flow for which collection of flow statistic information is determined to be necessary, a flow statistic picking unit 662-1 for picking a sample from the packet at predetermined sampling intervals and in accordance with a value of the packet counter 663-1 and a flow statistic collection memory 661-1 for storing the sample picked by the flow statistic picking unit 662.
The OUT side flow controller 6-1 further comprises a flow control instruction unit 67-1 for instructing the flow statistic unit 66-1 to collect flow statistic information in accordance with a flow control label added to the packet delivered out of the flow control decider 653-1 of the flow detector 65-1.
An example of information stored in the flow control condition memory 651-1 is depicted in
In
Next, operation of the OUT side flow controller 6-1 will be described specifically with reference to
When the OUT side flow controller 6-1 receives a packet from the switch unit 8 (in the case of IN side flow controller 6-2, from the packet receiver 4), the flow control decider 653-1 of flow detector 65-1 extracts the header contained in the received packet (step 2001) and transfers the extracted header to the flow comparator 652-1 (step 2002). The received packet is held in the flow control decider 653-1. In the step 2001, the flow control decider 653-1 may either prepare a copy of the header contained in the packet or take out the header from the packet and transfer it. The reason for transferring only the header to the flow comparator 652-1 is that load to be imposed on the flow comparator 652-1 can be mitigated. Unless the load on the flow comparator 652-1 is considered particularly, the whole of packet can be transferred from the flow control decider 653-1 to the flow comparator 652-1.
When receiving the header from the flow control decider 653-1, the flow comparator 652-1 compares individual information pieces of source IP address, destination IP address, source MAC address, destination MAC address, source port number, destination port number, packet length (payload length), DSCP and VLAN ID with pieces of information stored in the flow control condition memory 651-1 (information pieces registered in respective entries) in correspondence to the above information pieces, respectively, to determine coincidence of the former information pieces with the latter information pieces (step 2003). If in the step 2003 any information pieces registered in the flow control condition memory 651-1 are so determined as not to coincide with the individual information pieces in the header and the flow comparator 652-1 determines that the packet is not one corresponding to the flow identified by each information piece registered in the flow control condition memory 651-1, the received header is returned as it is to the flow control decider 653-1. On the other hand, when any information piece registered in the flow control condition memory 651-1 coincides with each information piece, the flow comparator 652-1 further decides necessity or non-necessity of collection of flow statistic information by consulting information indicative of the contents of flow control registered in the flow control condition memory 651-1 in correspondence to the coincident information pieces (step 2004). For example, the flow comparator 652-1 make a decision by consulting information indicative of necessity or non-necessity of collection of flow statistic information registered in the flow control condition memory 651-1 shown in
When receiving the header (or decision result) from the flow comparator 652-1, the flow control decider 653-1 adds a flow control label indicative of the contents of flow control to the temporarily held packet in accordance with the contents of the header (or decision result) and transfers the packet to the flow control instruction unit 67-1 (step 2006). In the step 2006, the flow control decider 653-1 adds a flow control label instructing non-necessity of flow control to the packet if, for example, the header is not added any information (the decision result indicates non-correspondence to flow or non-necessity of flow control). If the header is added with information instructing the contents of flow control, the flow control decider 653-1 adds to the packet a flow control label instructing the contents of flow control indicated by the information. For example, in the step 2006, information instructing collection of flow statistic information is added to the header, the flow control decider 653-1 sends the packet while adding to it a flow control label instructing collection of the flow statistic information. It is to be noted that the flow control decider 653-1 may add a flow control label only when flow control is needed but may transfer the packet without adding to it any flow control label when flow control is unneeded.
When receiving the packet, the flow control instruction unit 67-1 decides the contents of the flow control label added to the packet (step 2007). If in the step 2007 the contents of the flow control label instructions non-necessity of flow control or no flow control label is added, the flow control instruction unit 67-1 determines that any flow control is not necessary and transfers the packet to the packet transmitter 5 (in the case of IN side flow controller 6-2, the packet relay unit 7) while erasing a flow control label in case any flow control label is added (step 2013).
On the other hand, when in the step 2007 the contents of flow control label instructs collection of flow statistic information, the flow control instruction unit 67-1 determines that the flow control is necessary and prepares a copy of the received packet in accordance with the instruction and sends it to the flow statistic unit 66-1 (step 2008). When the flow statistic unit 66-1 receives the copy of the packet, the packet counter 663-1 adds (+1) a packet number in the flow in which the packet is contained. Then, the flow statistic picking unit 662-1 compares the predetermined sampling intervals set in the flow statistic picking unit 663-1 with the packet number in the flow counted by the packet counter 663-1 to decide whether flow statistic information is to be picking (step 2009). If in the step 2009 a value of the sampling interval coincides with the packet number, the flow statistic picking unit 662-1 determines that picking of the flow statistic information is necessary and writes a copy of the received packet in the flow statistic collection memory 661-1 as a sample and the flow statistic memory 661-1 stores the copy of the packet (step 2010). Also, in the step 2010, the flow statistic picking unit 662-1 sets the count value of packet counter 663-1 to “0”. To add, the packet counter 663-1 can be so constructed as to be able to count, for example, the value of sampling interval or a value less than the sampling interval value by “1”. Further, in the step 2008, in parallel with transmission of the copy of the packet to the flow statistic unit 66-1, the flow control instruction unit 67-1 erases the flow control label from the received packet and transfers the resulting packet to the packet transmitter 5 (in the case of the IN side flow controller 6-2, to the packet relay unit 7) (step 2013).
Further, in case the contents of the flow control label instructs executions of flow control other than the collection of the flow statistic information in the step 2007, the flow control instruction unit 67-1 also determines that flow control is necessary and sends the received packet or its copy to any flow control executer in accordance with the instruction to instruct it to execute the flow control (step 2011). The flow control executer receiving the packet or its copy executes such flow control as change of the priority degree of the packet (step 2012). Then, after the execution of the flow control or in parallel with the execution of the flow control, the packet is transferred from the flow control instruction unit 67-1 or flow control executer to the packet transmitter 5 (to the packet relay unit 7 in the case of the IN side flow controller 6-2) (step 2013).
According to the foregoing description, each of the packet receiver 4 and packet transmitter 5 in the information relay apparatus 1 decides the presence or absence of violation of a contract bandwidth for a packet and counts a receiving or transmitting packet number and a discard packet number but only one of them may decide the presence or absence of the contract bandwidth violation and count the receiving or transmitting packet number and the discard packet number. More particularly, if the information relay apparatus 1 acts as a shaper to execute only shaping, only the packet transmitter 5 decides the presence or absence of contract bandwidth violation for a packet about to be transmitted and counts the transmitting packet number and discard packet number. If the information relay apparatus 1 acts as a policer to execute only policing (or UPC), only the packet receiver 4 decides the presence or absence of contract bandwidth violation for a received packet and counts the receiving packet number and discard packet number.
Further, according to the foregoing description, each of the IN side flow controller 6-2 and OUT side flow controller 6-1 in the information relay apparatus 1 decides the necessity or non-necessity of flow control and picks a sample from a packet but only one of them may perform these processes. For example, if the information relay apparatus 1 acts as a shaper to execute shaping, only the OUT side flow controller 6-1 executes the above processes. But if the information relay apparatus 1 acts as a policer to execute policing (or UPC), only the IN side flow controller 6-2 executes the aforementioned processes.
In this manner, the information relay apparatus 1 is so constructed as to be able to execute either shaping or policing.
Next, the apparatus administrator 2 will be described in greater detail. When an executer, not shown, executes control software and a variety of other kinds of software stored in a memory, not shown, the apparatus administrator 2 carries out control of the whole of the information relay apparatus such as management of setting information inputted by a network administrator from the network administrator operation terminal 11, management of inputted setting information or management of the apparatus status. The apparatus administrator 2 includes the discard information analyzer 20 and the flow statistic transmitter 24. The discard information analyzer 20 analyzes the discard packet number, receiving packet number or transmitting packet number settled by means of the bandwidth monitor 42 of packet receiver 4 and the bandwidth controller 52 of packet transmitter 5 and in accordance with the analytical results, automatically sets identification information of a flow subject to flow control in the OUT side flow controller 6-1 and IN side flow controller 6-2. The flow statistic transmitter 24 transmits, to the flow statistic analyzer 12, flow statistic information picked by the flow statistic unit 66-1 of OUT side flow controller 6-1 or the flow statistic unit 66-2 of IN side flow controller 6-2.
The discard information analyzer 20 is constructed specifically as illustrated in
In
An example of information pieces stored in the flow detection memory 221 is depicted in
In
Turning now to
The information collector 21 of discard information analyzer 20 reads, for example, periodically the statistic information stored in the transmission counter memory 521 of packet transmitter 5 (step 2501). The information collector 21 transfers the acquired statistic information to the discard flow deciding unit 225 of flow decider 22. The discard flow deciding unit 225 analyzes the statistic information and extracts combinations of user ID, transmission queue number, transmitting packet number and discard packet number contained in the statistic information, or groups of queue statistic information, combination by combination (step 2502). To add, one combination of user ID, transmission queue number, transmitting packet number and discard packet number extracted from the statistic information is called queue statistic information and the statistic information includes a number of pieces of queue statistic information corresponding to the transmission queues in number. The discard flow deciding unit 225 calculates a ratio of the discard packet number to the transmitting packet number in one piece of queue statistic information extracted from the statistic information. Also, the discard flow deciding unit 225 finds out of the information stored in the flow detection memory 221 a user ID and a transmission queue number which coincide with the user ID and transmission queue number in the extracted queue statistic information, reads a piece of information such as a threshold value corresponding to the user ID and transmission queue number (herein called user flow detection information) from the flow detection memory 221 and compares the calculated ratio with the read-out threshold value. In this manner, the discard flow deciding unit 225 decides whether the discard packet number in the extracted queue statistic information is normal or abnormal (step 2503). If in the step 2505 the calculated ratio value exceeds the read-out threshold value, the discard flow deciding unit 225 determines that the discard packet number is abnormal and decides from a decision flag in the read-out user flow detection information whether collection of the flow statistic information is necessary or unnecessary (step 2504). When the decision flag indicates that the collection of the flow statistic information is necessary, the discard flow deciding unit 225 transfers, as information for identifying the flow in the read-out user flow detection information, values of source IP address, destination IP address, source port number, destination port number, source MAC address, destination MAC address and DSCP to the flow control information operation unit 226 (step 2505). The above information pieces are correspondent to user ID and transmission queue number which coincide with the user ID and transmission queue number in the queue statistic information.
The flow control information operation unit 226 registers the flow identification information and the information indicative of the necessity of collection of the flow statistic information in the flow control condition memory 651-1 of OUT side flow controller 6-1 by making them correspondent to each other (step 2506). Through this, the flow control condition memory 651-1 is newly added with the information pieces for identifying the flow and thereafter, the flow comparator 652-1 and flow control decider 653-1 in the OUT side flow controller 6-1 detect the packet having the contents of header coincident with the newly added information pieces as a packet for which flow control is necessary.
The discard flow deciding unit 225, on the other hand, replaces (updates) the values of the transmitting packet number and discard packet number in the user flow detection information read out of the flow detection memory 221 with the values of the transmitting packet number and discard packet number in the queue statistic information and again stores the user flow detection information in the flow detection memory 221 (step 2507).
When on the other hand the calculated ratio value is less than the read-out threshold value in the step 2503, the discard flow deciding unit 225 determines that the discard packet number is normal and executes the aforementioned step 2507. Even when the decision flag indicates that the collection of flow statistic information is unnecessary, the discard flow decider 225 also executes the aforementioned step 2507.
The discard flow deciding unit 225 repeats the aforementioned procedures in respect of a plurality of queue statistic information pieces extracted from the statistic information (step 2508) and ends the process.
Next, another example of the information stored in the flow detection memory 221 will be described with reference to
In
Next, operation of the discard information analyzer 20 provided with the flow detection memory 221 storing the information shown in
The information collector 21 of discard information analyzer 20 reads, for example, periodically the statistic information stored in the reception counter memory 421 of packet receiver 4 (step 3001). The information collector 21 transfers the acquired statistic information to the discard flow deciding unit 225 of flow decider 22. The discard flow deciding unit 225 analyzes the statistic information and extracts combinations of user ID, priority degree identification value, transmitting packet number and discard packet number which are contained in the statistic information combination by combination (step 3002). One combination of user ID, priority degree identification value, transmitting packet number and discard packet number which are extracted from the statistic information is herein called user statistic information and the statistic information includes a plurality of pieces of user statistic information. The discard flow deciding unit 225 calculates a ratio of the discard packet number to the transmitting packet number in one piece of user statistic information extracted from the statistic information. Also, the discard flow deciding unit 225 finds out user ID and priority degree identification value which coincide with the user ID and priority degree identification value in the extracted user statistic information from the information stored in the flow detection memory 221, reads each piece of information such as a threshold value correspondent to the user ID and priority degree identification value (called user flow detection information) from the flow detection memory 221 and compares the calculated ratio value with the read-out threshold value. Through this, the discard flow deciding unit 225 decides whether the discard packet number in the extracted user statistic information is normal or not (step 3003). If in the step 3003 the calculated ratio value exceeds the read-out threshold value, the discard flow deciding unit 225 determines that the discard packet number is abnormal and decides, from a decision flag in the read-out user flow detection information, whether collection of flow statistic information is necessary or not (step 3004). In case the decision flag indicates that the collection of the flow statistic information is necessary, the discard flow deciding unit 225 transfers, as information necessary for identifying the flow in the read-out user flow detection information, respective values of source IP address and VLAN ID to the flow control information operation unit 226 (step 3005).
The flow control information operation unit 226 registers the flow identification information and the information indicative of necessity of collection of the flow statistic information in the flow control condition memory 651-2 of IN side flow controller 6-2 by making them correspondent to each other (step 3006). In this manner, the flow control condition memory 651-2 is newly added with information pieces for identifying the flow and thereafter the flow comparator 652-2 and flow control decider 653-2 of IN side flow controller 6-2 detect, as a packet for which flow control is necessary, a packet for which the newly added information pieces coincide with the contents of the header.
Also, the discard flow deciding unit 225 replaces (updates) values of the transmitting packet number and discard packet number in the user flow detection information read out of the flow detection memory 221 with the values of the transmitting packet number and discard packet number in the user statistic information and again stores the user flow detection information in the flow detection memory 221 (step 3007).
On the other hand, in case the calculated ratio value is below the read-out threshold value in the step 3003, the discard flow deciding unit 225 determines that the discard packet number is normal and executes the aforementioned step 3007. If in the step 3004 the deciding flag indicates that the collection of flow statistic information is unnecessary, the discard flow deciding unit 225 also executes the aforementioned step 3007.
The discard flow deciding unit 225 repeats the aforementioned procedures in respect of a plurality of pieces of user statistic information extracted from the statistic information (step 3008) and ends the process.
Turning now to
In
When using the information shown in
Next, how the flow statistic transmitter 24 of apparatus administrator 2 transmits flow statistic information picked in, for example, the flow statistic unit 66-1 of OUT side flow controller 6-1 to the flow statistic analyzer 12 will be described specifically by making reference to
When the flow statistic information pieces (sample) are cumulated in the flow statistic collection memory 661-1 by a predetermined amount, the flow statistic information stored in the flow statistic collection memory 661-1 is sent therefrom to the flow statistic transmitter 24. The flow statistic transmitter 24 receives the flow statistic information from the flow statistic unit 66-1 (step 3501). With the aim of transmitting the flow statistic information to the flow statistic analyzer 12, the flow statistic transmitter 24 prepares a flow statistic information transmission frame (step 3502). This transmission frame is settled in advance pursuant to specifications of the flow statistic function. For example, in case the sFlow technology described in RFC 3176 is adopted, the flow statistic transmitter 24 prepares a transmission frame pursuant to a transmission frame format shown in
With the flow statistic information transmission frame transmitted from the flow statistic transmitter 24 in this manner, the flow statistic analyzer 12 receives the flow statistic information transmission frame. The flow statistic analyzer 12 executes software for analysis of the flow statistic information to analyze the flow statistic information contained in the flow statistic information transmission frame. This enables the flow statistic analyzer 12 (the network administrator utilizing the flow statistic analyzer 12) to analyze the flow relayed by the information relay apparatus 1 which has transmitted the flow statistic information transmission frame and to specify an abnormal flow taken advantage of by a DoS attack or DDoS attack.
Subsequently, an example will be described in which the aforementioned information relay apparatus 1 is applied to a communication network provided by a communication enterprise.
Referring to
It is now presupposed that in
Operation of the information relay apparatus 101-2 will now be described specifically by using flowcharts shown in
Referring first to
The router 75 of packet relay unit 7 settles a transmission route (next transfer destination) on the basis of information contained in the header of the packet and information registered in the routing table (step 4002) and transfers the packet and the transmission route information to the switch unit 8.
In accordance with the transmission route information received from the packet relay unit 7, the switch unit 8 transfers the packet to the OUT side flow controller 6-1 provided in correspondence to the packet transmitter 5 connected to a circuit to which the packet is to be transmitted (step 4003).
When receiving the packet from the switch unit 8, the flow detector 65-1 of OUT side flow controller 6-1 decides necessity or non-necessity of flow control for the received packet as has be explained in connection with
When receiving the copy of the packet from the flow control instruction unit 67-1, the flow statistic picking unit 662-1 of flow statistic unit 66-1 compares predetermined sampling intervals with a packet number in the flow counted by the packet counter 663-1 to decide whether flow statistic information is to be picked (step 4005). If the value of sampling intervals equals the packet number, the flow statistic picking unit 662-1 stores, as a sample, the received packet copy in the flow statistic collection memory 661-1 (step 4006). It is to be noted that the flow control instruction unit 67-1 may transfer the packet to another flow control executer in accordance with a flow control label. In this case, flow control other than the collection of flow statistic information is executed in the steps 4005 and 4006.
When receiving the packet from the OUT side flow controller 6-1, the bandwidth controller 52 of packet transmitter 5 executes shaping as explained in connection with
Also, the bandwidth controller 52 executes the steps 1503 and 1504 shown in
Turning now to
Through the steps as described above, relay of the packet by the information relay apparatus 101-2 ends.
For example, in the case of DoS attack and DDoS attack, packets in excess of the contract bandwidth are transmitted to an arbitrary destination and as a result, packets flow out of a transmission queue corresponding to the destination and there occurs packet discard. As described previously, when a large number of packets belonging to a specified flow are discarded in the packet transmitter 5, the discard information analyzer 20 of apparatus administrator 2 determines that the discard packet number counted by the packet transmitter 5 is abnormal and sets information for identifying the flow to which the discarded packets belong in the flow control condition memory 651-2 of OUT side flow controller 6-1. Consequently, the flow statistic unit 66-1 of OUT side flow controller 6-1 picks flow statistic information from a packet belonging to the same flow to which the packets discarded by a great number belong. In this manner, by monitoring the discard packet number transmission queue by transmission queue, occurrence of congestion can be detected and besides, a flow dubious about its abnormality can be specified. Therefore, the number of flows to be analyzed by the flow statistic analyzer 12 (flows dubious about their abnormality) can be narrowed down to, for example, 1/(user number xtransmission queue number for each user) as compared to the total flow number.
Next, an instance will be described which presupposes, as in the foregoing, that the user 110-2 connected to the circuit concentration unit 102-1 transmits data (packet) to the user 111-1 connected to the circuit concentration unit 102-2 via the communication network 10 and the aforementioned information relay apparatus 1 is arranged in the communication network to act as the information relay apparatus 101-1. In this case, the information relay apparatus 101-1 executes the aforementioned policing in respect of packets received from the circuit concentration unit 102-1 and receives the packets in accordance with contract bandwidths made with the individual users 110-1 to 110-n. Also, the information relay apparatus 101-1 decides the necessity or non-necessity of flow control in respect of packets received from the individual users 110-1 to 110-n and executes the flow control. On the other hand, the information relay apparatus 101-1 need not perform shaping and flow control for a packet the apparatus 101-1 is about to transmit to the communication network 10. Therefore, in the following description, it is assumed that the information relay apparatus 101-1 executes neither shaping based on the bandwidth controller 52 shown in
Operation of the information relay apparatus 101-1 will now be described specifically by using flowcharts shown in
Referring first to
On the other hand, if in the step 5002 the sum value exceeds the cumulative amount threshold value, the bandwidth monitor 42 executes the step 1006 shown in
When receiving the packet from the packet receiver 4, the flow detector 65-2 of IN side flow controller 6-2 decides, as described in connection with
When receiving the copy of the packet from the flow control instruction unit 67-2, the flow statistic picking unit 662-2 of flow statistic unit 66-2 compares a predetermined sampling intervals with the packet number in the flow counted by the packet counter 663-2 and decide whether flow statistic information is to be picked (step 5005). If the sampling interval value equals the packet number, the flow statistic picking unit 662-2 stores, as a sample, the received copy of the packet in the flow statistic collection memory 661-2 (step 5006). It is to be noted that the flow control instruction unit 67-2 may follow the flow control label to transfer the packet to another flow control executer.
In this case, flow control other than the collection of flow statistic information is executed in the steps 5005 and 5006.
When receiving the packet from the IN side flow controller 6-2, the router 75 of packet relay unit 7 settles a transmission route of the packet (next transfer destination) on the basis of information contained in the header of the packet and information registered in the routing table (step 5007) and transfers the packet and transmission route information to the switch unit 8.
Following the transmission route information received from the packet relay unit 7, the switch unit 8 transfers the packet to the packet transmitter 5 connected to a circuit to which the packet is to be transmitted (step 5008).
When receiving the packet from the switch unit 8, the transmission controller 51 of packet transmitter 5 transmits the received packet to the communication network 10 through an output port (step 5009).
Turning now to
Through the procedures as above, relay of the packet by the information relay apparatus 101-1 ends.
As described previously, in the event that packets in excess of the contract bandwidth as in the case of DoS attack, for instance, are transmitted from an arbitrary source to an arbitrary destination, the packet discard also occurs in the packet receiver 4. As described previously, when a great number of packets belonging to a specified flow are discarded in the packet receiver 4, the discard information analyzer 20 of apparatus administrator 2 determines that the discard packet number counted by the packet receiver 4 is abnormal and sets information for identifying the flow to which the discarded packets belong in the flow control condition memory 651-2 of IN side flow controller 6-2. As a result, the flow statistic unit 66-2 of IN side flow controller 6-2 picks flow statistic information from packets belonging to the same flow to which the packets discarded by a great number in the packet receiver 4 belong. In this manner, by monitoring the discard packet number in the packet receiver 4, occurrence of congestion can also be detected and besides a flow dubious of an abnormal flow can be specified. Therefore, the number of flows to be analyzed by the flow statistic analyzer 12 (dubiously abnormal flows) can be narrowed down to, for example, 1/(user number xpriority degree) as compared to the total flow number.
As has been described, when a great number of packets belonging to a specified flow are discarded in the packet transmitter 5 or packet receiver 4, the discard information analyzer 20 of apparatus administrator 2 determines that the discard packet number counted by the packet transmitter 5 or packet receiver 4 is abnormal and sets information for identifying a flow to which the discarded packets belong in the flow control condition memory 651-1 of OUT side flow controller 6-1 or the flow control condition memory 651-2 of IN side flow controller 6-2. As a result, the flow statistic unit 66-1 of OUT side flow controller 6-1 or the flow statistic unit 66-2 of IN side flow controller 6-2 picks statistic information from packets belonging to the same flow to which the packets discarded by a great deal in the packet transmitter 5 or packet receiver 4 belong, that is, the flow dubious of an abnormal flow. In this manner, the object from which the flow statistic information is collected can be restricted to one of all flows to be relayed which is dubious about an abnormal flow. Through this, the flow statistic analyzer 12 can receive flow statistic information concerning an abnormal flow from the information relay apparatus, thereby ensuring that the number of analytical object flows for which the flow statistic analyzer 12 intends to perform detection of abnormal flow can be decreased, the analysis work can be reduced to a great extent and an abnormal flow can be specified at a higher speed. Further, when the information relay apparatus 1 performs setting of, for example, discarding all abnormal flows, informing the apparatus administrator of alarm and giving information to the apparatus upstream in the communication network 10, countermeasures against abnormal flows can be taken more rapidly.
It should be further understood by those skilled in the art that although the foregoing description has been made on embodiments of the invention, the invention is not limited thereto and various changes and modifications may be made without departing from the spirit of the invention and the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2004-088302 | Mar 2004 | JP | national |