The present invention relates to using network flows data exported from network routers to provide information about the traffic entering/exiting the device. Network flow information exported from network devices identify the network devices involved in the flow using their network address. This application describes the steps necessary to efficiently resolve the network device address to their domain names using user friendly names of the network devices.
Network usage data is useful for many important business functions, such as subscriber billing, marketing & customer care, product development, network operations management, network and systems capacity planning, and security. Network usage data does not include the actual information exchanged in a communications session between parties, but rather includes numerous usage detail records, known as “flow records” containing one or more types of metadata (i.e., “data about data”). Known network flow records protocols include Netflow®, sFlow®, jFlow®, cFlow® or Netstream®. As used herein, a flow record is defined as a small unit of measure of unidirectional network usage by a stream of IP packets that share common source and destination parameters during a time interval.
The types of metadata included within each flow record vary based on the type of service and network involved and, in some cases, based on the particular network device providing the flow records. In general, a flow record provides detailed usage information about a particular event or communications connection between parties, such as the connection start time and stop time, source (or originator) of the data being transported, the destination or receiver of the data, and the amount of data transferred. A flow record summarizes usage information for very short periods of time (from milliseconds to seconds, occasionally minutes). Depending on the type of service and network involved, a flow record may also include information about the transfer protocol, the type of data transferred, the type of service (ToS) provided, etc. In telephony networks, the flow records that make up the usage information are referred to as call detail records (CDRs).
In network monitoring, the network flow records are collected, stored and analyzed to produce meaningful results. Network usage analysis systems process these flow records and generate reports or summarized data files that support various business functions. Network usage analysis systems provide information about how a network services are being used and by whom. Network usage analysis systems can also be used to identify (or predict) customer satisfaction-related issues, such as those caused by network congestion and network security abuse. In one example, network utilization and performance, as a function of subscriber usage behavior, may be monitored to track a user's experience, to forecast future network capacity, or to identify usage behavior indicative of network abuse, fraud and theft.
Furthermore, known techniques for identifying virus are limited. The known techniques generally look for secondary effects of the virus, such as monitoring network resource usage and identifying applications requesting an unnaturally large amount of the network resources. However, it may be difficult to differentiate between the virus and legitimate applications that require a large amount of network resources. Also, viruses are becoming more intelligent to avoid detection. A virus may sit dormant on a system for some time, waiting for a signal to initiate. For example, a malicious virus may sit dormant until confidential data is acquired. Thus, while the virus is waiting to act, it would be difficult to detect because it produces minimal side-effects.
In response to these and other needs, embodiments of the present invention provide a system and method for resolving network address to host names in network flows for network devices. In one embodiment, the system includes network device configured to produce a flow record, a flow record storage configured to receive said flow record from said network device and to store said flow record, and a data analysis tool configured to access said stored flow record and to identify a numerical network address contained in the stored flow record. Then, an address analysis tool configured to receive the numerical network address and to identify a text network address corresponding to said numerical network address.
Optionally, the flow record storage is configured to receive the text network address and to modify the stored flow record to include the text network address. The system may further include a user interface configured to receive and display the flow record and the text network address. Optionally, the network device is configured to receive an indication of the numerical network address from a user interface and to add the numerical network address to an access control list. Also, the user interface may forward the indication of said numerical network address in response to predefined criteria. A data input device may define the predefined criteria. The address analysis tool may further include a mapping table configured to associate the numerical network address with a text network address. Also, the address analysis tool may also include a data agent configured access the network to populate the mapping table.
In another embodiment, the present invention includes a method for resolving network address to host names in network flows for a network device. In this embodiment, the method may include the steps of receiving a flow record from the network device and storing said flow record from said network device. Next, a network address contained in the stored flow record is located, and a host name corresponding to said numerical network address is identified.
Optionally, the method may include the step of modifying the stored flow record to include the host name. Also, the method may include the step of displaying the flow record and the host name. The method may include the steps of the network device receiving an indication of said network address. The indication of said network address may be sent in response to predefined criteria. The method optionally includes a step of accepting a data input to define the predefined criteria. Also, the method optionally includes the step of configuring a mapping table to associate the network address with host name. Also, the method may include configuring a data agent to access a network to populate the mapping table.
In another embodiment, a system for dynamically resolving network address to host names in network flows for a network device includes a flow record storage system configured to receive and store a record of the flow and a data analysis device. The data analysis device is configured to access the storage system and to identify a network address in the flow record, and to modify the flow record to replace the network address with a host name. Optionally, the data analysis device includes a mapping table configured to associate the network address with the host name. The data analysis device may also include a user interface configured to display the flow record comprising the host name. Also, the data analysis device may include a data agent configured to receive the network address, to access a network to identify the host name, and to populate the mapping table with said network address and said host name.
Optionally, the data agent stops after a certain number of tries or after a certain period of time and returns an error message to indicate that a host name associated with the network address cannot be easily found. Also, the mappings optionally expire after a certain period of time, there causing the data agent to refresh the mappings between the network addresses and the host names.
The above and other objects, features and advantages of certain exemplary embodiments of the present invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
As shown in
In general, flow record generating devices 120 may include substantially any network device capable of handling raw network traffic at “line speeds” and generating flow records from that traffic. Exemplary flow record generating devices 120 include routers, switches and gateways, and in some cases, may include application servers, systems, and network probes. In most cases, the small flow record records generated by flow record generating devices 120 are exported as a stream of flow records 190 to the data collection system server 130.
Various network protocol run on network equipment for collecting network and internet protocol traffic information. Typically, various network agents 120, such as routers, have flow feature enabled to generate flow records. The flow records 190 are typically exported from the network agent 120 in User Datagram Protocol (UDP) or Stream Control Transmission Protocol (SCTP) packets and collected using a flow collector. For more information, please refer to Internet Engineering Task Force (IETF) standard for Internet Protocol Flow Information eXport (IPFIX) at http://www.ietf.org/html.charters/ipfix-charter.html.
As described above, flow records 190 are usually sent by the network agents 120 via a UDP or SCTP, and for efficiency reasons, the network agents 120 does not store flow records once they are exported. With a UDP flow, if the flow record 190 is dropped due to network congestion, between the network agent 120 and the data collection server 130, it may be lost forever because there is no way for the network agent 120 to resend the flow record 190. Flow may also be enabled on a per-interface basis to avoid unnecessarily burdening of the router's processor. Thus, the flows records 190 are generally based on the packets input to interfaces where it is enabled to avoid double counting and to save work for the network agent 120. Also, the network agent 120 may export a flow records for dropped packets.
Network flows have been defined in many ways. In one implementation, a flow includes a 5-tuple: a unidirectional sequence of packets to define Source IP address, Destination IP address, Source TCP port, Destination TCP port, and IP protocol. Typically, the network agent 120 will output a flow record when it determines that the flow is finished. The network agent 120 does this by “flow aging,” where the network agent 120 resets an aging counter when the network agent 120 sees new traffic for an existing flow. Also, TCP session termination in a TCP flow causes the network agent 120 to expire the flow. The network agent 120 can also be configured to output a flow record at a fixed interval even if the flow is still ongoing. Alternatively, an administrator could define flow properties on the network agent 120.
A flow record 190 can contain a wide variety of information about the traffic in a given flow. A known exemplary flow record 200 contains the following values, as defined in
Continuing with
Continuing with
Continuing with
A data analysis system server 150 accesses and uses the flow records 190 to perform predetermined network usage statistical analysis. In general, the data analysis system server 150 implements various statistical model that are defined to solve one or more network usage related problems, such as network congestion, network security abuse, fraud and theft, among others. The data analysis system server 150 uses the flow records 190 and the statistical models to generate a statistical result, which also may be subsequently stored within a data storage system 140. Exemplary embodiments for storing the statistical result will be described in more detail below. By analyzing flow data, the data analysis system server 150 can build a picture of traffic flow and traffic volume in a network. Applicant of the data analysis system 150 is described in greater detail below.
In one aspect, the data analysis system server 150 may be responsive to a user interface 160 for interactive analysis of the flow records 190. User interface 160 may comprise substantially any input/output device known in the art, such as a keyboard, a mouse, a touch pad, a display screen, etc. In one example, a graphical display of the statistical results may be output to a display screen at user interface 160.
In one embodiment, data analysis system server 150 comprises a computer software program, which is executable on one or more computers or servers for analyzing the network usage data in accordance with various embodiments of the invention. Although the data storage system 140 is shown as external to the data collection system server 130 and/or the data analysis system server 150, the data storage system 140 could be alternatively arranged within either of the servers 130 and 150. Data storage system 140 may comprise substantially any volatile memory (e.g., RAM) and/or non-volatile memory (e.g., a hard disk drive or other persistent storage device) known in the art.
In a preferred embodiment of the present invention, the data analysis tool; 150 further performance analysis as needed to interpret the flow record data using the address data storage system 170. In particular, the address data storage system 170 receives the addresses for the source and destination devices for flows, as described above in
As described in greater detail below in
Referring now to
In the example of
Referring now to
In
In
Referring back to
In
Referring now the
Continuing with the access control method 700, the IP addresses in the flow records analyzed in step 730 are identified in step 740. In particular, as described above, a more user-friendly version of the as devices addresses are determined, for example, by either using an address mapping table the includes a notation for converting the IP address to a text-based address, or by using a data agent to convert access an address server to convert the numerical IP address to a text-based address. In step 750, these text-based addresses in the flow records are forwarded to a user and may be used as needed. For example, the flow records can be updated to reflect the text-based addresses in addition to or in the alternative to the IP addresses. Optionally, the user may also receive flow records data indicating the text address and other aspects of the traffic associated with the flow record, such as the time, size, and duration of the flow.
As depicted in
If the IP address is not identified in step 743, than, the table is updated in step 743 to include the IP address and any mapping to a text address that can be determined using techniques as described above. Furthermore, the mapping between the IP address and one or more text addresses found in the address table typically are valid for a predefined period of time and expire after that time, thereby causing the mapping to be recreated. In this way, the mapping table can be constantly updated to reflect changes in address mapping, such as changes in the text addresses associated with a numerical IP address. After the mapping is updated to reflect new information or the deletion of a mapping that has become stale (or too old), the search for the IP address is repeated for a prespecified number of times in step 744, with the mapping table being searched again for the IP address. After a prespecified number of cycles or attempts or after a prespecified time period, the search for the IP address stops in step 746. Typically, if the search for a mapping to the IP address stops in step 746, then an error message is produced and forwarded to a user or administrator.
While the invention has been described with reference to an exemplary embodiments various additions, deletions, substitutions, or other modifications may be made without departing from the spirit or scope of the invention. Accordingly, the invention is not to be considered as limited by the foregoing description, but is only limited by the scope of the appended claims.