Internet DRAFT - draft-bashandy-mpls-ldp-bgp-frr

draft-bashandy-mpls-ldp-bgp-frr



Network Working Group                                       A. Bashandy
Internet Draft                                                  K. Raza
Intended status: Standards Track                          Cisco Systems
Expires: September 2012                                   March 5, 2012

     LDP Extension for FRR Edge Node Protection in BGP-Free LDP Core
                 draft-bashandy-mpls-ldp-bgp-frr-00.txt


Abstract

   Consider a BGP free core scenario with LDP running in the core.
   Suppose the edge BGP speakers PE1 and PE2 know about a prefix P/m
   via the external routers CE1 and CE2.  If the edge LSR PE1 crashes
   or becomes totally disconnected from the core, it is desirable for a
   core LSR "P", that is carrying traffic to the failed edge LSR PE1,
   to immediately restore traffic by re-routing packets destined to the
   prefix P/m from the LSP terminating on PE1 to be forwarded over the
   LSP terminating on PE2, until BGP reconverges. If the packets
   originally flowing to the failed edge LSR PE1 are BGP labeled, then
   the repairing core LSR P must swap the label (corresponding to
   prefix P/m) advertised by the failed edge LSR PE1 with the label
   advertised for the same prefix by the edge LSR PE2 before re-routing
   the packets through an LSP terminating on PE2. To implement BGP edge
   node protection in a BGP-free LDP core, this document proposes an
   extension to LDP. This extension allows an LDP speaker running on a
   Edge LSR Node (e.g. PE1) to inform the LDP speakers running on core
   LSRs about the "Repair" edge LSR (e.g. PE2), as well as Repair LSR's
   label for prefix P/m, if any.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008. The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s)
   controlling the copyright in such materials, this document may not
   be modified outside the IETF Standards Process, and derivative
   works of it may not be created outside the IETF Standards Process,
   except to format it for publication as an RFC or to translate it
   into languages other than English.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that




Bashandy              Expires September 5, 2012                [Page 1]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012

   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other
   documents at any time.  It is inappropriate to use Internet-Drafts
   as reference material or to cite them other than as "work in
   progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on September 5, 2012.

Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with
   respect to this document. Code Components extracted from this
   document must include Simplified BSD License text as described in
   Section 4.e of the Trust Legal Provisions and are provided without
   warranty as described in the Simplified BSD License.



Table of Contents

   1. Introduction...................................................3
      1.1. Conventions used in this document.........................4
      1.2. Terminology...............................................4
      1.3. Problem definition........................................5
   2. The Proposed LDP Extension.....................................5
      2.1. The LDP "BGP Repair Path status" Code.....................5
      2.2. The LDP "BGP Repair Path Status" TLV......................6
      2.3. LDP Capability Negotiation................................8
      2.4. BGP Repair Status in a LDP Notification message...........8
   3. BGP Repair Path Signaling Procedures...........................9
      3.1. Signaling a BGP Repair Path...............................9
      3.2. Updating a BGP Repair Path...............................10
      3.3. Withdrawing a BGP Repair Path............................10

Bashandy              Expires September 5, 2012                [Page 2]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012

   4. Security Considerations.......................................10
   5. IANA Considerations...........................................11
   6. Conclusions...................................................11
   7. References....................................................11
      7.1. Normative References.....................................11
      7.2. Informative References...................................11
   8. Acknowledgments...............................................12

1. Introduction

   In a BGP free core, where traffic is tunneled between edge
   routers/LSRs, (MP)BGP [2][3] speakers advertise reachability
   information about prefixes to edge routers only. For labeled
   address families, namely AFI/SAFI 1/4, 2/4, 1/128, and 2/128, an
   edge LSR assigns local labels to prefixes and associates the local
   label with each advertised prefix such as L3VPN [9], 6PE [10], and
   Softwire [8]. Suppose that a given edge LSR is chosen as the best
   next-hop for a prefix P/m. An   ingress LSR receives a packet
   destined for the prefix P/m from an external router, and sends the
   packet to that egress LSR through an LSP terminating on the egress
   LSR. If the prefix P/m is a BGP labeled prefix, the ingress LSR
   pushes the BGP label advertised by the egress LSR before sending
   the packet into the LDP LSP terminating on the egress LSR. Upon
   receiving the packet from the core, the egress LSR takes the
   appropriate forwarding decision based on the content of the packet
   and/or the label(s) pushed on the packet.

   In modern networks with redundancy in place, it is not uncommon to
   have a prefix reachable via multiple edge routers. One example is
   the best external path [7]. Another more common and widely deployed
   scenario is L3VPN [9] with multi-homed VPN sites. As an example,
   consider the L3VPN topology depicted in Figure 1.


















Bashandy              Expires September 5, 2012                [Page 3]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012


                                      PE1
                                        \
                                         \
                                          \
                                           \
                                          CE1....... VPN prefix
                                           /       (10.0.0.0/8)
                                          /
                                         /
                                        /
   iPE -----      LDP core        P----PE0
                                        \
                                         \
                                          \
                                           \
                                          CE2....... VPN prefix
                                           /       (20.0.0.0/8)
                                          /
                                         /
                                        /
                                      PE2

             Figure 1 VPN prefix reachable via multiple PEs



   As illustrated in Figure 1, the edge router PE0 is the primary NH
   for both 10.0.0.0/8 and 20.0.0.0/8. At the same time, both
   10.0.0.0/8 and 20.0.0.0/8 are reachable through the other edge
   routers PE1 and PE2, respectively.

   1.1. Conventions used in this document

   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 RFC-2119 [1].

   In this document, these words will appear with that interpretation
   only when in ALL CAPS. Lower case uses of these words are not to be
   interpreted as carrying RFC-2119 significance.

   1.2. Terminology

   o  LSR : Label Switched Router (In the context of this document,
      this refers to a router doing label switching on LDP and/or BGP
      labels)

   o  LSP: Label Switched Path

Bashandy              Expires September 5, 2012                [Page 4]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012

   o  Primary LSP: It is the LSP from the ingress PE to the primary
      egress PE. This is the LDP implementation of the primary tunnel
      defined in [6].

   o  Repair LSP: It is the LSP from the repairing P router to the
      repair egress PE. This is the LDP implementation of the repair
      tunnel defined in [6].

   For the rest of the terms, refer to [6].

   1.3. Problem definition

   The general problem for the example shown in Section 1. is specified
   in [6]. The objective of this document is to specify an LDP [4]
   extension to let the primary egress PE inform repairing core
   router(s) about the repair path in an LDP core for both labeled and
   unlabeled protected prefixes. In other words, this is an LDP-based
   implementation of step 3 in [6]. Other problems, such as determining
   the repair PE, detecting the protected PE (node/connectivity)
   failure, and interactions between LDP and BGP on protected edge PE
   LSR, are beyond the scope of this document.

2. The Proposed LDP Extension

   As specified in [4] section 3.5.1, an LDP speaker can use LDP
   Notification message to send its status or advisory information
   towards a peer. An LDP Notification message consists of a Status TLV
   and optional parameters, whereas "Status" TLV holds the status code
   being signaled. For an egress PE LSR to convey repair path info (for
   a BGP next-hop) to core LSRs, we propose to convey this information
   via a LDP Notification message that carries a new status code in "LDP
   Status" TLV, a new "BGP Repair Path Status" TLV and FEC TLV
   (corresponding to BGP next-hop) as optional parameters. This
   information is to be advertised to a peer only if the peer has
   signaled the support for "Unrecognized Notification" capability a
   specified in [5].

   The proposed extensions are described more in details in following
   sub-sections.

   2.1. The LDP "BGP Repair Path status" Code

   A new LDP status code, namely "BGP Repair Path status" is defined
   that is to be set in the "Status Code" field of the "Status TLV" as
   defined in [4] section 3.4.6.





Bashandy              Expires September 5, 2012                [Page 5]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012

   2.2. The LDP "BGP Repair Path Status" TLV

   A new LDP TLV, namely "BGP Repair Path Status TLV", is defined to be
   used in an LDP Notification message under optional parameters section
   only if the Notification message status code is set to "BGP Repair
   Path status".

   This TLV is an implementation of the repair path defined in [6] and
   is used to convey the information about the Repair edge LSR and its
   associated BGP label, if any, for traffic destination prefix P/m.
   This information is conveyed in the context of the protected primary
   BGP nexthop [6], whose information is carried in the FEC TLV. This
   document allows only one repair path per BGP nexthop.

   The encoding of the "BGP Repair Path Status TLV" is as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|F| Repair Path TLV Type(TBD) |          Length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |A|L|P|     Reserved            |         Address Family        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Repair PE Address (variable size)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Underlying Repair label (optional)                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               Figure 2 Format of BGP Repair Path Status TLV


   The fields are as follows

      U/F:

          Must be set to 1/0 respectively so that this TLV can be
          ignored if not known or not supported.

      Repair Path TLV Type:

          IANA assigned TLV value

      A bit

          Indicates if Repair Path information is to be "added" or
          "removed". MUST be set to 1 to signal addition of the
          information, and set to signal addition of the information,
          and set to

      L Bit:

Bashandy              Expires September 5, 2012                [Page 6]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012

          Indicates whether optional "Underlying Repair Label" [6] field
          is present or not. Must be set to 1 if the TLV also
          contains/encodes "Underlying Repair Label", else must be set
          to 0. This bit MUST be set to 0 when A bit is set to 0.

      P Bit:

         If set, then the label in the "Underlying Repair label" sub
         field MUST be pushed instead of swapped. The "P" bit has the
         same semantics of the "Push" flag in [6]. If the "L" bit is
         zero then the "P" bit MUST be set to zero.

      Reserved:

         MUST be zero on transmit and ignored in receipt

      Address Family

         Identical to the "Address Family" field used in encoding the
         Prefix FEC element value specified in Section 3.4.1 in [4]. May
         be different of the address family of the prefix in the FEC

      Repair PE Address

          The length of this field is dependent on the Address Family
          field. This is either the 4 octet IPv4 address or 16 octet
          IPv6 address of a host address belonging to repair PE. The
          encoding of the Repair PE Address is identical to the encoding
          of the value of the IPv4 or IPv6 Transport Address TLV
          specified in Section 3.5.2 in [4]. This field encodes the
          "Repair Next-hop" defined in [6].

      Underlying Repair Label (optional)

         If included in the TLV, it is a single label defined in
         accordance to Generic Label TLV specified in Section 3.4.2.1 in
         [4]. This field encodes the "Underlying Repair Label" defined
         in [6].

      Length

         The length (in octets) of the TLV following the "Length" field.
         For example, the length MUST be 8 with IPv4 Repair PE address
         or 20 with IPv6 Repair PE address when L bit is set to 0, and
         MUST be 12 and 24 octets otherwise for IPV4 and IPv6 address
         families, respectively.




Bashandy              Expires September 5, 2012                [Page 7]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012




   2.3. LDP Capability Negotiation

   This BGP Repair Path information is to be computed by an edge PE LSR
   under a user configuration control. Once computed, this information
   can be unsolicitedly sent to core P LSRs for edge PE node protection,
   and it is up to the receiving P LSR to store and use this information
   to protect the edge PE LSR.

   Given above procedures, no new LDP capability [RFC5561] negotiation
   is needed between PE and P LSRs to support this feature extensions.
   However, to ensure backward compatibility and deterministic behavior,
   it is required that this information be sent to only those P LSRs
   that support "Unrecognized Notification" capability as specified in
   [5]. This will ensure that these new status and TLV does not cause
   any issue at a receiving P LSR if not known or not supported, and be
   discarded in accordance with "Unrecognized Notification" procedures.

   2.4. BGP Repair Status in a LDP Notification message

   The general format of an LDP Notification message that carries
   information regarding BGP repair path is as follows:

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |0|   Notification (0x0001)     |      Message Length           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Message ID                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Status TLV                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                   BGP Repair Path Status TLV                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        FEC TLV                                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        Figure 3 : LDP Notification message with BGP Repair Status

   The "Status TLV" status code is set to "BGP Repair Path status" to
   indicate that the message is used to convey BGP Repair Path
   information. When this status code is set, a Notification message
   MUST contain both "BGP Repair Status TLV" and a "FEC TLV" in the
   message.

   Since this notification does not refer to any particular message, the
   "Message ID" and "Message Type" fields in the "Status TLV" MUST be
   set to 0.

Bashandy              Expires September 5, 2012                [Page 8]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012

   The "BGP Repair Path Status TLV" is encoded as described earlier.

   The FEC TLV MUST contain a single "Prefix FEC Element" that encodes
   the BGP nexthop information as host prefix. This field encodes the
   "Primary Next-hop" defined in [6].

3. BGP Repair Path Signaling Procedures

   To describe the signaling procedures clearly, let's first assume
   that:

   o  Protected edge LSR is PE1, Repair edge LSR is PE2 and repairing
      core LSR is P1 LSR router, and P2 is also a core LSR that does not
      support BGP Repair Path functionality.

   o  IPv4 Host addresses for PE1 and PE2 are A1 and A2 respectively.

   o  Protected BGP IPv4 prefix is P/m.

   o  BGP label assigned by PE2 for P/m is L2.

   o  P1 and P2 LSR support LDP "Unrecognized Notification" Capability.

   3.1. Signaling a BGP Repair Path

   An operator enables this feature on PE1 using a configuration knob.
   The PE1 computes Repair PE information (PE2 address A2, and PE2 BGP
   label L2) for a given BGP prefix P/m. PE1 encodes the LDP
   Notification to advertise the Repair path information to all those
   core LSR peers (including P1/P2 LSRs) who have advertised
   "Unrecognized Notification" Capability TLV for given LDP session.

   The PE1 LSR encodes the following TLVs:

       o "Status" TLV: status code is set to "BGP Repair Path status"
          and "Message Type" and Message ID fields set to 0.

       o "BGP Repair Path Status" TLV: This TLV is encoded with A-bit
          set to 1, L-bit set to 1, P-bit set to 0, Address Family set
          to 1 (IPv4), "Repair PE Address" field populated with A2, and
          "Repair PE's Label" field set to L2.

       o "FEC" TLV: This TLV is encoded with a single "Prefix FEC
          Element" whose Address Family is set to 1 (IPv4) to indicate
          IPV4 prefix, and prefix P/m encoded accordingly.

   After encoding these TLVs, PE1 LSR bundles them in an LDP
   Notification message, as shown in Figure 3, and sends them to its
   upstream core peer P1 and P2 LSRs.

Bashandy              Expires September 5, 2012                [Page 9]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012

   On receipt of this information, P1 stores this information and uses
   this to fast reroute the BGP destined traffic to PE2 upon PE2
   node/connectivity failure detection. P2, on the other hand, does not
   recognize this new status in the LDP Notification message and hence
   discards it silently.

   In order to be able to protect primary BGP nexthops, it is required
   that the repairing P LSR (P1) must have a LSP terminating on Repair
   PE host prefix (as indicated by "Repair PE Address" field in the
   received "BGP Repair Path Status" TLV).

   3.2. Updating a BGP Repair Path

   The repair path information is identified by

       o the "primary next-hop" encoded in the "FEC TLV" shown in
          Figure 3 and,

       o the "Repair Next-hop" encoded in the "Repair PE Address" shown
          in Figure 2.

   Once a repair path has been signaled to P core LSR, it can be updated
   by simply sending another LDP Notification message using the
   procedures described in the previous section.

   Upon receipt of a new repair path information, the LDP receiver (P1
   LSR) MUST discard any previously learnt Repair information from the
   sending PE1 LSR, and update it with the most recently received.

   3.3. Withdrawing a BGP Repair Path

   Once a repair path has been signaled to P core LSR, it can be
   withdrawn by simply sending another LDP Notification message using
   the procedures described in the previous section with following
   changes:

       o Set A-bit, L-bit, and P-bit in "BGP Repair Path Status" TLV to
          0

       o No "Underlying Repair Label" field included

   Upon receipt of a withdrawal of a repair path, the LDP receiver (P1
   LSR) MUST discard any previously learnt Repair information from the
   sending PE1 LSR for a given BGP prefix.

4. Security Considerations

   No additional security risk is introduced by using the mechanisms
   proposed in this document

Bashandy              Expires September 5, 2012               [Page 10]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012

5. IANA Considerations

   This document introduces the following new protocol elements that
   require code point assignment by IANA:

   o  "BGP Repair Path status" status code from "LDP Status Code Name
      Space" registry (requested code point: 0x00000050)

   o  "BGP Repair Path Status TLV" from "LDP TLV Type Name Space"
      registry (requested code point: 0x050F)

6. Conclusions

   This document proposes a an LDP extension that allows an egress PE
   to advertise a repair path consisting of a repair egress PE and an
   underlying label to repairing core router. Advertising this
   information to core routers allows core routers to provide FRR
   protection against primary egress PE node failure while keeping the
   core BGP-free.

7. References

   7.1. Normative References

   [1]   Bradner, S., "Key words for use in RFCs to Indicate
         Requirement Levels", BCP 14, RFC 2119, March 1997.

   [2]   Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol
         4 (BGP-4), RFC 4271, January 2006

   [3]   Bates, T., Chandra, R., Katz, D., and Rekhter Y.,
         "Multiprotocol Extensions for BGP", RFC 4760, January 2007

   [4]   Anderson, L., Minei, I., and Thomas, B., "LDP
         Specifications", RFC 5036, October 2007

   [5]   R. Asati, P. Mohapatra, E. Chen, B. Thomas, " Signaling LDP
         Label Advertisement Completion", RFC5919, August 2010

   7.2. Informative References

   [6]   Bashandy, A., Pithawala, B., and Patel, K., "Scalable BGP FRR
         Protection against Edge Node Failure", draft-bashandy-bgp-
         edge-node-frr-02.txt, January 2012

   [7]   Marques,P., Fernando, R., Chen, E, Mohapatra, P.,
         "Advertisement of the best external route in BGP", draft-
         ietf-idr-best-external-02.txt, April 2004.


Bashandy              Expires September 5, 2012               [Page 11]

Internet-Draft     LDP Extension for FRR Edge Node           March 2012

   [8]   Wu, J., Cui, Y., Metz, C., and E. Rosen, "Softwire Mesh
         Framework", RFC 5565, June 2009.

   [9]   Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
         Networks (VPNs)", RFC 4364, February 2006.

   [10]  De Clercq, J. , Ooms, D., Prevost, S., Le Faucheur, F.,
         Connecting IPv6 Islands over IPv4 MPLS Using IPv6 Provider
         Edge Routers (6PE)", RFC 4798, February 2007

   [11]  Atlas, A. and A. Zinin, "Basic Specification for IP Fast
         Reroute: Loop-Free Alternates", RFC 5286, September 2008.

   [12]  Shand, S., and Bryant, S., "IP Fast Reroute", RFC5714,
         January 2010

   [13]  Shand, M. and S. Bryant, "A Framework for Loop-Free
         Convergence", RFC 5715, January 2010.

   [14]  Rosen, E., Biswanathan, A., and Callon, A. "Multiprotocol
         Label Switching Architecture", RFC3031, January 2001

8. Acknowledgments

   Special thanks to Keyur Patel and Alton Lo for the valuable help.

   This document was prepared using 2-Word-v2.0.template.dot.

Authors' Addresses

   Ahmed Bashandy
   Cisco Systems
   170 West Tasman Dr, San Jose, CA 95134
   Email: bashandy@cisco.com

   Kamran Raza
   Cisco Systems,
   2000 Innovation Dr.,   Kanata, ON K2K 3E8, Canada
   EMail: skraza@cisco.com











Bashandy              Expires September 5, 2012               [Page 12]