Network Working Group Z. Hu
Internet-Draft Huawei Technologies
Intended status: Standards Track H. Chen
Expires: May 1, 2020 Futurewei
H. Chen
China Telecom
P. Wu
Huawei Technologies
October 29, 2019

SRv6 Path Egress Protection
draft-hu-rtgwg-srv6-egress-protection-03

Abstract

This document describes protocol extensions for protecting the egress node of a Segment Routing for IPv6 (SRv6) path or tunnel.

Requirements Language

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.

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 May 1, 2020.

Copyright Notice

Copyright (c) 2019 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 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

The fast protection of a transit node of a Segment Routing (SR) path or tunnel is described in [I-D.ietf-rtgwg-segment-routing-ti-lfa] and [I-D.hu-spring-segment-routing-proxy-forwarding]. [RFC8400] specifies the fast protection of egress node(s) of an MPLS TE LSP tunnel including P2P TE LSP tunnel and P2MP TE LSP tunnel in details. However, these documents do not discuss the fast protection of the egress node of a Segment Routing for IPv6 (SRv6) path or tunnel.

This document fills that void and presents protocol extensions for the fast protection of the egress node of an SRv6 path or tunnel. Egress node and egress, fast protection and protection as well as SRv6 path and SRv6 tunnel will be used exchangeably below.

2. Terminologies

The following terminologies are used in this document.

SR:
Segment Routing
SRv6:
SR for IPv6
SRH:
Segment Routing Header
SID:
Segment Identifier
LSP:
Label Switched Path
TE:
Traffic Engineering
P2MP:
Point-to-MultiPoint
P2P:
Point-to-Point
CE:
Customer Edge
PE:
Provider Edge
LFA:
Loop-Free Alternate
TI-LFA:
Topology Independent LFA
BFD:
Bidirectional Forwarding Detection
VPN:
Virtual Private Network
L3VPN:
Layer 3 VPN
VRF:
Virtual Routing and Forwarding
FIB:
Forwarding Information Base
PLR:
Point of Local Repair
BGP:
Border Gateway Protocol
IGP:
Interior Gateway Protocol
OSPF:
Open Shortest Path First
IS-IS:
Intermediate System to Intermediate System

3. SR Path Egress Protection

                                    Locator: A3:1::/64
                 *******  *******   VPN SID: A3:1::B100
             [PE1]-----[P1]-----[PE3]            
             / |        |&        | \            PE3 Egress
            /  |        |&        |  \           CEx Customer Edge
       [CE1]   |        |&        |   [CE2]      Px  Non-Provider Edge
            \  |        |&        |  /           *** SR Path
             \ |        |& &&&&&  | /            &&& Backup Path
             [PE2]-----[P2]-----[PE4] 
                                    Locator: A4:1::/64
                                    VPN SID: A4:1::B100
                                 Mirror SID: A4:1::3, protect A3:1::/64

Figure 1: Protecting SR Path Egress PE3

Figure 1 shows an example of protecting egress PE3 of a SR path, which is from ingress PE1 to egress PE3.

When PE3 fails, P1 detects the failure through BFD and forwards the packet to PE4 via the backup path. When PE4 receives the packet, it sends the packet to the same CE2.

In Figure 1, CE2 is dual home to PE3 and PE4. PE3 has a locator A3:1::/64 and a VPN SID A3:1::B100. PE4 has a locator A4:1::/64 and a VPN SID A4:1::B100. A mirror SID A4:1::3 is configured on PE4 for protecting PE3 with locator A3:1::/64.

After the mirror SID is configured on a local PE (e.g., PE4), when the local PE (e.g., BGP on the local PE) receives a prefix whose VPN SID belongs to a remote PE (e.g., PE3) with the locator that is protected by the local PE through mirror SID, the local PE (e.g., PE4) creates a mapping from the remote PE's (e.g., PE3's) VPN SID and the mirror SID to the local PE's (e.g., PE4's) VPN SID. The remote PE is protected by the local PE.

For example, local PE4 has Prefix 1.1.1.1 with VPN SID:A4:1::B100, when PE4 receives prefix 1.1.1.1 with remote PE3's VPN SID A3:1::B100, it creates a mapping from remote PE3's VPN SID and the mirror SID (i.e., "A3:1::B100, A4:1::3") to local PE4's VPN SID (i.e., "A4:1::B100").

Node P1's pre-computed TI-LFA backup path for destination PE3 having locator A3:1::/64 is from P1 to PE4 having mirror SID A4:1::3. It is installed as a T.Insert transit behavior. When P1 receives a packet destined to PE3's VPN SID A3:1::B100, in normal operations, it forwards the packet with source A1:1:: and destination PE3's VPN SID A3:1::B100 according to the FIB using the destination PE3's VPN SID A3:1::B100.

When PE3 fails, node P1 protects PE3 through sending the packet to PE4 via the backup path pre-computed. P1 modifies the packet before sending it to PE4. The modified packet has destination PE4 with mirror SID A4:1::3, and SRH with PE3's VPN SID A3:1::B100 and the mirror SID A4:1::3 (i.e., "A3:1::B100, A4:1::3; SL=1").

When PE4 receives the packet, it forwards the packet to CE2 through executing END.M instruction according to the local VPN SID (i.e., A4:1::B100).

4. Extensions to IGP for Egress Protection

This section describes extensions to IS-IS and OSPF for advertising the information about SRv6 path egress protection.

4.1. Extensions to IS-IS

  
  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Type (TBD1)   |    Length     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     Flags     |    SRv6 Endpoint Function     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         SID (16 octets)                       |
 :                                                               :
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                            sub-TLVs                           |
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 2: IS-IS SRv6 End.M SID sub-TLV

A new sub-TLV, called IS-IS SRv6 End.M SID sub-TLV, is defined. It is used in the SRv6 Locator TLV defined in [I-D.ietf-lsr-isis-srv6-extensions] to advertise SRv6 Segment Identifiers (SIDs) with END.M function for SRv6 path egress protection. The SRv6 End.M SIDs inherit the topology/algorithm from the parent locator. The format of the sub-TLV is illustrated below.

Type:
TBD1 (suggested value 8) is to be assigned by IANA.
Length:
variable.
Flags:
1 octet. No flags are currently defined.
SRv6 Endpoint Function:
2 octets. Add a new endpoint function 40 for End.M SID.
SID:
16 octets. This field contains the SRv6 End.M SID to be advertised.

Two sub-TLVs are defined. One is the protected locators sub-TLV, and the other is the protected SIDs sub-TLV.

  
  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Type (TBD2)  |    Length     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Locator-Size  | Locator (variable)            ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Locator-Size  | Locator (variable)            ~   
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 3: IS-IS Protected Locators sub-TLV

A protected locators sub-TLV is used to carry the Locators to be protected by the SRv6 mirror SID. It has the following format.

Type:
TBD2 (suggested value 1) is to be assigned by IANA.
Length:
variable.
Locator-Size:
1 octet. Number of bits (1 - 128) in the Locator field.
Locator:
1-16 octets. This field encodes an SRv6 Locator to be protected by the SRv6 mirror SID. The Locator is encoded in the minimal number of octets for the given number of bits.

  
  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Type (TBD3)  |    Length     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         SID (16 octets)                       ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         SID (16 octets)                       ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 4: IS-IS Protected SIDs sub-TLV

A protected SIDs sub-TLV is used to carry the SIDs to be protected by the SRv6 mirror SID. It has the following format.

Type:
TBD3 (suggested value 2) is to be assigned by IANA.
Length:
variable.
SID:
16 octets. This field encodes an SRv6 SID to be advertised.

4.2. Extensions to OSPF

  
  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Type (TBD4)           |             Length            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     Flags     |    SRv6 Endpoint Function     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         SID (16 octets)                       |
 :                                                               :
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                            sub-TLVs                           |
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 5: OSPF SRv6 End.M SID sub-TLV

Similarly, a new sub-TLV, called OSPF SRv6 End.M SID sub-TLV, is defined. It is used to advertise SRv6 Segment Identifiers (SIDs) with END.M function for SRv6 path egress protection. Its format is illustrated below.

Type:
TBD4 (suggested value 8) is to be assigned by IANA.
Length:
variable.
Flags:
1 octet. No flags are currently defined.
SRv6 Endpoint Function:
2 octets. Add a new endpoint function 40 for End.M SID.
SID:
16 octets. This field contains the SRv6 End.M SID to be advertised.

Two sub-TLVs are defined. One is the protected locators sub-TLV, and the other is the protected SIDs sub-TLV.

  
  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Type (TBD5)           |             Length            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Locator-Size  |  Locator (variable)           ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Locator-Size  |  Locator (variable)           ~   
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 6: OSPF Protected Locators sub-TLV

A protected locators sub-TLV is used to carry the Locators to be protected by the SRv6 mirror SID. It has the following format.

Type:
TBD5 (suggested value 1) is to be assigned by IANA.
Length:
variable.
Locator-Size:
1 octet. Number of bits (1 - 128) in the Locator field.
Locator:
1-16 octets. This field encodes an SRv6 Locator to be protected by the SRv6 mirror SID. The Locator is encoded in the minimal number of octets for the given number of bits.

  
  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Type (TBD6)           |             Length            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         SID (16 octets)                       ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         SID (16 octets)                       ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 7: OSPF Protected SIDs sub-TLV

A protected SIDs sub-TLV is used to carry the SIDs to be protected by the SRv6 mirror SID. It has the following format.

Type:
TBD6 (suggested value 2) is to be assigned by IANA.
Length:
variable.
SID:
16 octets. This field encodes an SRv6 SID to be advertised.

5. Behavior for SRv6 Mirror SID

  
  End.M: Mirror protection
  When N receives a packet destined to S and S is a local End.M SID, 
  N does: 
  IF NH=SRH and SL = 1 ;; Ref1
     SL-- 
     Map to a local VPN SID based on Mirror SID and SRH[SL] ;; Ref1
     forward according to the local VPN SID ;; Ref2
  ELSE
   drop the packet

Figure 8: SRv6 Mirror SID Procedure

The "Endpoint with mirror protection to a VPN SID" function (End.M for short) is a variant of the End function. The End.M is used for SRv6 VPN egress protection. It is described below.

Ref1:
An End.M SID must always be the penultimate SID.
Ref2:
The rest forwarding behavior is the same as the corresponding VPN sid.

6. Security Considerations

The extensions to OSPF and IS-IS described in this document should not cause extra security issues.

7. IANA Considerations

7.1. IS-IS

  +==============+========================+===============+
  | Sub-TLV Type | Sub-TLV Name           | Reference     |
  +==============+========================+===============+
  |     8        | SRv6 End.M SID Sub-TLV | This document |
  +--------------+------------------------+---------------+ 
  

Under "Sub-TLVs for TLVs 27, 135, 235, 236 and 237 registry" [I-D.ietf-lsr-isis-srv6-extensions], IANA is requested to add the following new Sub-TLV:

 
  Value    Sub-Sub-TLV Name                 Definition
  -----   -----------------------          -------------
  0       Reserved
  1       Protected Locators Sub-Sub-TLV   This Document
  2       Protected SIDs Sub-Sub-TLV
  3-255   Unassigned
 

IANA is requested to create and maintain a new registry for sub-sub-TLVs of the SRv6 End.M SID Sub-TLV. The suggested registry name is [RFC5226].

o
Sub-Sub-TLVs for SRv6 End.M SID Sub-TLV

Initial values for the registry are given below. The future assignments are to be made through IETF Review

7.2. OSPFv3

  +==============+========================+===============+
  | Sub-TLV Type | Sub-TLV Name           | Reference     |
  +==============+========================+===============+
  |     8        | SRv6 End.M SID Sub-TLV | This document |
  +--------------+------------------------+---------------+ 
  

Under registry "OSPFv3 Locator LSA Sub-TLVs" [I-D.li-ospf-ospfv3-srv6-extensions], IANA is requested to assign the following new Sub-TLV:

 
  Value     Sub-Sub-TLV Name                 Definition
  -----    -----------------------          -------------
  0        Reserved
  1        Protected Locators Sub-Sub-TLV   This Document
  2        Protected SIDs Sub-Sub-TLV
  3-65535  Unassigned
 

IANA is requested to create and maintain a new registry for sub-sub-TLVs of the SRv6 End.M SID Sub-TLV. The suggested registry name is [RFC5226].

o
Sub-Sub-TLVs for SRv6 End.M SID Sub-TLV

Initial values for the registry are given below. The future assignments are to be made through IETF Review

8. Acknowledgements

The authors would like to thank Peter Psenak, Bruno Decraene and Jeff Tantsura for their comments to this work.

9. References

9.1. Normative References

[I-D.hu-spring-segment-routing-proxy-forwarding] Hu, Z., Chen, H., Yao, J., Bowers, C. and Y. Zhu, "SR-TE Path Midpoint Protection", Internet-Draft draft-hu-spring-segment-routing-proxy-forwarding-06, October 2019.
[I-D.ietf-isis-segment-routing-extensions] Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., Gredler, H. and B. Decraene, "IS-IS Extensions for Segment Routing", Internet-Draft draft-ietf-isis-segment-routing-extensions-25, May 2019.
[I-D.ietf-lsr-isis-srv6-extensions] Psenak, P., Filsfils, C., Bashandy, A., Decraene, B. and Z. Hu, "IS-IS Extension to Support Segment Routing over IPv6 Dataplane", Internet-Draft draft-ietf-lsr-isis-srv6-extensions-03, October 2019.
[I-D.ietf-ospf-segment-routing-extensions] Psenak, P., Previdi, S., Filsfils, C., Gredler, H., Shakir, R., Henderickx, W. and J. Tantsura, "OSPF Extensions for Segment Routing", Internet-Draft draft-ietf-ospf-segment-routing-extensions-27, December 2018.
[I-D.li-ospf-ospfv3-srv6-extensions] Li, Z., Hu, Z., Cheng, D., Talaulikar, K. and P. Psenak, "OSPFv3 Extensions for SRv6", Internet-Draft draft-li-ospf-ospfv3-srv6-extensions-05, August 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.
[RFC7356] Ginsberg, L., Previdi, S. and Y. Yang, "IS-IS Flooding Scope Link State PDUs (LSPs)", RFC 7356, DOI 10.17487/RFC7356, September 2014.
[RFC8400] Chen, H., Liu, A., Saad, T., Xu, F. and L. Huang, "Extensions to RSVP-TE for Label Switched Path (LSP) Egress Protection", RFC 8400, DOI 10.17487/RFC8400, June 2018.

9.2. Informative References

[I-D.hegde-spring-node-protection-for-sr-te-paths] Hegde, S., Bowers, C., Litkowski, S., Xu, X. and F. Xu, "Node Protection for SR-TE Paths", Internet-Draft draft-hegde-spring-node-protection-for-sr-te-paths-05, July 2019.
[I-D.ietf-rtgwg-segment-routing-ti-lfa] Litkowski, S., Bashandy, A., Filsfils, C., Decraene, B., Francois, P., daniel.voyer@bell.ca, d., Clad, F. and P. Camarillo, "Topology Independent Fast Reroute using Segment Routing", Internet-Draft draft-ietf-rtgwg-segment-routing-ti-lfa-01, March 2019.
[I-D.ietf-spring-segment-routing-policy] Filsfils, C., Sivabalan, S., Voyer, D., Bogdanov, A. and P. Mattes, "Segment Routing Policy Architecture", Internet-Draft draft-ietf-spring-segment-routing-policy-03, May 2019.
[I-D.sivabalan-pce-binding-label-sid] Sivabalan, S., Filsfils, C., Tantsura, J., Hardwick, J., Previdi, S. and C. Li, "Carrying Binding Label/Segment-ID in PCE-based Networks.", Internet-Draft draft-sivabalan-pce-binding-label-sid-07, July 2019.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", RFC 5226, DOI 10.17487/RFC5226, May 2008.
[RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field", RFC 5462, DOI 10.17487/RFC5462, February 2009.

Authors' Addresses

Zhibo Hu Huawei Technologies Huawei Bld., No.156 Beiqing Rd. Beijing, 100095 China EMail: huzhibo@huawei.com
Huaimo Chen Futurewei Boston, MA, USA EMail: Huaimo.chen@futurewei.com
Huanan Chen China Telecom 109, West Zhongshan Road, Tianhe District Guangzhou, 510000 China EMail: chenhn8.gd@chinatelecom.cn
Peng Wu Huawei Technologies Huawei Bld., No.156 Beiqing Rd. Beijing, 100095 China EMail: baggio.wupeng@huawei.com