Abstract:
A distributed LSR sends data from a first edge LSR, across a non-MPLS network, to a second edge LSR, thereby enabling a non-MPLS network to interface transparently with MPLS networks. This enables a VPN to use a public network to communicate from one portion of the network to another, remote portion. The distributed LSR includes an ingress gateway logically positioned between the first edge LSR and the non-MPLS network. This ingress gateway receives label requests from the first edge LSR. These label requests are multicast to several egress gateways. At least one egress gateway sends a message back indicating that it can transmit data to the destination. In response, the ingress gateway designates that egress gateway to be a designated gateway. The egress gateway then establishes a tunnel through the non-MPLS network to the ingress gateway.

Description:
FIELD OF INVENTION 
   This application relates to data communication networks, and in particular, to interfaces between MPLS networks and non-MPLS networks. 
   BACKGROUND 
   A network typically includes a collection of routers interconnected with each other. From a data packet&#39;s point of view, each router is a stepping stone toward its destination. To traverse the network from its source to its destination, a data packet engages in a sequence of “hops” from one router to the next. 
   Each router in a network is a device having an input side with at least one input connected to an adjacent router and an output side with several outputs, each of which is connected to an adjacent router. The router receives a data packet through its input and forwards the data packet to an adjacent router through one of its several outputs. The function of a router is to decide, for each data packet arriving at its input, which of the several adjacent routers it is to relay the data packet to. Typically, a router accomplishes this by examining a header associated with the data packet to determine that data packet&#39;s destination. Using a look-up table, the router then determines which of the adjacent routers on its output side is the appropriate router for the data packet&#39;s next hop toward its destination. 
   In order for a network to operate correctly, it is preferable that each router understand the information contained in the header associated with the data packet. This can create difficulties when, in order to reach its destination, the data packet traverses a network in which the routers are unable to recognize the information contained within the header. This can occur when a router understands only a protocol other than that used to generate the header. 
   An MPLS (“multi-protocol label switching”) network is based on the recognition that information for relaying the data packet on its next hop need be understood only by two adjacent routers. In an MPLS network, each data packet is encapsulated by a label. Each router on an MPLS network operates by receiving the labeled data packet through its input side and determining, on the basis of information in the label, which router to relay the data packet to on its output side. Then, the router switches the label with a new label containing information that can be understood by the next router to receive the data packet. The label is thus of only local significance and is typically switched to a new label before every hop. Because a router on an MPLS network switches the label associated with the data packet, such a router is referred to as a “label-switching router” or “LSR.” 
   It is apparent that the LSRs in an MPLS network need not recognize or understand the header of the data packet. The LSRs need only recognize labels. As a result, a data packet can readily traverse networks in which the routers are incapable of recognizing its header. All that is necessary is that each router in the network be a label switching router. It is for this reason that an MPLS network is a “multi-protocol” network. 
   SUMMARY 
   A distributed LSR according to the invention includes an ingress gateway logically positioned between a first edge LSR and the non-MPLS network. This ingress gateway receives a label request from the first edge LSR and instructs a multicast agent to relay this label request from the ingress gateway, across a non-MPLS network, to a plurality of egress gateways. The multicast agent also relays responses, if any, from the egress gateways, across the non-MPLS network, and back to the ingress gateway. Preferably, the multicast agent maintains at least one table specifying the egress gateways corresponding to a particular virtual private network. 
   Among the egress gateways is a designated gateway, which is typically elected from the egress gateways on the basis of whether a connection can be made between that egress gateway and an address specified in the label request message. The designated gateway is logically positioned between the second edge LSR and the non-MPLS network. 
   The non-MPLS network can be a conventional packet switching network such as an IP network. In this case, the distributed LSR preferably includes an ingress IP router logically positioned between the ingress gateway and the multicast agent and an egress IP router logically positioned between the egress gateway and the IP network. 
   To avoid having the ingress gateway wait interminably for a response from the egress gateways, the ingress gateway preferably includes a timer for detecting the lapse of a predetermined interval following transmission of the label request. 
   Preferably, the distributed LSR also includes confirmation means for sending a confirmation message to the egress gateways. This confirmation message specifies the designated gateway for the communication path. The confirmation message can be sent to all egress gateways responding to the label request message or only to those egress gateways that are not to become the designated gateway. 
   For some VPN topologies, the destination requested in a label request message may be accessible by more than output edge router. Under these circumstances, there exists the possibility that more than one egress gateway will send a label mapping message back to the ingress gateway. To address this possibility, the distributed LSR preferably includes selection means for selecting a designated gateway from a plurality of responses from the plurality of egress gateways. This selection can be made on a first-come-first-served basis, in which case the designated gateway is the first egress gateway to respond, or by determining which of the responding egress gateways is the optimal egress gateway. 
   According to an additional aspect of the invention, the distributed LSR receives a label request from a first edge LSR and multicasts that label request across the non-MPLS network to a plurality of egress gateways. At least one egress gateway then generates a response indicating that there exists a communication path between a second edge LSR and that responding egress gateway. Upon receipt of this response, the ingress gateway then designates the responding egress gateway to be the designated gateway for transmission of data to the second edge LSR. 
   Where the first and second LSRs are associated with VPNs, it is advantageous to maintain a secure link across the non-MPLS network. For this reason, it is preferable that a tunnel be established across the non-MPLS network between the ingress gateway and the designated gateway. 
   Preferably, the ingress gateway waits only a predetermined interval for responses before assuming that communication is not currently available. This ensures that the ingress gateway will not wait an interminable period for a response. 
   Following designation of a designated gateway, the ingress gateway preferably sends a confirmation message to the egress gateways. This confirmation message can be sent to all egress gateways or all egress gateways other than the designated gateway. 
   The invention thus provides a method and system for interfacing a non-MPLS network with an MPLS network in a gradual and controlled manner without the need to replace each router in the non-MPLS network with an LSR. This is accomplished by having the entire non-MPLS network appear to the MPLS network as a single, virtual, LSR. This is a significant advantage because the conversion of a potentially large number of routers in a non-MPLS network requires a period during which the network will be non-operational. 
   The single, virtual LSR of the invention is a distributed LSR because it performs the functions of a conventional LSR through the cooperation of several routers. Like a conventional LSR, the distributed LSR accepts a labeled data packet at its input port, switches the label on the data packet, and sends the data packet, with its new label, out a selected output port. However, unlike a conventional LSR, the distributed LSR of the invention does not rely on a label information base to accomplish label switching. Instead, an ingress gateway in the distributed LSR instructs a multicasting agent to multicast a label request, across a non-MPLS network, to each of a plurality of egress gateways. If a route to a destination from a particular egress gateway is available, that egress gateway then sends a label mapping message back to the ingress gateway. 
   On the basis of the label mapping messages received from the egress routers, the ingress router selects one of the egress routers to complete the LSP (label-switching protocol). The distributed LSR then creates a tunnel within the non-MPLS network for communication between the ingress router and the egress router. 
   Other features and advantages of the invention will be apparent upon examination of the following detailed description and the accompanying figures in which: 

   
     DESCRIPTION OF THE FIGURES 
       FIG. 1  is a schematic diagram of the architecture of a distributed LSR according to the invention; 
       FIG. 2  is the distributed LSR of  FIG. 1  but with two output edge LSRs communicating with the same output MPLS network; and 
       FIG. 3  is a flow chart of the process carried out by the distributed LSR of FIG.  1 . 
   

   DETAILED DESCRIPTION 
   Referring to  FIG. 1 , a distributed label-switching router (LSR)  10  interfaces a non-MPLS network  12  with both an input MPLS network  14  and with a plurality of output MPLS networks  16 . In the illustrated embodiment, the input MPLS network  14  and the plurality of output MPLS networks  16  form two parts of a virtual private network (VPN). In the context of this description, the non-MPLS network is an IP network  12 , however other packet switching networks can be substituted for the IP network  12 . 
   The IP network  12  is a public network that links these two parts of the VPN. To maintain security of the VPN, data preferably travels along a secure path when traversing the IP network  12 . This is achieved by establishing a tunnel across the IP network  12 . The distributed LSR  10  dynamically establishes such tunnels on an as-needed basis. 
   The input MPLS network  14  connects to the distributed LSR  10  through an input edge LSR  18 . Similarly, the output MPLS networks  16  connect to the distributed LSR  10  through a plurality of output edge LSRs  20 . Both the input edge LSR  18  and the output edge LSRs  20  are MPLS egress routers running LDP and operating in downstream on-demand mode with conservative label retention. Both the input edge LSR  18  and the output edge LSRs  20  perform the ingress and egress functions specified by the conventional MPLS architecture. Preferably, the distributed LSR  10  uses MPLS signaling rather than conventional frame relay signaling to minimize the extent of the routing information exchanged between ingress router and the egress router. This results in a simpler and more scalable network. Each edge LSR shown in  FIG. 1  communicates with the distributed LSR  10  through a frame-relay interface. However, the edge LSRs can also communication with the distributed LSR through other WAN interfaces. 
   The distributed LSR  10  interfaces with the input MPLS network  14  through an ingress router  22  connected to the input edge LSR  18 . An ingress gateway  24  logically positioned between the input edge LSR  18  and a first IP router  26  provides the interface between the ingress router  22  and the input edge LSR  18 . Through a multicast agent  28 , the ingress router  22  interfaces with the IP network  12  that provides communication paths between the ingress router  22  and a plurality of egress routers  30 . 
   For purposes of illustration,  FIG. 1  shows a first egress router  32  in communication with a first output network  34  through a first output edge LSR  36 . Similarly,  FIG. 1  shows second and third egress routers  38 ,  40  in communication with second and third output networks  42 ,  44  through second and third output edge LSRs  46 ,  48  respectively. However, the plurality of egress routers  30  can include any number of constituent egress routers. 
   The structures of the egress routers  32 ,  38 ,  40  mirror that of the ingress router  22 . For example, the first egress router  32  includes a first egress gateway  50  logically positioned between a second IP router  52  and the first output edge LSR  36 . The first egress gateway  50  interfaces with the first output edge LSR  36  while the second IP router  52  interfaces with the IP Network  12 . Similarly, the second and third egress routers  38 ,  40  include second and third egress gateways  54 ,  56  logically positioned between the third and fourth IP routers  58 ,  60  and the second and third output edge LSRs  46 ,  48  respectively. The second and third egress routers  38 ,  40  interface with the IP network  12  through the third and fourth IP routers  58 ,  60  respectively and with the second and third output edge LSRs  46 ,  48  through the second and third egress gateways  54 ,  56  respectively. 
   In operation, the input edge LSR  18  and the ingress gateway  24  establish an LDP (label distribution protocol) session between each other using conventional discovery and initialization procedures. This is equivalent to setting up an LDP session between two LSRs in conventional MPLS networking. Little or no routing information is exchanged between the ingress gateway  24  and the input edge LSR  18  during establishment of an LDP session. It is sufficient that the input edge LSR  18  use the ingress gateway  24  as a default router or default next hop for addresses within the VPN. This implies that to resolve an address within the VPN, the input edge LSR  18  sends the ingress gateway  24  a label request message specifying a destination address. 
   In response to a label request message from the input edge LSR  18 , the ingress gateway  24  communicates the label request message to the multicast agent  28 . For each VPN serviced by the distributed LSR  10 , the multicast agent  28  maintains a router table  62  listing all egress routers associated with that VPN. As a result, changes to the topology of a particular VPN are easily implemented by adding and deleting egress routers from the appropriate router table  62 . 
   The multicast agent  28  relays the label request to the all the egress routers in its router table  62 , which in the example of  FIG. 1  includes the first, second, and third egress routers  32 ,  28 ,  40 . The first, second, and third egress routers  32 ,  28 ,  40  then forward the label request to the first, second, and third output edge LSRs  36 ,  46 ,  48 , each of which is has established an LDP session with its corresponding egress gateway  50 ,  54 ,  56 . Each of the output edge LSRs  36 ,  46 ,  48  includes a routing table listing all destinations accessible by that edge LSR. 
   Each of the first, second, and third output edge LSRs  36 ,  46 ,  48  determines, independently of the others, whether the destination address specified in the label request message is within its respective routing table. If one of the output edge LSRs, for example the first output edge LSR  36 , determines that the destination address is in its routing table, it sends a label mapping message back to the first egress gateway  50  to which it is connected. The first egress gateway  50  then forwards the label mapping message across the IP network  12  to the ingress gateway  24 . 
   Upon receipt of a label mapping message, the ingress gateway  24  designates the responding egress gateway (in this case the first egress gateway  50 ) to be the designated gateway for the ensuing label switched path (LSP) between the ingress gateway  24  and the responding output edge LSR  36 . The first egress gateway  50 , which is now the designated gateway, then establishes a tunnel across the IP network  12  between itself and the ingress gateway  24 . This establishes an LSP path between the input edge LSR  18  and the first output edge LSR  36 . The resulting LSP path includes three distinct path segments: (1) a segment from the input edge LSR  18  to the ingress gateway  24 , which is labeled in normal MPLS fashion; (2) a segment from the ingress gateway  24  to the first egress gateway  50 , in which traffic is carried in an IP tunnel; and (3) a segment from the first egress gateway  50  to the first output edge LSR  36 , which is labeled in normal MPLS fashion. 
   In a preferred embodiment, upon receipt of a label mapping message from any one of the egress gateways  50 ,  54 ,  56 , the ingress gateway  24  instructs the multicast agent  28  to relay to all the egress gateways  50 ,  54 ,  56  a confirmation message containing the identity of the designated gateway. Each egress gateway  50 ,  54 ,  56  checks the identity of the designated gateway specified in this confirmation message. If the identity of the designated gateway differs from that of the egress gateway, the egress gateway releases the LSP at its interface with its corresponding output edge LSR. If the output edge LSR connected to the egress gateway has already responded, this is achieved by sending a label abort notification message to the output edge LSR. 
   Alternatively, the ingress gateway  24  can instruct the multicast agent  28  to send a message only to those egress gateways that are not the designated gateway. This message instructs those egress gateways to abort any LSP established in response to the original label request message. 
   Preferably, the ingress gateway  24  includes a timer  64  that begins counting down upon transmission of the label request message. If, at the expiration of a predetermined interval the ingress gateway  24  fails to receive any response from the egress gateways  50 ,  54 ,  56 , the ingress gateway  24  sets the address of the designated gateway to be a null address and sends a confirmation message, as described above. 
   For some VPN topologies, as shown in  FIG. 2 , a particular destination address may be in two different router tables associated with two different output edge routers. Under these circumstances, the ingress gateway  24  may receive two label mapping messages. Although a VPN topology of the type shown in  FIG. 2  is both uncommon and undesirable, it is preferable that the ingress gateway  24  be provided with a mechanism for designating an egress gateway for the LDP session from a plurality of responding egress gateways. This choice can be made randomly, for example on a first-come-first-served basis. Alternatively, the choice can be made on the basis of which egress gateway is perceived to be optimal. For example, if one of the two responding egress gateways is notoriously busy, the designated egress gateway might be the less busy egress gateway. 
   Referring now to  FIG. 3 , the process of establishing a communication path between the input edge LSR and the output edge LSR begins with the receipt  66 , by the ingress gateway, of a label request message from the input edge LSR. The ingress gateway then instructs  68  the multicast agent to multicast the label request message across the IP network to the egress gateways. Concurrently, the input edge LSR sets  70  a timer and waits  72  for a response. 
   Periodically, the ingress gateway checks  74  the timer to see if a waiting interval has elapsed. If the waiting interval has not yet elapsed, the ingress gateway continues  72  to wait for a response. If the waiting interval has elapsed and no response has been received from an egress gateway, the ingress gateway sets  76  the designated gateway to be a null gateway. A confirmation message specifying this designated gateway is then multicast  80  to the egress gateways. 
   Meanwhile, each egress gateway receives  82  the multicast label request message and establishes  84  an LDP session with output edge router to determine whether the destination specified in that message is accessible to it. If it is not, the egress gateway does nothing  86 . If it is, then the egress gateway sends  88  a label mapping message back to the ingress gateway. 
   Upon receipt  90  of the label mapping message, the ingress gateway sets  92  the egress gateway that sent the label mapping message to be the designated gateway. A confirmation message specifying the designated gateway is then multicast  80  to the egress gateways. 
   In those rare cases in which the ingress gateway receives a label mapping message from more than one egress gateway, the ingress gateway selects a designated gateway, either on a first-come-first-served basis or by selecting the optimal egress gateway to be the designated gateway. 
   Each egress gateway then receives  94  the confirmation message and determines  96  whether it is to become the designated gateway. If the egress gateway determines that it is to become the designated gateway, it proceeds to establish  98  a tunnel across the IP network between itself and the ingress gateway. If the egress gateway determines that it is not to become the designated gateway, it proceeds to tear down  100  the LDP session, if any, established between itself and an output edge router. 
   It is apparent from the foregoing that the when ingress and egress gateways cooperate with a multicasting agent in the manner set forth above, encapsulates a non-MPLS network so that, from the point of view of an edge LSR, it appears to be no more than another LSR. This is achieved without the burden and expense of having to convert each router within the non-MPLS network into an LSR. In addition, the distributed LSR dynamically establishes tunnels through the non-MPLS network on an as-needed basis, thereby simplifying the task of adding and removing customers from a VPN. 
   It is to be understood that while the foregoing detailed description has described a selected embodiment of the invention, it is intended to illustrate and not to limit the scope of the invention. The invention, together with other aspects, advantages, and modifications thereof, are limited only by the scope of the appended claims.