IDR Working Group                                   G. Van de Velde, Ed.
Internet-Draft                                             W. Henderickx
Intended status: Standards Track                                   Nokia
Expires: January 9, 2017                                        K. Patel
                                                          A. Sreekantiah
                                                           Cisco Systems
                                                                   Z. Li
                                                               S. Zhuang
                                                                   N. Wu
                                                     Huawei Technologies
                                                            July 8, 2016


                    Flowspec Indirection-id Redirect
             draft-vandevelde-idr-flowspec-path-redirect-03

Abstract

   Flowspec is an extension to BGP that allows for the dissemination of
   traffic flow specification rules.  This has many possible
   applications but the primary one for many network operators is the
   distribution of traffic filtering actions for DDoS mitigation.  The
   flow-spec standard RFC5575 [2] defines a redirect-to-VRF action for
   policy-based forwarding but this mechanism is not always sufficient,
   particularly if the redirected traffic needs to be steered into an
   engineered path or into a service plane.

   This document defines a new extended community known as redirect-to-
   indirection-id (32-bit) flowspec action to provide advanced
   redirection capabilities on flowspec clients.  When activated, the
   flowspec extended community is used by a flowspec client to find the
   correct next-hop entry within a localised indirection-id mapping
   table.

   The functionality present in this draft allows a network controller
   to decouple flowspec functionality from the creation and maintainance
   of the network's service plane itself including the setup of tunnels
   and other service constructs that could be managed by other network
   devices.

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






Van de Velde, et al.     Expires January 9, 2017                [Page 1]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


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 http://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 9, 2017.

Copyright Notice

   Copyright (c) 2016 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
   2.  indirection-id and indirection-id table . . . . . . . . . . .   3
   3.  Use Case Scenarios  . . . . . . . . . . . . . . . . . . . . .   4
     3.1.  Redirection shortest Path tunnel  . . . . . . . . . . . .   4
     3.2.  Redirection to path-engineered tunnels  . . . . . . . . .   4
     3.3.  Redirection to Next-next-hop tunnels  . . . . . . . . . .   5
   4.  Redirect to indirection-id Community  . . . . . . . . . . . .   6
   5.  Redirect using localised indirection-id mapping table . . . .   8
   6.  Validation Procedures . . . . . . . . . . . . . . . . . . . .   8
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   8
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   9
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .   9
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  10



Van de Velde, et al.     Expires January 9, 2017                [Page 2]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


     10.2.  Informative References . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   Flowspec RFC5575 [2] is an extension to BGP that allows for the
   dissemination of traffic flow specification rules.  This has many
   possible applications, however the primary one for many network
   operators is the distribution of traffic filtering actions for DDoS
   mitigation.

   Every flowspec policy route is effectively a rule, consisting of a
   matching part (encoded in the NLRI field) and an action part (encoded
   in one or more BGP extended communities).  The flow-spec standard
   RFC5575 [2] defines widely-used filter actions such as discard and
   rate limit; it also defines a redirect-to-VRF action for policy-based
   forwarding.  Using the redirect-to-VRF action to steer traffic
   towards an alternate destination is useful for DDoS mitigation but
   using this technology can be cumbersome when there is need to steer
   the traffic onto an engineered traffic path.

   This draft proposes a new redirect-to-indirection-id flowspec action
   facilitating an anchor point for policy-based forwarding onto an
   engineered path or into a service plane.  The flowspec client
   consuming and utilizing the new flowspec indirection-id extended-
   community finds the redirection information within a localised
   indirection-id mapping table.  The localised mapping table is a table
   construct providing at one side the table key and at the other side
   next-hop information.  The table key consists out the combination of
   indirection-id type and indirection-id 32-bit value.

   The redirect-to-indirection-id flowspec action is encoded in a newly
   defined BGP extended community.  In addition, the type of redirection
   can be configured as an extended community indirection-id type field.

   This draft defines the indirection-id extended-community and the
   wellknown indirection-id types.  The specific solution to construct
   the localised indirection-id mapping table are out-of-scope of this
   document.

2.  indirection-id and indirection-id table

   An indirection-id is an abstract number (32-bit value) used as
   identifier for a localised indirection decision.  The indirection-id
   will allow a flowspec client to redirect traffic into a service plane
   or onto an engineered traffic path.  e.g.  When a BGP flowspec
   controller signals a flowspec client the indirection-id extended
   community, then the flowspec client uses the indirection-id to make a



Van de Velde, et al.     Expires January 9, 2017                [Page 3]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


   recursive lookup to retrieve next-hop information found in a
   localised indirection mapping table.

   The indirection-id table is a router localised table.  The
   indirection-id table is constructed out of table keys mapped to
   flowspec client localised redirection information.  The table key is
   created by the combination of the indirection-id type and the
   indirection-id 32-bit value.  Each entry in the indirection-table key
   maps to sufficient information (parameters regarding encapsulation,
   interface, QoS, etc...) to successfully redirect traffic.

3.  Use Case Scenarios

   This section describes use-case scenarios when deploying redirect-to-
   indirection-id.

3.1.  Redirection shortest Path tunnel

   A first use-case is allowing a BGP Flowspec controller to send a
   single flowspec policy route (i.e. flowspec_route#1) to many BGP
   flowspec clients.  This flowspec route signals the Flowspec clients
   to redirect traffic onto a tunnel towards a single IP destination
   address.

   For this first use-case scenario, the flowspec client receives from
   the flowspec controller a flowspec route (i.e. flowspec_route#1)
   including the redirect-to-indirection-id extended community.  The
   redirect-to-indirection-id extended community contains the key
   (indirection-id type + indirection-id 32-bit value) to select the
   corresponding next-hop information from the flowpsec client localised
   indirection-id table.  The resulting next-hop information for this
   use-case is a remote tunnel end-point IP address with accordingly
   sufficient tunnel encapsulation information to forward the packet
   accordingly.

   For redirect to shortest path tunnel it is required that the tunnel
   MUST be operational and allow packets to be exchanged between tunnel
   head- and tail-end.

3.2.  Redirection to path-engineered tunnels

   For a second use-case, it is expected that the flowspec client
   redirect traffic matches the flowspec rule, onto a path engineered
   tunnel.  The path engineered tunnel on the flowspec client SHOULD be
   created by out-of-band mechanisms.  Each path engineered tunnel
   deployed for flowspec redirection, has a unque key as an identifier.
   consequently, the key (=indirection-id type and indirection-id 32-bit
   value) uniquely identifies a single path engineered tunnel on the



Van de Velde, et al.     Expires January 9, 2017                [Page 4]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


   flowspec client.  The localised indirection-id mapping table is the
   collection of all keys corresponding all path engineered tunnels on
   the flowspec client.

   For this second use-case scenario, the flowspec controller sends a
   flowspec route (i.e. flowspec_route#2) to the flowspec clients.  The
   flowspec clients, respectively receive the flowspec route.  The
   redirect-to-indirection-id extended community contains the key
   (indirection type + indirection-id 32-bit value) to select the
   corresponding next-hop information from the flowpsec client localised
   indirection-id table.  The resulting next-hop information for this
   use-case is path engineered tunnel information and has sufficient
   tunnel encapsulation information to forward the packet according the
   expectations of the flowspec controller.

   A concrete example of this use-case can be found in segment routed
   networks where path engineered tunnels can be setup by means of a
   controller signaling explicit paths to peering routers.  In such a
   case, the indirection-id references to a Segment Routing Binding SID,
   while the indirection-id type references the Bindging SID semantic.
   The Binding SID is a segment identifier value (as per segment routing
   definitions in [I-D.draft-ietf-spring-segment-routing] [6]) used to
   associate with an explicit path and can be setup by a controller
   using BGP as specified in [I-D.sreekantiah-idr-segment-routing-te]
   [5] or using PCE as detailed in draft-ietf-pce-segment-routing [7].
   When a BGP speaker receives a flow-spec route with a 'redirect to
   Binding SID' extended community, it installs a traffic filtering rule
   that matches the packets described by the NLRI field and redirects
   them to the explicit path associated with the Binding SID.  The
   explicit path is specified as a set/stack of segment identifiers as
   detailed in the previous documents.  The stack of segment identifiers
   is now imposed on packets matching the flow-spec rule to perform
   redirection as per the explicit path setup prior.  The encoding of
   the Binding SID value is specified in section 4, with the
   indirection-id field now encoding the associated value for the
   binding SID.

3.3.  Redirection to Next-next-hop tunnels

   A Third use-case is when a BGP Flowspec controller sends a single
   flowspec policy route to flowpsec clients to signal redirection
   towards next-next-hop tunnels.  In this use-case The flowspec rule is
   instructing the Flowspec client to redirect traffic using a sequence
   of indirection-id extended communities.  The sequence of indirection-
   ids is managed using Tunnel IDs (TID). i.e. a classic example would
   be DDoS mitigation towards Segment Routing Central Egress Path
   Engineering [4].  To steer DDoS traffic towards egress peer
   engineering paths, a first indirection-id will steer traffic onto a



Van de Velde, et al.     Expires January 9, 2017                [Page 5]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


   tunnel to an egress router, while a second indirection-id is used
   steer the traffic at this egress router onto a particular interface
   or towards a peer.  The flowspec client will for this use-case
   dynamically append all segment routing segments to steer the DDoS
   traffic through the EPE path.

   To achieve this type of redirection to next-next-hop tunnels,
   multiple indirection-ids, each using a unique Tunnel ID are imposed
   upon a the flowspec policy rule.  The Tunnel ID will allow the
   flowspec client to sequence the indirection-ids for correct next-
   next-hop tunnel constructs.

4.  Redirect to indirection-id Community

   This document defines a new BGP extended community known as a
   Redirect-to-indirection-id extended community.  This extended
   community is a new transitive extended community with the Type and
   the Sub-Type field to be assigned by IANA.  The format of this
   extended community is show in Figure 1.


      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          | Sub-Type      | Flags(1 octet)| Indirection ID|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                  Generalized indirection_id                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



                                 Figure 1

   The meaning of the extended community fields are as follows:

   Type: 1 octet to be assigned by IANA.

   Sub-Type: 1 octet to be assigned by IANA.

   Flags: 1 octet field.  Following Flags are defined.












Van de Velde, et al.     Expires January 9, 2017                [Page 6]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


                              0             1
                              0 1 2 3 4 5 6 7
                             +-+-+-+-+-+-+-+-+
                             | RES |  TID  |C|
                             +-+-+-+-+-+-+-+-+


                                 Figure 2

   The least-significant Flag bit is defined as the 'C' (or copy) bit.
   When the 'C' bit is set the redirection applies to copies of the
   matching packets and not to the original traffic stream.

   The 'TID' field identifies a 4 bit Table-id field.  This field is
   used to provide the flowspec client an indication how and where to
   sequence the received indirection-ids to redirecting traffic.  TID
   value 0 indicates that Table-id field is NOT set and SHOULD be
   ignored.

   All bits other than the 'C' and 'TID' bits MUST be set to 0 by the
   originating BGP speaker and ignored by receiving BGP speakers.

   Indirection ID: 1 octet value.  This draft defines following
   indirection_id Types:

      0 - Localised ID

      1 - Node ID

      2 - Agency ID

      3 - AS (Autonomous System) ID

      4 - Anycast ID

      5 - Multicast ID

      6 - Tunnel ID (Tunnel Binding ID )

      7 - VPN ID

      8 - OAM ID

      9 - ECMP (Equal Cost Multi-Path) ID

      10 - QoS ID

      11 - Bandwidth-Guarantee ID



Van de Velde, et al.     Expires January 9, 2017                [Page 7]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


      12 - Security ID

      13 - Multi-Topology ID

5.  Redirect using localised indirection-id mapping table

   When a BGP speaker receives a flowspec policy route with a 'redirect
   to indirection-id' extended community and this route represents the
   one and only best path or an equal cost multipath, it installs a
   traffic filtering rule that matches the packets described by the NLRI
   field and redirects them (C=0) or copies them (C=1) towards the
   indirection-id local recursed path.  To construct the local recursed
   path, the flowspec client does a local indirection-id mapping table
   lookup using the key comprised of the indirection-id 32-bit value and
   indirection-id type to retrieve the correct redirection information.

6.  Validation Procedures

   The validation check described in RFC5575 [2] and revised in [3]
   SHOULD be applied by default to received flow-spec routes with a
   'redirect to indirection-id' extended community.  This means that a
   flow-spec route with a destination prefix subcomponent SHOULD NOT be
   accepted from an EBGP peer unless that peer also advertised the best
   path for the matching unicast route.

   It is possible from a semenatics perspective to have multiple
   redirect actions defined within a single flowspec rule.  When a BGP
   flowspec NLRI has a 'redirect to indirection-id' extended community
   attached resulting in valid redirection then it MUST take priority
   above all other redirect actions emposed.  However, if the 'redirect
   to indirection-id' does not result in a valid redirection, then the
   flowspec rule must be processed as if the 'redirect to indirection-
   id' community was not attached to the flowspec route and MUST provide
   an indication within the BGP routing table that the respective
   'redirect to indirection-id' resulted in an invalid redirection
   action.

7.  Security Considerations

   A system using 'redirect-to-indirection-id' extended community can
   cause during the redirect mitigation of a DDoS attack result in
   overflow of traffic received by the mitigation infrastructure.

8.  Acknowledgements

   This document received valuable comments and input from IDR working
   group including Adam Simpson, Mustapha Aissaoui, Jan Mertens, Robert
   Raszuk, Jeff Haas, Susan Hares and Lucy Yong



Van de Velde, et al.     Expires January 9, 2017                [Page 8]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


9.  IANA Considerations

   This document requests a new type and sub-type for the Redirect to
   indirection-id Extended community from the "Transitive Extended
   community" registry.  The Type name shall be "Redirect to
   indirection-id Extended Community" and the Sub-type name shall be
   'Flow-spec Redirect to 32-bit Path-id'.

   In addition, this document requests IANA to create a new registry for
   Redirect to indirection-id Extended Community INDIRECTION-IDs as
   follows:

   Under "Transitive Extended Community:"

   Registry: "Redirect Extended Community indirection_id"

   Reference: [RFC-To-Be]

   Registration Procedure(s): First Come, First Served

   Registry: "Redirect Extended Community indirection_id"


           Value    Code                              Reference

           0        Localised ID                      [RFC-To-Be]
           1        Node ID                           [RFC-To-Be]
           2        Agency ID                         [RFC-To-Be]
           3        AS (Autonomous System) ID         [RFC-To-Be]
           4        Anycast ID                        [RFC-To-Be]
           5        Multicast ID                      [RFC-To-Be]
           6        Tunnel ID (Tunnel Binding ID )    [RFC-To-Be]
           7        VPN ID                            [RFC-To-Be]
           8        OAM ID                            [RFC-To-Be]
           9        ECMP (Equal Cost Multi-Path) ID   [RFC-To-Be]
           10       QoS ID                            [RFC-To-Be]
           11       Bandwidth-Guarantee ID            [RFC-To-Be]
           12       Security ID                       [RFC-To-Be]
           13       Multi-Topology ID                 [RFC-To-Be]


                                 Figure 3

10.  References







Van de Velde, et al.     Expires January 9, 2017                [Page 9]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


10.1.  Normative References

   [1]        Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997,
              <http://xml.resource.org/public/rfc/html/rfc2119.html>.

   [2]        Marques, P., Sheth, N., Raszuk, R., Greene, B., Mauch, J.,
              and D. McPherson, "Dissemination of Flow Specification
              Rules", RFC 5575, DOI 10.17487/RFC5575, August 2009,
              <http://www.rfc-editor.org/info/rfc5575>.

10.2.  Informative References

   [3]        Uttaro, J., Filsfils, C., Alcaide, J., and P. Mohapatra,
              "Revised Validation Procedure for BGP Flow
              Specifications", January 2014.

   [4]        Filsfils, C., Previdi, S., Aries, E., Ginsburg, D., and D.
              Afanasiev, "Segment Routing Centralized Egress Peer
              Engineering", October 2015.

   [5]        Sreekantiah, A., Filsfils, C., Previdi, S., Sivabalan, S.,
              Mattes, P., and S. Lin, "Segment Routing Traffic
              Engineering Policy using BGP", October 2015.

   [6]        Filsfils, C., Previdi, S., Decraene, B., Litkowski, S.,
              Shakir, R., Bashandy, A., Horneffer, M., Henderickx, W.,
              Tantsura, J., Crabbe, E., Milojevic, I., and S. Ytti,
              "Segment Routing Architecture", December 2015.

   [7]        Sivabalan, S., Medved, M., Filsfils, C., Litkowski, S.,
              Raszuk, R., Bashandy, A., Lopez, V., Tantsura, J.,
              Henderickx, W., Hardwick, J., Milojevic, I., and S. Ytti,
              "PCEP Extensions for Segment Routing", December 2015.

Authors' Addresses

   Gunter Van de Velde (editor)
   Nokia
   Antwerp
   BE

   Email: gunter.van_de_velde@nokia.com








Van de Velde, et al.     Expires January 9, 2017               [Page 10]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


   Wim Henderickx
   Nokia
   Antwerp
   BE

   Email: wim.henderickx@nokia.com


   Keyur Patel
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   Email: keyupate@cisco.com


   Arjun Sreekantiah
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   Email: asreekan@cisco.com


   Zhenbin Li
   Huawei Technologies
   Huawei Bld., No. 156 Beiquing Rd
   Beijing  100095
   China

   Email: lizhenbin@huawei.com


   Shunwan Zhuang
   Huawei Technologies
   Huawei Bld., No. 156 Beiquing Rd
   Beijing  100095
   China

   Email: zhuangshunwan@huawei.com









Van de Velde, et al.     Expires January 9, 2017               [Page 11]


Internet-Draft      Flowspec Indirection-id Redirect           July 2016


   Nan Wu
   Huawei Technologies
   Huawei Bld., No. 156 Beiquing Rd
   Beijing  100095
   China

   Email: eric.wu@huawei.com












































Van de Velde, et al.     Expires January 9, 2017               [Page 12]