<?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="std" docName="draft-gu-grow-bmp-route-leak-detection-06"
     ipr="trust200902">
  <front>
    <title abbrev="Route Leak Detection">BMP for BGP Route Leak
    Detection</title>

    <author fullname="Yunan Gu" initials="Y. " surname="Gu">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <code>100095</code>

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

        <email>guyunan@huawei.com</email>
      </address>
    </author>

    <author fullname="Huanan Chen" initials="H." surname="Chen">
      <organization>China Telecom Co., Ltd.</organization>

      <address>
        <postal>
          <street>109 Zhongshan W Ave</street>

          <city>Guangzhou</city>

          <code>510630</code>

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

        <email>chenhn8.gd@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Di Ma" initials="D." surname="Ma">
      <organization>ZDNS</organization>

      <address>
        <postal>
          <street>4 South 4th St. Zhongguancun</street>

          <city>Beijing</city>

          <region>Haidian</region>

          <code/>

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

        <phone/>

        <facsimile/>

        <email>madi@zdns.cn</email>

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

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

      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <code>100095</code>

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

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

    <author fullname="Shunwan Zhuang" initials="S. " surname="Zhuang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <code>100095</code>

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

        <email>zhuangshunwan@huawei.com</email>
      </address>
    </author>

    <date day="3" month="March" year="2024"/>

    <abstract>
      <t>According to <xref target="RFC7908">Route-Leak Problem
      Definition</xref>, Route leaks refer to the case that the delivery range
      of route advertisements is beyond the expected range. For many current
      security protection solutions, the ISPs (Internet Service Providers) are
      focusing on finding ways to prevent the happening of BGP <xref
      target="RFC4271"/> route leaks. However, the real-time route leak
      detection if any occurs is important as well, and serves as the basis
      for leak mitigation. This document extends the BGP Monitoring Protocol
      <xref target="RFC7854">(BMP)</xref> to provide a routing security scheme
      suitable for ISPs to detect BGP route leaks at the prefix level.</t>

      <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="Terminology">
      <t>BMP: BGP Monitoring Protocol</t>

      <t>BMS: BGP Monitoring Station</t>

      <t>C2P: Customer to Provider</t>

      <t>ISP: Internet Service Provider</t>

      <t>P2C: Provider to Customer</t>

      <t>P2P: Peer to Peer</t>

      <t>RIB: Routing Information Base</t>

      <t>RLP: Route Leak Protection</t>

      <t>RLD: Route Leak Detection</t>
    </section>

    <section title="Introduction">
      <t>RFC7908 <xref target="RFC7908"/> defines "Route Leak" as: A route
      leak is the propagation of routing announcement(s) beyond their intended
      scope, which can result in possible situations such as eavesdropping,
      device overload, routing black hole and so on. More specifically, the
      intended scope of route announcements is usually defined by local route
      filtering/distribution policies within devices. These policies are
      designed to realise the pair-wise peering business relationships between
      ASes (autonomous systems), which include Customer to Provider (C2P),
      Peer to Peer (Peer to Peer), and Provider to Customer (P2C). In a C2P
      relationship, the customer pays the transit provider for traffic sent
      between the two ASes. In return, the customer gains access to the ASes
      that the transit provider can reach, including those which the transit
      provider reaches through its own transit providers. In a P2P
      relationship, the peering ASes gain access to each other's customers,
      typically without either AS paying the other <xref target="Luckie">AS
      Relationships, Customer Cones, and Validation</xref>.</t>

      <t>More precisely, the route leaks we discuss in this draft, referring
      to Type 1, 2, 3, and 4 Route Leaks defined in RFC7908 <xref
      target="RFC7908"/>, can be summarized as: a route leak occurs when a
      route received from a transit provider or a lateral peer is propagated
      to another transit provider or a lateral peer.</t>

      <section title="Actions Against Route Leaks">
        <t>There are several types of approaches against route leak from
        different perspectives. In this draft, we mainly discuss the following
        three types:</t>

        <t><list style="symbols">
            <t>Route leak prevention: The approach to prevent route leak from
            happening. Commonly used methods include inbound/outbound
            prefix/peer/AS filtering policies configured at the ingress/egress
            nodes of ASes per the propagation of BGP routes.</t>

            <t>Route leak detection: The approach to detect the existence of
            route leaks that happen at either the local AS, or upstream AS per
            the propagation of BGP routes. An intuitive way of detecting route
            leak is by checking the business relationship information at both
            the ingress and egress nodes of the local AS along the BGP route
            propagation path with the route leak violation rules defined in
            <xref target="RFC7908">RFC7908</xref>. Thus, it requires the
            knowledge of the actual route propagation trace, as well as the
            resulting business relationship information at the ingress and
            egress nodes. With the above information collected, the analysis
            can be done by the routing device or a centralized server. This
            draft specifies one such method.</t>

            <t>Route leak mitigation: The approach to mitigate route leaks
            that already happened at either the local AS, or upstream AS per
            the propagation of BGP routes. Commonly used methods include
            reject, drop or stop propagating the invalid routes once detected
            the existence of leaks.</t>
          </list>The above mentioned actions can be used alone or in
        combination, depending on the entities (routing devices, network
        manager) that execute the actions, and the relative positions of the
        executing entities from the leaking point (local or downstream).</t>
      </section>

      <section title="Challenges of the Current Actions against Route Leaks">
        <t><xref target="I-D.ietf-idr-bgp-open-policy">Route Leak Prevention
        </xref> updates the BGP Open negotiation process with a new BGP
        capability to exchange the BGP Roles between two BGP speakers, and
        also proposes to use a new BGP attribute, called the iOTC (Internal
        Only To Customer) Path attribute to mark routes according to the BGP
        Roles established in Open Message. The iOTC attribute of the incoming
        route is set at the ingress node of the local AS, and is conveyed with
        the BGP Update to the egress node of the local AS for outbound
        filtering to prevent route leaks in the local AS. This attribute is
        removed at the egress node before the BGP Update is sent to eBGP
        neighbors. For representation simplification, we use iOTC to refer to
        the method specified in <xref
        target="I-D.ietf-idr-bgp-open-policy">Route Leak
        Prevention</xref>.</t>

        <t><xref
        target="I-D.ietf-grow-route-leak-detection-mitigation">Route-Leak
        Detection and Mitigation </xref> describes a route leak detection and
        mitigation solution based on conveying route-leak protection (RLP)
        information in a well-known transitive BGP community, called the RLP
        community. The RLP community helps with detection and mitigation of
        route leaks that happen at the upstream AS (per the BGP routes
        propagation), as an Inter-AS solution. For representation
        simplification, we use RLP to refer to the method specified in <xref
        target="I-D.ietf-grow-route-leak-detection-mitigation">Route-Leak
        Detection and Mitigation </xref>.</t>

        <t>The above two drafts provide solutions for route leak prevention,
        detection and mitigation. To summarize:</t>

        <t><list style="symbols">
            <t>iOTC is used for route leak prevention of the local AS. It does
            not provide the detection or mitigation of route leaks of either
            local As or upstream AS per the BGP routes propagation.</t>

            <t>iOTC is peer/AS-level route leak prevention, due to the fact
            the BGP Role negotiation is peer-level. It does not provide
            prefix-level route leak prevention.</t>

            <t>RLP is used for route leak detection and mitigation of route
            leak that happens in the upstream AS (per the BGP Update
            distribution). It is prefix-level detection and mitigation.</t>
          </list>Thus, there lacks method for local AS route leak
        detection.</t>
      </section>
    </section>

    <section title="Route Leak Detection (RLD) Design Considerations">
      <t>Considering the challenges facing the existing approaches, this draft
      proposes a method called Route Leak Detection (RLD). It utilizes the BGP
      Monitoring Protocol (BMP) to convey the RLD information from to the BMP
      server to realize centralized leak detection. BMP is currently deployed
      by OTT and carriers to monitor the BGP routes, such as monitoring BGP
      Adj-RIB-In using the process defined in <xref
      target="RFC7854">RFC7854</xref>, and monitoring BGP Adj-RIB-Out using
      the process defined in RFC8671 <xref target="RFC8671"/>. On the other
      hand, the RLD information is in fact a representation of the business
      relationships between the local AS and its neighboring AS. It does not
      involve any information disclosure issue regarding third parties. Thus,
      a single ISP can deploy RLD without relying on any information from
      either other ISPs or other third parties.</t>

      <t/>
    </section>

    <section title="BMP Support for RLD">
      <t/>

      <section title="RLD TLV Format">
        <t>A RLD TLV is defined for the BMP Route Monitoring Message.
        Considering that the AS relationships are sometimes per route based
        instead of per peer/AS based, this TLV is appended to each route,
        following the BGP Update Message. The order of placing the RLD TLV
        among other BMP supported TLVs is out of the scope of this draft. The
        TLV format is defined as follows:</t>

        <t><figure>
            <artwork align="left"><![CDATA[ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Type (2 octets)          |     Length (2 octets)         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value(1 octet)|
+-+-+-+-+-+-+-+-+

                       Figure 1: RLD TLV
]]></artwork>
          </figure></t>

        <t><list style="symbols">
            <t>Type (2 octets) = TBD1, the RLD TLV represents the prefix-level
            business relationship between the transmitter AS and the receiver
            AS. The local AS is a transmitter or a receiver, depending on if
            the route is an incoming route from a neighbor AS or an outgoing
            route to a neighbor AS.</t>

            <t>Length (2 octets): Defines the length of the Value filed. It
            SHOULD be set to 0x01, considering the Value field is of 1 octet
            fixed length.</t>

            <t>Value (1 octet): Currently 4 values are defined to represent
            the business relationships, which are specified in Table 1.</t>
          </list></t>

        <t><figure>
            <artwork align="left"><![CDATA[+-------+-------------+
| Value | Business    |
|       | Relationship|
+---------------------+
|   0   |  P2C        |
|   1   |  C2P        |
|   2   |  P2P        |
|   3   |  I2I        |
+-------+-------------+

Table 1: Business relationship value
]]></artwork>
          </figure></t>
      </section>

      <section title="RLD TLV Usage">
        <t>The RLD TLV, presenting the business relationship between the
        neighbor AS and the local AS of the incoming route, SHOULD be
        prepended to the Adj-RIB-In at the ingress node of the local AS. The
        RLD TLV, representing the business relationship between the local AS
        and the neighbor AS of the outgoing route, SHOULD also be prepended to
        the Adj-RIB-Out at the egress node of the local AS. The BMP server, by
        analyzing the above two RLD TLVs of the same route, can use the rules
        defined in <xref target="RFC7908">RFC7908</xref> to detect the
        existence of any route leak. As example is shown in Figure 2. <figure
            align="left">
            <artwork><![CDATA[                            +------------+
                            | BMP server |
                     +------>      +     +<-------+
                     |      | RLD server |        |
                     +      +------------+        +
             BMP Adj_RIB_In:                 BMP Adj_RIB_Out:
             (AS2 --> AS1)                   (AS1 --> AS4)
              P2C                            C2P
                     |                            +
                  ***|*********************       |
                  *  |                    *     "Send Route
   Route A        *  |       AS1         +*+---> A to AS3"
   +-->           *  |                  + *       |  +-----+
   +-----+        *  +---+         +---+  *+P2C+-----+ AS3 +----+ ...
+--+ AS2 +---+P2C+*+-+ R1+---------+ R2|  *       |  +-----+
   +-----+        *  +-+-+\        +---+  *       |
                  *    |   \\    //  |\   *       |
                  *    |     \\//    | \  *     "Do not send
                  *    |     //\     |  \+-----> Route A to AS4"
                  *    |   //   \\   |    *       |  +-----+
                  *    |  /       \  |    *+C2P+-----+ AS4 +----+ ...
                  *  +-+-+         +-+-+  *       |  +-----+
                  +--+ R3+---------+ R4+----------+
                  *  +---+         +---+  *
                  *                       *
                  *************************

            Figure 2: RLD depolyment by a single ISP

]]></artwork>
          </figure>As shown in Figure 2, with the RLD TLV attached to each
        Route Monitoring Message, the RLD server (also working as the BMP
        server) combines the BMP Adj_RIB_In message collected from R1 and the
        BMP Adj_RIB_Out message collected from R4 to decide if there's a route
        leak. For example, if the RLD TLV in R1's Adj_RIB_In message indicates
        a value of "0", and the RLD TLV in R4's Adj_RIB_Out message indicates
        a value of "1", then the RLD server knows there exists a route
        leak.</t>
      </section>

      <section title="Coordination with iOTC and RLP ">
        <t>RLD can be used as a complementary method to the existing methods
        against route leaks. More specifically, RLD can coordination with both
        iOTC and RLP.</t>

        <t><list style="symbols">
            <t>With the settlement of the iOTC draft, the iOTC attribute is
            naturally included in the BGP Update and can be collected to the
            BMP server without BMP extension. With the RLD TLV collected also
            by BMP (more specifically, the iBGP Adj-RIB-In of the ingress
            node), the BMP server can do validate the consistency of the iOTC
            attribute with the RLD. If contradiction detected, the BMP server
            may further check the bussiness contract for the actual business
            relationship.</t>

            <t>For special prefixes that does not obey the peer/AS level
            business relationship negotiated through BGP Open Message, the BMP
            server can use the RLD TLV to detect such routes since the RLD TLV
            is set at prefix level.</t>

            <t>For devices that do not support RLP, using RLD to collect the
            BGP routes, which conveys the RLD information from upstream ASes,
            allows the BMP server to detect and mitigate the route leaks that
            happen in the upstream AS. In other words, the detection and
            mitigation process can be also done in the BMP server, should the
            BMP server collects the BGP Update messages at the ingress or
            egress nodes.</t>
          </list></t>
      </section>
    </section>

    <section title="Acknowledgements">
      <t/>
    </section>

    <section title="Contributors">
      <t>Haibo Wang</t>

      <t>Huawei</t>

      <t>Email: rainsword.wang@huawei.com</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document defines the following new BMP Route Monitoring message
      TLV type (Section 4.1):</t>

      <t><list style="symbols">
          <t>Type = TBD1, the RLD TLV represents the prefix-level business
          relationship between the transmitter AS and the receiver AS. The
          local AS is a transmitter or a receiver, depending on if the route
          is an incoming route from a neighbor AS or an outgoing route to a
          neighbor AS.</t>
        </list></t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>It is not believed that this document adds any additional security
      considerations.</t>
    </section>
  </middle>

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

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

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

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

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

      <?rfc include='reference.I-D.ietf-idr-bgp-open-policy'?>

      <?rfc include='reference.I-D.ietf-grow-route-leak-detection-mitigation'?>
    </references>

    <references title="Informative References">
      <reference anchor="Luckie">
        <front>
          <title>AS Relationships, Customer Cones, and Validation</title>

          <author fullname="Matthew Luckie, Matthew Luckie, Amogh Dhamdhere, Vasileios Giotsas, kc claffy">
            <organization/>
          </author>

          <date day="23" month="October" year="2013"/>
        </front>
      </reference>

      <reference anchor="Siddiqui">
        <front>
          <title>Route Leak Detection Using Real-Time Analytics on local BGP
          Information</title>

          <author fullname="M. S. Siddiqui, D. Montero, M. Yannuzzi, R. Serral-Graci`a, X. Masip-Bruin, W. Ramirez">
            <organization/>
          </author>

          <date year="2014"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
