<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-du-intarea-service-routing-in-mec-02"
     ipr="trust200902">
  <front>
    <title abbrev="Service Routing in MEC">Service Routing in Multi-access
    Edge Computing</title>

    <author fullname="Zongpeng Du" initials=" Z." surname="Du">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>No.32 XuanWuMen West Street</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>duzongpeng@foxmail.com</email>
      </address>
    </author>

    <date month="" year=""/>

    <area>Internet Area</area>

    <workgroup>Network Working Group</workgroup>

    <keyword>MEC, Service Routing, QUIC</keyword>

    <abstract>
      <t>This document introduces a service routing mechanism in the scenario
      of Multi-access Edge Computing, in which the server's preferred address
      mechanism in QUIC can be used.</t>
    </abstract>

    <note title="Requirements Language">
      <t>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 <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>The operators are deploying Multi-access Edge Computing (MEC) to
      provide services with lower latency to their users. Comparing to
      accessing service in the clouds, the MECs can provide service much
      nearer to the users.</t>

      <t>However, in the current architecture of Internet, we need to send a
      DNS query to get the IP address of the service firstly, and then access
      the service <xref target="RFC1035"/>. It is not the optimal solution in
      the MEC scenarios which are sensitive to the latency of service
      accessing. In this document, we introduce a mechanism that can access
      the service directly without the DNS procedure.</t>

      <t>In the 5G architecture, a UE (User Equipment) needs to connect to a
      UPF (User Plane Function) working as a gateway by using a tunnel, and
      then access service via the destination IP address.</t>

      <t>In the scenarios of MEC, the service may be accessed within the MEC,
      meanwhile the MEC also provides a UPF Function for the UEs. Therefore,
      in fact, the service access takes place in a limited domain <xref
      target="RFC8799"/>. In this limited domain, we can use a specific IP
      address to directly access the service.</t>

      <t/>
    </section>

    <section title="Proposed Mechanism Description">
      <t>In the proposed mechanism, a UE should have a session with the UPF in
      the MEC. Also, the UE should be aware that it can access the service
      more quickly within the MEC if the service is available in the MEC. The
      proposed mechanism is described briefly as below.</t>

      <t>Firstly, the UE sends a normal DNS query to the attached MEC if it
      wants to access a service, such as "www.local-weather.com". Meanwhile,
      it can send a connection establishment request for the service to the
      attached MEC, and try to establish a TCP/QUIC connection directly. In
      the request, the destination IP address is a specific IP made by the UE
      itself by hashing the domain name. </t>

      <t>Secondly, the UE may establish the connection successfully by using
      the specific IP address, and get access to the service bypassing the DNS
      procedure. It will take place when the UE receives the response of the
      connection establishment request before receiving the response of the
      normal DNS query. If the DNS response returns firstly, the UE will do
      the normal service access procedure. It means that if the UE fails to
      establish a connection using the specific IP firstly, the UE can wait
      for the normal destination IP address received from the DNS
      procedure.</t>

      <t>In this mechanism, the specific IP address can contain some
      information about the service, so we call it service routing in this
      document. The specific IP address is called the Service Routing IP
      address.</t>
    </section>

    <section title="Service Routing IP Address">
      <t>There are several options for the Service Routing IP address. The
      address has the same structure as the IPv6 address defined in <xref
      target="RFC4291"/>. </t>

      <t>In the first option, we can assume that the UE can receive an MEC
      prefix for the service routing in the procedure of establishing the
      session between the UE and the UPF in the MEC. For example, the length
      of an MEC prefix is 64 bits, and the length of the hashed domain name is
      also 64 bits. In the MEC, the server of the service should use the same
      hash algorithm to generate the Service Routing IP address, and the 128
      bits IPv6 address should be routed correctly within the MEC. Hence, the
      MEC works like a virtual network node containing services, with the MEC
      prefix as a Location, and the hashed domain name as a Function.</t>

      <t>In the second option, we can use a ULA IP address (Unique Local
      Address) for the Service Routing IP address <xref target="RFC8799"/>.
      The procedure is similar to the first option, but the Service Routing IP
      address becomes the format of &lt;MEC_ULA_Preifx:
      Hashed_Domain_Name&gt;. The MEC_ULA_Prefix contains a specific
      subnet-ID.</t>

      <t>In the last option, we can use all the 128 bits as the
      Hashed_Domain_Name. In this situation, the UE does not need to receive a
      specific prefix in advanced, and all the services in different MECs have
      the same IP address for the same service to support this quick
      access.</t>

      <t/>
    </section>

    <section title="Requirements of Service Routing Network Nodes">
      <t>In the MEC, the network should support forwarding the Service Routing
      IP. In the client and server, they should support the binding of the
      Service Routing IP and the traditional DA IP. The value of the Service
      Routing IP exists mainly in the period of establishing the connection.
      After the connection is established, we can use the normal DA IP
      instead.</t>

      <t>In the mechanism of this document, the MEC will receive a normal DNS
      query, and a connection establishment request for the service based on
      service routing. The MEC will try to establish the connection directly
      with the UE. Meanwhile, the MEC also does the normal DNS procedure for
      the UE. They take place independently, so that after the procedure of
      DNS, the MEC will response a target IP address to the UE no matter
      whether the connection establishment successes or fails by using the
      Service Routing IP address.</t>

      <t/>
    </section>

    <section title="Server's Preferred Address in QUIC">
      <t>In QUIC <xref target="RFC9000"/>, there is a "Server's Preferred
      Address" mechanism. Perhaps it can help the DA changing process. QUIC
      allows servers to accept connections on one IP address and attempt to
      transfer these connections to a more preferred address shortly after the
      handshake.</t>

      <t>We assume that the mechanism about the "Server's Preferred Address"
      is supported both in the client and server, and the connection is a QUIC
      connection. Thus, the UE can use the hashed DA address to establish the
      connection, and after that, use the Server's Preferred Address instead.
      In this situation, the Server's Preferred Address should be the same as
      the normal DA IP address obtained in the DNS process mentioned
      before.</t>

      <t/>
    </section>

    <section title="HASH Conflict between Services in MEC">
      <t>At the beginning of the adoption of the mechanism, we do not think
      there would be too many essential services requiring this ultimate user
      experience, so that we assume that there would be no Hash conflict
      between the services. Besides, if there is any conflict in the MEC, the
      MEC can find it before deploying the service.</t>

      <t>If the mechanism is adopted widely, and conflict exists between
      hashed domain names in the MEC, we can enable the mechanism only on the
      most essential service. Another option is to change the HASH algorithm
      that is running on the clients and severs to make a better Hash
      result.</t>

      <t/>
    </section>

    <section title="Service Routing for Fixed Clients">
      <t>MEC can also support accessing via fixed clients. In this situation,
      the BNG (Broadband Network Gateway) as the gateway of the client can
      work similarly to the UPF. A tunnel between the BNG and the MEC may be
      needed, and the MEC prefix can be obtained in the procedure of
      authentication. In the authentication of a fixed client, a more static
      session can be established because the client will not move.</t>

      <t/>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>TBD.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.8799"?>

      <?rfc include="reference.RFC.9000"?>

      <?rfc include="reference.RFC.4291"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.1035"?>
    </references>
  </back>
</rfc>
