SPRING Working Group                                            K. Salih
Internet-Draft                                                  S. Hegde
Intended status: Standards Track                               M. Rajesh
Expires: January 11, 2022                                      R. Bonica
                                                        Juniper Networks
                                                           July 10, 2021


                     SRv6 inter-domain mapping SIDs
              draft-salih-spring-srv6-inter-domain-sids-00

Abstract

   This document describes three new SRv6 end point behaviors, named
   END.REPLACE, END.REPLACEB6 and END.DB6.  These SIDs are used in
   distributed inter-domain solutions for connecting SRv6 domains.  This
   behavior is normally executed on border routers between different
   domains.  These SIDs can also be used to provide multiple intent
   based paths across these domains.

Status of This Memo

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

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on January 11, 2022.

Copyright Notice

   Copyright (c) 2021 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
   (https://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



Salih, et al.           Expires January 11, 2022                [Page 1]


Internet-Draft            SRv6 interdomain SIDs                July 2021


   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.  Overview  . . . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   2
   3.  Usecases  . . . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.1.  usecase 1 . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.2.  usecase 2 . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  SRv6 SID behaviors  . . . . . . . . . . . . . . . . . . . . .   4
     4.1.  END.REPLACE . . . . . . . . . . . . . . . . . . . . . . .   4
     4.2.  END.REPLACEB6 . . . . . . . . . . . . . . . . . . . . . .   5
     4.3.  END.DB6 . . . . . . . . . . . . . . . . . . . . . . . . .   6
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
   7.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .   7
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   7
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .   7
     9.2.  Informative References  . . . . . . . . . . . . . . . . .   8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   8

1.  Overview

   Segment Routing (SR) [RFC8402] allows source nodes to steer packets
   through SR paths.  It can be implemented over IPv6 [RFC8200] or MPLS
   [RFC3031].  When SR is implemented over IPv6, it is called SRv6
   [RFC8986].

   This document describes three new SRv6 endpoint behaviors, named
   END.REPLACE, END.REPLACEB6 and END.DB6.  These SIDs help in building
   paths over different SRv6 domans in a distributed manner.  These
   extensions will aid in end to end SRv6 intent based path stitching as
   well.

2.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.







Salih, et al.           Expires January 11, 2022                [Page 2]


Internet-Draft            SRv6 interdomain SIDs                July 2021


3.  Usecases

   The document [I-D.hegde-spring-mpls-seamless-sr] describes different
   models of topology applicable for the use-cases mentioned in this
   document.

3.1.  usecase 1

   This requirement is mentioned in the document
   [I-D.hegde-spring-mpls-seamless-sr] under the section 4.1.1.

                     ---IBGP------EBGP----IBGP------EBGP-----IBGP---
                    |           |     |           |     |           |

                    +-----------+     +-----------+     +-----------+
                    |           |     |           |     |           |
                    |        ASBR1+--+ASBR2    ASBR3+--+ASBR4       |
                 PE1+     AS1   |  X  |     AS2   |  X  |     AS3   +PE2
                    |        ASBR5+--+ASBR6    ASBR7+--+ASBR8       |
                    |           |     |           |     |           |
                    +-----+-----+     +-----------+     +-----------+
                         PE3

                    |---SRv6---|      |---SRv6---|      |---SRv6---|



               Figure 1: Multiple ASes connected with E-BGP

   The above diagram Figure 1 has three different ASes (AS1, AS2 and
   AS3).  All the three domains are having SRv6.  BGP is used for
   getting option C [RFC4364] style connectivity end to end from PE1 to
   PE2.

3.2.  usecase 2
















Salih, et al.           Expires January 11, 2022                [Page 3]


Internet-Draft            SRv6 interdomain SIDs                July 2021


                  +-----------+   +------------+
                 /             \ /              \
                 |             ABR1             |
                 |              |               |
              PE1+    AS1       +     AS2       +PE2
                 |              |               |
                 |             ABR2             |
                 \              /\             /
                  +------------+  +-----------+



               Figure 2: Single AS with Multiple IGP domains

   The above diagram Figure 2 shows two different SRv6 domains, AS1 and
   AS2.  Services are running between PE1 and PE2 in option B [RFC4364]
   style.  The requirement here is to avoid service route lookup on ABR1
   and ABR2 to provide option B style end to end connectivity.

4.  SRv6 SID behaviors

   Here we will describe the new SRv6 SID behaviors

4.1.  END.REPLACE

   For the use-case mentioned under Section 3.1 END.REPLACE SID is
   applicable

   The End.REPLACE SID cannot be the last segment in SRH or SR Policy.

   Any SID instance of this behavior is associated with a set, J, of one
   or more L3 adjacencies of immediate BGP neighbors

   When Node N receives a packet destined to S and S is a locally
   instantiated End.REPLACE SID, Node N executes the following
   procedure:















Salih, et al.           Expires January 11, 2022                [Page 4]


Internet-Draft            SRv6 interdomain SIDs                July 2021


   S01. When an SRH is processed {
   S02.   If (Segments Left == 0) {
   S03.         Send an ICMP Parameter Problem to the Source Address
                        with Code 0 (Erroneous header field encountered)
                        and Pointer set to the Segments Left field,
                        interrupt packet processing, and discard the packet.
   S04.   }
   S05.   If (IPv6 Hop Limit <= 1) {
   S06.      Send an ICMP Time Exceeded message to the Source Address with Code 0
             (Hop limit exceeded in transit), interrupt packet processing, and discard packet
   S07.   }
   S08.   Decrement IPv6 Hop Limit by 1
   S09.   Update IPv6 DA with new destination address(SID) mapped with END.REPLACE SID.
   S10.   Submit the packet to the IPv6 module for transmission
             to the new destination via a member of J.
   S11. }

4.2.  END.REPLACEB6

   For the use-case mentioned under Section 3.1 END.REPLACEB6 SID is
   applicable

   The End.REPLACEB6 SID cannot be the last segment in a SRH or SR
   Policy.

   Node N is configured with an IPv6 address T (e.g., assigned to its
   loopback).

   When Node N receives a packet destined to S and S is a locally
   instantiated End.REPLACEB6 SID, Node N executes the following
   procedure:




















Salih, et al.           Expires January 11, 2022                [Page 5]


Internet-Draft            SRv6 interdomain SIDs                July 2021


   S01. When an SRH is processed {
   S02.   If (Segments Left == 0) {
   S03.         Send an ICMP Parameter Problem to the Source Address
                        with Code 0 (Erroneous header field encountered)
                        and Pointer set to the Segments Left field,
                        interrupt packet processing, and discard the packet.
   S04.   }
   S05.   If (IPv6 Hop Limit <= 1) {
   S06.      Send an ICMP Time Exceeded message to the Source Address with Code 0
             (Hop limit exceeded in transit), interrupt packet processing, and discard packet
   S07.   }
   S08.   Decrement IPv6 Hop Limit by 1
   S09.   Update IPv6 DA with new destination address(SID) mapped with END.REPLACEB6.
   S10.   Push an IPv6 header with an SRH.
   S11.   Set outer IPv6 SA = T and outer IPv6 DA to the first SID in the segment list
   S12.   Set outer Payload Length, Traffic Class, Hop Limit, and Flow Label fields
   S13.   Set the outer Next Header value
   S14.   Submit the packet to the IPv6 module for transmission to the First SID.
   S15. }

4.3.  END.DB6

   For the use-case mentioned under Section 3.2 END.DB6 SID is
   applicable.

   The End.DB6 SID MUST be the last segment in SRH or SR Policy.

   Node N is configured with an IPv6 address T (e.g., assigned to its
   loopback).

   When Node N receives a packet destined to S and S is a locally
   instantiated End.DB6 SID, Node N executes the following procedure:

   S01. When an SRH is processed {
   S02.   If (Segments Left != 0) {
   S03.     Send an ICMP Parameter Problem to the Source Address,
                        Code 0 (Erroneous header field encountered),
                        Pointer set to the Segments Left field,
                        interrupt packet processing and discard the packet.
   S04.   }
   S05.   Remove the outer IPv6 header with all its extension headers.
   S06.   Push the new IPv6 header with the SRv6 SIDs associated with the
                  END.DB6 sid in an SRH.
   S07.   Set outer IPv6 SA = T and outer IPv6 DA to the first SID in the segment list.
   S08.   Set outer Payload Length, Traffic Class, Hop Limit, and Flow Label fields
   S09.   Set the outer Next Header value
   S10.   Submit the packet to the IPv6 module for transmission to First SID.
   S11. }



Salih, et al.           Expires January 11, 2022                [Page 6]


Internet-Draft            SRv6 interdomain SIDs                July 2021


5.  IANA Considerations

   This document requires no IANA action.

   The authors will request an early allocation from the "SRv6 Endpoint
   Behaviors" sub-registry of the "Segment Routing Parameters" registry.

6.  Security Considerations

   Because SR inter-working requires co-operation between inter-working
   domains, this document introduces no security consideration beyond
   those addressed in [RFC8402], [RFC8754] and [RFC8986].

7.  Contributors

       Swamy SRK
       Juniper Networks
       Email: swamys@juniper.net

       G. Sri Karthik Goud
       Juniper Networks
       Email: gkarthik@juniper.net

8.  Acknowledgements

   Thanks to Ram Santhanakrishnan, Srihari Sangli, Rajendra Prasad
   Bollam and Kiran Kushalad for their valuable comments.

9.  References

9.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4364]  Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
              Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
              2006, <https://www.rfc-editor.org/info/rfc4364>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.







Salih, et al.           Expires January 11, 2022                [Page 7]


Internet-Draft            SRv6 interdomain SIDs                July 2021


   [RFC8200]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", STD 86, RFC 8200,
              DOI 10.17487/RFC8200, July 2017,
              <https://www.rfc-editor.org/info/rfc8200>.

   [RFC8402]  Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
              Decraene, B., Litkowski, S., and R. Shakir, "Segment
              Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
              July 2018, <https://www.rfc-editor.org/info/rfc8402>.

   [RFC8754]  Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J.,
              Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
              (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
              <https://www.rfc-editor.org/info/rfc8754>.

   [RFC8986]  Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer,
              D., Matsushima, S., and Z. Li, "Segment Routing over IPv6
              (SRv6) Network Programming", RFC 8986,
              DOI 10.17487/RFC8986, February 2021,
              <https://www.rfc-editor.org/info/rfc8986>.

9.2.  Informative References

   [I-D.hegde-spring-mpls-seamless-sr]
              Hegde, S., Bowers, C., Xu, X., Gulko, A., Bogdanov, A.,
              Uttaro, J., Jalil, L., Khaddam, M., Alston, A., and L. M.
              Contreras, "Seamless SR Problem Statement", draft-hegde-
              spring-mpls-seamless-sr-05 (work in progress), February
              2021.

   [RFC3031]  Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
              Label Switching Architecture", RFC 3031,
              DOI 10.17487/RFC3031, January 2001,
              <https://www.rfc-editor.org/info/rfc3031>.

Authors' Addresses

   Salih K A
   Juniper Networks
   Embassy Business Park
   Bangalore, KA  560093
   India

   Email: salih@juniper.net







Salih, et al.           Expires January 11, 2022                [Page 8]


Internet-Draft            SRv6 interdomain SIDs                July 2021


   Shraddha Hegde
   Juniper Networks
   Embassy Business Park
   Bangalore, KA  560093
   India

   Email: shraddha@juniper.net


   Rajesh
   Juniper Networks
   Embassy Business Park
   Bangalore, KA  560093
   India

   Email: mrajesh@juniper.net


   Ron Bonica
   Juniper Networks
   Herndon, Virginia  20171
   USA

   Email: rbonica@juniper.net



























Salih, et al.           Expires January 11, 2022                [Page 9]