The present disclosure relates generally to computer networks. In an example embodiment, the disclosure relates to the dynamic classification of Internet Protocol (IP) packets based on measured characteristics and IP address prefix.
Data packets in an Internet Protocol (IP) differentiated services model may be classified at ingress to a computer network to the appropriate class of service. However, classification must be manually configured at the upstream ingress points. For a large enterprise wide area network with hundreds of sites, the classification of router configurations needs to be performed at all edge locations, which can be operationally intensive.
The present disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
a and 2b are simplified diagrams of an example computer network, in accordance with example embodiments;
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of an example embodiment of the present disclosure. It will be evident, however, to one skilled in the art that the present disclosure may be practiced without these specific details.
Overview
An example method is provided where a characteristic of a flow of Internet Protocol (IP) packets is measured. Here, the flow is associated with an IP address prefix. As explained in more detail below, an attribute of a routing protocol may be associated with the IP address prefix based on the characteristic. An advertisement may then be transmitted by way of the routing protocol. The advertisement may include the attribute and the IP address prefix associated with the attribute.
Another example method is provided where an advertisement is received. The advertisement may include an attribute of a routing protocol and an IP address prefix associated with the attribute. The IP address prefix may be associated with a class of service and the class of service is associated with the attribute. An IP packet associated with the IP address prefix may be received and the IP packet is classified to the class of service based on the IP address prefix. The IP packet may then be marked with a value that is associated with the class of service.
In the example system 10, data is communicated by way of Internet Protocol (IP) packets or datagrams using a variety of suitable upper-layer transport communication protocols. For example, packets may be encapsulated and communicated using the Transmission Control Protocol (TCP)/Hypertext Transport Protocol (HTTP), the User Datagram Protocol (UDP) protocol, and/or the SCTP. Further, although system 10 is shown to include routers 12-20, it should be noted that the example embodiments described herein are equally applicable to other network devices, such as switches or the like. Broadly, the example embodiments described herein may be deployed in a variety of network devices that receive digital data for processing and communication to other network devices.
a and 2b are simplified diagrams of an example computer network, in accordance with example embodiments. As shown in
In the example computer network 200 of
In an illustrative example,
It should be noted that routers 250-257 may classify an IP packet based on its source and/or destination IP address. An IP address is a unique address used by routers (or other networked devices) for communication on computer network 200 that uses the IP standard. In an example, as explained in more detail below, IP packet classification may be based on the associated (or matching) IP address prefix within, for example, a routing table. The IP address prefix can represent a range of IP addresses. Alternatively, the IP address prefix can represent a single IP address. As shown in
It should be noted that a number of nodes, routers, links, etc. may be used in computer network 200, and that the computer network of
Referring to
Classification module 304, on the other hand, is configured to classify IP packets by IP precedence or DSCP based on, for example, BGP community lists, BGP autonomous system paths, and access control lists (ACLs). An example of classification module 304 includes a Quality of Service Policy Propagation through BGP (QPPB) module. In addition, as explained in more detail below, classification module 304 may classify received IP packets to one or more classes of services.
Additionally included in apparatus 300 is tagging module 306 that, as explained in more detail below, is configured to mark (or tag) an IP packet with a value that is associated with the class of service, as classified by classification module 304. It should be appreciated that in other example embodiments, apparatus 300 may include fewer or more modules apart from those shown in
Thereafter, at 404, an attribute of a routing protocol is associated with the IP address prefix based on the characteristic. An attribute is a property associated with a routing protocol. With Border Gateway Protocol, for example, attributes may include local preference, multi-exit discriminator, origin, next hop, community, and other attributes. In an example embodiment, the attribute is the community attribute. In general, the community attribute can be a four byte value that enables IP address prefixes to be grouped into domains (or communities). As illustrated in more detail below, the association may include, for example, a particular attribute to be associated with a particular threshold of a characteristic.
After the attribute is associated with the IP address prefix, an advertisement is transmitted at 406 by way of the routing protocol. An advertisement is a message associated with the routing protocol. Here, the advertisement includes the attribute and the IP address prefix associated with the attribute. The advertisement may be transmitted to other routers within a domain or to routers located in other domains.
Here, CE router 549 is advertising IP address prefix value of 1 and IP address prefix value of 2 associated with server 502 and server 504, respectively. The customer has built enterprise network 500 such that server 502 having IP address prefix value of 1 is executing business applications. Server 504 having IP address prefix value of 2 is executing other non-business applications. CE router 549 is actively and/or passively measuring one or more characteristics of flows of IP packets having IP address prefixes of 1 and 2 values to and from the CE router. In the example of
In this example, the customer has specified that if latency is less than 100 ms, then IP packets destined to server 502, which is associated with IP address prefix of 1 value, are to be classified as assured forwarding gold. On the other hand, if the latency exceeds 100 ms, then IP packets destined to the same server 502 are to be classified as assured forwarding silver, which has a lower priority than assured forwarding gold. Here, a community 1 attribute is associated with assured forwarding gold. A community 2 attribute is associated with assured forwarding silver. If CE router 549 measures the latency to be less than 100 ms, then the CE router associates the community 1 attribute with the IP address prefix value of 1. On the other hand, if CE router 549 measures the latency to exceed 100 ms, then the CE router associates the community 2 attribute with the IP address prefix value of 2.
CE router 549 may then transmit advertisement 560 with the attribute and the associated IP address prefix to other routers 550-554 by way of Border Gateway Protocol. Advertisement 560 may include community 1 attribute and IP address prefix value of 1. Depending on the latency measured, advertisement 560 may instead include community 2 attribute. It should be appreciated that in addition to CE router 549, the other routers 550-554 in enterprise network 500 may also be configured to measure the latency, to associate the community attribute with an IP address prefix, and to transmit advertisement 560.
After the advertisement is received, in an example embodiment, the attribute may be associated with a class of service at 604. The association of the attribute with the class of service may be programmed into the classification module or may be stored in a variety of data structures, such as arrays, tables, and other data structures. The following mapping is an example of associations of attributes with various classes of services:
The above Table A is organized in rows and columns. Elements associated with the column “attribute” include various community attributes. Elements associated with the column “class of service” include various classes of services that are associated with the various community attributes. In Table A, there is a one-to-one correspondence between an attribute element and a class of service element. For example, community 1 attribute is associated with expedited forwarding. Similarly, community 2 attribute is associated with assured forwarding gold. In an example embodiment, to associate an attribute with a class of service, the received attribute is identified (e.g., community 4) and the class of service associated with the attribute (e.g., best effort) then is located.
Thereafter, the IP address prefix is associated with a class of service at 606. In an example embodiment, the IP address prefixes and the associated classes of services are stored in a routing table. In brief, a routing table is stored in an apparatus (e.g., a router) and stores a variety of information associated with a computer network, such as topology and other information. In an example embodiment, the association may include identifying the matching IP address prefix in the routing table. An existing class of service associated with the IP address prefix then is located within the routing table. It should be noted that this existing class of service associated with the IP address prefix already is stored in the routing table. With the existing class of service located, this existing class of service stored in the routing table then is replaced with the class of service from 604, as discussed above. As a result, the advertisements provide updates of classes of services associated with IP address prefixes to reflect the dynamic changes in network characteristics.
After the received IP packet is associated with a class of service, the IP packet is marked (or tagged) at 706 with a value that is associated with the class of service. For example, the IP packet is marked with a value that corresponds to the above-identified class of service. The value is information associated with the IP packet. For example, the value may include an MPLS experimental (EXP) bit value (or EXP field) associated with an IP packet. The EXP bit value can be a three-bit value in the MPLS shim header. The EXP bit value may be used to define Quality of Service treatment and/or to encode dropping precedence. In another example, the value may include a DSCP value. The DSCP generally defines a class and may also define a drop precedence within a class. In still another example, the value may be an IP precedence value, which may be the first three bits of the Type of Service field.
It should be noted that, in an example embodiment, the class of service is further associated with a value. The association may be derived from a mapping of the classes of services and of values that are associated with the classes of services. Here, the routing table can also store the value that is associated with the class of service. The value therefore corresponds to the class of service, and the IP packet is marked and handled according to its marked class of service.
Referring to
After the routing table is updated, CE 553 receives IP packets 802 from host 506. Depending on the IP address prefix, IP packets 802 may be addressed to server 502 associated with IP address prefix value of 1 or addressed to server 504 associated with IP address prefix value of 2. In the example shown in
After classification, the IP packet is marked with a DSCP value that is associated with expedited forwarding. For example, the DSCP value may be inserted into the six bits of a differentiated services field. As a result, the IP packet is marked for expedited forwarding treatment by CE 553 and by many or all downstream routers 549-552. It should be appreciated that classification of IP packets 802 depends on the updates provided by the advertisements. The advertisements reflect the dynamic changes in network characteristics. Therefore, the classification of IP packets also is dynamic. In addition to CE router 553, it should be noted that other routers 549-552 and 554 in enterprise network 500 may also be configured to classify and mark received IP packets, such as IP packets 802.
The example computing system 900 includes processor 902 (e.g., a central processing unit (CPU)), main memory 904 and static memory 906, which communicate with each other via bus 908. Computing system 900 may also include disk drive unit 916 and network interface device 920.
Disk drive unit 916 includes machine-readable medium 922 on which is stored one or more sets of instructions and data structures (e.g., software 924) embodying or utilized by any one or more of the methodologies or functions described herein. Software 924 may also reside, completely or at least partially, within main memory 904 and/or within processor 902 during execution thereof by computing system 900, with main memory 904 and processor 902 also constituting machine-readable, tangible media. Software 924 may further be transmitted or received over network 926 via network interface device 920 utilizing any one of a number of well-known transfer protocols (e.g., Trivial File Transfer Protocol (TFTP)).
While machine-readable medium 922 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present application, or that is capable of storing, encoding or carrying data structures utilized by or associated with such a set of instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.
Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b), requiring an abstract that will allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.