System and method for fault-tolerance in an inter-carrier network interface

A system and method are disclosed for fault-tolerance in an inter-carrier network interface. A system that incorporates teachings of the present disclosure may include, for example, a PE-ASBR (Provider Edge-Autonomous System Boundary Router) (108, 138) having a communications interface (202) for internetworking with another MPLS-VPN (Multi-protocol Label Switching-Virtual Private Network) cluster (102, 132), and a controller (204). The controller can be programmed to exchange (302) routing information with a PE-ASBR within its own MPLS-VPN cluster and with a corresponding PE-ASBR of another MPLS-VPN cluster, and accept (334) a reroute of packet traffic away from a PE-ASBR of its MPLS-VPN cluster experiencing a fault.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to inter-carrier networks, and more specifically to a system and method for fault-tolerance in an inter-carrier network interface.

BACKGROUND

Inter-carrier alliances are common for Multi-protocol Label Switching-Virtual Private Network (MPLS-VPN) service providers. The alliances offer each service provider an extension of geographical coverage of their MPLS-VPN networks, and an opportunity to increase revenue. Inter-carriers have achieved this extension by way of peering conventional PE-ASBRs (Provider Edge-Autonomous System Boundary Routers), which serve to interconnect the MPLS-VPN networks of the service providers.

This method of inter-carrier connectivity has presented service providers a means for offering services to its customers in an expanded geographical footprint with minimal capital investment. Notwithstanding this improvement, when a PE-ASBR of either carrier experiences a fault that interrupts service between the MPLS-VPN networks, customers of each carrier can experience severe service outages until such time that the affected PE-ASBR is returned to service.

A need therefore arises for a system and method for fault-tolerance in an inter-carrier network interface.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG. 1is block diagram of an inter-carrier network100incorporating teachings of the present disclosure. In this illustration, the inter-carrier network100comprises two conventional MPLS-VPN clusters102and132each managed by different service providers. MPLS-VPN cluster1(i.e., reference102) includes two conventional PE (Provider Edge) routers104and four conventional CE (Customer Edge) routers106. Each CE router106in turn is coupled to a corresponding customer's VPN network (not shown), and to a corresponding one of the PE routers104. Additionally, MPLS-VPN cluster1includes two PE-ASBRs108. Each PE-ASBR108is coupled to the PE routers104, and to a corresponding PE-ASBR of MPLS-VPN cluster2(i.e., reference132). MPLS-VPN cluster1further includes two conventional route reflectors110, which serve to reflect routing information to elements of this cluster on links111.

Like MPLS-VPN cluster1, MPLS-VPN cluster2includes a mirror image of similar elements: PE routers134, CE routers136, route reflectors140and PE-ASBRs138. Routing information is reflected on links141between the elements of MPLS-VPN cluster2. Elements of the MPLS-VPN clusters102and132can intercommunicate according to a Multi-Protocol-Internal Border Gateway Protocol (MP-IBGP). Inter-communications between the PE-ASBRs108,138can conform to an external Border Gateway Protocol (eBGP).

In the illustration ofFIG. 1, there are two customers as noted by the designations CE-A and CE-B. Each customer has sites geographically dispersed between MPLS-VPN clusters1and2. Thus,FIG. 1provides an illustration of an inter-carrier alliance whereby each service provider can serve multiple customers between disparate carrier networks. The packet traffic from these customers (highlighted with unique line designs) is shared by PE-ASBR-1pairs and PE-ASBR-2pairs (referenced as108and132) along communication links150.

FIG. 2is block diagram of a PE-ASBR108or138of clusters1and2according to an embodiment of the present disclosure. The PE-ASBR comprises a communications interface202and a controller204. The communications interface202supports conventional MPLS/VPN bidirectional packet traffic. The controller204utilizes conventional computing technology such as one or more microprocessors, DSPs (Digital Signal Processors) and corresponding storage media (e.g., RAM, ROM, SRAM, DRAM, FLash, and/or disk drives) for controlling operations of the PE-ASBR in accordance with the present disclosure.

FIG. 3depicts a flowchart of a method300operating in the network elements of the MPLS-VPN clusters102and132, respectively, according to teachings of the present disclosure. Method300begins with step301where the PE-ASBR is programmed to configure itself with a corresponding site of origin (the other PE-ASBRs of clusters1and2perform similar configurations). In step302the PE-ASBR is further programmed to exchange routing information with a PE-ASBR within its MPLS-VPN cluster and with a corresponding PE-ASBR of another MPLS-VPN cluster when a change is detected. Referring back toFIG. 1, this exchange can occur, for example, between PE-ASBR-2of cluster1exchanging routing information with PE-ASBR-1of cluster1, and PE-ASBR-2of cluster2.

The routing information exchange can be performed according to the embodiments shown inFIG. 3for step302. In these embodiments, two background processes can be used for receiving and updating routing information tables between the PE-ASBRs108, and138. In the first process, the PE-ASBR receives in step304new routing information without an attribute of origin. The site of origin uniquely identifies a dual-homed CE site (in this case, it is a customer VPN network connected by another provider's MPLS/VPN network with a dual access link.) This attribute has the purpose of avoiding circular updates, as will be discussed shortly. Step304can be the result of, for example, a CE-A router106of cluster1updating its routing tables to reflect changes in the customer VPN network it supports. This update in turn is submitted to the route reflector110, which submits the update to, for example, PE-ASBR-2of cluster1and other routing elements of said cluster. Continuing with this example, in step306, if PE-ASBR2of cluster1is dual-homed to another MPLS-VPN cluster, then the PE-ASBR2of cluster1proceeds to step310where it inserts a site of origin corresponding to the site of origin that the PE-ASBR was configured with in step301.

Other forms of identifying the origin of the new routing information can be applied to the present disclosure without departing from the scope and spirit of the claims described below. Once step310is completed, the PE-ASBR2of cluster1broadcasts in step312the new routing information and its site of origin to other network elements in MPLS-VPN cluster1by way of the route reflector110and the PE-ASBR2of cluster2. If, on the other hand, PE-ASBR2of cluster1is not dual-homed, then PE-ASBR2of cluster1proceeds to step308where it broadcasts the routing information to other network elements such as PE-ASBR-2of cluster2on link150and PE-ASBR-1of cluster1by way of the route reflector110without inserting its site of origin.

At step320PE-ASBR receives new routing information and an associated attribute of origin. The PE-ASBR then determines in step322if the attribute of origin received in step320matches its configured site of origin. If it does, in step324the routing information and site of origin are discarded by the PE-ASBR. Otherwise, the PE-ASBR is programmed to process in step326(i.e., update) its routing tables and in step328broadcast the routing information to other network elements of its cluster and the other cluster.

Steps320through328provide a means to prevent a broadcast loop that can be potentially infinite and thereby burden the network elements of clusters1and2. By inserting a site of origin at the receiving PE-ASBR, the originating MPLS-VPN cluster can avoid receiving the new routing information it broadcasted to the other MPLS-VPN cluster. That is, if a PE-ASBR detects that the site of origin matches its MPLS-VPN cluster then it knows that the new routing information has looped back from the other MPLS-VPN cluster and is therefore redundant. By discarding this information, further broadcasting is prevented.

From step302, the PE routers in step316performs load balancing of packet traffic by distributing customer traffic such that the shortest path between the PE routers and the PE-ASBRs is chosen. For example, assume the CE-A routers of clusters1and2on the right side ofFIG. 1intend to communicate with each other. In this instance, PE router134serving CE-A router136connects to PE-ASBR-2of cluster2which conveys the customer traffic to PE-ASBR-2of cluster1which in turn couples to PE router104serving CE-A router106.

Load balancing operates best when PE-ASBR-1and PE-ASBR-2of both clusters are operational. However, when a PE-ASBR experiences a fault that inhibits packet traffic, the PE-routers associated with the affected PE-ASBR will detect the fault on the basis of the affected PE-ASBR withdrawing its routes from the network so the PE routers can no longer forward traffic to it. Consequently, the PE routers will reroute traffic to the unaffected PE-ASBR of the same MPLS-VPN cluster. If this happens, the unaffected PE-ASBR accepts the rerouted traffic in step332.

Any technique for mitigating the severity of a fault in a PE-ASBR can be used. For example, where the severity is not severe (e.g., the affected PE-ASBR can still process some traffic but with interruptions), the PE routers can reroute partial traffic between the affected and unaffected PE-ASBRs to mitigate the fault until the affected PE-ASBR is repaired. The foregoing steps thus provide a means for fault-tolerance not available in prior art systems that rely on a single peer-to-peer PE-ASBR.

It would be apparent to an artisan with ordinary skill in the art that the above embodiments can be applied to other network configurations not reflected inFIG. 1. It would also be apparent to said artisan that more complex configurations with more than two PE-ASBRs can be used within the scope of the claims described below.

FIG. 4is a diagrammatic representation of a machine in the form of a computer system400within which a set of instructions, when executed, may cause the machine to perform any one or more of the methodologies discussed above. In some embodiments, the machine operates as a standalone device. In some embodiments, the machine may be connected (e.g., using a network) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client user machine in server-client user network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may comprise a server computer, a client user computer, a personal computer (PC), a tablet PC, a laptop computer, a desktop computer, a control system, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. It will be understood that a device of the present disclosure includes broadly any electronic device that provides voice, video or data communication. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

The computer system400may include a processor402(e.g., a central processing unit (CPU), a graphics processing unit (GPU, or both), a main memory404and a static memory406, which communicate with each other via a bus408. The computer system400may further include a video display unit410(e.g., a liquid crystal display (LCD), a flat panel, a solid state display, or a cathode ray tube (CRT)). The computer system400may include an input device412(e.g., a keyboard), a cursor control device414(e.g., a mouse), a disk drive unit416, a signal generation device418(e.g., a speaker or remote control) and a network interface device420.

The disk drive unit416may include a machine-readable medium422on which is stored one or more sets of instructions (e.g., software424) embodying any one or more of the methodologies or functions described herein, including those methods illustrated in herein above. The instructions424may also reside, completely or at least partially, within the main memory404, the static memory406, and/or within the processor402during execution thereof by the computer system400. The main memory404and the processor402also may constitute machine-readable media. Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays and other hardware devices can likewise be constructed to implement the methods described herein. Applications that may include the apparatus and systems of various embodiments broadly include a variety of electronic and computer systems. Some embodiments implement functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the example system is applicable to software, firmware, and hardware implementations.

The present disclosure contemplates a machine readable medium containing instructions424, or that which receives and executes instructions424from a propagated signal so that a device connected to a network environment426can send or receive voice, video or data, and to communicate over the network426using the instructions424. The instructions424may further be transmitted or received over a network426via the network interface device420.

The term “machine-readable medium” shall accordingly be taken to include, but not be limited to: solid-state memories such as a memory card or other package that houses one or more read-only (non-volatile) memories, random access memories, or other re-writable (volatile) memories; magneto-optical or optical medium such as a disk or tape; and carrier wave signals such as a signal embodying computer instructions in a transmission medium; and/or a digital file attachment to e-mail or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the disclosure is considered to include any one or more of a machine-readable medium or a distribution medium, as listed herein and including art-recognized equivalents and successor media, in which the software implementations herein are stored.