<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.8) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-yang-rtgwg-dns-driven-traffic-steering-00" category="std" consensus="true" submissionType="IETF" xml:lang="en">
  <front>
    <title abbrev="DNS driven traffic steering">DNS driven traffic steering</title>

    <author initials="F." surname="Yang" fullname="Feng Yang">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>CN</country>
        </postal>
        <email>yangfeng@chinamobile.com</email>
      </address>
    </author>

    <date year="2025" month="December" day="12"/>

    <area>RTG</area>
    <workgroup>RTGWG</workgroup>
    

    <abstract>


<?line 28?>

<t>The Internet provides best-effort service, and for users with quality assurance requirements, selecting an Internet acceleration service provider to gareentee network access quality is a common choice. This document proposes a possible mechanism for leveraging DNS to automatically steer application’s traffic onto an SRv6 network.</t>



    </abstract>



  </front>

  <middle>


<?line 32?>

<section anchor="introduction"><name>Introduction</name>

<t>The Internet provides best-effort service, and for users with quality assurance requirements, selecting an ISAP (Internet Acceleration Service Provider) to gareentee network access quality is a common choice. This document proposes a possible mechanism for leveraging DNS to automatically steer application’s traffic onto an SRv6 network.</t>

<t>As shown in <xref target="framework"/>, IASPs typically deploy an Overlay network plane to accelerate user traffic. This network plane consists of PoPs (Points of Presence) and routers, where PoPs are responsible for accessing user traffic and connecting to CSPs (Content Service Provider). Routers and PoPs are usually virtualized devices deployed in the cloud. Typically, when SRv6 is deployed in this network plane for path programming, ACLs are required to classify user traffic and steer it onto SRv6 Policies. Due to the need for extensive ACLs configuration manually, it is quite challenging to apply this approach on a large scale. Thus,  how to efficiently steer user traffic becomes an interesting problem.</t>

<section anchor="requirements-language"><name>Requirements Language</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
</section>
<section anchor="terminology"><name>Terminology</name>

<t>CSP: Content Service Provider, provides content-related services, e.g. gaming, video services.</t>

<t>IASP: Internet Acceleration Service Provider, provides gareenteed internet network access quality for latency, loss sensitive applications, e.g. gaming、video services.</t>

<t>PoP: Points of Presence, network forwarding element in order to accessing user traffic or exchange traffic with internet service provider.</t>

</section>
<section anchor="dns-driven-traffic-steering"><name>DNS driven traffic steering</name>

<t>On IASP perspective, the SRv6 Policy is defined by &lt;source, destination, Color&gt;. To achieve differentiated transport, it is necessary to map applications to the corresponding SRv6 Policy.</t>

<t>On user application perspective, the first interaction with network would be DNS request, which will finally resolve the domain name to destination address.
The idea is to get IASP’s network snoop the user DNS interaction process in order to steer the user’s traffic with that destination to IASP’s network. Thereby achieving network quality of service assurance.</t>

<t>Certainly, the IASP needs to configure the mapping between domain names and SRv6 policy colors on the controller in advance. <xref target="framework"/> illustrates the necessary network components.</t>

<t>User: DNS server <bcp14>SHOULD</bcp14> be set to IASP’s uPoP.</t>

<t>uPoP: For accessing user. It is endpoint of SRv6 policy. DNS relay is needed. It <bcp14>SHOULD</bcp14> check whether the domain name in the DNS request from application is subscribed by the user. Then it <bcp14>SHOULD</bcp14> relay the DNS request to DNS proxy.</t>

<t>cPoP: For connecting to CSP. It is endpoint of SRv6 policy. It will enable NAT for user traffic to ensure that the downstream traffic passes through the cPoP.</t>

<t>DNS Proxy: it will handle the DNS resolution from uPoP. There is one extension for DNS proxy. Once the domain name gets resolved, it <bcp14>SHOULD</bcp14> send domain name, destination address of DNS response packet and application destination address list inside the DNS response packet to controller via DNS-response notification.</t>

<t>The DNS-response notification DNS proxy sent to the controller can be defined by json, xml. Below is json example:</t>

<figure><artwork align="center" name="dns to controller message"><![CDATA[
{
  "message": {
    "application_destinations": [addr1, addr2],
    "dns_response_destination": "addr3",
    "domain_name": "example.com"
  }
}

]]></artwork></figure>

<t>Controller: once received DNS-response notification, it will resolve &lt;source, destination, color&gt; and then get the corrsponding SRv6 policy programmed to uPoP. The source is destination address of DNS response packet in the notification, because it is the address of the uPoP. The ISAP definitely knows the CSP’s domain name and service addresses. So the cPoP connected to the CSP can be resolved by looking up application destination address. The application destinations and the DNS response destination address can be used in ACL in upstream and downstream SRv6 policy steering direction, respectively. Now it is ready to find or create an existing SRv6 policy. And then program the steering rule to cPoP and uPoP. For sure, the ACL on both PoPs <bcp14>SHOULD</bcp14> count the number of packets it has been steered, and that can be used as ACL aging mechanism.</t>

<t>Note, with this proposed mechanism, there will be a short period of time for the steering ACL policies get programmed. In this period, the IASP will only provide best effort service.</t>

<figure anchor="framework" title="Architecture"><artwork align="center" type="ascii-art" name="Architecture"><![CDATA[
       +-----------+       +----------+
       | DNS Proxy |-------|Controller|                            
       +-----------+       +----------+                            
                                 |                                 
           +-------------------------------------------+           
           |                  +-----+                  |           
           |                 /|Rtr3 |\                 |           
           |                / +-----+ \                |           
           |               /           \               |           
  +------+ | +-----+   +-----+       +-----+   +-----+ | +---------+  
  | APP  |-|-|uPoP |---|Rtr1 |-------|Rtr2 |---|cPoP |-|-|   CSP   |  
  +------+ | +-----+   +-----+       +-----+   +-----+ | +---------+  
           |                SRv6 Domain                | 
           +-------------------------------------------+           

]]></artwork></figure>

</section>
<section anchor="IANA"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>
<section anchor="Security"><name>Security Considerations</name>

<t>The security requirements and mechanisms described in <xref target="RFC5625"></xref> also apply to this document.</t>

<t>The DNS Proxy and the controller should be deployed within a protected data center.</t>

<t>To minimize the impact of network attacks on the communication channel between the DNS Proxy and the controller, the DNS Proxy and the controller should not be interconnected via the Internet.</t>

<t>The DNS response should be carefully validated in order to avoid DDoS attack. The falsified DNS response can carry long list of application destination. One mechanism is to record all of the active DNS reqeust on DNS proxy, and only send DNS-response notification to controller ony if the DNS request has been received by the DNS proxy.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC8754">
  <front>
    <title>IPv6 Segment Routing Header (SRH)</title>
    <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
    <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
    <author fullname="S. Previdi" initials="S." surname="Previdi"/>
    <author fullname="J. Leddy" initials="J." surname="Leddy"/>
    <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
    <author fullname="D. Voyer" initials="D." surname="Voyer"/>
    <date month="March" year="2020"/>
    <abstract>
      <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8754"/>
  <seriesInfo name="DOI" value="10.17487/RFC8754"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC5625">
  <front>
    <title>DNS Proxy Implementation Guidelines</title>
    <author fullname="R. Bellis" initials="R." surname="Bellis"/>
    <date month="August" year="2009"/>
    <abstract>
      <t>This document provides guidelines for the implementation of DNS proxies, as found in broadband gateways and other similar network devices. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="152"/>
  <seriesInfo name="RFC" value="5625"/>
  <seriesInfo name="DOI" value="10.17487/RFC5625"/>
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
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
0Ej+AzUIi1u7HQAA

-->

</rfc>

