Network Working Group                                             K. Sun
Internet-Draft                                                      ETRI
Intended status: Informational                                    Y. Kim
Expires: 30 October 2022                             Soongsil University
                                                           28 April 2022


                LISP Support for Dynamic Anycast Routing
                      draft-kjsun-lisp-dyncast-02

Abstract

   Dynamic Anycast (Dyncast) is a new routing approach to support
   equivalent services running in distributed geolocations and connect
   to them by considering both network-related metric and service-
   related metric.  In LISP, it is possible to support anycast EIDs and/
   or anycast RLOCs without any modification, so it is suitable for
   providing dyncast routing.  In this document, it describes the LISP-
   based dyncast architecture and related standard works to meet dyncast
   requirements.

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 30 October 2022.

Copyright Notice

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



Sun & Kim                Expires 30 October 2022                [Page 1]


Internet-Draft                LISP Anycast                    April 2022


   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Architecture Overview . . . . . . . . . . . . . . . . . . . .   3
   4.  Addressing Dyncast Requirements with LISP . . . . . . . . . .   6
     4.1.  Anycast-based Service Addressing  . . . . . . . . . . . .   6
     4.2.  Instance Affinity . . . . . . . . . . . . . . . . . . . .   7
     4.3.  Encoding and Signaling of Metric  . . . . . . . . . . . .   8
     4.4.  Dynamic Routing Decisions based using Metrics . . . . . .   9
     4.5.  Supporting Service Dynamism . . . . . . . . . . . . . . .  10
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .  10
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  10
     6.1.  Informative References  . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  11

1.  Introduction

   With emerging that multiple edge sites deployed at different
   locations and had different capacity to provide a service with edge
   computing, when the clients requests service, there is a requirement
   to make "best" decision to select edge node among requested service
   running simultaneously on multiple edges.  While distributing service
   requests to a specific service having multiple instances attached to
   multiple edges, one of solution is to take into account computing as
   well as service-specific metrics in the distribution decision seen as
   dynamic anycast ("dyncast", for short).

   The main feature of the dyncast described in
   [draft-liu-dyncast-ps-usecases] is that a unique service identifier
   that can be assigned to multiple instances in multiple edge
   environments should be able to be mapped as an actual routable
   unicast address.  Since this concept is similar to the Location/ID
   separation method already used in the LISP design basis, the LISP
   protocol can be considered as one of the candidate protocols that can
   implement dyncast.  This draft is proposed to design the LISP-based
   architecture for Dyncast and analyze the extension method of LISP to
   meet the requirements defined in [draft-liu-dyncast-reqs] for
   realizing dynamic anycasting between different LISP sites.








Sun & Kim                Expires 30 October 2022                [Page 2]


Internet-Draft                LISP Anycast                    April 2022


2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document is to be interpreted as described in [RFC2119].  This
   document uses the terminology described in [RFC6830],
   [draft-liu-dyncast-ps-usecases], [draft-liu-dyncast-reqs].  Detailed
   definition of terminologies are written below.

   Dyncast : As defined in [draft-liu-dyncast-ps-usecases], Dynamic
   Anycast, taking the dynamic nature of computing resource metrics into
   account to steer an anycast routing decision.

   D-Router: A node supporting Dyncast functionalities as described in
   this document.  Namely it is able to understand both network-related
   and service-instances-related metrics, take forwarding decision based
   upon and manitain instance affinity, i.e., forwards packets belonging
   to the same service demand to the same instance.

   Dyncast Metric Agent (D-MA): A dyncast specific agent able to gather
   and send metric updates (from both network and instance prespective)
   but not performing forwarding decisions.  May run on a D-Router, but
   it can be also implementated as a separate module (e.g., a software
   library) collocated with a service instance.

   Dyncast Service Endpoint ID (DSEID) : Anycast IP address assigned to
   the service running on distributed locations.  DSEID cannot be routed
   globally, and it is unique for specific service.  Multiple service
   instances which are same service have a same DSEID.

   D-BID: Dyncast Binding D-Node, an address to reach a service instance
   for a given DSEID.  It is usually a unicast IP where service
   instances are attached.  Different service instances provide the same
   service identified through D-SID but with different Dyncast Binding
   IDs.  In the LISP architecture, D-BIDs of same service are replaced
   to RLOC-set of DSEID.

3.  Architecture Overview

   Figure 1 describes the LISP use-case for dynamic anycast.  In the
   LISP architecture [draft-ietf-lisp-introduction-13], each edge
   network has one or more LISP routers deployed.  For anycast address,
   [RFC6830] defines that anycast address can be assigned for both
   Endpoint ID (EID) and Routing Locator (RLOC) within each of their
   address spaces.  In this draft, we called EID for dynamic anycasting
   as Dyncast Service Endpoint ID (DSEID), which is assigned to
   equivalent services across the multiple LISP sites.  Similar to the
   common EID definition, the DSEID cannot be routed globally by itself,



Sun & Kim                Expires 30 October 2022                [Page 3]


Internet-Draft                LISP Anycast                    April 2022


   and the same DSEID cannot be assigned to different services.  In
   order to forward a packet destined for a DSEID between LISP edges,
   the addresses of the LISP Egress Tunnel Router (ETR) are used as
   RLOC-set, which was difined as a Dyncast Binding ID (D-BID) in
   [draft-li-dyncast-architecture].  Unlike D-BID which is routable and
   unique for all each service instance, RLOC-set is routable in the
   underlay but it is not unique values per each service instances.
   When multiple services are running in the same LISP site, they can be
   assigned the same RLOC which is xTR of their LISP site.  Map-server/
   resolver of the LISP control plane can manage mapping information for
   DESID-to-RLOC-set mappings together with existing EID-to-RLOC
   mappings.

   For resource-efficient forwarding decisions across multiple service
   instances, [draft-li-dyncast-architecture] defines Dyncast Metric
   Agent (D-MA) which collects metrics related network and service
   instances.  Actual packet forwarding is handled in the Dyncast Router
   (D-Router) based upon collected metrics with maintaining instance
   affinity.  In the LISP architecture, the D-Router and D-MA function
   can be implemented on each LISP ETR, or can be deployed as separate
   components within the edge for managing service instances.  The LISP
   control plane is logically centralized and it provides an interface
   with each LISP router to exchange mapping information.  However, it
   does not mean that the LISP control plane is located in a single
   physical location, several mechanisms for distributing the mapping
   system already have been defined.

                      +------------------+
                      |LISP Control Plane|
                      +------------------+
                               |           +--------+   +--------+
                               |        ___|LISP-ETR|---|Service1| DESID
                           .........  /    +--------+   +--------+
                         ..         ..
  +------+  +--------+  :    Core     :    +--------+   +--------+
  |Client|--|LISP ITR|-:    Network    :---|LISP-ETR|---|Service1| DESID
  +------+  +--------+  :(RLOC-space) :    +--------+   +--------+
    EID                  ..         ..
                           .........   \   +--------+   +--------+
                                        \__|LISP-ETR|---|Service1| DESID
                                           +--------+   +--------+


               Figure 1: LISP use-case for Dynamic anycast

   Figure 3 shows an example of LISP-based dyncast deployment where two
   services each deployed two instances at different edges.  In this
   scenario, two services are assigned an RLOC according to the ETR



Sun & Kim                Expires 30 October 2022                [Page 4]


Internet-Draft                LISP Anycast                    April 2022


   address of the LISP site.  Both Service_A and Service_B instances
   connected to ETR_2 are assigned RLOC2, which is the RLOC of ETR_2, as
   a binding ID.  According this figure, DSEID-to-RLOC-set mappings can
   be configured as an example below.

        DSEID                 RLOC-set
        -----------------------------------------------------------
        DSEID_A          RLOC-set_A ({RLOC2, metric}, {RLOC3, metric})
        DSEID_B          RLOC-set_B ({RLOC2, metric}, {RLOC3, metric})


                    Figure 2: DSEID-to-RLOC-set Example

   In addition to these examples, the RLOC-set can also be used in the
   form of Explicit Locator Path (ELP) or Run-Length Encoding (RLE) for
   the encap-path between ETR and ITR.

   In the case of the edge where ETR_2 is located, as an edge composed
   only of service instances, the LISP Router function can be operated
   by being strongly coupled to the edge computing server.  In this
   case, the D-MA function can be implemented on the ETR to insert
   service-instance-related metrics directly into the LISP protocol
   packet.  In case that a service instance and a client co-exist like
   an edge where ETR_3 is located, the D-MA entity can be independently
   deployed proximity of the service instance is running, transparent
   from the LISP operation for clients.  Mapping information update for
   DSEID is performed through the LISP protocol Map-Register message,
   and service-instance-related metric can be delivered through in the
   LISP protocol header or other methods.  A method of inserting
   service-instance-related metric information into the LISP protocol
   will be discussed later.  When the ITR_1 receives a packet destined
   for the DSEID of the service by service request from the Host_1, the
   ITR can acquire the RLOC-set of the requested DSEID from the LISP
   control-plane through the Map-Request message.  At the control plane,
   it may select a proper RLOC on the collected metric information and
   return it to the ITR or return the RLOC-set of multiple service
   instances with metric information to the ITR so the ITR selects the
   proper RLOC in the set.  A method for determining an appropriate RLOC
   will be discussed later.












Sun & Kim                Expires 30 October 2022                [Page 5]


Internet-Draft                LISP Anycast                    April 2022


                                                              Service_A
                                                               +-------+
                   Map-Register              D-Router        +-|DSEID_A|
                 (DSEID_A, RLOC2, <metric>) +-------+------+ | +-------+
                 (DESID_B, RLOC2, ,metric>) | ETR_2 | D-MA |-|
                                            +-------+------+ | +-------+
                                                |            +-|DSEID_B|
                          +------------------+  | RLOC2        +-------+
   Host_1     D-Router    | +--------------+ |--+             Service_B
 +--------+  +-------+    | |     LISP     | |
 | EID_H1 |--| ITR_1 |----| | Control Plane| | Map-Register
 +--------+  +-------+    | +--------------+ |(DSEID_A, RLOC3, <metric>)
                     RLOC1|    RLOC-Space    |(DSEID_B, RLOC3, <metric>)
                          |                  |--+ RLOC3
                    <---- +------------------+  |
           Map-Reply                        D-Router      Host_2
          (DSEID_A, RLOC-set_A, <metric>)   +-------+   +--------+
          (DSEID_B, RLOC-set_B, <metric>)   | ETR_3 |---| EID_H2 |
                                            +-------+   +--------+
                                                |
                                             +------+
                                             | D-MA |
                                             +------+
                                                |
                                          +-----+-----+
                                          |           |
                                      +-------+     +-------+
                                      |DSEID_A|     |DSEID_B|
                                      +-------+     +-------+
                                      Service_A    Service_B


             Figure 3: LISP-based Dyncast Example Scenario

4.  Addressing Dyncast Requirements with LISP

4.1.  Anycast-based Service Addressing

   To support dyncast routing, the system must provide a method for
   searching a service identifier allocated as an anycast address and
   mapping it to a specific unicast address.  From this point of view,
   the LISP is a suitable protocol for separating ID/Location of service
   and managing mapping information.  When the system allocates the same
   DSEID to each service instance for service equivalency, the LISP can
   define an anycast address space for the DSEID and assign it to
   service instances created across multiple sites.  Also, the D-BID can
   be replaced to an RLOC address of LISP xTR that can be routed between
   edges as unicast.  That is, it is necessary to define a separate



Sun & Kim                Expires 30 October 2022                [Page 6]


Internet-Draft                LISP Anycast                    April 2022


   space for anycast address within the existing EID space and to
   allocate it in advance so that it can be used in all edge networks
   where the service instances are located.  In the LISP definition, the
   EID assigned to each service has a globally unique value and, in
   particular, [RFC6830] defines that anycast address can be assigned
   within an EID or RLOC block spaces.  In each LISP site, same as the
   EID which is defined to enable internal routing, the DSEID can be
   able to be routed without the RLOC encapsulation process to the EID
   within a single site.

   One of alternative addressing solution is to use anycast-SEID-to-
   anycast-RLOC mapping.  Using this, it is required to register from
   one place (an SDN controller) or each ETR registering the same RLOC
   without any merge semantics.  So the service is chosen by destination
   address in a packet (the anycast-EID) which maps to an anycast-RLOC
   where the underlay takes you to the "closest" LISP site.  However, in
   the dyncast, routing selection is not depending on just distance but
   also computing resources of each service location.  Depending on
   dynamics of these metrics, anycast-RLOC should be registered/
   deregistered at the ETR depending on the absence of specific anycast-
   EID.  Further discussion is required which is more efficient rather
   than using indirection mapping and update it with unicast-RLOC with
   metric information.

4.2.  Instance Affinity

   For dyncast routing, it is required that the system must set
   "Instance Affinity" for one or several service requests to provide
   routing to the same service instance for the same flow.  In LISP, the
   RLOC mapping information for the destination EID is stored in a local
   cache called Map-cache in the ITR for a certain period of time, and
   it is maintained for a set time-to-live (TTL) time.  Therefore,
   mapping information for a specific service once requested from a
   client is generally maintained in the ITR until the corresponding
   session expires and can be delivered to the RLOC stored in the map-
   cache entry.  However, in order to have a flexible selection of
   service instances between different flows at the same point, it is
   additionally required to assign different RLOCs for different flows
   depending on metrics dynamically changed.  For that, it is necessary
   to enhance ITR Map-cache to maintain destination RLOC for each flow.
   In [draft-rodrigueznatal-lisp-multi-tuple-eids], it can be supported
   to store Multi-Tuple Extend-EID mappings.  With Multi-Tuple EID
   mappings, it is possible to provide RLOC affinity depending on its
   destination DSEID as well as other information such as source EID,
   protocol or port number.  For that, it is required to support multi-
   stage lookup process, where the multi-tuple EID mappings that point
   to an DSEID and then there is a DSEID mapping that points to RLOC-
   set.



Sun & Kim                Expires 30 October 2022                [Page 7]


Internet-Draft                LISP Anycast                    April 2022


   In addition, although the general TTL value in LISP ITR is defined as
   24 hours, in dyncast the system requires a shorter TTL time for
   changing network path depending on dynamically updated network-
   related and service-instance-related metrics.  The LISP support to
   send a refresh Map-Request before removing map-cache entry.  If it
   needs a shorter TTL to update the map-cache, two options are
   possible.  First option is to send Solicit Map-Request(SMR) for
   refreshing cache, and another option is to use Pub/Sub which is
   described in [draft-ietf-lisp-pubsub].

4.3.  Encoding and Signaling of Metric

   In dyncast routing, the one of most important requirements is that it
   should be able to collect various metrics of service-instances-
   related as well as network-related, and include them in-network
   routing decisions.  For that, it is necessary to define how to
   collect these metrics and forward them, and also where to make a
   decision.  In the LISP environment, since that the entire EID-RLOC
   mapping information is managed in the control plane, one possible
   scenario is that the D-MA function which collects service-instance-
   related metrics updates them to the DSEID mapping entry in the LISP
   control plane.  For that, it can be used an encoding method proposed
   in [draft-farinacci-lisp-name-encoding] that defines to insert
   specific information such as parameters for a specific EID or RLOC
   using an ASCII string.  Using that, it is possible to encode a string
   that is pre-defined of a specific metric to interpret in the control
   plane and send a Map-Request message so that the control plane can
   select an appropriate RLOC based on it.  Another possible option is
   to use policy distribution by a network controller, which is proposed
   in [draft-kowal-lisp-policy-distribution].  Using network controller,
   the ITR could receive and apply the QoS policies that would shape
   traffic to the correct rate on each ITR RLOC interface.  In order to
   insert service-instance-related metrics from the DSEID side, the D-MA
   must forward the metrics of the requested service to the LISP ITR so
   that the metric can be inserted into the header of the Map-Register
   message.  This metric information encoded into the Map-Register
   message can help the LISP control plane to make multi-tuple mapping
   entry and sent it to the requested ITR.  Once the requested ITR
   receives these information, it can make a routing decision based on
   the multi-tuple parameters.











Sun & Kim                Expires 30 October 2022                [Page 8]


Internet-Draft                LISP Anycast                    April 2022


4.4.  Dynamic Routing Decisions based using Metrics

   The dyncast system is required that in must make routing decisions
   for all service requests, and this must be done under an
   understanding of all metrics.  Routing decisions in the LISP can be
   done with two options which is done in the control plane or ITR by
   specifying priority and weight values for each RLOC.  In case that
   routing decisions are made in the control plane, the Map-Resolver
   dynamically sets the priority and weight values of each mapped RLOCs
   collected from D-MAs, selects a proper RLOC based on them, and
   forward it to the requested ITR using the Map-Reply message.
   However, since this centralized approach may not be calculated based
   on point of requested ITR, the actual routing path may not be
   optimal.  In case that routing decision is determined at the ITR, the
   LISP control plane may return one or more RLOC values for the
   requested DSEID to the ITR, including priority and weight values
   based on the collected metrics.  After receiving multiple DBIDs, the
   ITR stores them in map-cache entry and selects an appropriate one to
   forward the data packet.  For that, a mechanism for estimating
   appropriate priority and weight values based on both network-related
   and service-instance-related metrics is required for the control
   plane or ITR.  When DSEID-to-RLOC-set mapping is used, it is noted
   that if RLOCs in the set have equal priority, the ITR can load-split
   traffic across RLOCs and that cause to break session connection.  So,
   an ITR that is configured that a particular EID in its map-cache is
   an DSEID, it should be cared to use an RLOC-set above with each RLOC
   priority=1.

   In the dyncast architecture described in
   [draft-li-dyncast-architecture], the D-Router collects metrics by
   exchanging metric information of the service identifier between
   another edge D-Routers and make a decision itself.  This approach can
   minimize the signaling for routing decisions by decentralizing the
   authority for the anycast routing decision to an entity in the actual
   packet path, but the signaling for collecting metrics between each
   D-Router is bound to increase.  In contrast, when the LISP is used,
   it can reduce effectively signaling of collecting metrics from the
   ITR since that the mapping information for DSEID and RLOC-set can be
   managed in a centralized control plane.  However, if the metrics
   change too much then the contents of the RLOC-set changes which
   requires more frequent map-cache updates.  So analyzing in depth of
   this tradeoff remains further studies.









Sun & Kim                Expires 30 October 2022                [Page 9]


Internet-Draft                LISP Anycast                    April 2022


4.5.  Supporting Service Dynamism

   For service dynamism, the dyncast system should support different
   selections for each flow according to a dynamically changing metric
   while considering various requirements in the selection of a service
   instance.  As mentioned in Section 4.2,
   [draft-rodrigueznatal-lisp-multi-tuple-eids] can provide the map-
   cache to be maintained for each flow, so the forwarding path can be
   dynamically changed to the different service instances by allocating
   target RLOC to the map-cache entry per-flow according to dynamic
   changes of metrics.  In order to refresh the DSEID-to-RLOC-set
   mapping upon changing metric, the Solicit Map-Request(SMR) message
   can be used to update so that the ITR can update the weight and
   priority for the RLOC which is already received from the Map-server.
   Additionally, as proposed in [draft-farinacci-lisp-telemetry],
   telemetry data can be collected between Encapsulating/Decapsulating
   xTRs of the current flow, which is expected to be used for dynamic
   service path reselection.

5.  Security Considerations

   TBD

6.  References

6.1.  Informative References

   [draft-farinacci-lisp-name-encoding]
              Farinacci, D., "LISP Distinguished Name Encoding", May
              2021, <https://datatracker.ietf.org/doc/draft-farinacci-
              lisp-name-encoding/>.

   [draft-farinacci-lisp-telemetry]
              Farinacci, D., Ouissal, S., and E. Nordmark, "LISP Data-
              Plane Telemetry", May 2021,
              <https://datatracker.ietf.org/doc/draft-farinacci-lisp-
              telemetry/>.

   [draft-ietf-lisp-introduction-13]
              Cabellos, A. and D. Saucez, "An Architectural Introduction
              to the Locator/ID Separation Protocol (LISP)", April 2015,
              <https://datatracker.ietf.org/doc/draft-ietf-lisp-
              introduction/>.








Sun & Kim                Expires 30 October 2022               [Page 10]


Internet-Draft                LISP Anycast                    April 2022


   [draft-ietf-lisp-pubsub]
              Rodrigues-Natal, A., Ermagan, V., Cabellos, A., Barkai,
              S., and M. Boucadair, "Publish/Subscribe Functionality for
              LISP", June 2021, <https://datatracker.ietf.org/doc/draft-
              ietf-lisp-pubsub/>.

   [draft-kowal-lisp-policy-distribution]
              Kowal, M., Portoles, M., Jain, A., and D. Farinacci, "LISP
              Transport for Policy Distribution", September 2021,
              <https://datatracker.ietf.org/doc/draft-kowal-lisp-policy-
              distribution/>.

   [draft-li-dyncast-architecture]
              Li, Y., Iannone, L., Trossen, D., and P. Liu, "Dynamic-
              Anycast Architecture", February 2021,
              <https://datatracker.ietf.org/doc/draft-li-dyncast-
              architecture/>.

   [draft-liu-dyncast-ps-usecases]
              Liu, P., Willis, P., and D. Trossen, "Dynamic-Anycast
              (Dyncast) Use Cases; Problem Statement", February 2021,
              <https://datatracker.ietf.org/doc/draft-liu-dyncast-ps-
              usecases/>.

   [draft-liu-dyncast-reqs]
              Liu, P., Willis, P., and D. Trossen, "Dynamic-Anycast
              (Dyncast) Requirements", February 2021,
              <https://datatracker.ietf.org/doc/draft-liu-dyncast-
              reqs/>.

   [draft-rodrigueznatal-lisp-multi-tuple-eids]
              Rodrigues-Natal, A., Cabellos-Aparicio, A., Barkai, S.,
              Ermagan, V., Lewis, D., Maino, F., and D. Farinacci, "LISP
              support for Multi-Tuple EIDs", October 2021,
              <https://datatracker.ietf.org/doc/draft-rodrigueznatal-
              lisp-multi-tuple-eids/>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", RFC 2119, March 1997,
              <https://datatracker.ietf.org/doc/rfc2119/>.

   [RFC6830]  Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The
              Locator/ID Separation Protocol (LISP)", RFC 6830, January
              2013, <https://datatracker.ietf.org/doc/rfc6830/>.

Authors' Addresses





Sun & Kim                Expires 30 October 2022               [Page 11]


Internet-Draft                LISP Anycast                    April 2022


   Kyoungjae Sun
   ETRI
   218, Gajeong-ro, Yuseung-gu
   Dajeon
   34065
   Republic of Korea
   Phone: +82 10 3643 5627
   Email: kjsun@etri.re.kr


   Younghan Kim
   Soongsil University
   369, Sangdo-ro, Dongjak-gu
   Seoul
   06978
   Republic of Korea
   Phone: +82 10 2691 0904
   Email: younghak@ssu.ac.kr

































Sun & Kim                Expires 30 October 2022               [Page 12]