<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e., [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info"
     docName="draft-wu-savnet-inter-domain-problem-statement-00"
     ipr="trust200902">
  <front>
    <title abbrev="Inter-domain SAVNET Problem Statement">Source Address
    Validation in Inter-domain Networks (Inter-domain SAVNET) Gap Analysis,
    Problem Statement and Requirements</title>

    <author fullname="Jianping Wu" initials="J." surname="Wu">
      <organization>Tsinghua University</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <email>jianping@cernet.edu.cn</email>

        <uri/>
      </address>
    </author>

    <author fullname="Dan Li" initials="D." surname="Li">
      <organization>Tsinghua University</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

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

        <email>tolidan@tsinghua.edu.cn</email>
      </address>
    </author>

    <author fullname="Lancheng Qin" initials="L." surname="Qin">
      <organization>Tsinghua University</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <email>qlc19@mails.tsinghua.edu.cn</email>

        <uri/>
      </address>
    </author>

    <author fullname="Mingqing Huang" initials="M." surname="Huang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <email>huangmingqing@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Nan Geng" initials="N." surname="Geng">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <email>gengnan@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="10" month="July" year="2022"/>

    <!---->

    <keyword/>

    <abstract>
      <t>Source Address Validation in Inter-domain Networks (Inter-domain
      SAVNET) focuses on narrowing the technical gaps of existing source
      address validation (SAV) mechanisms in inter-domain scenarios. This
      document provides a gap analysis of existing SAV efforts, describes the
      problem statement based on the analysis results, and concludes the
      requirements for improving inter-domain SAV.</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 RFC 8174 <xref
      target="RFC8174"/>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>Source address validation in inter-domain networks (Inter-domain
      SAVNET) is vital to mitigate source address spoofing between ASes.
      Inter-domain SAV is essential to the Internet security <xref
      target="RFC5210"/>. Many efforts have been taken on the tasks of
      inter-domain SAV.</t>

      <t>Ingress filtering <xref target="RFC2827"/> <xref target="RFC3704"/>
      is a typical method of inter-domain SAV. Strict uRPF <xref
      target="RFC3704"/> reversely looks up the FIB table and requires that
      the valid incoming interface must be the same interface which would be
      used to forward traffic to the source address in the FIB table.
      Feasible-path uRPF (FP-uRPF) <xref target="RFC3704"/>, taking a looser
      SAV than strict uRPF, is designed to add more alternative valid incoming
      interfaces for the source address. To be more flexible about
      directionality, RFC8704 <xref target="RFC8704"/> recommends that i) the
      loose uRPF method which loses directionality completely SHOULD be
      applied on lateral peer and transit provider interfaces, and that ii)
      the Enhanced FP-uRPF (EFP-uRPF) method with Algorithm B, looser than
      strict uRPF, FP-uRPF, and EFP-uRPF with Algorithm A, SHOULD be applied
      on customer interfaces. Routers deploying EFP-uRPF accept a data packet
      from customer interfaces only when the source address of the packet is
      contained in that of the customer cone.</t>

      <t>Despite the diversity of inter-domain SAV mechanisms, there are still
      some points that are underconsidered but important for enhancing
      Internet security. Moreover, in the currently focused SAV work scope,
      these mechanisms may lead to improper permit or improper block problems
      in some scenarios.</t>

      <t>This document does an analysis of the existing inter-domain SAV
      mechanisms and answers: i) what are the technical gaps, ii) what are the
      major problems needing to be solved, and iii) what are the potential
      directions for further enhancing inter-domain SAV.</t>
    </section>

    <section title="Terminology">
      <t>SAV: Source Address Validation, i.e., validating the authenticity of
      a packet's source IP address.</t>

      <t>SAV rule: The filtering rule generated by inter-domain SAV mechanisms
      that determines valid incoming interfaces for a specific source
      prefix.</t>

      <t>SAV table: The data structure that stores SAV rules on the data
      plane. The router queries its local SAV table to validate the
      authenticity of source addresses.</t>

      <!-- <t>Allowlist mode: Data-plane validation mode that the packets with
      invalid incoming interfaces or with unknown source prefixes (not appear
      in SAV rules) will be discarded directly.</t>-->

      <!-- non-allowlist mode: unknown packets are permitted-->

      <t>Improper block: Cases when packets with legitimate source addresses
      are improperly blocked.</t>

      <t>Improper permit: Cases when packets with spoofed source addresses are
      improperly permitted.</t>
    </section>

    <section title="Gap Analysis">
      <!-- what is the index of this section: drawbacks, solutions, or scenarios -->

      <section title="Weak Downstream Checking">
        <t>Existing inter-domain SAV mechanisms are diverse and designed for
        different scenarios. However, some points are underconsidered and
        induce vulnerabilities to source address anti-spoofing work.</t>

        <t>Ingress filtering mechanisms like strict uRPF are only recommended
        to be implemented at the edge of single-homed stub ASes. This kind of
        implementation aims to prevent the deployed network from sending
        source address spoofed packets to attack outside ASes, but not to
        protect the deployed network from externally injected attacks.</t>

        <t>EFP-uRPF can be implemented at non-stub ASes, but it is only
        recommended at customer interfaces due to its accuracy limitations.
        While at provider and peer interfaces, loose uRPF is recommended. It
        is essentially performing ingress filtering at a higher aggregation
        point, which aims to restrain the behavior of ASes in the customer
        cone, not to protect ASes in the customer cone from externally
        injected attacks.</t>

        <t><figure>
            <artwork align="center"><![CDATA[
                  +----------+
  Attacker(P4') +-+  AS3(P3) |
                  +----------+
                       |
                 (P2C) | 
                       |
                  +----v-----+
                  |  AS4(P4) |-+Victim
                  +/\+----+/\+
                   /        \
                  /          \ 
           (C2P) /            \ (C2P)
         +----------+       +----------+
         |  AS1(P1) |       |  AS2(P2) +-+Server
         +----------+       +----------+
  
 P4' is the spoofed source prefix P4 by the attacker 
 which is attached to AS3 

 Figure 1: A reflection attack scenario
]]></artwork>
          </figure></t>

        <t>Figure 1 shows a reflection attack scenario. AS 3 is the provider
        of AS 4. AS 4 is the provider of AS 1 and AS 2. Strict
        uRPF/FP-uRPF/EFP-uRPF are deployed at AS 4's customer interfaces, and
        loose uRPF is implemented at AS 4's provider interface. Assume a
        reflection attacker is attached to AS 3. It sends packets spoofing P4
        to the server located in AS 2 for attacking the victim in AS 4.
        However, this attack cannot be successfully blocked though AS 4 has
        deployed inter-domain SAV.</t>
      </section>

      <section title="Underperforming Upstream Checking">
        <t>Although, as mentioned above, existing inter-domain SAV mechanisms
        take a relatively strict SAV for upstream, they may fail in performing
        proper SAV in some typical cases.</t>

        <section title="NO_EXPORT in BGP Advertisement">
          <t>Figure 2 presents an inter-domain scenario where the above
          inter-domain SAV mechanisms fail. AS 1 and AS 2 are two customer
          ASes of AS 4. AS 3 is the common customer of AS 1 and AS 2. AS 5 is
          the lateral peer of AS 4. All arrows in Figure 2 represent BGP
          advertisements. AS 1 owns prefix P1 and advertises it to AS 4. AS 2
          owns prefix P2 and AS 5 owns prefix P5. P2 and P5 are also
          advertised to AS 4 through BGP. AS 3 owns prefix P3 and advertises
          it to AS 1 and AS 2, respectively. After receiving the route for
          prefix P3 from AS 3, AS 2 propagates this route to AS 4.
          Differently, AS 1 does not propagate the route for prefix P3 to AS
          4, since AS 3 adds the NO_EXPORT community attribute in the BGP
          advertisement destined to AS 1. In the end, AS 4 only learns the
          route for prefix P3 from AS 2.</t>

          <t>If AS 4 runs strict uRPF/FP-uRPF/EFP-uRPF with algorithm A at
          customer interfaces, packets with source addresses of P3 are
          required to arrive only from AS 2. When AS 3 sends packets with
          legitimate source addresses of prefix P3 to AS 4 through AS 1, AS 4
          will improperly block these packets.</t>

          <t>Besides the NO_EXPORT case above, there are also many route
          filtering policies that can result in interruption of BGP
          advertisement and may lead to improper block problems of existing
          inter-domain SAV mechanisms.</t>

          <figure>
            <artwork align="center"><![CDATA[
  +----------+ P5[AS 5] +-----------------+
  |   AS 5   +---------->       AS 4      |
  +----+-----+  (P2P)   +-+/\+-------+/\+-+
       |                  /           \
       P5                /             \  P2[AS 2]
                P1[AS 1]/(C2P)     (C2P)\ P3[AS 2 AS 3]
                       /                 \
                      /                   \
            +----------------+    +----------------+
       P1---+      AS 1      |    |      AS 2      +---P2
            +--------/\------+    +-------/\-------+
                       \                   /
                P3[AS 3]\(C2P)       (C2P)/P3[AS 3]
                NO_EXPORT\               /
                        +-----------------+
                        |       AS 3      +---P3
                        +-----------------+

    Figure 2: Interrupted BGP advertisement caused by NO_EXPORT
  ]]></artwork>
          </figure>
        </section>

        <section title="Spoofing within Customer Cone">
          <t>To mitigate the improper block problem, EFP-uRPF with algorithm B
          is recommended in RFC8704. It allows packets with source addresses
          of the customer cone to enter from any customer interfaces to avoid
          potential improper block problems resulted by interrupted BGP
          advertisement. However, another vulnerability is imported. Although
          EFP-uRPF with algorithm B can prevent ASes inside the customer cone
          from using source addresses of ASes outside the customer cone, it
          sacrifices the directionality of traffic from different customers,
          which will lead to improper permit problems.</t>

          <t>In Figure 2, assume AS 4 implements EFP-uRPF with algorithm B at
          customer interfaces. Under EFP-uRPF with algorithm B, AS 4 will
          generate SAV rules with legitimate P1, P2, and P3 at both customer
          interfaces. When the attacker in AS 1 spoofs source address of AS 2,
          AS 4 will improperly permit these packets with spoofed source
          addresses of prefix P2. The same also applies when the attacker in
          AS 2 forges prefix P1. That is to say, EFP-uRPF algorithm B cannot
          prevent source address spoofing between ASes of the customer
          cone.</t>
        </section>

        <section title="Direct Server Return (DSR) Scenario">
          <t>Anycast is a network addressing and routing methodology. An
          anycast IP address is shared by devices in multiple locations, and
          incoming requests are routed to the location closest to the sender.
          Therefore, anycast is widely used in Content Delivery Network (CDN)
          to improve the quality of service by bringing the content to the
          user as soon as possible. In practice, anycast IP addresses are
          usually announced only from some locations with a lot of
          connectivity. Upon receiving incoming requests from users, requests
          are then tunneled to the edge locations where the content is.
          Subsequently, the edge locations do direct server return (DSR),
          i.e., directly sending the content to the users. To ensure that DSR
          works, servers in edge locations must send response packets with
          anycast IP address as the source address. However, since edge
          locations never advertise the anycast prefixes through BGP, an
          intermediate AS with strict uRPF/FP-uRPF/EFP-uRPF may improperly
          block these response packets.</t>

          <figure>
            <artwork align="center"><![CDATA[                  
                  +----------+
  Anycast Server+-+  AS3(P3) |
                  +----------+
                       |
                 (P2C) | P3[AS3]
                       |
                  +----v-----+
                  |   AS4    |
                  +/\+----+/\+
                   /        \
          P1[AS1] /          \ P2[AS2]
           (C2P) /            \ (C2P)
       +----------+          +----------+
 User+-+  AS1(P1) |          |  AS2(P2) +-+Edge Server
       +----------+          +----------+
  
 P3 is the anycast prefix and is only advertised from AS3

 Figure 3: A Direct Server Return (DSR) scenario
]]></artwork>
          </figure>

          <t/>

          <t>Figure 3 shows a specific DSR scenario. The anycast IP prefix
          (i.e., prefix P3) is only advertised from AS 3 through BGP. Assume
          AS 3 is the provider of AS 4. AS 4 is the provider of AS 1 and AS 2.
          When users in AS 1 send requests to the anycast destination IP, the
          forwarding path from users to anycast servers is AS 1 -&gt; AS 4
          -&gt; AS 3. Anycast servers in AS 3 receive the requests and then
          tunnel them to the edge servers in AS 2. Finally, the edge servers
          send the content to the users with source addresses of prefix P3.
          The reverse forwarding path is AS 2 -&gt; AS 4 -&gt; AS 1. Since AS
          4 never receives routing information for prefix P3 from AS 2, strict
          uRPF/feasible uRPF/EFP-uRPF algorithm A/EFP-uRPF algorithm B at AS 4
          will improperly block the response packets from AS 2.</t>

          <t/>
        </section>
      </section>
    </section>

    <section title="Problem Statement">
      <section title="Limitation in Accuracy">
        <t>High accuracy, i.e., avoiding improper block problems while trying
        best to reduce improper permit problems, is the basic and key problem
        of an SAV mechanism. Existing inter-domain SAV mechanisms have
        accuracy gaps in some scenarios like routing asymmetry induced by
        local BGP policies or ACL redirection rules. Particularly, EFP-uRPF
        takes the RPF list in data-plane, which means the packets from
        customer interfaces with unknown source prefixes (not appear in the
        RPF list) will be discarded directly. Improper block issues will arise
        when legitimate source prefixes are not accurately learned by
        EFP-uRPF. The root cause is that these mechanisms leverage local RIB
        table of routers to learn the source addresses and determine the valid
        incoming interface, which may not match the real data-plane forwarding
        path from the source. It may mistakenly consider a valid incoming
        interface as invalid, resulting in improper block problems; or
        consider an invalid incoming interface as valid, resulting in improper
        permit problems. Essentially, it is impossible to generate an accurate
        SAV table solely based on the router's local information due to the
        existence of asymmetric routes.</t>
      </section>

      <section title="Misaligned Incentive">
        <t>Existing inter-domain SAV mechanisms pay more attention to upstream
        (traffic from customer to provider/peer), resulting in weak source
        address checking of downstream (traffic from provider/peer to
        customer). The deployed network is still vulnerable to reflection
        attack, which is considered the most harmful source address spoofing
        attack, from other networks. Besides, "strict upstream but weak
        downstream checking" makes the benefits of deploying SAV flow to the
        rest of the Internet, but not to the deployed network itself. This
        will harm the incentive of ASes deploying SAV.</t>
      </section>
    </section>

    <section title="Requirements">
      <t>Inter-domain SAVNET focuses on narrowing the technical gaps of
      existing inter-domain SAV mechanisms. The architecture of inter-domain
      SAVNET should satisfy the following requirements.</t>

      <section title="Accurate Path Discovery">
        <t>To guarantee the accuracy of SAV, the AS should learn the real
        data-plane forwarding path from each source. Incomplete path discovery
        will result in improper block problems (e.g., in asymmetric routing
        scenarios), while including unused paths will lead to improper permit
        problems. Some other path discovery mechanisms should be imported as
        an addition to the method based on RIB.</t>
      </section>

      <section title="All-round Protection">
        <t>It is desired that downstream are under the same SAV criteria as
        upstream and that local SAV-enabled AS/cone are also protected well
        (e.g., protected from reflection attacks). It would be easy to achieve
        perfect all-round protection supposing SAV is fully deployed, but,
        unfortunately, it is improbable in the recent future. Even so, efforts
        are needed to narrow the gaps as possible.</t>
      </section>

      <section title="Incremental Deployment and Incentive">
        <t>Good incentive is also an essential requirement of inter-domain SAV
        mechanisms. It would be attractive if the networks deployed with SAV
        mechanisms are protected from source address spoofing attacks instead
        of only providing protection to others.</t>
      </section>
    </section>

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

    <section title="Acknowledgments">
      <t>TBD</t>
    </section>
  </middle>

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

      <?rfc include='reference.RFC.3704'?>

      <?rfc include='reference.RFC.8704'?>

      <?rfc include='reference.RFC.2827'?>

      <?rfc include='reference.RFC.5210'?>
    </references>
  </back>
</rfc>
