Skip to main content

Best practices for traffic steering to SRv6
draft-geng-srv6ops-traffic-steering-to-srv6-00

Document Type Active Internet-Draft (individual)
Authors Gary Geng , Yisong Liu , Chongfeng Xie , Changwang Lin
Last updated 2024-03-04
RFC stream (None)
Intended RFC status (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-geng-srv6ops-traffic-steering-to-srv6-00
Network Working Group                                         Gary Geng
Internet Draft                                                  Tencent
Intended status: Informational                                   Y. Liu
Expires: September 3, 2024                                 China Mobile
                                                                 C. Xie
                                                          China Telecom
                                                                 C. Lin
                                                   New H3C Technologies
                                                          March 4, 2024

                Best practices for traffic steering to SRv6
              draft-geng-srv6ops-traffic-steering-to-srv6-00

Abstract

   This document primarily describes the traffic steering towards SRv6-
   BE and SRv6-TE respectively, providing an overview of the main
   traffic steering methods for these two approaches. Furthermore, it
   discusses the recommended traffic steering methods for various
   typical scenarios.

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 September 3, 2024.

Copyright Notice

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

lin, et al.           Expire September 3, 2024                [Page 1]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

   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 and Terminology...............................3
   2. Steering to SRv6...............................................3
      2.1. Steering to SRv6 based on destination address.............3
      2.2. Steering to SRv6 based on flow characteristics............5
   3. UseCase........................................................6
      3.1. Traffic steering based on destination address.............7
         3.1.1. BSID-based Traffic Steering..........................7
         3.1.2. Color-based Traffic Steering ........................7
         3.1.3. IGP-Shortcut Traffic Steering .......................7
      3.2. Traffic steering based on flow characteristics............8
         3.2.1. Dscp-based Traffic Steering .........................8
         3.2.2. 802.1p-based Traffic Steering........................8
         3.2.3. Service-class-based Traffic Steering.................9
         3.2.4. Te-class-based Traffic Steering .....................9
         3.2.5. Traffic steering via BGP-FlowSpec ..................10
   4. Security Considerations.......................................11
   5. IANA Considerations...........................................11
   6. References....................................................11
      6.1. Normative References ....................................11
   Authors' Addresses...............................................12

lin, et al.           Expires September 3, 2024               [Page 2]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

1. Introduction

   The general purpose of traffic steering is to optimize the
   allocation and transmission of network resources, ensure a balanced
   distribution of network traffic, improve network performance, reduce
   congestion, and increase available bandwidth to provide users with a
   better network experience.

   This document initially describes the traffic steering towards SRv6-
   BE and SRv6-TE respectively, and outlines the main traffic steering
   methods for these two approaches. Finally, it discusses the
   recommended traffic steering methods for various typical scenarios.

  1.1. Conventions and Terminology

   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.

2. Steering to SRv6

   Steering to SRv6 can be categorized into two types: Steering based
   on destination address and Steering based on flow characteristics.

   The means of traffic steering in SRv6 include using static routing
   for traffic steering, employing PBR (Policy-Based Routing) policies
   for traffic steering, distributing routes through BGP (Border
   Gateway Protocol) for traffic steering, utilizing BGP-Flowspec to
   publish rules for traffic steering, and utilizing IGP-Shortcut for
   traffic steering.

  2.1. Steering to SRv6 based on destination address

   Traffic can typically be steered based on the destination address by
   matching traffic destination address via static routing or utilizing
   Policy-Based Routing (PBR).

   1)Steering traffic to SRv6 via static routing:

   ipv6 route-static {x:x::x:x/xx} {y:y::y:y}

   Steering traffic based on the destination address with static
   routing.

   Where {y:y::y:y} represents an SRv6 SID, which can be a DT4/DT6
   address, indicating traffic steering into an L3VPN;

lin, et al.           Expires September 3, 2024               [Page 3]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

   If {y:y::y:y} is a BSID address, it represents traffic steering into
   an SRv6 TE Policy;

   ipv6 route-static {x:x::x:x/xx} color {color} end-point ipv6 {end-
   point}

   Through the above static route configuration, for matched
   destination addresses, traffic color and end-point can be specified,
   and associated with an SRv6 TE Policy, enabling traffic steering
   into the SRv6 TE Policy.

   2) Steering traffic to SRv6 via PBR:

   ipv6 policy-based-route srv6 permit node 0

     if-match acl 2000

     apply next-hop y:y::y:y

   Steering traffic based on the destination address using PBR.

   Similarly, if {y:y::y:y} represents a DT4/DT6 address, it indicates
   traffic steering into an L3VPN;

   If {y:y::y:y} is a BSID address, it signifies traffic steering into
   an SRv6 TE Policy;

   When using PBR for traffic steering, for matched destination
   addresses, specifying traffic color and end-point, and associating
   with an SRv6 TE Policy, can effectively steer traffic into the SRv6
   TE Policy.

   3) Steering traffic to SRv6 via BGP-FlowSpec:

   By deploying BGP-FlowSpec rules from the controller, traffic
   matching specific destination addresses can be steered.

   Once matched, BGP-FlowSpec can specify the next-hop address as a
   DT4/DT6 address to route the traffic into an L3VPN. Alternatively,
   specifying the next-hop address as a BSID address can direct the
   traffic into an SRv6 TE Policy.

   4) Steering traffic to SRv6 via IGP shortcut:

   IGP shortcut, also known as the automatic traffic announcement
   feature of an IGP, treats an SRv6 TE Policy as a direct link between

lin, et al.           Expires September 3, 2024               [Page 4]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

   the endpoints for announcement purposes. During route calculation,
   if the destination address of the traffic corresponds to the
   tunnel's destination address, the traffic is steered into the SRv6
   TE Policy.

  2.2. Steering to SRv6 based on flow characteristics

   Identifying traffic based on specific flow characteristics and
   steering traffic according to these characteristics. Flow
   characteristics include Layer 2 attribute 802.1p, Layer 3 IP feature
   DSCP value, as well as service-level attributes such as service
   class and TE class ID.

   1) Steering Traffic to SRv6 via PBR Based on Traffic Characteristics

   ipv6 policy-based-route srv6 permit node 0

    if-match acl 2000

    apply next-hop y:y::y:y

   #

   By specifying traffic characteristics in the ACL to match traffic
   and then designating the next-hop for the traffic as the SRv6 next-
   hop address or BSID address, traffic can be directed to SRv6 BE or
   SRv6 TE policy.

   2)Steering traffic via BGP flowspec

   By using flowspec, specify the next-hop address in the route
   attributes as the BSID of the SRv6 TE Policy, in order to steering
   the traffic associated with this route to the destination of the
   SRv6 TE Policy.

   By using flowspec, specify the next-hop address in the route
   attributes as the BSID of the SRv6 TE Policy, in order to steering
   the traffic associated with this route to the destination of the
   SRv6 TE Policy.

   3) Steering to SRv6 TE via Tunnel-Policy

   First, based on the traffic destination address, tunnel policies are
   matched and associated with an SRv6 TE Policy-Group. The Policy-
   Group contains multiple policies, each with a different color value.
   A specific traffic characteristic is then mapped to different color
   values, and based on the color value, corresponding SR Policies are
   found within the Policy-Group to direct the traffic to the SR TE

lin, et al.           Expires September 3, 2024               [Page 5]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

   Policy. Typically, the characteristics used to map traffic to
   different colors include DSCP values, Dot1P values, TE Class IDs,
   service classes, and others.

3. UseCase

   SRv6 BE(Best Effort), is a method of forwarding traffic without
   strict quality of service guarantees. It allows for the flexible and
   efficient forwarding of packets, prioritizing simplicity and
   scalability. This approach is well-suited for scenarios where fine-
   grained traffic control is not necessary and where best effort
   delivery meets the requirements of the network.

   Traffic engineering technology calculates and arranges the
   forwarding paths of traffic to optimize network resource utilization
   and improve bandwidth efficiency. Additionally, this technology
   ensures reliable service quality for business operations and
   prevents all business traffic from competing for resources on the
   shortest path. Therefore, deploying and utilizing traffic
   engineering in SRv6 networks has become a necessary requirement for
   the promotion and development of SRv6 technology.

   The traffic engineering technology based on SRv6 is referred to as
   SRv6 TE.

   As shown in Figure 1, SRv6 Policy 1 has a BSID of 1000::1, Color
   100, and Endpoint 4::4, with a forwarding path of B->C->D. SRv6
   Policy 2 has a BSID of 2000::1, Color 200, and Endpoint 4::4, with a
   forwarding path of E->F->D.

   SRv6 Policy 1:  +---------+                    +---------+
   BSID<1000::1>   |RouterB  |--------------------|RouterC  |
   Color 100       +-/-------+                    +-------\-+
   Endpoint 4::4    /                                      \
   SID List<B,C,D> /                                        \
              +-/------+       BGP Route            +------\-+
                |RouterA |     <----------------      |RouterD | EndPoint: 4::4
              +-\------+                            +------/-+
   SRv6 Policy 2:  \                                        /
   BSID<2000::1>    \                                      /
   Color 200       +-\-------+                    +-------/-+
   Endpoint 4::4   |RouterE  |--------------------|RouterF  |
   SID List<E,F,D> +---------+                    +---------+
                  Figure 1. SRv6 Traffic Steering Network Diagram

lin, et al.           Expires September 3, 2024               [Page 6]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

  3.1. Traffic steering based on destination address

3.1.1. BSID-based Traffic Steering

   When a device receives a packet with a destination IPv6 address
   matching the BSID of an SRv6 TE Policy, the packet will be forwarded
   according to the corresponding SRv6 TE Policy. BSID-based traffic
   steering is commonly used in BSID stitching scenarios, where the
   BSID of another SRv6 TE Policy is added to the SID list of one SRv6
   TE Policy. This helps reduce the length of the SRH header in the
   packet during the forwarding process, enabling seamless stitching
   between different SRv6 TE Policies or between an SRv6 TE Policy and
   an SR-MPLS TE Policy.

   As shown in Figure 1, when the destination address of traffic is
   specified as BSID 1000::1 of SRv6 Policy 1, the traffic will be
   forwarded along the path defined by SRv6 TE Policy 1. If the
   destination address is specified as BSID 2000::1 of SRv6 Policy 2,
   the traffic will be forwarded along the path defined by SRv6 TE
   Policy 2.

3.1.2. Color-based Traffic Steering

   Color-based traffic steering is one of the fundamental methods used
   in SRv6 TE Policy. This approach leverages the BGP route's extended
   community attribute called Color and the destination address to
   match the Color and End-point address in the SRv6 TE Policy.
   Typically, if there is an SRv6 TE Policy on the device with the same
   Color and End-point address as the Color extended community
   attribute and next-hop address of the BGP route, the BGP route will
   be steered to that SRv6 TE Policy. When the device receives a packet
   that matches the BGP route, it is forwarded through the SRv6 TE
   Policy.

   As shown in Figure 1, the BGP protocol advertises the prefix routes
   that require traffic steering, such as specifying the Color
   attribute of route 1::1/128 as 100 and the next-hop attribute as
   4::4, and specifying the Color attribute of route 2::2/128 as 200
   and the next-hop attribute as 4::4. Therefore, for traffic with a
   destination address of 1::1, it will be forwarded along the path
   defined by SRv6 TE Policy 1, while for traffic with a destination
   address of 2::2, it will be forwarded along the path defined by SRv6
   TE Policy 2.

3.1.3. IGP-Shortcut Traffic Steering

   When using IGP-shortcut for traffic steering based on the
   destination address, the routing table information for traffic

lin, et al.           Expires September 3, 2024               [Page 7]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

   steering is no longer published by the BGP protocol. Instead, it is
   automatically generated on the head-end device A based on the SRv6
   TE Policy. In the scenario illustrated in Figure 1, enabling the
   IGP-shortcut feature causes the head-end node to automatically
   generate a route for 4::4/128 and set the egress interface to point
   to the SRv6 TE Policy when the SRv6 TE Policy status is Up. In the
   event that the SRv6 TE Policy status changes to Down, the
   automatically generated route pointing to the SRv6 TE Policy is
   withdrawn and replaced with forwarding based on SRv6 BE.

  3.2. Traffic steering based on flow characteristics

3.2.1. Dscp-based Traffic Steering

   The basic principle of DSCP-based traffic steering is to route the
   packets to the corresponding SRv6 TE Policy based on the DSCP
   (Differentiated Services Code Point) value of the packet. This
   traffic steering method requires the deployment of SRv6 TE Policy
   groups and the redirection of traffic to these SRv6 TE Policy
   groups. After that, specific DSCP values are mapped to corresponding
   SRv6 TE Policy groups to steer the packets to the desired SRv6 TE
   Policy.

   As shown in Figure 1, the BGP protocol advertises the prefix routes
   that require traffic steering, specifying the next-hop attribute of
   route 1::1/128 as 4::4 but not specifying the Color attribute. On
   device A, an SRv6 TE Policy group is created with an End-point
   address of device D's address 4::4. Within the SRv6 TE Policy group,
   a Color and DSCP mapping relationship is defined, where DSCP 10 maps
   to Color 100 and DSCP 20 maps to Color 200. Subsequently, a tunnel
   policy is configured on source node A, binding the SRv6 TE Policy
   group with the destination address 2.2.2.2. This arrangement ensures
   that for traffic with a destination address of 1::1, if the DSCP
   value is 10, it will be forwarded along the path defined by SRv6 TE
   Policy 1; if the DSCP value is 20, it will be forwarded along the
   path defined by SRv6 TE Policy 2.

3.2.2. 802.1p-based Traffic Steering

   The basic principle of 802.1p-based traffic steering is to route the
   packets to the corresponding SRv6 TE Policy based on the 802.1p
   (Priority) value of the packet. This traffic steering method
   requires the prior deployment of SRv6 TE Policy groups and the
   redirection of traffic to these SRv6 TE Policy groups. Subsequently,
   based on the mapping rules within the SRv6 TE Policy groups, packets
   with specific 802.1p values are steered to the corresponding SRv6 TE
   Policy.

lin, et al.           Expires September 3, 2024               [Page 8]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

   As shown in Figure 1, the BGP protocol advertises the prefix routes
   that require traffic steering, specifying the next-hop attribute of
   route 1::1/128 as 4::4 but not specifying the Color attribute. On
   device A, an SRv6 TE Policy group is created with an End-point
   address of device D's address 4::4. Within the SRv6 TE Policy group,
   a Color and 802.1p mapping relationship is defined, where 802.1p 10
   maps to Color 100 and 802.1p 20 maps to Color 200. Subsequently, a
   tunnel policy is configured on source node A, binding the SRv6 TE
   Policy group with the destination address 2.2.2.2. This setup
   ensures that for traffic with a destination address of 1::1, if the
   802.1p value is 10, it will be forwarded along the path defined by
   SRv6 TE Policy 1; if the 802.1p value is 20, it will be forwarded
   along the path defined by SRv6 TE Policy 2.

3.2.3. Service-class-based Traffic Steering

   To ensure that all traffic packets can be steered, even if they do
   not carry DSCP or Dot1p information, the device introduces a local
   identification called "service-class" to distinguish different
   classes of service traffic.

   Both service-class-based traffic steering and CBTS-based traffic
   steering are achieved through the service-class identifier. However,
   service-class-based traffic steering requires the traffic to first
   enter the SRv6 TE Policy group, and then, based on the mapping rules
   within the SRv6 TE Policy group, specific packets with service-class
   identifiers are redirected to the corresponding SRv6 TE Policy.

   As shown in Figure 1, the BGP protocol advertises the prefix routes
   that require traffic steering, specifying the next-hop attribute of
   route 1::1/128 as 4::4 but not specifying the Color attribute. On
   device A, an SRv6 TE Policy group is created with an End-point
   address of device D's address 4::4. Within the SRv6 TE Policy group,
   a Color and service-class mapping relationship is defined, where
   service-class 1 maps to Color 100 and service-class 2 maps to Color
   200. Subsequently, a tunnel policy is configured on source node A,
   binding the SRv6 TE Policy group with the destination address
   2.2.2.2. This setup ensures that for traffic with a destination
   address of 1::1, if the service-class value is 1, it will be
   forwarded along the path defined by SRv6 TE Policy 1; if the
   service-class value is 2, it will be forwarded along the path
   defined by SRv6 TE Policy 2.

3.2.4. Te-class-based Traffic Steering

   Due to the limited length of the local identifier "service-class,"
   with the maximum supported value for most devices being 15 and
   typically not exceeding 127, it cannot effectively differentiate a

lin, et al.           Expires September 3, 2024               [Page 9]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

   vast number of services. Therefore, H3C has introduced the use of
   "TE class ID" as another local identifier. The TE class ID can have
   a maximum value of 65535, supporting a more diverse range of traffic
   types.

   The basic principle of TE class ID-based traffic steering is to
   route the packets to the corresponding SRv6 TE Policy based on the
   TE class ID identifier. This traffic steering method requires the
   prior deployment of SRv6 TE Policy groups and the redirection of
   traffic to these SRv6 TE Policy groups. Then, based on the mapping
   rules within the SRv6 TE Policy groups, packets marked with specific
   TE class ID values are steered to the corresponding SRv6 TE Policy.

   As shown in Figure 1, the BGP protocol advertises the prefix routes
   that require traffic steering, specifying the next-hop attribute of
   route 1::1/128 as 4::4 but not specifying the Color attribute. On
   device A, an SRv6 TE Policy group is created with an End-point
   address of device D's address 4::4. Within the SRv6 TE Policy group,
   a te-class and service-class mapping relationship is defined, where
   te-class 1 maps to Color 100 and te-class 2 maps to Color 200.
   Subsequently, a tunnel policy is configured on source node A,
   binding the SRv6 TE Policy group with the destination address
   2.2.2.2. This setup ensures that for traffic with a destination
   address of 1::1, if the te-class value is 1, it will be forwarded
   along the path defined by SRv6 TE Policy 1; if the te-class value is
   2, it will be forwarded along the path defined by SRv6 TE Policy 2.

3.2.5. Traffic steering via BGP-FlowSpec

   In the scenario illustrated in Figure 2, where a controller is
   present in the network, fine-grained traffic scheduling can be
   achieved by the controller distributing traffic steering rules. The
   controller utilizes BGP Flow-Spec (FS) to distribute rules to the
   head-end node. These rules can be matched based on the destination
   address or flow characteristics. By setting the action after
   matching, the controller can specify the Color attribute and next-
   hop address for the traffic, thereby achieving traffic steering. BGP
   FlowSpec enables global traffic scheduling with flexibility.

lin, et al.           Expires September 3, 2024              [Page 10]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

                             +------------------+
                             |   Controller     |
                             +------------------+
                                    |  FlowSpec route to Ingress:
                                   |    NLRI: Filter Rules
                                  FS   Color: 100/200
                                  |    Nexthop: 4::4
   SRv6 Policy 1:  +---------+      |             +---------+
   BSID<1000::1>   |RouterB  |------)-------------|RouterC  |
   Color 100       +-/-------+      |             +-------\-+
   Endpoint 4::4    /               |                      \
   SID List<B,C,D> /                |                       \
              +-/------+          |                 +------\-+
                |RouterA | <--------+                 |RouterD | EndPoint: 4::4
              +-\------+                            +------/-+
   SRv6 Policy 2:  \                                        /
   BSID<2000::1>    \                                      /
   Color 200       +-\-------+                    +-------/-+
   Endpoint 4::4   |RouterE  |--------------------|RouterF  |
   SID List<E,F,D> +---------+                    +---------+
                       Figure  . Steering by BGP FlowSpec

4. Security Considerations

   TBD.

5. IANA Considerations

   This document makes no request of IANA.

6. References

  6.1. Normative References

   [rfc9256] C. Filsfils, "Segment Routing Policy Architecture ", July
   2022, <https://datatracker.ietf.org/doc/rfc9256>

lin, et al.           Expires September 3, 2024              [Page 11]
Internet-Draft  Best practices for traffic steering to SRv6  March 2024

Authors' Addresses

   Gary Geng
   Tencent
   China

   Email: garygeng@tencent.com

   Yisong Liu
   China Mobile
   China
   
   Email: liuyisong@chinamobile.com

   Chongfeng Xie
   China Telecom
   Beiqijia Town, Changping District
   Beijing
   102209
   China

   Email: xiechf@chinatelecom.cn

   Changwang Lin
   New H3C Technologies
   Beijing
   102209
   China

   Email: linchangwang.04414@h3c.com

lin, et al.           Expires September 3, 2024              [Page 12]