<?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-01"
     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="26" month="September" 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, BCP 84 <xref target="RFC3704"/><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 under considered 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>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">
      <t>BCP 84 recommends loose uRPF at provider/peer interfaces and EFP-uRPF at customer interfaces. The followings are the gap analysis of these SAV mechanisms. </t>

      <section title="Improper Permit">
        <t>Existing SAV mechanisms may have improper permit problems that the packets with spoofed source addresses are considered as legal. Here are two cases where improper permit will appear. </t>
        
        <section title="Reflection Attack Scenario">
        <t>The first case is at provider or peer interfaces where loose uRPF is deployed. Loose uPRF almost accepts any source address, which fails 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. EFP-uRPF is 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="Spoofing within a Customer Cone">
        <t>The second case is at customer interfaces where EFP-uRPF with algorithm B is deployed. It allows packets with source addresses of the customer cone to enter from any customer interfaces to avoid potential improper block problems that EFP-uRPF with algorithm A may have. However, 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><figure>
            <artwork align="center"><![CDATA[
                  +----------+
                  + AS 3(P3) |
                  +----------+
                       |
                 (P2C) | 
                       |
                  +----v-----+
                  | AS 4(P4) |
                  +/\+----+/\+
                   /        \
                  /          \ 
           (C2P) /            \ (C2P)
          +----------+       +----------+
  Victim+-+ AS 1(P1) |       | AS 2(P2) +-+Attacker
          +----------+       +----------+
  
 P1' is the spoofed source prefix P1 by the attacker 
 which is attached to AS3 

 Figure 2: Spoofing within a customer cone
]]></artwork>
        </figure></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 and P2 at both customer
        interfaces. When the attacker in AS 2 spoofs source address of AS 1,
        AS 4 will improperly permit these packets with spoofed source
        addresses of prefix P1. The same also applies when the attacker in
        AS 1 forges prefix P2. That is to say, EFP-uRPF algorithm B cannot
        prevent source address spoofing between ASes of the customer
        cone.</t>
        </section>
      </section>

      <section title="Improper Block">
        <t>In some cases, existing SAV mechanisms may improperly block the packets with legitimate source addresses. Here are two cases where improper permit will appear. </t>

        <section title="NO_EXPORT in BGP Advertisement">
          <t>Figure 3 presents a NO_EXPORT scenario. AS 1 is the common customer of AS 2 and AS 3. AS 4 is the provider of AS 2. The relationship between AS 3 and AS 4 is customer-to-provider (C2P) or peer-to-peer (P2P). All arrows in Figure 2 represent BGP advertisements. AS 2 owns prefix P2 and advertises it to AS 4 through BGP. AS 3 also advertises its own prefix P3 to AS 4.  AS 1 has prefix P1 and advertises the prefix to the providers, i.e., AS 2 and AS 3. After receiving the route for prefix P1 from AS 1, AS 3 propagates this route to AS 4. Differently, AS 2 does not propagate the route for prefix P1 to AS 4, since AS 1 adds the NO_EXPORT community attribute in the BGP advertisement destined to AS 2. In the end, AS 4 only learns the route for prefix P1 from AS 3.</t>

          <t>Assume that AS 3 is the customer of AS 4. If AS 4 runs EFP-uRPF with algorithm A at customer interfaces, the packets with source addresses of P1 are required to arrive only from AS 3. When AS 1 sends the packets with legitimate source addresses of prefix P1 to AS 4 through AS 2, AS 4
          will improperly block these packets. EFP-uRPF with algorithm B works well in this case. </t>

          <t>Assume that AS 3 is the peer of AS 4. AS 4 will never learn the route of P1 from its customer interfaces. So, no matter EFP-uRPF with algorithm A or that with algorithm B are used by AS 4, there will be improper block problems. </t>

          <t>Besides the NO_EXPORT case above, there are also many route
          filtering policies that can result in interruption of BGP
          advertisement. Improper block may be induced by existing inter-domain SAV mechanisms in such cases, and it is hard to prevent networks from taking these configurations. </t>

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

    Figure 3: Interrupted BGP advertisement caused by NO_EXPORT
  ]]></artwork>
          </figure>
        </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 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 4: A Direct Server Return (DSR) scenario
]]></artwork>
          </figure>

          <t/>

          <t>Figure 4 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, EFP-uRPF algorithm A/EFP-uRPF algorithm B or other existing uRPF-like mechanisms at AS 4 will improperly block the response packets from AS 2.</t>

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

      <section title="Misaligned Incentive">
        <t>Existing SAV mechanisms validate upstream (i.e., the packets from customers to providers) strictly but take a loose validation for downstream (i.e., the packets from providers/peers to customers). Even an AS as well as its provider deploy BCP 84, the AS may still suffer source address spoofing attacks. </t>

        <t>The reflection attack scenario in Figure 1 shows a misaligned incentive case. The attacker connected to AS 3 spoofs the prefix P4 owned by AS 4 and sends attack packets to the server attached to AS 2. The reflection attack succeeds even AS 4 has enabled SAV. </t>

        <t> The scenario in Figure 2 is another example. AS 4 deploying EFP-uRPF with algorithm B cannot prevent source address spoofing within an customer cone. Technical limitations induce inaccurate SAV (particularly improper permit) and further degrade the incentive of deployers. </t>

        <t>A detailed discussion about incentive can be found in <xref target="draft-qin-savnet-incentive-00"/>. </t>
      </section>
    </section>

    <section title="Problem Statement">

      <section title="Inaccurate Validation">
        <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
        BGP route policies or configurations. 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. "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. Misaligned incentive will undermine the motivation of the deployment. </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 SAV">
        <t>SAV rules SHOULD match real data plane paths. Generating SAV rules solely depending on control plane route information (e.g., RIB) results in inaccurate SAV due to the mismatch of control plane path and data plane path. To achieve high accuracy of SAV, an AS SHOULD learn the real incoming direction of each source following the data plane forwarding path. To this end, extra information out of routing information (e.g., RIB or FIB) is needed as a supplement. According to extra information, additional valid incoming interface may be discovered for avoiding improper block, and some interfaces may be removed for reducing improper permit. </t>

        <t>Besides, 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="Direct Incentive">
        <t>SAV mechanisms SHOULD provide direct incentives. 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. The traffic forging these source prefixes SHOULD be blocked as close to the traffic source as possible. To make direct incentive, the accuracy of both upstream SAV and downstream SAV SHOULD be improved. </t>
      </section>

      <section title="Working in Partial Deployment">
        <t>SAV mechanisms MUST provide protection for source addresses even the mechanisms are partially deployed. It is impractical to assume that all the ASes or most of the ASes enable SAV simultaneously. Partial deployment or incremental deployment have to be considered during the work of SAV. </t>
      </section>

      <section title="Acceptable Overhead">
        <t>The overhead of SAV SHOULD be controlled. Any improvement designs for SAV mechanisms SHOULD not overload control plane. Besides, data plane SHOULD not modify packets for simplifying the process of data plane, which keeps same as existing SAV mechanisms. 
        </t>
      </section>

    </section>

    <section title="Inter-domain SAVNET Scope">
      <t>This document focus on the same scope corresponding to existing
      inter-domain SAV mechanisms. Generally, it includes all IP encapsulated
      scenarios:</t>

      <t><list style="symbols">
          <t>Native IP forwarding: including both global routing table
          forwarding and CE site forwarding of VPN;</t>

          <t>IP-in-IP Tunnel (IPsec, GRE, SRv6, etc.): focusing on the
          validation of the outer layer IP address;</t>

          <t>Both IPv4 and IPv6 addresses</t>
        </list>Scope does not include:<list style="symbols">
          <t>Non-IP encapsulation: including MPLS label-based forwarding and
          other non-IP-based forwarding.</t>
        </list></t>
    </section>

    <section title="Security Considerations">
      <t>SAV rules can be generated based on route information (FIB/RIB) or non-route information. If the information is poisoned by attackers, the SAV rules will be false. Lots of legal packets may be dropped improperly or malicious traffic with spoofed source addresses may be permitted improperly. Route security should be considered by routing protocols. Non-route information should also be protected by corresponding mechanisms or infrastructure. If SAV mechanisms or protocols require information exchange, there should be some considerations on the avoidance of message alteration or message injection. </t>
      
      <t>The SAV procedure referred in this document modifies no field of packets. So, security considerations on data-plane is not in the scope of this document. </t>
    </section>

    <section title="IANA Considerations">
      <t>This document does not request any IANA allocations.</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'?>

      <reference anchor="draft-qin-savnet-incentive-00">
        <front>
          <title>The Incentive Consideration for Source Address Validation in Intra-domain and Inter-domain Networks (SAVNET)</title>
          <author fullname="Lancheng Qin" initials="L." surname="Qin"></author>
          <author fullname="Dan Li" initials="D." surname="Li"></author>
          <author fullname="Jianping Wu" initials="J." surname="Wu"></author>
          <date day="15" month="September" year="2022"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
