IP Library › Granted Patent US 7,580,417
Granted Patent B2
US 7,580,417 · App. 11/500,732 · Granted Aug 25, 2009

Method and apparatus for load balancing over virtual network links

Assignee: Cisco Technology, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,580,417
App. No.
11/500,732
Granted
Aug 25, 2009
Kind
B2
Abstract

Techniques for load balancing network traffic over virtual point-to-point data links at a data-link layer include determining a particular group of virtual point-to-point data links that reach a particular local area network of one or more network nodes. A particular data-link address for a particular node of the particular local area network is associated with each virtual point-to-point data link of the particular group. When a data packet is received that includes data that indicates the particular data-link address as a destination; one virtual point-to-point data link of the group is determined to balance traffic among the group. The data packet is sent only over the one virtual point-to-point data link. These techniques enable virtual point-to-point data links through two or more intermediate network nodes, such as a pair of provider edge nodes, to be bundled for load balancing purposes.

Claims (64)

1. A method for load balancing network traffic over virtual point-to-point data links, comprising the steps of:

determining a particular plurality of virtual point-to-point data links at a data-link layer, wherein the particular plurality of virtual point-to-point data links traverses a single virtual private network and reaches a particular local area network of one or more network nodes;

associating a particular data-link address for a particular node of the particular local area network with each virtual point-to-point data link of the particular plurality of virtual point-to-point data links;

receiving a plurality of data packets that each includes data that indicates the particular data-link address as a destination;

determining a first virtual point-to-point data link of the particular plurality of virtual point-to-point data links for a first data packet of the plurality of data packets, and a different second virtual point-to-point data link of the particular plurality of virtual point-to-point data links for a different second data packet of the plurality of data packets to balance traffic among the particular plurality of virtual point-to-point data links; and

sending the first data packet only over the first virtual point-to-point data link and the second data packet only over the second virtual point-to-point link.

2. A method as recited in claim 1 , wherein the particular plurality of virtual point-to-point data links are included in a virtual local area network (VLAN).

3. A method as recited in claim 1 , said step of determining the particular plurality of virtual point-to-point data links that reaches the particular local area network further comprising receiving configuration data that indicates the particular plurality of virtual point-to-point data links is a bundle for load-balancing.

4. A method as recited in claim 1 , said step of determining the particular plurality of virtual point-to-point data links that reaches the particular local area network further comprising receiving over a virtual point-to-point data link of the particular plurality of virtual point-to-point data links a control plane data packet that includes data that indicates a unique identifier for the particular plurality of virtual point-to-point data links.

5. A method as recited in claim 1 , said step of associating a particular data-link address for the particular node with each virtual point-to-point data link further comprising the steps of:

receiving a data packet that includes data that indicates a first virtual point-to-point data link and a first data-link address as a source of the data packet;

determining whether the first virtual point-to-point data link is among the particular plurality of virtual point-to-point data links; and

if it is determined that the first virtual point-to-point data link is among the particular plurality of virtual point-to-point data links, then performing the steps of

determining whether the first data-link address is associated with the first virtual point-to-point data link; and

if it is determined that the first data-link address is not associated with the first virtual point-to-point data link, then associating the first data-link address with the first virtual point-to-point data link without removing an association of the first data-link address with any other virtual point-to-point data links of the particular plurality of virtual point-to-point data links.

6. A method as recited in claim 5 , said step of associating a particular data-link address for the particular node with each virtual point-to-point data link further comprising the steps of:

if it is determined that the first virtual point-to-point data link is not among the particular plurality of virtual point-to-point data links, then performing the steps of

determining whether the first data-link address is associated with the first virtual point-to-point data link; and

if it is determined that the first data-link address is not associated with the first virtual point-to-point data link, then performing the steps of:

associating the first data-link address with the first virtual point-to-point data link,

determining whether the first data-link address is associated with an other virtual point-to-point data link; and

if it is determined that the first data-link address is associated with the other virtual point-to-point data link, removing the first data-link address from association with the other virtual point-to-point data link.

7. A method as recited in claim 1 , wherein a virtual point-to-point data link of the particular plurality of virtual point-to-point data links is encapsulated in a loop-free network protocol for transecting a plurality of data-link layer switches.

8. A method as recited in claim 7 , wherein the loop-free network protocol is a resilient packet ring (RPR) protocol.

9. A method as recited in claim 7 , wherein the loop-free network protocol is a multiple protocol label switching (MPLS) protocol.

10. A method as recited in claim 7 , wherein the loop-free network protocol is a media access control (MAC)-in-MAC protocol.

11. A method as recited in claim 7 , wherein the loop-free network protocol is a generic routing encapsulation (GRE) tunneling protocol.

12. An apparatus for load balancing network traffic over virtual point-to-point data links, comprising:

means for determining a particular plurality of virtual point-to-point data links at a data-link layer, wherein the particular plurality of virtual point-to-point data links traverses a single virtual private network and reaches a particular local area network of one or more network nodes;

means for associating a particular data-link address for a particular node of the particular local area network with each virtual point-to-point data link of the particular plurality of virtual point-to-point data links;

means for receiving a plurality of data packets that each includes data that indicates the particular data-link address as a destination;

means for determining a first virtual point-to-point data link of the particular plurality of virtual point-to-point data links for a first data packet of the plurality of data packets, and a different second virtual point-to-point data link of the particular plurality of virtual point-to-point data links for a different second data packet of the plurality of data packets to balance traffic among the particular plurality of virtual point-to-point data links; and

means for sending the first data packet only over the first virtual point-to-point data link and the second data packet only over the second virtual point-to-point link.

13. An apparatus for load balancing network traffic over virtual point-to-point data links, comprising:

a network interface coupled to a network for communicating therewith a data packet;

a computer-readable medium for storing information;

one or more processors; and

one or more sequences of instructions stored on the computer-readable medium, which, when executed by the one or more processors, causes the one or more processors to carry out the steps of:

determining a particular plurality of virtual point-to-point data links at a data-link layer, wherein the particular plurality of virtual point-to-point data links traverses a single virtual private network and reaches a particular local area network of one or more network nodes through the network interface;

associating a particular data-link address for a particular node of the particular local area network with each virtual point-to-point data link of the particular plurality of virtual point-to-point data links;

receiving a plurality of data packets that each includes data that indicates the particular data-link address as a destination;

determining a first virtual point-to-point data link of the particular plurality of virtual point-to-point data links for a first data packet of the plurality of data packets, and a different second virtual point-to-point data link of the particular plurality of virtual point-to-point data links for a different second data packet of the plurality of data packets to balance traffic among the particular plurality of virtual point-to-point data links; and

sending the first data packet only over the first virtual point-to-point data link and the second data packet only over the second virtual point-to-point link.

14. An apparatus as recited in claim 13 , wherein the particular plurality of virtual point-to-point data links are included in a virtual local area network (VLAN).

15. An apparatus as recited in claim 13 , said step of determining the particular plurality of virtual point-to-point data links that reaches the particular local area network further comprising receiving configuration data that indicates the particular plurality of virtual point-to-point data links is a bundle for load-balancing.

16. An apparatus as recited in claim 13 , said step of determining the particular plurality of virtual point-to-point data links that reaches the particular local area network further comprising receiving over a virtual point-to-point data link of the particular plurality of virtual point-to-point data links a control plane data packet that includes data that indicates a unique identifier for the particular plurality of virtual point-to-point data links.

17. An apparatus as recited in claim 13 , said step of associating a particular data-link address for the particular node with each virtual point-to-point data link further comprising the steps of:

receiving a data packet that includes data that indicates a first virtual point-to-point data link and a first data-link address as a source of the data packet;

determining whether the first virtual point-to-point data link is among the particular plurality of virtual point-to-point data links; and

if it is determined that the first virtual point-to-point data link is among the particular plurality of virtual point-to-point data links, then performing the steps of

determining whether the first data-link address is associated with the first virtual point-to-point data link; and

if it is determined that the first data-link address is not associated with the first virtual point-to-point data link, then associating the first data-link address with the first virtual point-to-point data link without removing an association of the first data-link address with any other virtual point-to-point data links of the particular plurality of virtual point-to-point data links.

18. An apparatus as recited in claim 17 , said step of associating a particular data-link address for the particular node with each virtual point-to-point data link further comprising the steps of:

if it is determined that the first virtual point-to-point data link is not among the particular plurality of virtual point-to-point data links, then performing the steps of

determining whether the first data-link address is associated with the first virtual point-to-point data link; and

if it is determined that the first data-link address is not associated with the first virtual point-to-point data link, then performing the steps of:

associating the first data-link address with the first virtual point-to-point data link,

determining whether the first data-link address is associated with an other virtual point-to-point data link; and

if it is determined that the first data-link address is associated with the other virtual point-to-point data link, removing the first data-link address from association with the other virtual point-to-point data link.

19. An apparatus as recited in claim 13 , wherein a virtual point-to-point data link of the particular plurality of virtual point-to-point data links is encapsulated in a loop-free network protocol for transecting a plurality of data-link layer switches.

20. An apparatus as recited in claim 19 , wherein the loop-free network protocol is a resilient packet ring (RPR) protocol.

21. An apparatus as recited in claim 19 , wherein the loop-free network protocol is a multiple protocol label switching (MPLS) protocol.

22. An apparatus as recited in claim 19 , wherein the loop-free network protocol is a media access control (MAC)-in-MAC protocol.

23. An apparatus as recited in claim 19 , wherein the loop-free network protocol is a generic routing encapsulation (GRE) tunneling protocol.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2006
From: ERVIN, JIMMY; TAKEFMAN, MIKE; BHAGWATULA, PRAVEEN; ALEXANDER, JAMES; FAULKNER, STEVEN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 018172/0770 →
Continuity (1)
Related Publication 20080031263A1 · Feb 7, 2008