<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC4271 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY RFC6811 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6811.xml">
<!ENTITY RFC7454 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7454.xml">
<!ENTITY RFC7908 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7908.xml">
<!ENTITY RFC8205 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8205.xml">
<!ENTITY I-D.ietf-idr-bgp-open-policy SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-bgp-open-policy.xml">
<!ENTITY I-D.ietf-idr-route-leak-detection-mitigation SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-route-leak-detection-mitigation.xml">
<!ENTITY I-D.ietf-grow-route-leak-detection-mitigation SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-grow-route-leak-detection-mitigation.xml">
<!ENTITY I-D.ietf-idr-aspath-orf SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-aspath-orf.xml">
]>


<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
	
<rfc category="info" docName="draft-sriram-idr-route-leak-solution-discussion-07" ipr="trust200902">

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="Route Leak Solution Discussion">Design Discussion of Route Leaks Solution Methods</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Kotikalapudi Sriram" initials="K." role="editor" surname="Sriram">
      <organization abbrev="USA NIST">USA National Institute of Standards and Technology</organization>
      <address>
         <postal>
          <street>100 Bureau Drive</street>
          <city>Gaithersburg</city>
          <region>MD</region>
          <code>20899</code>
          <country>United States of America</country>
        </postal>
        <email>ksriram@nist.gov</email>
      </address>
    </author>
<!--
    <author fullname="Alexander Azimov" initials="A." role="editor" surname="Azimov">
<organization abbrev="Qrator Labs">Qrator Labs</organization>
      <address>
         <postal>
          <street>1-Y Magistral'nyy Tupik</street>
          <city>Moskva</city>
          <region>XYZ</region>
          <code>123007</code>
          <country>Russia</country>
        </postal>
        <email>aa@qrator.net</email>
      </address>
    </author>
-->
     
<!--
        <author fullname="Doug Montgomery" initials="D." surname="Montgomery">
      <organization abbrev="USA NIST">USA National Institute of Standards and Technology</organization>
      <address>
        <email>dougm@nist.gov</email>
      </address>
    </author>

	<author fullname="Brian Dickson" initials="B." surname="Dickson">
       <organization></organization>
      <address>
        <email>brian.peter.dickson@gmail.com</email>
      </address>
    </author> 


	<author fullname="Keyur Patel" initials="K." surname="Patel">
       <organization>Arrcus</organization>
      <address>
        <email>keyur@arrcus.com</email>
      </address>
    </author> 

	<author fullname="Andrei Robachevsky" initials="A." surname="Robachevsky">
       <organization>Internet Society</organization>
      <address>
        <email>robachevsky@isoc.org</email>
      </address>
    </author> 
-->


    
    <date year="" />

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>Routing</area>

    <workgroup>IDR Working Group</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>BGP, BGPsec, Route Leak, Route-Leak Mitigation, BGP Security</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>
This document captures the design rationale of the route leaks solution document (see draft-ietf-idr-route-leak-detection-mitigation, draft-ietf-grow-route-leak-detection-mitigation).  The designers needed to balance many competing factors, and this document provides insights into the design questions and their resolution.
   </t>
 
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      
     <t>

This document captures the design rationale of the route leaks solution document <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref> <xref target="I-D.ietf-grow-route-leak-detection-mitigation"></xref>.  The designers needed to balance many competing factors, and this document provides insights into the design questions and their resolution.

</t>
    
</section>

<section anchor="prior-work" title="Related Prior Work">
 <t>
The solution described in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref> is based on setting an attribute in BGP route announcement to manage the transmission/receipt of the announcement based on the type of neighbor (e.g., customer, transit provider, etc.). Documented prior work related to this basic idea and mechanism dates back to at least the 1980's. Some examples of prior work are: (1) Information flow rules described in <xref target="proceedings-sixth-ietf"></xref> (see pp. 195-196); (2) Link Type described in <xref target="RFC1105-obsolete"></xref> (see pp. 4-5); (3) Hierarchical Recording described in <xref target="draft-kunzinger-idrp-ISO10747-01"></xref> (see Section 6.3.1.12). The problem of route leaks and possible solution mechanisms based on encoding peering-link type information, e.g., P2C (i.e., Transit-Provider to Customer), C2P (i.e., Customer to Transit-Provider), p2p (i.e., peer to peer) etc., in BGPsec updates and protecting the same under BGPsec path signatures have been discussed in IETF SIDR WG at least since 2011. <xref target="draft-dickson-sidr-route-leak-solns"></xref> attempted to describe these mechanisms in a BGPsec context. The draft expired in 2012. <xref target="draft-dickson-sidr-route-leak-solns"></xref> defined neighbor relationships on a per link basis, but in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref> the relationship is encoded per prefix, as routes for prefixes with different peering relationships may be sent over the same link. Also <xref target="draft-dickson-sidr-route-leak-solns"></xref> proposed a second signature block for the link type encoding, separate from the path signature block in BGPsec. By contrast, in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref>, when BGPsec-based solution is considered, cryptographic protection is provided for Route-Leak Protection (RLP) encoding using the same signature block as that for path signatures (see Section 3.2.2 in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref>).    
</t>
</section>



<section anchor="discuss" title="Design Rationale and Discussion">


<t>
This section provides design justifications for the solution specified in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref>, and also answers some questions that are anticipated or have been raised in the IETF IDR and SIDR working group meetings.
</t>

<section anchor="theorem" title="Explanation of Rules 1 and 2 in the solution document">

<t>
In Section 3.3 in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref>, Rules 1 and 2 were stated and the route leak mitigation policy was based on these rules to preserve the property of stable route convergence (i.e., avoid possibility of persistent route oscillations). Rule 1 is stated as follows: 
</t>
 
<t>
<list style="symbols">
<t>
Rule 1: If ISP A receives a route r1 from customer AS C and another route r2 from provider (or peer) AS B (for the same prefix), and both routes r1 and r2 contain AS C and AS X (any X not equal to C) in the path and contain [X] in their RLP Attributes, then prioritize the customer (AS C) route over the provider (or peer) route. 
</t>
</list>
</t>
<t>
The rationale for Rule 1 can be developed as follows.
</t>

<t>
Preference condition for route stability: Prefer customer routes over peer or provider routes (see pp. 25-27 in <xref target="Gao-Rexford"></xref>).  
</t>

<t>
Topology condition for route stability: No cycle of customer-provider relationships (see pp. 25-27 in <xref target="Gao-Rexford"></xref>).  
</t>


<t>
Route-Leak Detection Theorem: Let it be given that ISP A receives a route r1 from customer AS C and another route r2 from provider AS B (for the same prefix), and each of the routes r1 and r2 contains AS C and AS X in its AS path and contains [X] in its RLP Attribute. Then, clearly r1 is in violation of [X]. It follows that r2 is also necessarily in violation of [X]. 
</t>

<t>
Proof: Let us suppose that r2 is not in violation of [X]. That implies that r2's path from C to B to A included only P2C links. That would mean that there is a cycle of customer-provider relationships involving the ASes in the AS path in r2. However, any such cycle is ruled out in practice by the topology condition for route stability as stated above. QED.              
</t>

<t>
Corollary 1: The route leak detection theorem holds also when "provider AS B" in the theorem is replaced by "peer AS B". (Here peer means a lateral peer.) 
</t>
<t>
Proof: Since r2 contains [X] in the RLP Attribute set by an AS prior to peer AS B, it follows that r2 is in violation of [X]. QED.
</t>
<t>
It can be observed that Rule 1 follows from the combination of the Theorem, Corollary 1 and the preference condition for route stability (stated above). 
</t>
<t>
In Section 3.3 in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref>, Rule 2 is stated as follows: 
</t>
 

<t>
<list style="symbols">

<t>
Rule 2: If ISP A receives a route r1 from peer AS C and another route r2 from provider AS B (for the same prefix), and both routes r1 and r2 contain AS C and AS X (any X not equal to C) in the path and contain [X] in their RLP Attributes, then prioritize the peer (AS C) route over the provider (AS B) route.

</t>
</list>
</t>

<t>
The rationale for Rule 2 can be developed as follows.
</t>


<t>
Corollary 2: The route leak detection theorem holds also when "customer AS C" in the theorem is replaced by "peer AS C".
</t>
<t>
Proof for Corollary 2: Let us suppose that r2 is not in violation of [X]. That implies that r2's path from C to B to A included only P2C links. This results in a topology in which A's lateral peer B is also A's transit provider's transit provider. This gives rise to possibility of looping of routes since A can send routes to its transit B, B can forward the routes to its transit C, and C can forward the routes to its peer A. But such looping is forbidden by the topology condition stated above.    
</t>
<t>
It can be observed that Rule 2 follows from Corollary 2. In essence, if the provider route (r2) is a detoured (longer) version of the lateral peer route (r1), and violates the same RLP [X] as does the peer route, then prefer the shorter route (r2) via the peer.
</t>

<t>
Rules 1 and 2 are 
</t>

</section>


<section anchor="vector" title="Is route-leak solution without cryptographic protection an attack vector?">

<t> 
It has been asked if a route-leak solution without BGPsec, i.e., when RLP Fields are not protected, can turn into a new attack vector. The answer seems to be: not really! Even the NLRI and AS_PATH in BGP updates are attack vectors, and RPKI/OV/BGPsec seek to fix that. Consider the following. Say, if 99% of route leaks are accidental and 1% are malicious, and if route-leak solution without BGPsec eliminates the 99%, then perhaps it is worth it (step in the right direction). When BGPsec comes into deployment, the route-leak protection (RLP) bits can be mapped into BGPsec (using the Flags field) and then necessary security will be in place as well (within each BGPsec island as and when they emerge). 
</t>
<t> 
Further, let us consider the worst-case damage that can be caused by maliciously manipulating the RLP Field values in an implementation without cryptographic protection (i.e., sans BGPsec). Manipulation of the RLP bits can result in one of two types of attacks: (a) Upgrade attack and (b) Downgrade attack. Descriptions and discussions about these attacks follow. In what follows, P2C stands for transit provider to customer (Down); C2P stands for customer to transit provider (Up), and p2p stands for peer to peer (lateral or non-transit relationship). 
</t>
<t> 
(a) Upgrade attack: An AS that wants to intentionally leak a route would alter the RLP encodings for the preceding hops from 1 (i.e., 'Do not Propagate Up or Lateral') to 0 (default) wherever applicable. This poses no problem for a route that keeps propagating in the 'Down' (P2C) direction. However, for a route that propagates 'Up' (C2P) or 'Lateral' (p2p), the worst that can happen is that a route leak goes undetected. That is, a receiving router would not be able to detect the leak for the route in question by the RLP mechanism described here. However, the receiving router may still detect and mitigate it in some cases by applying other means such as prefix filters <xref target="RFC7454"></xref> <xref target="NIST-800-54"></xref>. If some malicious leaks go undetected (when RLP is deployed without BGPsec) that is possibly a small price to pay for the ability to detect the bulk of route leaks that are accidental.     
</t>
<t> 
(b) Downgrade attack: RLP encoding is set to 1 (i.e., 'Do not Propagate Up or Lateral') when it should be set to 0 (default). This would result in a route being mis-detected and marked as a route leak. By default, RLP encoding is set to 0, and that helps reduce errors of this kind (i.e., accidental downgrade incidents). Every AS or ISP wants reachability for prefixes it originates and for its customer prefixes. So, an AS or ISP is not likely to change an RLP value 0 to 1 intentionally. If a route leak is detected (due to intentional or accidental downgrade) by a receiving router, it would prefer an alternate 'clean' route from a transit provider or peer over a 'marked' route from a customer. It may end up with a suboptimal path. In order to have reachability, the receiving router would accept a 'marked' route if there is no alternative that is 'clean'. So, RLP downgrade attacks (intentional or accidental) would be quite rare, and the consequences do not appear to be grave.    

<!-- The probability is very low that all received routes for a prefix are detected as 'route leaks' (influenced by downgrade attack). If it happens, a tie-breaker policy would be applied to choose one. (Note: It is up to the operator to choose a mitigation algorithm.) --> 
</t>

</section>

<section anchor="combine" title="Combining results of route-leak detection, OV and BGPsec validation for path selection decision">
<t> 
Combining the results of route-leak detection, OV, and BGPsec validation for path selection decision is up to local policy in a receiving router. As an example, a router may always give precedence to outcomes of OV and BGPsec validation over that of route-leak detection. That is, if an update fails OV or BGPsec validation, then the update is not considered a candidate for path selection. Instead, an alternate update is chosen that passed OV and BGPsec validation and additionally was not marked as route leak.        
</t>
<t> 
If only OV is deployed (and not BGPsec), then there are six possible combinations between OV and route-leak detection outcomes. Because there are three possible outcomes for OV (NotFound, Valid, and Invalid) and two possible outcomes for route-leak detection (marked as leak and not marked). If OV and BGPsec are both deployed, then there are twelve possible combinations between OV, BGPsec validation, and route-leak detection outcomes. As stated earlier, since BGPsec protects the RLP encoding, there would be added certainty in route-leak detection outcome if an update is BGPsec valid (see <xref target="vector"></xref>).         
</t> 
</section>

<section anchor="viola" title="Are there cases when valley-free violations can be considered legitimate?" >
<t> 
There are studies in the literature <xref target="Anwar"></xref> <xref target="Giotsas"></xref> <xref target="Wijchers"></xref> observing and analyzing the behavior of routes announced in BGP updates using data gathered from the Internet. The studies have focused on how often there appear to be valley-free (e.g., Gao-Rexford <xref target="Gao"></xref> model) violations, and if they can be explained <xref target="Anwar"></xref>. One important consideration for explanation of the violations is per-prefix routing policies, i.e., routes for prefixes with different peering relationships may be sent over the same link. One encouraging result reported in <xref target="Anwar"></xref> is that when per-prefix routing policies are taken into consideration in the data analysis, more than 80% of the observed routing decisions fit the valley-free model (see Section 4.3 and SPA-1 data in Figure 2). <xref target="Anwar"></xref> also observes, "it is well known that this model [the basic Gao-Rexford model and some variations of it] fails to capture many aspects of the interdomain routing system. These aspects include AS relationships that vary based on the geographic region or destination prefix, and traffic engineering via hot-potato routing or load balancing." So, there may be potential for explaining the remaining (20% or less) violations of valley-free as well.
</t>
<t> 
One major design factor is that the Route-Leak Protection (RLP) encoding is per prefix. Hence, the solution is consistent with ISPs' per-prefix routing policies. Large global and other major ISPs will be the likely early adopters, and they are expected to have expertise in setting policies (including per prefix policies, if applicable), and make proper use of the RLP indications on a per prefix basis. When the large ISPs participate in this solution deployment, it is envisioned that they would form a ring of protection against route leaks, and co-operatively avoid many of the common types of route leaks that are observed. Route leaks may still happen occasionally within the customer cones (if some customer ASes are not participating or not diligently implementing RLP), but such leaks are unlikely to propagate from one large participating ISP to another. 
</t>
</section>

<section anchor="comp1" title="Comparison with other methods (routing security BCPs)">
<t> 
It is reasonable to ask if techniques considered in BCPs such as<xref target="RFC7454"></xref> (BGP Operations and Security) and <xref target="NIST-800-54"></xref> may be adequate to address route leaks. The prefix filtering recommendations in the BCPs may be complementary but not adequate. The difficulty is in ISPs' ability to construct prefix filters that represent their customer cones (CC) accurately, especially when there are many levels in the hierarchy within the CC. In the RLP-encoding based solution described here, each AS sets RLP for each route propagated and thus signals if it must not be subsequently propagated to a transit provider or peer.  
</t>
<t> 
AS path based Outbound Route Filter (ORF) described in <xref target="I-D.ietf-idr-aspath-orf"></xref> is also an interesting complementary technique. It can be used as an automated collaborative messaging system (implemented in BGP) for ISPs to try to develop a complete view of the ASes and AS paths in their CCs. Once an ISP has that view, then AS path filters can be possibly used to detect route leaks. One limitation of this technique is that it cannot duly take into account the fact that routes for prefixes with different peering relationships may be sent over the same link between ASes. Also, the success of AS path based ORF depends on whether ASes at all levels of the hierarchy in a CC participate and provide accurate information (in the ORF messages) about the AS paths they expect to have in their BGP updates. 
</t>
</section> 

<section anchor="per-hop" title="Per-Hop RLP Field or Single RLP Flag per Update?" >
<t> 
The route-leak detection and mitigation mechanism described in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref> is based on setting RLP Fields on a per-hop basis. There is another possible mechanism based on a single RLP flag per update.
</t>
<t> 
Method A - Per-Hop RLP Field: The sender (eBGP router) on each hop in the AS path sets its RLP Field = 1 if sending the update to a customer or lateral peer (see Section 3.2 in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref>). No AS (if operating correctly) would rewrite the RLP Field set by any preceding AS. 
</t>
<t>
Method Z - Single RLP Flag per Update: As it propagates, the update would have at most one RLP flag. Once an eBGP router (in the update path) determines that it is sending an update towards a customer or lateral peer AS, it sets the RLP flag. The flag value equals the AS number of the eBGP router that is setting it. Once the flag is set, subsequent ASes in the path must propagate the flag as is.     
</t>
<t>
To compare Methods A and Z, consider the example illustrated in <xref target="fig4"></xref>. Consider a partial deployment scenario in which AS1, AS2, AS3 and AS5 participate in RLP, and AS4 does not. AS1 (2 levels deep in AS3's customer cone) has imperfect RLP operation. Each complying AS's route leak mitigation policy is to prefer an update not marked as route leak (see Section 3.3 in <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref>). If there is no alternative, then a transit-provider may accept and propagate a marked update from a customer to avoid unreachability. In this example, multi-homed AS4 leaks a route received for prefix Q from transit-provider AS3 to transit-provider AS5.      
</t>  

<figure align="center" anchor="fig4" title="Example for comparison of Method A vs. Method Z">
  <artwork align="left"><![CDATA[

                     +-----------+  RLP=1    +-----------+                                            
                     |    AS3    |---------->|    AS5    | 
                     |(Major ISP)|        U2 |(Major ISP)|                           
                     +-----------+           +-----------+  
                        /\       \            /\ U1
 Route for Q propagated /         \RLP=1      / 
   due to lack of      /RLP=0      \         / (route leak;                   
  alternate route     /            \/       /   bad behavior)                            
              +---------+       +-------------+                                            
              |   AS2   |       |     AS4     |                                         
              +---------+       +-------------+
                  /\             (legacy; does not support RLP)
                  /     
                 /  
                /RLP=1 (set incorrectly)
               /    
     +----------+         
     |    AS1   |               
     +----------+    
        /\
        /
       / Prefix Q
                         
]]></artwork>
 </figure>



<t>
If Method A is implemented in the network, the two BGP updates for prefix Q received at AS5 are (note that AS4 is not participating in RLP):
</t>  
<t>
<list style="empty">
<t>
U1A: Q [AS4 AS3 AS2 AS1] {RLP3(AS3)=1, RLP2(AS2)=0, RLP1(AS1)=1} ..... from AS4
</t>
<t>
U2A: Q [AS3 AS2 AS1] {RLP3(AS3)=1, RLP2(AS2)=0, RLP1(AS1)=1} ..... from AS3
</t>
</list> </t> 
<t>
Alternatively, if Method Z is implemented in the network, the two BGP updates for prefix Q received at AS5 are:
 </t> 
<t>
<list style="empty">
<t>
U1B: Q [AS4 AS3 AS2 AS1] {RLP(AS1)=1}  ..... from AS4 
</t>
<t>
U2B: Q [AS3 AS2 AS1] {RLP(AS1)=1}  ..... from AS3
</t>
</list> </t> 

<t>
All received routes for prefix Q at AS5 are marked as route leak in either case (Method A or Z). In the case of Method A, AS5 can use additional information gleaned from the RLP fields in the updates to possibly make a better best path selection. For example, AS5 can determine that U1A update received from its customer AS4 exhibits violation of two RLP fields (those set by AS1 and AS3) and one of them was set just two hops away. But U2A update exhibits that only one RLP field was violated and that was set three hops back. Based on this logic, AS5 may prefer U2A over U1A (even though U1A is a customer route). This would be a good decision. However, Method Z does not facilitate this kind of more rational decision process. With Method Z, both updates U1B and U2B exhibit that they violated only one RLP field (set by AS1 several hops away). AS5 may then prefer U1B over U2B since U1B is from a customer, and that would be bad decision. This illustrates that, due to more information in per-hop RLP Fields, Method A seems to be operationally more beneficial than Method Z.
</t>
<t>
Further, for detection and notification of neighbor AS's non-compliance, Method A (per-hop RLP) is better than Method Z (single RLP). With Method A, the bad behavior of AS4 would be explicitly evident to AS5 since it violated AS3's (only two hops away) RLP field as well. AS5 would alert AS4 and AS2 would alert AS1 about lack of compliance (when Method A is used). With Method Z, the alerting process may not be as expeditious. 
</t>  

<!--

<t>
In general, Method A is more robust than Method Z in the presence of faulty operation (including route leaks) or lack of upgrade (to perform RLP) on part of an AS in the AS path. <xref target="Sriram"></xref> further illustrates this (see slides 5-9) under multiple partial deployment / faulty implementation scenarios. 
</t> 

<t>
Method Z is functionally deficient when compared to Method A for detection of route leaks. This becomes quite evident from the illustration in <xref target="fig4"></xref>. With Method Z in use, it is evident that when AS3 receives an update, {p [AS2, AS1] RLP =1] from AS2, there is no way for it (AS3) to distinguish and tell if AS2 is leaking a route learned from a transit-provider or lateral peer (AS1), or legitimately forwarding a route learned from a customer (AS1). Method A does not suffer from this inadequacy because if Method A were used, then AS3 in <xref target="fig4"></xref> will have the benefit of seeing the RLP field values set by AS1 and AS2 individually. Thus in Method A, a legitimate customer route forwarded from AS2 to AS3 will be distinguishable from a leaked transit-provider or lateral-peer route.
</t> 
-->

<!--
<t>
Another example: For example in <xref target="fig1"></xref>, if Method Z is used and AS1 sets its RLP flag but AS3 (customer of AS1) resets it due to faulty operation, then the route leak from AS3 will not be detected at AS2. On the other hand in the same exmaple, if Method A is used and AS1 sets its RLP field to 1 but AS3 is faulty and leaks the update, the leak will still get detected at AS2. This is so even if AS3 set its RLP field incorrectly as long as it did not tamper with AS1's RLP field. <xref target="Sriram"></xref> succinctly illustrates (see slides 5-9) that Method A is operationally more robust than Method Z under multiple partial deployment / faulty implementation scenarios.  
</t>
-->


<!--
<t>
Further, it is feasible to provide cryptographic protection for the RLP encoding in the case Method A with the help of the BGPsec protocol xxxBGPsec-RLPxxx(see <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref>). Method Z is not amenable to be mapped into BGPsec.
</t>
-->

</section>

<section anchor="intra-AS" title="Prevention of Route Leaks at Local AS: Intra-AS Messaging">
<t>
Note: The intra-AS messaging for route leak prevention can be done using a non-transitive BGP Community or Attribute. The Community-based method is described below. For the BGP Attribute-based method, see <xref target="I-D.ietf-idr-bgp-open-policy"></xref>.  
</t>

<section anchor="community" title="Non-Transitive BGP Community for Intra-AS Messaging">
<t>
The following procedure (or similar) for intra-AS messaging (i.e., between ingress and egress routers) for prevention of route leaks is a fairly common practice used by large ISPs. (Note: This information was gathered from discussions on the NANOG mailing list <xref target="Nanog-thread-June2016"></xref> as well as through private discussions with operators of large ISP networks.)
</t>
<t>
Routes are tagged on ingress to an AS with communities for origin, including the type of eBGP peer it was learned from (customer, provider or lateral peer), geographic location, etc. The community attributes are carried across the AS with the routes. 
<!-- Routes that the AS originates directly are also tagged with similar origin communities when they are redistributed into BGP from static, IGP, etc. -->
These communities are used along with additional logic in route policies to determine which routes are to be announced to which eBGP peers and which are to be dropped. 
<!-- Route policy is applied to eBGP sessions based on what set of routes they should receive (transit, full routes, internal-only, default-only, etc.). -->
In this process, the ISP's AS also ensures that routes learned from a transit-provider or a lateral peer (i.e., non-transit) at an ingress router are not leaked at an egress router to another transit-provider or lateral peer.     
</t>

<t>
Additionally, in many cases, ISP network operators' outbound policies require explicit matches for expected communities before passing routes. This helps ensure that that if an update has been entered into the RIB-in but has missed its ingress community tagging (due to a missing/misapplied ingress policy), it will not be inadvertently leaked.

</t>

<t>
The above procedure (or a simplified version of it) is also applicable when an AS consists of a single eBGP router. It is recommended that all AS operators SHOULD implement the procedure described above (or similar that is appropriate for their network) to prevent route leaks that they have direct control over.  
</t>

<!--
<t>
In the above described common practice, the IPS's ingress and egress routers primarily rely on pre-configured knowledge of the peer type for each of its eBGP peers. However, as an additional measure of route-leak alertness, the ingress router SHOULD examine the RLP value set by the eBGP peer from which the route is received. If said eBGP peer is a customer (for the route), then the RLP value is expected to be set to 0 xxxsenderxxx (see <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref>). And if said eBGP peer is a transit-provider or lateral peer, then the RLP field is expected to be set to 1. If the observed RLP value differs from the expectation, then the event SHOULD be logged, and said eBGP peer SHOULD be notified.
</t>
<t>
In many cases, our outbound policies require explicit matches (i.e., Must have community XXX:XXXX) to pass routes, such that if something has made it into the routing table but has missed its ingress community tagging (due to a missing/misapplied ingress policy), it won't be inadvertently leaked.
So:
If community matches [foo] then pass
If community matches [bar] then pass
Else drop
</t>

</section>
<section anchor="prlp" title="Non-Transitive BGP pRLP Attribute for Intra-AS Messaging">
<t>
Note: The work in this section is superseded by the work in <xref target="I-D.ietf-idr-bgp-open-policy"></xref>).
</t>
<t>
It is possible to use an optional non-transitive BGP Attribute instead of the Community described above for intra-AS messaging for route leak prevention. The following description would be used in case the IDR working group decides on using a BGP Attribute.
</t>
<t>
A new optional non-transitive BGP Attribute called Preventive Route Leak Protection (pRLP) is used. The attribute type code for the pRLP Attribute is to be assigned by IANA. The length of this attribute is 0 as it is used only as a flag. 
</t>
<t>
Ingress (receiving) router action: The decision to set or not set the pRLP flag is made by a receiving router upon a route ingress. The flag is set when the route is received from a provider or a lateral peer. The flag is not set when the route is received from a customer. When the relationship is complex, the flag is set based on the per-prefix peering role information (see <xref target="relation"></xref>). 
</t>
<t>
Egress (sending) router action: A sending router is allowed to send a route without the pRLP flag to any neighbor (transit-provider, customer, or lateral peer). However, if the pRLP flag is present, then the route MUST NOT be sent to a transit-provider or a lateral peer.
</t>
<t>
An AS that follows the above set of receiver (ingress) and sender (egress) actions, prevents itself from causing route leaks.
</t>

</section>
-->
    </section>
    </section>


<section anchor="stopgap" title="Stopgap Solution when Only Origin Validation is Deployed">
<t>

A stopgap method is described here for detection and mitigation of route leaks for the intermediate phase when OV is deployed but BGP protocol on the wire is unchanged. The stopgap solution can be in the form of construction of a prefix filter list from ROAs. A suggested procedure for constructing such a list comprises of the following steps: 
</t>

<t>
<list style="symbols">
<t>
ISP makes a list of all the ASes (Cust_AS_List) that are in its customer cone (ISP's own AS is also included in the list). (Some of the ASes in Cust_AS_List may be multi-homed to another ISP and that is OK.) </t>
<t>
ISP downloads from the RPKI repositories a complete list (Cust_ROA_List) of valid ROAs that contain any of the ASes in Cust_AS_List. 
</t>

<t>
ISP creates a list of all the prefixes (Cust_Prfx_List) that are contained in any of the ROAs in Cust_ROA_List. 
</t>

<t>
Cust_Prfx_List is the allowed list of prefixes that is permitted by the ISP's AS, and will be forwarded by the ISP to upstream ISPs, customers, and peers.
</t>
<t>
A route for a prefix that is not in Cust_Prfx_List but announced by one of ISP's customers is 'marked' as a potential route leak. Further, the ISP's router SHOULD prefer an alternate route that is Valid (i.e., valid according to origin validation) and 'clean' (i.e., not marked) over the 'marked' route. The alternate route may be from a peer, transit provider, or different customer.

</t>
</list> </t> 
<t>
Special considerations regarding the above procedure may be needed for DDoS mitigation service providers. They typically originate or announce a DDoS victim's prefix to their own ISP on a short notice during a DDoS emergency. Some provisions would need to be made for such cases, and they can be determined with the help of inputs from DDoS mitigation service providers.
</t>
<t>
For developing a list of all the ASes (Cust_AS_List) that are in the customer cone of an ISP, the AS path based Outbound Route Filter (ORF) technique <xref target="I-D.ietf-idr-aspath-orf"></xref> can be helpful (see discussion in <xref target="comp1"></xref>).   
</t>
<t>
Another technique based on AS_PATH filters is described in <xref target="Snijders"></xref>. This method is applicable to very large ISPs that have lateral peering. For a pair of such very large ISPs, say A and B, the method depends on ISP A communicating out-of-band (e.g., by email) with ISP B about whether or not it (ISP A) has any transit providers. This out-of-band knowledge enables ISP B to apply suitable AS_PATH filtering criteria for routes involving the presence of ISP A in the path and prevent certain kinds of route leaks (see <xref target="Snijders"></xref> for details).
</t>

</section>
</section>

   <section anchor="Security" title="Security Considerations">
    	<t>

This document requires no security considerations.  See <xref target="I-D.ietf-idr-route-leak-detection-mitigation"></xref> for security considerations for the solution for route leaks detection and mitigation.


	</t>
      
    </section>


    <section anchor="IANA" title="IANA Considerations">
<t> 
This document has no IANA actions.
</t>

    </section>



	</middle> 

  <!--  *****BACK MATTER ***** -->

  <back>

 <references title="Normative References">
&RFC4271;
 </references>

    <references title="Informative References">

&RFC7454;
&RFC7908;
&RFC8205;


&I-D.ietf-idr-bgp-open-policy;
&I-D.ietf-idr-route-leak-detection-mitigation;
&I-D.ietf-grow-route-leak-detection-mitigation;
&I-D.ietf-idr-aspath-orf;


<!--
<reference anchor="Huston2012" target="http://labs.apnic.net/blabs/?p=139/">
        <front>
        <title>Leaking Routes</title>

         <author initials="G." surname="Huston">
 <organization></organization>
  </author>
<date month='March' year='2012' />
</front>
     </reference> 

<reference anchor="Huston2014" target="http://labs.apnic.net/blabs/?p=520/">
        <front>
        <title>What's so special about 512?</title>

<author initials="G." surname="Huston">
 <organization></organization>
  </author>
<date month='September' year='2014' />
</front>
     </reference> 

<reference anchor="Toonk" target="http://www.bgpmon.net/what-caused-todays-internet-hiccup/">
        <front>
        <title>What Caused Today's Internet Hiccup</title>

<author initials="A." surname="Toonk">
 <organization></organization>
  </author>
<date month='August' year='2014' />
</front>
     </reference> 

<reference anchor="Toonk2015-A" target="http://www.bgpmon.net/what-caused-the-google-service-interruption/">
        <front>
       <title>What caused the Google service interruption</title>

<author initials="A." surname="Toonk">
 <organization></organization>
  </author>
<date month='March' year='2015' />
</front>
     </reference>

<reference anchor="Toonk2015-B" target="http://www.bgpmon.net/massive-route-leak-cause-internet-slowdown/">
        <front>
        <title>Massive route leak causes Internet slowdown</title>

<author initials="A." surname="Toonk">
 <organization></organization>
  </author>
<date month='June' year='2015' />
</front>
     </reference> 




  <reference anchor="Paseka" target="http://blog.cloudflare.com/why-google-went-offline-today-and-a-bit-about/">
        <front>
          <title>Why Google Went Offline Today and a Bit about How the Internet Works</title>
          <author initials="T." surname="Paseka">
          <organization></organization>
          </author>
          
          
          <date month='November' year='2012' />
        </front>
        <seriesInfo name='' value='CloudFare Blog' /> 
      </reference>

<reference anchor="Cowie2010" target="http://research.dyn.com/2010/11/chinas-18-minute-mystery/">
        <front>
          <title>China's 18 Minute Mystery</title>
          <author initials="J." surname="Cowie">
          <organization></organization>
          </author>
     <date month='November' year='2010' />
        </front>
        <seriesInfo name='' value='Dyn Research/Renesys Blog' /> 
      </reference>



  <reference anchor="Hiran" target="http://www3.cs.stonybrook.edu/~phillipa/papers/CTelecom.html">
        <front>
          <title>Characterizing Large-scale Routing Anomalies: A Case Study of the China Telecom Incident</title>
          
<author initials="R." surname="Hiran">
          <organization></organization>
          </author>
<author initials="N." surname="Carlsson">
          <organization></organization>
          </author>
<author initials="P." surname="Gill">
          <organization></organization>
          </author>
          
          <date month='March' year='2013' />
        </front>
        <seriesInfo name='' value='PAM 2013' /> 
      </reference>

 <reference anchor="Cowie2013" target="http://research.dyn.com/2013/11/mitm-internet-hijacking/">
        <front>
          <title>The New Threat: Targeted Internet Traffic Misdirection</title>
          <author initials="J." surname="Cowie">
          <organization></organization>
          </author>
          
          
          <date month='November' year='2013' />
        </front>
        <seriesInfo name='' value='Dyn Research/Renesys Blog' /> 
      </reference>

<reference anchor="Labovitz" target="http://www.arbornetworks.com/asert/2010/11/additional-discussion-of-the-april-china-bgp-hijack-incident/">
        <front>
          <title>Additional Discussion of the April China BGP Hijack Incident</title>
          <author initials="C." surname="Labovitz">
          <organization></organization>
          </author>
          
          <date month='November' year='2010' />
        </front>
        <seriesInfo name='' value='Arbor Networks IT Security Blog' /> 
      </reference>

      <reference anchor="Khare" target="http://www.cs.arizona.edu/~bzhang/paper/12-imc-hijack.pdf">
        <front>
          <title>Concurrent Prefix Hijacks: Occurrence and Impacts</title>
          <author initials="V." surname="Khare">
          <organization></organization>
          </author>
          <author initials="Q." surname="Ju">
          <organization></organization>
          </author>
          <author initials="B." surname="Zhang">
            <organization></organization>
          </author>
          
          <date month='November' year='2012' />
        </front>
        <seriesInfo name='' value='IMC 2012, Boston, MA' /> 
      </reference>
      
      <reference anchor="LRL" target="http://nrl.cs.arizona.edu/projects/lsrl-events-from-2003-to-2009/">
        <front>
          <title>Large Route Leaks</title>
          <author initials="V." surname="Khare">
            <organization></organization>
          </author>
          <author initials="Q." surname="Ju">
            <organization></organization>
          </author>
          <author initials="B." surname="Zhang">
            <organization></organization>
          </author>
          
          <date year='2012' />
        </front>
        <seriesInfo name='' value='Project web page' /> 
      </reference>


    <reference anchor="Mauch" target="http://puck.nether.net/bgp/leakinfo.cgi/">
        <front>
          <title>BGP Routing Leak Detection System</title>
          <author initials="J." surname="Mauch">
            <organization></organization>
          </author>
   <date year='2014' />

        </front>
        <seriesInfo name='' value='Project web page' /> 
      </reference>


<reference anchor="Mauch-nanog" target="https://www.nanog.org/meetings/nanog41/presentations/mauch-lightning.pdf">
        <front>
          <title>Detecting Routing Leaks by Counting</title>
          <author initials="J." surname="Mauch">
            <organization></organization>
          </author>
 <date month='October' year='2007' />
        </front>
        <seriesInfo name='NANOG-41' value='Albuquerque, NM, USA' /> 
      </reference>

<reference anchor="Kapela-Pilosov" target="https://www.defcon.org/images/defcon-16/dc16-presentations/defcon-16-pilosov-kapela.pdf">
        <front>
          <title>Stealing the Internet: An Internet-Scale 
Man in the Middle Attack</title>
          <author initials="A." surname="Pilosov">
            <organization></organization>
          </author>
<author initials="T." surname="Kapela">
            <organization></organization>
          </author>

 <date month='August' year='2008' />
        </front>
        <seriesInfo name='DEFCON-16' value='Las Vegas, NV, USA' /> 
      </reference>

<reference anchor="Kephart" target="https://blog.thousandeyes.com/route-leak-causes-amazon-and-aws-outage">
        <front>
          <title>Route Leak Causes Amazon and AWS Outage</title>
          <author initials="N." surname="Kephart">
            <organization></organization>
          </author>

 <date month='June' year='2015' />
        </front>
        <seriesInfo name='' value='ThousandEyes Blog' /> 
      </reference>

<reference anchor="Madory" target="http://research.dyn.com/2014/09/why-the-internet-broke-today/">
        <front>
          <title>Why Far-Flung Parts of the Internet Broke Today</title>
          <author initials="D." surname="Madory">
            <organization></organization>
          </author>

 <date month='September' year='2014' />
        </front>
        <seriesInfo name='' value='Dyn Research/Renesys Blog' /> 
      </reference>

<reference anchor="Zmijewski" target="http://research.dyn.com/2014/04/indonesia-hijacks-world/">
        <front>
          <title>Indonesia Hijacks the World</title>
          <author initials="E." surname="Zmijewski">
            <organization></organization>
          </author>

 <date month='April' year='2014' />
        </front>
        <seriesInfo name='' value='Dyn Research/Renesys Blog' /> 
      </reference>

-->

<reference anchor="Wijchers" target="https://ripe69.ripe.net/presentations/157-RIPE-69-Routing-WG.pdf">
        <front>
          <title>Quantitative Analysis of BGP Route Leaks </title>
          
<author initials="B." surname="Wijchers">
          <organization></organization>
          </author>
<author initials="B." surname="Overeinder">
          <organization></organization>
          </author>

          <date month='November' year='2014' />
        </front>
        <seriesInfo name='' value='RIPE-69' /> 
      </reference> 


 <reference anchor="Giotsas" target="">
        <front>
          <title>Valley-free violation in Internet routing - Analysis based on BGP Community data</title>
          
<author initials="V." surname="Giotsas">
          <organization></organization>
          </author>
<author initials="S." surname="Zhou">
          <organization></organization>
          </author>
          
          <date month='June' year='2012' />
        </front>
        <seriesInfo name='' value='IEEE ICC 2012' /> 
      </reference> 

 <reference anchor="Anwar" target="http://www.cs.usc.edu/assets/007/94928.pdf">
        <front>
          <title>Investigating Interdomain Routing Policies in the Wild</title>
          
<author initials="R." surname="Anwar">
          <organization></organization>
          </author>
<author initials="H." surname="Niaz">
          <organization></organization>
          </author>
<author initials="D." surname="Choffnes">
          <organization></organization>
          </author>
<author initials="I." surname="Cunha">
          <organization></organization>
          </author>
<author initials="P." surname="Gill">
          <organization></organization>
          </author>
<author initials="N." surname="Katz-Bassett">
          <organization></organization>
          </author>

          <date month='October' year='2015' />
        </front>
        <seriesInfo name='' value='ACM Internet Measurement Conference (IMC)' /> 
      </reference>



  <reference anchor="Luckie" target="http://www.caida.org/~amogh/papers/asrank-IMC13.pdf">
        <front>
          <title>AS Relationships, Customer Cones, and Validation</title>
          
<author initials="M." surname="Luckie">
          <organization></organization>
          </author>
<author initials="B." surname="Huffaker">
          <organization></organization>
          </author>
<author initials="A." surname="Dhamdhere">
          <organization></organization>
          </author>
<author initials="V." surname="Giotsas">
          <organization></organization>
          </author>
<author initials="kc" surname="claffy">
          <organization></organization>
          </author>
          
          <date month='October' year='2013' />
        </front>
        <seriesInfo name='' value='IMC 2013' /> 
      </reference> 

<reference anchor="Gao" target="http://www.cs.princeton.edu/~jrex/papers/sigmetrics00.long.pdf">
        <front>
          <title>Stable Internet routing without global
coordination</title>
          
<author initials="L." surname="Gao">
          <organization></organization>
          </author>
<author initials="J." surname="Rexford">
          <organization></organization>
          </author>

          <date month='December' year='2001' />
        </front>
        <seriesInfo name='' value='IEEE/ACM Transactions on Networking' /> 
      </reference> 


<reference anchor="Gill" target="https://www.cs.bu.edu/~goldbe/papers/survey.pdf">
        <front>
          <title>A Survey of Interdomain Routing Policies</title>
          
<author initials="P." surname="Gill">
          <organization></organization>
          </author>
<author initials="M." surname="Schapira">
          <organization></organization>
          </author>
<author initials="S." surname="Goldberg">
          <organization></organization>
          </author>

          <date month='January' year='2014' />
        </front>
        <seriesInfo name='' value='ACM SIGCOMM Computer Communication Review' /> 
      </reference> 

<reference anchor="draft-dickson-sidr-route-leak-solns" target="https://tools.ietf.org/html/draft-dickson-sidr-route-leak-solns-01">
        <front>
          <title>Route Leaks -- Proposed Solutions</title>
          
<author initials="B." surname="Dickson">
          <organization></organization>
          </author>

          <date month='March' year='2012' />
        </front>
<seriesInfo name='' value='IETF Internet Draft (expired)' /> 
      </reference> 

<reference anchor="proceedings-sixth-ietf" target="https://www.ietf.org/proceedings/06.pdf">
        <front>
          <title>Proceedings of the April 22-24, 1987 Internet Engineering Task Force</title>
          
<author initials="P." surname="Gross">
          <organization></organization>
          </author>
          
          <date month='April' year='1987' />
        </front>
      </reference> 

<reference anchor="RFC1105-obsolete" target="https://tools.ietf.org/html/rfc1105">
        <front>
          <title>A Border Gateway Protocol (BGP)</title>
          
<author initials="K." surname="Lougheed">
          <organization></organization>
          </author>
<author initials="Y." surname="Rekhter">
          <organization></organization>
          </author>

          <date month='June' year='1989' />
        </front>
        <seriesInfo name='' value='IETF RFC (obsolete)' /> 
      </reference> 

<reference anchor="draft-kunzinger-idrp-ISO10747-01" target="https://tools.ietf.org/pdf/draft-kunzinger-idrp-ISO10747-01.pdf">
        <front>
          <title>Inter-Domain Routing Protocol (IDRP)</title>
          
<author initials="C." surname="Kunzinger">
          <organization></organization>
          </author>

          <date month='November' year='1994' />
        </front>
        <seriesInfo name='' value='IETF Internet Draft (expired)' /> 
      </reference> 

<reference anchor="NIST-800-54" target="http://csrc.nist.gov/publications/nistpubs/800-54/SP800-54.pdf">
        <front>
          <title>Border Gateway Protocol Security</title>
          
<author initials="D.R." surname="Kuhn">
          <organization></organization>
          </author>
<author initials="K." surname="Sriram">
          <organization></organization>
          </author>
<author initials="D." surname="Montgomery">
          <organization></organization>
          </author>

          <date month='July' year='2007' />
        </front>
        <seriesInfo name='' value='NIST Special Publication 800-54' /> 
      </reference> 

<!--
<reference anchor="Sriram" target="https://www.ietf.org/proceedings/95/slides/slides-95-idr-13.pdf">
        <front>
          <title>Methods for Detection and Mitigation of
BGP Route Leaks</title>
          
<author initials="K." surname="Sriram">
          <organization></organization>
          </author>
<author initials="D." surname="Montgomery">
          <organization></organization>
          </author>
<author initials="B." surname="Dickson">
          <organization></organization>
          </author>
<author initials="K." surname="Patel">
          <organization></organization>
          </author>
<author initials="A." surname="Robachevsky ">
          <organization></organization>
          </author>

          <date month='April' year='2016' />
        </front>
        <seriesInfo name='' value='IETF-95 IDR WG Meeting)' /> 
      </reference>
-->

<reference anchor="Snijders" target="https://www.nanog.org/sites/default/files/Snijders_Everyday_Practical_Bgp.pdf">
        <front>
          <title>Practical everyday BGP filtering	with AS_PATH filters: Peer Locking</title>
          <author initials="J." surname="Snijders">
            <organization></organization>
          </author>
 <date month='June' year='2016' />
        </front>
        <seriesInfo name='NANOG 67' value='Chicago, IL, USA' /> 
      </reference>

<reference anchor="Nanog-thread-June2016" target="http://mailman.nanog.org/pipermail/nanog/2016-June/thread.html#86348">
        <front>
          <title>Intra-AS messaging for route leak prevention</title>
          <author initials="" surname="">
            <organization></organization>
          </author>
 <date month='June' year='2016' />
        </front>
        <seriesInfo name='NANOG Email List - Discussion Thread' value='' /> 
      </reference>

<reference anchor="Gao-Rexford" target="http://www.cs.princeton.edu/courses/archive/spr11/cos461/docs/lec17-bgp-policy.ppt">
        <front>
          <title>Interdomain Routing Policy</title>
          
<author initials="M." surname="Freedman">
          <organization></organization>
          </author>

   <date year="" />
        </front>
        <seriesInfo name='' value='Princeton University COS 461 Lecture Notes; Slides 25-27' /> 
      </reference> 

       
</references>


<section title="Acknowledgements" numbered="no"> 

      <t>
The authors wish to thank Jared Mauch, Jeff Haas, Job Snijders, Warren Kumari, Amogh Dhamdhere, Jakob Heitz, Geoff Huston, Ruediger Volk, Sue Hares, John Scudder, Wes George, Chris Morrow, Sandy Murphy, Danny McPherson, and Eric Osterweil for comments, suggestions, and critique. The authors are also thankful to Padma Krishnaswamy, Oliver Borchert, and Okhee Kim for their review and comments.
</t>
    </section>

<section title="Contributors" numbered="no">

<t>
The following people made significant contributions to this document and should be considered co-authors:
</t>

<figure><artwork><![CDATA[

Alexander Azimov
Yandex
Email: a.e.azimov@gmail.com

Brian Dickson
Independent
Email: brian.peter.dickson@gmail.com

Doug Montgomery
USA National Institute of Standards and Technology
Email: dougm@nist.gov

Keyur Patel
Arrcus
Email: keyur@arrcus.com

Andrei Robachevsky
Internet Society
Email: robachevsky@isoc.org

Eugene Bogomazov
Qrator Labs
Email: eb@qrator.net

Randy Bush
Internet Initiative Japan
Email: randy@psg.com

]]></artwork></figure>

</section>

</back>

</rfc>