RFC 5283

LDP Extension for Inter-Area Label Switched Paths (LSPs)

๐Ÿ“… published July 2008, from ietf

RFC 5283: LDP Extension for Inter-Area Label Switched Paths (LSPs) ๐Ÿฆ‹

okay bestie, first the paperwork ๐Ÿ“‹โœจ This one is RFC 5283, and it came from the Network Working Group. It's on the Standards Track and dropped in July 2008. The authors are B. Decraene and JL. Le Roux from France Telecom, plus I. Minei from Juniper Networks, Inc. ๐Ÿ‘‘ It doesn't list any RFCs it obsoletes or updates, so nothing to untangle there ๐Ÿ’…

Status of This Memo ๐ŸŒธ

okay so this doc specifies an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements ๐Ÿ’ฌ If you want to know where this protocol stands, check the current edition of the "Internet Official Protocol Standards" (STD 1). And distribution of this memo is unlimited ๐ŸŒˆ

Abstract ๐Ÿ’–

so the goal here is to make it easier to set up Label Switched Paths (LSPs) that span multiple IGP areas in one Autonomous System (AS) ๐Ÿงš The way it does that is with a new optional Longest-Match Label Mapping Procedure for the Label Distribution Protocol (LDP).

This procedure lets you use a label when the Forwarding Equivalence Class (FEC) Element matches an entry in the Routing Information Base (RIB). The matching is an IP longest-match search, and it does not mandate an exact match. it's giving flexibility ๐Ÿซถ

Table of Contents ๐ŸŽ€

Table of Contents

   1. Introduction ....................................................2
   2. Conventions Used in This Document ...............................2
   3. Terminology .....................................................2
   4. Problem Statement ...............................................3
   5. Longest-Match Label Mapping Message Procedure ...................4
   6. Application Examples ............................................6
      6.1. Inter-Area LSPs ............................................6
      6.2. Use of Static Routes .......................................7
   7. Caveats for Deployment ..........................................8
      7.1. Deployment Considerations ..................................8
      7.2. Routing Convergence Time Considerations ....................8
   8. Security Considerations .........................................9
   9. References ......................................................9
      9.1. Normative References .......................................9
      9.2. Informative References .....................................9
   10. Acknowledgments ...............................................11

1. Introduction โœจ

okay so link state Interior Gateway Protocols (IGPs) like OSPF [OSPFv2] and IS-IS [IS-IS] let you split an autonomous system into areas or levels. That's how you keep routing scalable inside one routing domain ๐ŸŒธ

BUT here's the tea โ˜• [LDP] actually recommends that the IP address of the FEC Element exactly match an entry in the IP Routing Information Base (RIB). According to [LDP], section 3.5.7.1 ("Label Mapping Messages Procedures"):

An LSR [Label Switching Router] receiving a Label Mapping message from a downstream LSR for a Prefix SHOULD NOT use the label for forwarding unless its routing table contains an entry that exactly matches the FEC Element.

so that means MPLS LSPs between Label Edge Routers (LERs) in different areas/levels just don't get set up ๐Ÿ’€ Unless! The specific (e.g., /32 for IPv4) loopback addresses of all the LERs are redistributed across all areas. Which kinda defeats the whole point of areas ๐Ÿ™ˆ

Section 4 dives into the problem. Then, in section 5, we extend the Label Mapping Procedure from [LDP] so you can set up contiguous inter-area LSPs while still keeping IP prefix aggregation on the ABRs. The trick is allowing longest-match-based Label Mapping. it's giving clever ๐Ÿงš

2. Conventions Used in This Document ๐Ÿ“–

the keyword rulebook, verbatim, because implementers need the exact words ๐Ÿ’…

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

3. Terminology ๐Ÿฆ‹

quick vocab check, bestie:

  • IGP Area: OSPF Area or IS-IS level
  • ABR: OSPF Area Border Router or IS-IS L1/L2 router
  • LSP: Label Switched Path
  • Intra-area LSP: LSP that does not traverse any IGP area boundary.
  • Inter-area LSP: LSP that traverses at least one IGP area boundary.

4. Problem Statement ๐Ÿ˜ญ

so provider-based MPLS (Multiprotocol Label Switching) networks are blowing up โœจ That's because of the success of Layer 3 Virtual Private Networks [L3-VPN] and the new deployments of Layer 2 VPNs ([VPLS-BGP], [VPLS-LDP]). Service providers' MPLS backbones are growing in two ways: density, since more Provider Edge (PE) routers keep getting added to connect new customers, and footprint, since traditional Layer 2 aggregation networks may be replaced by IP/MPLS networks. As a result, a lot of providers need to introduce IGP areas. Inter-area LSPs (that is, LSPs that traverse at least two IGP areas) are required to keep MPLS connectivity between PEs that live in distinct IGP areas.

To set up those MPLS LSPs between PEs in different IGP areas, service providers currently have three options ๐ŸŒˆ

  1. LDP with IGP route leaking
  2. BGP [MPLS-BGP] over LDP with MPLS hierarchy
  3. inter-area RSVP-TE (Resource Reservation Protocol-Traffic Engineering [RSVP-TE])

Let's look at each one, bestie ๐Ÿ”

IGP route leaking means redistributing all the specific PE loopback addresses across area boundaries. Then LDP finds an exact match for its FEC in the RIB and sets up the LSP. Sounds easy, but the benefits of a multi-area domain get seriously diminished ๐Ÿ˜ฉ A lot of addresses have to be redistributed by ABRs, and the number of IP entries in the IGP Link State Database (LSDB), RIB, and Forwarding Information Base (FIB) maintained by every LSR in the domain (whatever the area/level it belongs to) can't be minimized.

Hierarchy with BGP is the second option. Service providers can set up inter-area LSPs using MPLS hierarchy with BGP [MPLS-BGP] as the label distribution protocol between areas. The BGP next hop would typically be the ABRs, and the BGP-created LSPs would be nested within intra-area LSPs that LDP sets up between PEs and ABRs and between ABRs. ๐Ÿงฉ

This one isn't adequate for service providers who don't want to run BGP on their provider routers, because it requires BGP on all ABRs. Also, MPLS hierarchy doesn't allow locally protecting the LSP against ABR failures (IP/LDP Fast Reroute), so you can't ensure sub-50ms recovery upon an ABR failure. The resulting convergence time may not be acceptable for stringent Service Level Agreements (SLAs) that are required for voice or mission-critical applications ๐Ÿšจ And finally, it takes a significant migration effort for service providers that started with LDP and IGP route leaking and wanted to quickly set up their first inter-area LSPs.

Inter-area RSVP-TE [RSVP-TE] is the third option. It's a relevant solution when RSVP-TE is already used for setting up intra-area LSPs and inter-area traffic engineering features are required. On the flip side, it's not a desired solution when LDP is already used for intra-area LSPs and inter-area traffic engineering features are not required ๐Ÿ™…โ€โ™€๏ธ

So to avoid all those drawbacks, there's a need for an LDP-based solution that sets up contiguous inter-area LSPs without leaking specific PE loopback addresses across area boundaries. That way you keep all the benefits of IGP hierarchy ๐Ÿฆ‹

In that context, this document defines a new LDP Label Mapping Procedure to support the setup of contiguous inter-area LSPs while maintaining IP prefix aggregation on the ABRs. It's similar to the one defined in [LDP], but it performs an IP longest match when searching for the FEC element in the RIB. main character energy ๐Ÿ‘‘

5. Longest-Match Label Mapping Message Procedure ๐Ÿ’…

okay this is the main event โœจ This document defines a new Label Mapping Procedure for [LDP]. It applies to IPv4 and IPv6 prefix FEC elements (address families 1 and 2 as per the "Address Family Numbers" registry on the IANA site). It SHOULD be possible to activate/deactivate this procedure by configuration, and it SHOULD be deactivated by default. It MAY be possible to activate it on a per-prefix basis ๐ŸŒธ

With this new Longest-Match Label Mapping Procedure, an LSR that receives a Label Mapping message from a neighbor LSR for a Prefix Address FEC Element FEC1 SHOULD use the label for MPLS forwarding if its routing table contains an entry that matches the FEC Element FEC1 and the advertising LSR is a next hop to reach FEC1. If so, it SHOULD advertise the received FEC Element FEC1 and a label to its LDP peers. it's the whole vibe ๐Ÿซถ

By "matching FEC Element", think IP longest match. Basically, either the LDP FEC element exactly matches an entry in the IP RIB, or the FEC element is a subset of an IP RIB entry. Any other case is NOT a match, so if the FEC element is a superset of a RIB entry, it's not considered a match ๐Ÿ™…โ€โ™€๏ธ (Careful: I'm only using the word "match" here, and it's the same meaning as the original.)

Note that LDP re-advertises the specific FEC element FEC1 to its peers, and NOT the aggregated prefix that was found in the IP RIB during the longest-match search. That's the whole point of keeping the aggregation โœจ

Also, with this Longest-Match Label Mapping Procedure, each LSP established by LDP still strictly follows the shortest path(s) defined by the IGP. no detours, bestie ๐Ÿ›ฃ๏ธ

FECs selected by this Longest-Match Label Mapping Procedure are distributed in an ordered way. In case of LER failure, the removal of reachability to the FEC happens using LDP ordered label distribution mode procedures. As defined in [LDP] in section A.1.5, the FEC gets removed in an ordered way through the propagation of Label Withdraw messages. How application layers use this (un)reachability information for their MPLS LSP (e.g., [MP-BGP]) is outside the scope of this document ๐ŸŒˆ

As per [LDP], LDP already has some interactions with the RIB. In particular, it needs to be aware of these events:

  • prefix up when a new IP prefix appears in the RIB,
  • prefix down when an existing IP prefix disappears,
  • next-hop change when an existing IP prefix has a new next hop following a routing change.

With this Longest-Match Label Mapping Message Procedure, multiple FECs may be concerned by a single RIB prefix change. The LSR MUST check all the FECs that are a subset of this RIB prefix. So, some LDP reactions to a RIB event are changed ๐Ÿ˜ญ

  • When a new prefix appears in the RIB, the LSR MUST check if this prefix is a better match for some existing FECs. For example, the FEC elements 192.0.2.1/32 and 192.0.2.2/32 used the IP RIB entry 192.0.2.0/24, and then a new, more specific IP RIB entry 192.0.2.0/26 appears. This may result in changing the LSR used as next hop, and hence the Next Hop Label Forwarding Entry (NHLFE) for this FEC.
  • When a prefix disappears in the RIB, the LSR MUST check all FEC elements that are using this RIB prefix as best match. For each FEC, if another RIB prefix is found as best match, LDP MUST use it. This may result in changing the LSR used as next hop, and hence the NHLFE for this FEC. Otherwise, the LSR MUST remove the FEC binding and send a Label Withdraw message.
  • When the next hop of a RIB prefix changes, the LSR MUST change the NHLFE of all the FEC elements using this prefix.

Future work may define new management objects for the MPLS LDP MIB modules [LDP-MIB] to activate/deactivate this Longest-Match Label Mapping Message Procedure, possibly on a per-prefix basis. the future is bright ๐Ÿ”ฎ

6. Application Examples ๐Ÿงš

okay the examples are next, and they're where it all clicks ๐Ÿฆ‹ Stay tuned for the next part, bestie ๐Ÿ’œ

6.1. Inter-Area LSPs โœจ

okay so picture an autonomous system with one backbone area and two edge areas ๐ŸŒธ

                    Area "B"

             Level 2 / Backbone area

          +--------------------------+
 Area "A" |                          |  Area "C"
          |                          |
 Level 1  |                          |  Level 1 / area
          |        P1                |
+---------+                          +-------------+
|         |                 P2       |         PE1 | 192.0.2.1/32
|         |                          |             |
|PE4      ABR2                       ABR1       PE2 | 192.0.2.2/32
|         |        P3                |             |
|         |                          |         PE3 | 192.0.2.3/32
+---------+                          +-------------+
          |                          |
          +--------------------------+

          Figure 1: An IGP domain with two areas
              attached to the Backbone Area.

Figure 1: An IGP domain with two areas attached to the Backbone Area. ๐Ÿฆ‹

Quick note: this works the same for IS-IS and OSPF ๐Ÿ’…. Here an ABR means either an OSPF ABR or an IS-IS L1/L2 node.

Every router is MPLS enabled, and MPLS connectivity (basically an LSP) is required between all the PE routers. Non-negotiable bestie ๐Ÿ’œ

In the "egress" area "C", the records are:

IGP RIB                          LDP FEC elements:
  192.0.2.1/32                      192.0.2.1/32
  192.0.2.2/32                      192.0.2.2/32
  192.0.2.3/32                      192.0.2.3/32

The area border router ABR1 advertises into the backbone area:

  • the aggregated IP prefix 192.0.2.0/26 in the IGP
  • all the specific IP FEC elements (/32) in LDP

In the "backbone" area "B", the records are:

IGP RIB                          LDP FEC elements:
  192.0.2.0/26                     192.0.2.1/32
                                   192.0.2.2/32
                                   192.0.2.3/32

The area border router ABR2 advertises into area "A":

  • an aggregated IP prefix 192.0.2.0/24 in the IGP
  • all the individual IP FEC elements (/32) in LDP

And in the "ingress" area "A", the records are:

IGP RIB                          LDP FEC elements:
  192.0.2.0/24                     192.0.2.1/32
                                   192.0.2.2/32
                                   192.0.2.3/32

So the result? One LSP gets set up between the ingress PE4 and every egress PE in area C, and the ABRs still get to keep their IP prefix aggregation ๐ŸŽ€๐Ÿ”ฅ

6.2. Use of Static Routes ๐Ÿงš

Next up, a LER that's dual-connected to two LSRs:

                          +--------LSR1----
                          |         |
                         LER        |
                          |         |
                          +--------LSR2----

Figure 2: LER dual-connected to two LSRs.

In some situations, especially at the edge of the network, it's totally valid to use static IP routes between the LER and the two LSRs ๐Ÿ’– If it's needed, the Bidirectional Forwarding Detection protocol [BFD] can be used to quickly detect loss of connectivity.

Now the LDP specification defined in [LDP] would need the ingress LER to have one IP route per egress LER and per outgoing interface. That's a lot of config bestie ๐Ÿ˜ญ

The Longest-Match Label Mapping Procedure described in this document only needs one IP route per outgoing interface. Way less mess โœจ

7. Caveats for Deployment ๐ŸŒˆ

7.1. Deployment Considerations

LSRs that comply with this document are backward compatible with LSRs that comply with [LDP] ๐Ÿซถ

For end-to-end MPLS LSPs whose FECs are aggregated in the RIB to get established successfully, this specification must be implemented on all LSRs in all areas where IP aggregation is used. If an LSR on the path doesn't support this procedure, then the LSP initiated at the egress LSR stops at that non-compliant LSR. The good news? There are no other adverse effects ๐Ÿ™Œ

This extension can be rolled out incrementally, and it's giving flexibility:

  • It can be deployed on a per-area or per-routing-domain basis, and it doesn't necessarily need an AS-wide deployment. For example, if all specific IP prefixes are leaked in the IGP backbone area and only stub areas use IP aggregation, the LSRs in the backbone area don't need to comply with this document ๐Ÿ“
  • Within each routing area, LSRs can be upgraded independently, at any time, in any order, and without service disruption. During deployment, if those LSPs are already in use, you should only make sure that ABRs keep advertising the specific IP prefixes in the IGP until all LSRs of this area are successfully upgraded. After that, the ABRs can advertise the aggregated prefix only and stop advertising the specific ones ๐Ÿ’…

A service provider that's currently leaking specific LER loopback addresses in the IGP and is thinking about doing IP aggregation on the ABR should be aware that this may lead to suboptimal routing, as discussed in [RFC2966]. Heads up babe ๐Ÿ‘€

7.2. Routing Convergence Time Considerations

IP and MPLS traffic restoration time comes down to two things: the Shortest Path First (SPF) calculation in the control plane, and the Forwarding Information Base (FIB) / Label FIB (LFIB) update time in the forwarding plane. The SPF calculation scales O(N*Log(N)), where N is the number of Nodes. The FIB/LFIB update scales O(P), where P is the number of modified prefixes. Right now, on most router implementations, the FIB/LFIB update is the dominant component [IGP-CONV], so it's the bottleneck that should be addressed first ๐Ÿ”ฅ

The solution in this document reduces the link state database size in the control plane and the number of FIB entries in the forwarding plane. So it solves the scaling problem for pure IP routers sharing the IGP with MPLS routers. However, it does not decrease the number of LFIB entries, so it isn't enough to solve the scaling of MPLS routers ๐Ÿฅบ For that, an additional mechanism is required (for example, introducing some MPLS hierarchy in LDP). That's out of scope for this document, bestie.

Compared to [LDP], for all failures except LER failure (so links, provider routers, and ABRs), the failure notification and the convergence stay unchanged โœจ For LER failure, the IGP now aggregates IP routes on ABRs and no longer advertises specific prefixes. So the control plane, and more specifically the routing convergence behavior of protocols (for example [MP-BGP]) or applications (for example [L3-VPN]), may change when an egress LER node fails. For protocols and applications that need to track egress LER availability, several solutions can be used, for example:

  • Rely on the LDP ordered label distribution control mode, as defined in [LDP], to know the availability of the LSP toward the egress LER. The egress to ingress propagation time of that unreachability information is expected to be comparable to the IGP (but this may be implementation dependent).
  • Advertise LER reachability in the IGP for the purpose of the control plane, in a way that does not create IP FIB entries in the forwarding plane.

8. Security Considerations ๐Ÿ”

โš ๏ธ Serious security moment, bestie. Read this one properly.

The Longest-Match Label Mapping procedure described in this document does not introduce any change as far as the Security Considerations section of [LDP] is concerned. Nothing new to panic about here, but the existing [LDP] security guidance still applies in full ๐Ÿ’œ

9. References

9.1. Normative References

  • [LDP] Andersson, L., Ed., Minei, I., Ed., and B. Thomas, Ed., "LDP Specification", RFC 5036, October 2007.
  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

9.2. Informative References

  • [L3-VPN] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private Networks (VPNs)", RFC 4364, February 2006.
  • [MP-BGP] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, "Multiprotocol Extensions for BGP-4", RFC 4760, January 2007.
  • [MPLS-BGP] Rekhter, Y. and E. Rosen, "Carrying Label Information in BGP-4", RFC 3107, May 2001.
  • [IS-IS] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and dual environments", RFC 1195, December 1990.
  • [VPLS-BGP] Kompella, K., Ed., and Y. Rekhter, Ed., "Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling", RFC 4761, January 2007.
  • [VPLS-LDP] Lasserre, M., Ed., and V. Kompella, Ed., "Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling", RFC 4762, January 2007.
  • [RFC2966] Li, T., Przygienda, T., and H. Smit, "Domain-wide Prefix Distribution with Two-Level IS-IS", RFC 2966, October 2000.
  • [RSVP-TE] Farrel, A., Ed., Ayyangar, A., and JP. Vasseur, "Inter-Domain MPLS and GMPLS Traffic Engineering -- Resource Reservation Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC 5151, February 2008.
  • [LDP-MIB] Cucchiara, J., Sjostrand, H., and J. Luciani, "Definitions of Managed Objects for the Multiprotocol Label Switching (MPLS), Label Distribution Protocol (LDP)", RFC 3815, June 2004.
  • [BFD] Katz, D. and D. Ward, "Bidirectional Forwarding Detection", Work in Progress, March 2008.
  • [IGP-CONV] Francois, P., Filsfils, C., and Evans, J., "Achieving sub-second IGP convergence in large IP networks". ACM SIGCOMM Computer Communications Review, July 2005.
  • [OSPFv2] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.

10. Acknowledgments ๐Ÿซถ

The authors want to give a huge shoutout to Yakov Rekhter, Stefano Previdi, Vach Kompella, Bob Thomas, Clarence Filsfils, Kireeti Kompella, Luca Martini, Sina Mirtorabi, Dave McDysan, Benoit Fondeviole, Gilles Bourdon, and Christian Jacquenet for the useful discussions on this subject, their reviews, and their comments. The real MVPs ๐Ÿ‘‘

Authors' Addresses

Bruno Decraene France Telecom 38 rue du General Leclerc 92794 Issy Moulineaux cedex 9 France

EMail: bruno.decraene@orange-ftgroup.com

Jean-Louis Le Roux France Telecom 2, avenue Pierre-Marzin 22307 Lannion Cedex France

EMail: jeanlouis.leroux@orange-ftgroup.com

Ina Minei Juniper Networks 1194 N. Mathilda Ave. Sunnyvale, CA 94089

EMail: ina@juniper.net

Copyright (C) The IETF Trust (2008).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ๐Ÿ’–

Intellectual Property โœจ

Okay bestie, so the IETF is NOT picking a side on whether any rights might be claimed over the tech in this doc, or whether you could even get a license for them ๐Ÿ™ˆ It also hasn't done its own digging to find any of that stuff. If you want the details on how rights work for RFC documents, check out BCP 78 and BCP 79 ๐Ÿ“š

Copies of IPR disclosures made to the IETF Secretariat ๐Ÿ’Œ and any assurances of licenses that might be available are on the IETF online IPR repository at http://www.ietf.org/ipr. The same goes for the result of any attempt to get a general license or permission for implementers or users to use those proprietary rights ๐ŸŽ€

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology needed to implement this standard. ๐Ÿซถ Just send that info to the IETF at ietf-ipr@ietf.org. ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from