In order to improve reliability and provide redundancy, enterprise networks and data centres span across a number of geographically dispersed network sites. Similar services are deployed at the sites connected via layer 2 connectivity. To facilitate dynamic resource allocation and management, virtual machines are allowed to freely migrate among data centers. The process of virtual machine migration may be transparent to users and in which case their IP addresses remain unchanged.
By way of non-limiting examples, the present disclosure will be described with reference to the following drawings, in which:
a) is a flowchart of an example implementation of bandwidth threshold negotiation in
b) is a schematic diagram of an example notification message for bandwidth threshold negotiation;
a) is a schematic diagram illustrating egress interfaces of a virtual link;
b) is a schematic diagram illustrating the failure on a primary egress interface in
In a network that includes geographically dispersed sites, traffic may be forwarded from one edge device at one site to another edge device at another site via a public network. For example, layer 2 traffic is first encapsulated with an Internet Protocol (IP) tunnel header before being forwarded to the destination edge device. When a failure or congestion occurs on a path in the public network, edge devices update and distribute their IP routing information to each other. In this case, depending on the convergence speed of the IP routing information, traffic may be lost or delayed while the IP routing information is updated and route calculation performed.
The present disclosure describes traffic forwarding in a network where Virtual Local Area Networks (VLANs) are deployed over geographically dispersed sites. The network comprises a first edge device (ED) at a first site and a second ED at a second site. In one example, the first ED receives traffic from a host device within the first site. The received traffic is to be forwarded to the second ED via a virtual link established between the first ED and second ED. The first ED determines whether a bandwidth required by the received traffic exceeds a bandwidth threshold negotiated between the first ED and second ED for the first ED to forward traffic to the second ED via the virtual link. If the negotiated bandwidth threshold is not exceeded, the received traffic is forwarded to the second ED via the virtual link. Otherwise, traffic with high priority is selected from the received traffic and forwarded to the second ED via the virtual link.
The above example of the present disclosure facilitates traffic forwarding based on bandwidth limitation and differentiated services in a network where VLANs are deployed over geographically dispersed sites. The negotiation of a bandwidth threshold for the first ED to forward traffic to the second ED provides the latter control over the amount of traffic sent by the former, which may reduce the likelihood of congestion. If the negotiated bandwidth threshold is exceeded, high priority traffic is selected for forwarding, for example to implement quality of service policies for this type of traffic.
Examples will be described with reference to accompanying drawings.
The edge devices 120 (e.g. ED1, ED2, ED3) perform traffic forwarding from the sites 110 to the public network 130, and vice versa. This allows host devices 122 connected to the edge devices 120 to send traffic, for example within a VLAN deployed over multiple sites 110. In
The network 100 may employ suitable technology that provides layer 2 connectivity, such as Ethernet Virtual Interconnect (EVI) and Overlay Transport Virtualization (OTV) etc. EVI, for example, is a “MAC in IP” technology that provides layer 2 connectivity between distant layer 2 network sites across an IP core network. For example, EVI may be used to implement layer 2 virtual private network (L2VPN). Each EVI instance (also known as virtual interconnect instance) is assigned a unique network ID such that messages of different EVI instances are isolated from each other.
The example network 100 also includes an overlay network to facilitate communication between edge devices 120. The overlay network includes virtual links 140 (also referred to as “LINK”). The term “virtual link” 140 is used throughout the present disclosure to refer generally to a communication channel over a layer 3 network. In general, a physical communication medium may be virtualized to include multiple communication channels such that traffic of one communication channel is separated from that of a different one (e.g. using a suitable identifier).
In
Once a virtual link is established, the edge devices advertise their routing information from which optimal paths may be calculated. When an edge device receives traffic from within a local site, the optimal path may be used to forward the traffic to its destination. The optimal path serves as an egress interface of the virtual link, via which traffic encapsulated with a tunnel header (e.g. IP GRE tunnel header) can be forwarded.
According to the example in
If the bandwidth required by the received traffic 152 exceeds the negotiated bandwidth threshold 150, high priority traffic 154 is selected for forwarding, for example to achieve quality of service parameters for such traffic. The example in
It will be appreciated that the “first ED” and “second ED” may be any pair of edge devices in the network 100 that communicate over a virtual link between them. The terms “first” and “second” are merely used to distinguish different edge devices, and should not be taken as an indication of any sequence or order. Example implementations of the blocks in
Negotiation of Bandwidth Threshold
Referring now to
Referring also to
Similarly, the second ED (e.g. ED2) may negotiate a bandwidth threshold for the second ED to forward traffic to the first ED (e.g. ED1) via the virtual link (e.g. vlink2) established between them according to the example in
The maximum bandwidth threshold may be received at 410 via a notification message, an example 400 of which is shown in
In one example, the negotiated bandwidth threshold may be the total bandwidth threshold for all traffic types, such as broadcast traffic, multicast traffic, unicast traffic, unknown unicast traffic (e.g. unknown MAC address), and unknown multicast traffic etc. Alternatively or additionally, different bandwidth thresholds may also be set for different traffic types. However, when added together, the total of all different thresholds should not exceed the total bandwidth threshold for all traffic types.
For each traffic type (or group of traffic types), a different maximum bandwidth threshold and negotiated bandwidth threshold may be set. For example, the bandwidth used by unicast traffic should not exceed the negotiated threshold for unicast traffic, the bandwidth used by multicast traffic should not exceed the negotiated threshold for multicast traffic, etc. In this case, the comparison between the required bandwidth and negotiated bandwidth threshold at 220 in
If the negotiated threshold for the traffic type is not exceeded, the first ED (e.g. ED1) forwards the received traffic to the second ED (e.g. ED2) via the virtual link (e.g. vlink2) established between them; see 230 in
In the above example, even if the bandwidth required for the unicast traffic exceeds the threshold for unicast traffic but not the total for all types of traffic, the threshold is considered to have been exceeded and unicast traffic with high priority is selected for forwarding.
The type of traffic (e.g. unicast, broadcast, multicast, unknown etc.) to be forwarded may be determined based on information in the received traffic. For example, layer 2 (link layer), layer 3 (network layer) and layer 4 (transport layer) information may be used, such as source MAC address, destination MAC address, 802.1p information, Virtual Local Area Network (VLAN) ID, Ethernet protocol type, Virtual Private Network (VPN) instance, EXP etc. In practice, the type of traffic may also be pre-determined.
The negotiation process may be performed dynamically or periodically, and/or involve several rounds. By negotiating different thresholds for different traffic types, bandwidth usage of a particular traffic type may be limited depending on dynamic network conditions. For example, if flooding of unknown traffic in the public network 130 is to be limited, a maximum bandwidth threshold of zero may be set for unknown unicast and/or multicast traffic.
Priority Classification
Example implementations of blocks 230 and 240 in
At 342 in
Using the source MAC address as an example, a priority class may be assigned to a source MAC address (or a range of addresses). In this case, when an edge device 120 receives a message, the edge device assigns a priority class to the message based on its source MAC address regardless any priority information carried by the message. Similar approach may be used for other priority classification criteria.
At 344 in
If the bandwidth required by the received traffic exceeds the negotiated bandwidth threshold, high priority traffic is selected for forwarding via the egress interface having the optimal path. At 346 in
Primary and Backup Egress Interfaces
In one example, load sharing and link protection may be implemented by allocating multiple egress interfaces for a virtual link between the first ED and second ED. The allocation of egress interfaces may be based on route calculation and routing information. Each egress interface may be a logical interface representing a different path from the first ED to the second ED. The egress interface serves as a next-hop interface, as determined based on any suitable criteria such as outgoing VLAN, outgoing port and outgoing tunnel number etc.
Referring now to
To further improve the effectiveness of link protection, multiple backup egress interfaces 504 may be provided. Each backup egress interface 504 represents a secondary path from the first ED to the second ED, and different priority designation and bandwidth limitation may be implemented for each secondary path.
Referring also to
To facilitate high speed packet switching, any suitable failure detection mechanism may be used on the virtual link, such as Bidirectional Forwarding Detection (BFD) etc. BFD may be performed on the source end or destination end of a tunnel. Failure detection may be performed periodically or dynamically depending on the application. When failure or congestion is detected, traffic to be forwarded via the primary egress interface 502 will be switched to the temporary egress interface 506.
According to optimal path forwarding principles, the temporary egress interface 506 may also be replaced by a new optimal egress interface if the latter is associated with the optimal path. This may involve the first ED selecting an egress interface associated with an optimal path (e.g. based on routing information received by the first ED etc.) as the new optimal egress interface. The first ED then determines whether the egress interface associated with the optimal path is the temporary egress interface 506.
It should be understood that the primary egress interface 502 and each backup egress interface 504 may be limited by a statically configured available bandwidth threshold. When selecting the temporary egress interface 506, the maximum bandwidth threshold of the temporary egress interface 506 may be greater than that of the primary egress interface 502 to reduce or avoid further congestion. Of course, if the temporary egress interface 506 has insufficient bandwidth for forwarding all the received traffic, the received traffic may be classified according to their priority and sent via other backup egress interface 504.
Although two classes of priority (high and low) are used as examples throughout the present disclosure, it will be appreciated that depending on the applications, there may be additional classes or sub-classes to represent different quality of services.
Example Network Devices 600
The above examples can be implemented by hardware, software or firmware or a combination thereof. Referring to
In one example, the network device 600 is capable of acting as a first ED (e.g. ED1 in
The memory 620 may store any necessary data 622 for facilitating traffic forwarding between geographically dispersed network sites. For example, the data 622 includes information relating to the negotiated bandwidth threshold, priority classification criteria, etc.
The memory 620 may store machine-readable instructions 624 executable by the processor 610 to cause the processor 610 to perform processes described herein with reference to
The instructions 624 may further include appropriate instruction to perform the processes described throughout the present disclosure. The instructions 624 may be combined and divided to perform various processes as appropriate.
In a further example, the network device 600 may include various units to implement the processes described throughout the disclosure. The units may include a negotiation unit, a receiving unit, and a forwarding unit (not shown for simplicity).
Prior to receiving the traffic, the network device 600 (e.g. via processor 610, instruction, unit) may be further to negotiate with the second ED the bandwidth threshold for the first ED to forward traffic to the second ED via the virtual link established between them.
When negotiating the bandwidth threshold, the network device 600 (e.g. via processor 610, instruction, unit) may be to receive, from the second ED, a maximum bandwidth threshold supported by the second ED over the virtual link; determine a bandwidth threshold that is less than or equal to the maximum bandwidth threshold; and send the determined bandwidth threshold, being the negotiated bandwidth threshold, to the second ED. If the negotiated bandwidth threshold is exceeded, traffic that is not selected for forwarding may be discarded.
Further, the network device 600 (e.g. via processor 610, an instruction, a unit) may be to allocate multiple egress interfaces for the virtual link; select one of the egress interfaces associated with an optimal path to the second ED as a primary egress interface and each of the rest as a backup egress interface; and when forwarding the received traffic or selected traffic with high priority to the second ED, forward via the primary egress interface of the virtual link.
In this case, if the negotiated bandwidth threshold is exceeded, the network device 600 (e.g. via processor 610, instruction, unit etc.) may be to forward the remaining traffic that is not selected as traffic with high priority to the second ED via a backup egress interface.
The network device 600 (e.g. via processor 610, instruction, unit etc.) may be to: detect whether there is a failure on the primary egress interface; and upon detecting a failure, select a backup egress interface as a temporary egress interface to operate temporarily in place of the primary egress interface. In this case, a new optimal egress interface of the virtual link having an optimal path to the second ED may be determined. If the temporary egress interface is not the new optimal egress interface, control the temporary egress interface stop operating in place of the primary egress interface, and upgrade the new optimal egress interface as the primary egress interface; but otherwise, upgrade the temporary egress interface as the primary egress interface.
In another example, the network device 600 (e.g. via processor 610, instruction, unit etc.) may be a forwarding device for use as an ED in EVI networking. The device may comprise:
The methods, processes and units described herein may be implemented by hardware (including hardware logic circuitry), software or firmware or a combination thereof. The term ‘processor’ is to be interpreted broadly to include a processing unit, ASIC, logic unit, or programmable gate array etc. The processes, methods and functional units may all be performed by the one or more processors 710; reference in this disclosure or the claims to a ‘processor’ should thus be interpreted to mean ‘one or more processors’.
Although one network interface device 640 is shown in
Further, the processes, methods and functional units described in this disclosure may be implemented in the form of a computer software product. The computer software product is stored in a storage medium and comprises a plurality of instructions for making a processor to implement the methods recited in the examples of the present disclosure.
The figures are only illustrations of an example, wherein the units or procedure shown in the figures are not necessarily essential for implementing the present disclosure. Those skilled in the art will understand that the units in the device in the example can be arranged in the device in the examples as described, or can be alternatively located in one or more devices different from that in the examples. The units in the examples described can be combined into one module or further divided into a plurality of sub-units.
Although the flowcharts described show a specific order of execution, the order of execution may differ from that which is depicted. For example, the order of execution of two or more blocks may be changed relative to the order shown. Also, two or more blocks shown in succession may be executed concurrently or with partial concurrence. All such variations are within the scope of the present disclosure.
Throughout the present disclosure, the word “comprise”, or variations such as “comprises” or “comprising”, will be understood to imply the inclusion of a stated element, integer or step, or group of elements, integers or steps, but not the exclusion of any other element, integer or step, or group of elements, integers or steps.
It will be appreciated by persons skilled in the art that numerous variations and/or modifications may be made to the above-described embodiments, without departing from the broad general scope of the present disclosure. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive.
Number | Date | Country | Kind |
---|---|---|---|
201210400707.2 | Oct 2012 | CN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2013/081149 | 8/9/2013 | WO | 00 |