Dense virtual router packet switching

A dense virtual router packet switching system includes a memory divided into context areas for a set of virtual private routed networks (VPRNs). Each context area includes a routing table and routing protocol state information for a corresponding VPRN. Each of a set of different routing tasks operates with a separate routing table and separate routing protocol state information to realize a corresponding virtual router. Context selection logic selectively couples the routing tasks to the different context areas of the memory to realize a set of virtual routers for all the VPRNs. The system supports a large number of routes by exploiting the segmentation of the VPRNs. Rather than having a single large routing table and associated routing process, which can load hardware resources in proportion to the square of the number of routes in the routing table, routes are distributed among a number of VPRNs having generally smaller tables and correspondingly less processing demand.

Not Applicable

BACKGROUND OF THE INVENTION

The present invention is related to the field of routed networks, and more particularly to routed networks employing virtual private routed network (VPRN) techniques.

One of the challenges facing designers of data communications networks is to provide improved performance in the face of tremendous growth in network size and complexity. As the number of nodes using distinct network addresses in a network grows, the sizes of routing tables used for routing in the network increase, and more processing power is required to calculate routes and carry out the routing of network traffic. In fact, the processing load associated with routing increases generally as the square of the number of distinct routes. In large networks having a generally flat shared address space, such as the Internet, it may be infeasible for routers to support sufficiently large routing tables, due to constraints in the available processing power.

It has been known to emulate a private, wide-area routed network within another, generally more public, wide-area network. Such an emulated network is referred to as a virtual private routed network (VPRN). Because a VPRN “piggybacks” on a separate and generally shared network, it can be more cost effective than a distinct private wide area network. At the same time, there is significant functional separation between the VPRN and the underlying network, so that VPRN largely behaves like a standalone network, with attendant benefits in security, network management, and other aspects of network operation.

In a common VPRN configuration, the VPRN employs Internet Protocol (IP) technology of the same type used in the Internet, complete with a private instance of a distributed IP routing protocol such as Open Shortest Path First (OSPF) and a private set of network addresses such as IPv4 addresses. A mesh of “tunnels”, or dedicated virtual channels, are established among a set of router nodes in the Internet. The router nodes encapsulate VPRN traffic in a format required by the tunnels, transmit encapsulated traffic to other router nodes using the Internet address space and routing protocols, decapsulate received traffic to recover the original VPRN traffic, and then use the VPRN routing protocols and address space to forward the traffic to other nodes in the VPRN outside the Internet.

BRIEF SUMMARY OF THE INVENTION

In accordance with the present invention, a dense virtual router packet switching system is disclosed that achieves improved performance even in very large networks with a large number of routes.

The disclosed system includes a memory divided into a number of context areas for a set of virtual private routed networks (VPRNs), where each VPRN employs a respective routing protocol and network address space. Multiple instances of the same routing protocol may be in use by different VPRNs, and different VPRNs may also use overlapping network addresses. Each context area of the memory includes a routing table and routing protocol state information for a corresponding VPRN.

The system further includes a set of routing tasks, including at least one routing task for each different type of routing protocol employed in the set of VPRNs. Each routing task operates with a separate routing table and separate routing protocol state information to realize a “virtual router” to carry out routing operations. Context selection logic selectively couples the routing tasks to the different context areas of the memory, thereby realizing a set of virtual routers for all the VPRNs supported by the dense virtual routing system.

For a given total number of routes, the use of VPRNs can improve performance over a non-segmented network by reducing the processing load for each VPRN by an amount that more than compensates for replicating the processing for each VPRN. For example, if one million routes are supported in a non-segmented network, the processing load is on the order of the square of 1 million, or 1012, processing operations per unit time. If the same one million routes are segmented into 1000 VPRNs of 1000 routes apiece, then the processing load is on the order of 1000×(1000)2, or 109, processing operations per unit time.

Other aspects, features, and advantages of the present invention are disclosed in the detailed description that follows.

DETAILED DESCRIPTION OF THE INVENTION

The disclosure of U.S. Provisional Patent Application No. 60/264,093 filed Jan. 25, 2001, is hereby incorporated by reference herein.

FIG. 1shows a network in which a wide-area routed network10is utilized to carry traffic for a number of virtual private routed networks (VPRNs). Each VPRN includes corresponding VPRN subnetworks12. InFIG. 1, VPRNs numbered1through3are shown, with each including corresponding subnetworks12-1,12-2and12-3. The wide-area routed network10includes a number of routers14. Each router14has connections to access links16that connect the router14to local VPRN subnetworks12, and has connections to backbone links18that connect the router14to other routers14in the wide-area routed network10.

An example of the wide-area routed network10is a global network such as the Internet. In general, the wide-area routed network10has a given network address space and a defined set of communications protocols, including routing protocols. For example, the wide-area routed network10may employ the Internet Protocol (IP) with IP version4(IPv4) addressing, and employ routing protocols such as Border Gateway Protocol (BGP), Open Shortest Path First (OSPF), Routing Information Protocol (RIP), etc.

Each VPRN, which is made up of a corresponding set of VPRN subnetworks12, is a routed network having its own network address space and network communications protocols, including a routing protocol. Nodes within a VPRN are generally not assigned addresses in the address space of the wide-area routed network10, nor do the routers14carry traffic on their specific behalf. Rather, as described in more detail below, the routers14utilize the address space and routing protocols of the wide-area routed network10on behalf of the VPRN subnetworks12as entities. The VPRN subnetworks12, in turn, utilize their respective private address spaces and routing protocols for internal routing of data traffic among specific computers or other types of network sources and destinations. Fundamentally, the wide-area routed network10and routers14serve to provide dedicated virtual connections among the VPRN subnetworks12to form the various larger-scale VPRNs.

FIG. 2shows an exemplary organization of a router14.

Several “virtual access routers” (VARs)20are associated with respective customers and connected to the respective customers'access links16. These are described in more detail below. A provider “virtual backbone router” (VBR)22is connected to the backbone links18of the wide area routed network10ofFIG. 1. The VBR22uses IP addresses from the address space of the wide area routed network10, which is separate from the address spaces of the VPRNs. The VBR22provides a tunneling service to VARs20that is used in constructing the VPRNs. A signaling protocol such as the Resource Reservation Protocol (RSVP) is used to set up the tunnels. The VBR22may also provide direct access to the wide area routed network10for customers desiring such service, such as Customer D inFIG. 2. The VBR22participates in the full routing for the wide-area routed network10. In the case of the Internet, the VBR22generally maintains a full BGP routing table.

Each VAR20has its own routing table and runs its own instances of the routing protocols used in the corresponding VPRN. The network addresses (e.g., IP addresses) of a VAR20are taken from the address space of the VPRN to which the VAR belongs. Different VARs20can use overlapping sets of addresses, i.e., the same address may appear in different sets, even though the different instances of the address belong to different nodes in different VPRNs. There is generally no direct connection, in the sense of an IP routing adjacency, between different VARs20within a router14or between a VAR20and the VBR22.

As mentioned, RSVP signaling is used to create tunnels within the wide-area routed network10to connect VARs20residing in different routers14. This signaling is accomplished through the use of virtual tunnel adapters (VTAs)24. These devices resemble IP hosts residing in the wide-area routed network10, and have host IP addresses in the address space of the wide-area routed network10. Each VTA24has a signaling interface via which the VTA24is instructed to establish a tunnel connection between a local VAR20and a remote VAR20residing on another router14(not shown inFIG. 2).

FIG. 3shows a more detailed view of a router14. The VARs20are associated with Virtual Interfaces (VIs)30, which in turn are associated with MPLS label switched paths (LSPs) on the backbone links18of the wide area routed network10. LSPs are established to form the tunnels through the wide area routed network10that link the various VPRN subnetworks12. As shown, a two-level hierarchy of LSPs is used. An “inner” LSP32carries traffic specifically associated with a given VI30. An “outer” LSP34carries a group of inner LSPs32. A different outer LSP34is defined between each pair of routers14in the wide-area routed network10.

The router14also includes various additional functional entities such as a VPN Agent36, Quality of Service (QoS) Manager38, LSP Manager40, MPLS Signaling function42, and Line Control Processor (LCP) Interface44. The VPN Agent36coordinates the configuration of the VPRNs. The VPN Agent36instatiates VARs20and VIs30, interacts with the LSP Manager40to coordinate the use of labels, and passes QoS information to the LSP manager40for dynamically configured labels. The QoS Manager38handles the QoS aspect of the setting up of LSPs, which includes interpreting the QoS parameters of RSVP.

The LSP Manager40coordinates all aspects of LSPs, including the creation and deletion of LSPs and the maintenance of label information. It interfaces with the VPN agent36and the MPLS signaling function42in the creation, monitoring, and deletion of LSPs.

The MPLS signaling function42implements RSVP signaling for MPLS. At an ingress node for an LSP, the MPLS signaling function42signals downstream to obtain a label. At an egress node, the MPLS signaling function42passes labels upstream. At a transit node, the MPLS signaling function42interfaces with upstream and downstream routers to distribute labels.

The MPLS signaling function42also interfaces with routing code to obtain next hop information, and passes label information to the LSP Manager40.

The LCP interface44passes forwarding information from the software-implemented functions ofFIG. 3, such as the VARs20and VIs30, to hardware forwarding engines residing on line cards (not shown) within the router14. The forwarding information falls into four categories: next hop routing information, MPLS label information, packet classification information, and QoS information.

FIG. 4shows a high-level software and hardware organization for the routers14. A number of physical interfaces (PIs)50connect to the access links16and backbone links18ofFIGS. 1–3. Examples of such interfaces include Ethernet interfaces, SONET interfaces, etc. A layer-2 protocol such as ATM may also be used. Each PI50is also connected to a virtual interface (VI) subsystem52, which includes all of the VIs in the router14, such as the VIs30ofFIG. 3. The VI subsystem52has a number of connections to a virtual router (VR) subsystem54, which includes all the virtual routers such as the VARs20and VBR22ofFIG. 3. The PIs50, VI subsystem52, and VR subsystem54are coupled to a collection of other functional elements labeled inFIG. 4as a management subsystem56. The management subsystem56includes the VPN agent36, QoS Manager38, LSP Manager40, MPLS Signaling function42and LCP interface44ofFIG. 3.

The, virtual routers (VRs) within the VR subsystem54generally consist of processes and associated data that behave as a number of separate, distinct routers. Each VR is associated with a different VPRN. A given router14may include a few or many such VRs in accordance with the number of VPRNs having traffic flowing through the router14. Subject to hardware constraints of a given platform, such as processing power and memory capacity, a router14may be configured with as many as hundreds or potentially thousands of such VRs.

The VI subsystem52provides a special function within the router14. A conventional router generally includes a routing subsystem tied directly to physical interfaces, without an intermediate subsystem such as the VI subsystem52shown inFIG. 4. Accordingly, changes to the underlying physical network result in the need to change routing tables and other data structures in the routing subsystem. Examples of such changes to the physical network include manual reconfigurations and automatic protection switching. When the routing subsystem has a very large routing data structure, as is the case for the VR subsystem54, it is difficult and inefficient to maintain physical-layer information within it. The arrangement ofFIG. 4addresses these problems by “virtualizing” the interfaces from the perspective of the virtual routers in the VR subsystem54. Each virtual router employs static, generic interface identifiers, and the VI subsystem52handles the translation between these interface identifiers and details of underlying physical interfaces, which in general are subject to dynamic change.

FIG. 5shows the VR subsystem54. A collection of routing processes or tasks such as OSPF tasks60-O, BGP tasks60-B, and RIP tasks60-R are coupled to a memory62via context selection logic64. The memory62is divided into a number of context areas, shown as CTXT1, CTXT2, . . . CTXT M, for M distinct VRs. Each context area contains a routing table and other operating state information for a different VR. The tasks60are independent processes that are time-shared among the various VRs. The time-sharing is accomplished in part via the context selection logic64. As events occur that require action for a given VR (most such events being associated with the sending and receiving of routing protocol messages or packets), the context selection logic64couples the appropriate task60to the context area CTXT for that VR. The task60then executes using the data from that context area CTXT. This processing continues to completion before a subsequent event is permitted to activate another VR, at which time the same or a different task60becomes coupled to a context area CTXT for the other VR.

As an example, let it be assumed that a VR identified as VR #134is part of a VPRN in which the OSPF routing protocol is used. Context area CTXT134of the memory62contains the routing table and other operating state for this VR. Upon receipt of a routing protocol packet on a VI associated with VR #134, an OSPF task60-O is activated, and the context selection logic64connects the OSPF task60-O to context area CTXT134. The OSPF task60-O performs operations in accordance with the received packet, which may include updating the routing table and initiating the transmission of one or more routing protocol packets to other routers in the VPRN. Once the processing associated with the received routing protocol packet is complete, the context selection logic64is free to break the connection between the OSPF task60and context area CTXT134in favor of a new connection, which will generally involve a different context area CTXT of the memory62and may involve a different task60as well.

In the illustrated embodiment, the context selection logic64employs an inner-LSP label appearing in encapsulated protocol packets to identify which context area62to select for processing the packet. A mapping table (not shown) within the context selection logic64maps the label to a base address of the associated context area62. The inner-LSP label appearing in the encapsulated protocol packets is likewise mapped to the generic interface identifiers used in the routing table that resides in the selected context area62.

The number of tasks60can vary in accordance with the routing protocols being used by the active VPRNs and the processing resources available in the router14. There must be at least one active task60for each different routing protocol used by any of the VPRNs supported by the router14. Thus, if all of the active VPRNs are using either OSPF or BGP routing, for example, then the minimum set of tasks60is one OSPF task60-O and one BGP task60-B. In general, one task60can support a number of VPRNs of the same type (i.e., using the same routing protocol), depending on the processing resources allocated to the task60and the demand from the VPRNs. If there are a large number of active VPRNs using a given protocol, it may be desirable that there be multiple tasks60of the same type. These tasks may time-share the same physical processor(s), or may be distributed in a parallel fashion among different processors if such hardware processing resources are available in the router14.

Similarly, the memory62may be a single memory containing all the context areas CTXT for all VRs of the router14, or it may be a system having multiple independent memories, each containing some subset of the context areas CTXT. The context selection logic64is generally designed to exploit parallelism in order to maximize performance. If the hardware platform is capable of running multiple tasks60simultaneously and accessing multiple context areas CTXT of the memory62simultaneously, then preferably the context selection logic64looks for opportunities to activate two or more VRs simultaneously.

The connections66shown inFIG. 5represent logical connections between each VR and the VI subsystem52ofFIG. 4. In general, there are multiple such logical connections between each VR and the VI subsystem52, with each logical connection corresponding to a different interface identifier. Some VRs may have as few as two associated VIs, whereas other VRs may have many.

It will be apparent to those skilled in the art that modifications to and variations of the above-described techniques are possible without departing from the inventive concepts disclosed herein. Accordingly, the invention should be viewed as limited solely by the scope and spirit of the appended claims.