Modern communication networks are growing in size and complexity. As the number of consumers increases and services evolve in sophistication, the performance of these networks can degrade, in part, from link and pathway congestion. During information transport, link and pathway congestion customarily results in transmitted units of data (e.g., blocks, cells, frames, packets, etc.) becoming unevenly distributed over time, excessively queued, and discarded, thereby degrading the quality of network communications. Network devices, such as routers, play a key role in the rapid and successful transport of such information. One approach to ensuring quality is to deploy routers with more processing power and capacity; unfortunately, this approach can be cost prohibitive. Therefore, the concept of logical routers has been developed to permit the sharing of expensive hardware components. However, these logical routers, which behave independently, lack coordination with respect to the allocation of resources. Another factor contributing to cost is the development of new protocols and standards to accommodate new functionalities.
Therefore, there is a need for an approach that provides for efficient link sharing among logical routers, while attempting to preserve compatibility with current protocols and standards.
Various exemplary embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which:
A preferred apparatus, method, and system for providing link sharing among logical routers are described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the preferred embodiments of the invention. It is apparent, however, that the preferred embodiments may be practiced without these specific details or with an equivalent arrangement. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the preferred embodiments of the invention.
Although various exemplary embodiments are described with respect to a Multiprotocol Label Switching (MPLS) network, it is contemplated that these embodiments have applicability to any communication system capable of supporting bandwidth reservation.
Data transmission over an MPLS system involves the establishment of label-switched paths (LSPs), which are a sequence of labels stemming from every node within the communication path from a source node to a destination node. Resource Reservation Protocol (RSVP) or label distribution protocol (LDP) can be used to distribute the labels. With respect to an Internet Protocol (IP)-based network MPLS can map IP addresses to fixed-length labels for processing by packet-forwarding or packet-switching platforms. MPLS, which is independent of Layer 2 and Layer 3 protocols, can support a variety of protocols. Accordingly, these networks 103a-103n may further utilize network elements employing a host of technologies, including Gigabit Ethernet, frame relay, Asynchronous Transfer Mode (ATM), Fiber Distributed Data Interface (FDDI), synchronous optical network (SONET), etc. The router 101 operates at the physical layer, link layer and network layer of the Open Systems Interconnection (OSI) model to transport data across the network 100. In general, the router 101 can determine the “best” paths or routes by utilizing various routing protocols. Routing tables are maintained by each router for mapping input ports to output ports using information from routing protocols. Exemplary routing protocols include Border Gateway Protocol (BGP), Interior Gateway Routing Protocol (IGRP), Routing Information Protocol (RIP), Open Shortest Path First (OSPF), and Intermediate System to Intermediate System (IS-IS). In addition to intelligently forwarding data, the router 101 can provide various other functions, such as firewalling, encryption, etc. It is noted that the label distribution can also involve piggybacking on the BGP or OSPF routing protocols. The router functions can be performed using a general purpose computer (e.g., as shown in
As seen in
To address this issue, the router 101 provides a mechanism for indicating to each logical router 105a-105n (and therefore to each logical network) the amount of capacity available on a shared port; in this manner, the router 101 can ensure that the sum of all of the logical routers' bandwidth reservations would not exceed available capacity.
It is recognized that interior gateway protocols, such as Open Shortest Path First (OSPF) and Intermediate System to Intermediate System (IS-IS), have been extended to support the distribution of Traffic Engineering information so that appropriate Traffic-Engineered Label Switched Paths (LSPs) can be calculated and signaled across an MPLS network. These extensions are specified in Internet Engineering Task Force (IETF) Request for Comment (RFC) 3630 and RFC 3784, for OSPF and IS-IS, respectively, which are incorporated herein by reference in their entireties. In these RFCs, Sub-TLVs (Type-Length-Values) have been defined to identify the link in question, color or administrative group of the link, the link's Maximum Bandwidth, the link's (Maximum) Reservable Bandwidth, the link's Unreserved Bandwidth and the link's TE-metric or cost.
This information can be distributed throughout the network for all links so that each router in the network is aware of the entire topology of the network. As LSPs are signaled using this information and bandwidth is reserved, the routers in the LSP path update the Unreserved Bandwidth (UnRsvBW) value and send this updated information out to the other routers in the network. Accordingly, any ingress label switch router can determine where to place future LSPs based on lowest metric cost and bandwidth availability.
Conventional implementations of traffic engineering in a multiple logical router environment operate in a “ships-in-the-night” mode. As such, the above process occurs without regard to any other logical routers using the same port. Assuming router 101 is configured to operate in this conventional mode of operation, Logical Router 1 would reserve a certain amount of bandwidth, “X”, on a logical or physical port. In this scenario, the rest of the LR1 network would be aware of the bandwidth change because of the UnRsvBW Sub-TLV field, but no other LRs (e.g., LR2 . . . LRN) on the same physical platform would be notified of the bandwidth reservation (much less the other routers in the non-LR1 network). As a result, the other networks may consider this link as a viable candidate for LSP placement even though it now has an available bandwidth that is less (i.e., MaxBW−X). Hence, a mechanism is needed to alert all the local LRs that are sharing a port (that the capacity has now changed), so that these LRs can update their Traffic Engineering Databases (TED) and router neighbors.
According to one embodiment, the forwarding plane 111 confirms the bandwidth reservation not only to the requesting logical router 105a, but to all logical routers 105b-105n sharing the particular port. This confirmation will indicate whether the requested bandwidth is available (as in step 303). If the bandwidth is unavailable, the request is denied (step 305). This determination of available bandwidth can be executed according to a predetermined rule or policy. For instance, the rule or policy may require that each logical router 105a-105n be able to access some minimal amount of bandwidth at all times.
If bandwidth is available, the requested bandwidth is reserved, per step 307. With this information, each logical router updates, as in step 309, their corresponding traffic engineering databases (e.g., TEDs 107a-107n of
The result of this approach, according to certain embodiments, is that, assuming no oversubscription on all logical ports shared on a single physical port, no packet loss will ever occur resulting from the inadvertent reservation of too much bandwidth on the shared port. In the case where the logical ports are oversubscribed, and therefore reporting to the TED more available bandwidth than the port can carry, packet loss can still result from the reservation of too much bandwidth on the shared port. However, the problem is mitigated to some extent by the sharing of the forwarding plane bandwidth reservation knowledge among the logical routers.
It is assumed that ingress Label Switch Router (LER A) sends a PATH message to LR1 with the information specified in Table 2:
LR1 checks to determine whether 1000 Mbps is available by comparing that rate against its own UnRsvBW value. Since bandwidth is available, LSR-X LR1 (505a) sends the PATH message down the path to LSR-Y LR1 (509a), and transmits a RESV message back to LER A. Unlike conventional approaches, the UnRsvBW values of all logical routers using the common port are decremented by the 1000 Mbps reservation. The resultant TEDs is illustrated in Table 3 as follows:
It is noted that even though LSR-X LR-2 (505b) and LSR-X LR-3 (505c) have no LSPs signaled through them, they too have 900 Mbps of UnRsvBW remaining. As such, all three LSR-X logical routers 505a-505c send Link State Advertisement Updates to their peers about the change in UnRsvBW. Upon receiving the update from LSR-X LR-2 (505b), if LER-B needed to signal a 9500 Mbps LSP, the LER-B would know not to use the port 507 shared by LSR X LRs 1-3 (505a-505c). Subsequently, the LER-B has to find an alternate path in the network.
According to certain embodiments, system 500 can properly insulate one network (e.g., LER A) from changes on another network (LER B). As LSP changes within the LR-1 served network (LER A) occur, control plane updates are initiated within the other networks as well. One approach of limiting the impact of one network on another is to periodically send Link State Advertisement Updates containing aggregated UnRsvBW changes not directly caused by LSP signaling within the LR's network. The periodicity of the LSA Updates could be determined by a configurable timer value and/or a threshold crossing for a configurable magnitude of the aggregated UnRsvBW changes. For example, if LSPs are signaled in LR-1 network, the LSA updates would occur immediately within the LR-1 network; however, LR-2 and LR-3 networks could delay propagating the updates for a period of time to lessen the impact of high levels of LR-1 network changes.
Although the example above scenario does not account for QoS or priority levels, it is contemplated that the processes described can apply equally to the signaling of bandwidths associated with the priorities of LSPs (e.g., 8 priority levels). The UnRsvBW values would be updated in the appropriate priorities and propagated throughout the network (as depicted in
The processes described herein for providing link sharing among logical routers may be implemented via software, hardware (e.g., general processor, Digital Signal Processing (DSP) chip, an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Arrays (FPGAs), etc.), firmware or a combination thereof. Such exemplary hardware for performing the described functions is detailed below.
The computer system 600 may be coupled via the bus 601 to a display 611, such as a cathode ray tube (CRT), liquid crystal display, active matrix display, or plasma display, for displaying information to a computer user. An input device 613, such as a keyboard including alphanumeric and other keys, is coupled to the bus 601 for communicating information and command selections to the processor 603. Another type of user input device is a cursor control 615, such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor 603 and for controlling cursor movement on the display 611.
According to an embodiment of the invention, the processes described herein are performed by the computer system 600, in response to the processor 603 executing an arrangement of instructions contained in main memory 605. Such instructions can be read into main memory 605 from another computer-readable medium, such as the storage device 609. Execution of the arrangement of instructions contained in main memory 605 causes the processor 603 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the instructions contained in main memory 605. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the embodiment of the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The computer system 600 also includes a communication interface 617 coupled to bus 601. The communication interface 617 provides a two-way data communication coupling to a network link 619 connected to a local network 621. For example, the communication interface 617 may be a digital subscriber line (DSL) card or modem, an integrated services digital network (ISDN) card, a cable modem, a telephone modem, or any other communication interface to provide a data communication connection to a corresponding type of communication line. As another example, communication interface 617 may be a local area network (LAN) card (e.g. for Ethernet™ or an Asynchronous Transfer Model (ATM) network) to provide a data communication connection to a compatible LAN. Wireless links can also be implemented. In any such implementation, communication interface 617 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information. Further, the communication interface 617 can include peripheral interface devices, such as a Universal Serial Bus (USB) interface, a PCMCIA (Personal Computer Memory Card International Association) interface, etc. Although a single communication interface 617 is depicted in
The network link 619 typically provides data communication through one or more networks to other data devices. For example, the network link 619 may provide a connection through local network 621 to a host computer 623, which has connectivity to a network 625 (e.g. a wide area network (WAN) or the global packet data communication network now commonly referred to as the “Internet”) or to data equipment operated by a service provider. The local network 621 and the network 625 both use electrical, electromagnetic, or optical signals to convey information and instructions. The signals through the various networks and the signals on the network link 619 and through the communication interface 617, which communicate digital data with the computer system 600, are exemplary forms of carrier waves bearing the information and instructions.
The computer system 600 can send messages and receive data, including program code, through the network(s), the network link 619, and the communication interface 617. In the Internet example, a server (not shown) might transmit requested code belonging to an application program for implementing an embodiment of the invention through the network 625, the local network 621 and the communication interface 617. The processor 603 may execute the transmitted code while being received and/or store the code in the storage device 609, or other non-volatile storage for later execution. In this manner, the computer system 600 may obtain application code in the form of a carrier wave.
The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to the processor 603 for execution. Such a medium may take many forms, including but not limited to non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as the storage device 609. Volatile media include dynamic memory, such as main memory 605. Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise the bus 601. Transmission media can also take the form of acoustic, optical, or electromagnetic waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, CDRW, DVD, any other optical medium, punch cards, paper tape, optical mark sheets, any other physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read.
Various forms of computer-readable media may be involved in providing instructions to a processor for execution. For example, the instructions for carrying out at least part of the embodiments of the invention may initially be borne on a magnetic disk of a remote computer. In such a scenario, the remote computer loads the instructions into main memory and sends the instructions over a telephone line using a modem. A modem of a local computer system receives the data on the telephone line and uses an infrared transmitter to convert the data to an infrared signal and transmit the infrared signal to a portable computing device, such as a personal digital assistant (PDA) or a laptop. An infrared detector on the portable computing device receives the information and instructions borne by the infrared signal and places the data on a bus. The bus conveys the data to main memory, from which a processor retrieves and executes the instructions. The instructions received by main memory can optionally be stored on storage device either before or after execution by processor.
While certain exemplary embodiments and implementations have been described herein, other embodiments and modifications will be apparent from this description. Accordingly, the invention is not limited to such embodiments, but rather to the broader scope of the presented claims and various obvious modifications and equivalent arrangements.