<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- $Id: draft-ietf-grow-irr-routing-policy-considerations-06.xml,v 1.2 2015-07-20 15:43:33 eoster Exp $ -->
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' [
    <!ENTITY RFC0959 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0959.xml">
    <!ENTITY rfc1787 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.1787.xml">
    <!ENTITY rfc2622 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2622.xml">
    <!ENTITY rfc2725 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2725.xml">
    <!ENTITY rfc2769 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2769.xml">
    <!ENTITY rfc2918 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2918.xml">
    <!ENTITY RFC5246 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5246.xml">
    <!ENTITY rfc6480 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6480.xml">
    <!ENTITY rfc6810 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6810.xml">
    <!ENTITY RFC6241 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
    <!ENTITY RFC4253 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4253.xml">
	  ]>
<?rfc toc="yes"?>
<?rfc tocompact="no"?>
<?rfc tocdepth="6"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="yes"?>


<rfc ipr="trust200902" category="info"
  docName="&lt;draft-ietf-grow-irr-routing-policy-considerations-06&gt;">

  <front>
    <title abbrev="IRR &amp; Routing Policy Considerations">
      IRR &amp; Routing Policy Configuration Considerations
    </title>

    <author fullname="Danny McPherson" initials="D."
            surname="McPherson">
      <organization>Verisign, Inc.</organization>
      <address>
        <email>dmcpherson@verisign.com</email>
      </address>
    </author>

    <author fullname="Shane Amante" initials="S."
            surname="Amante">
      <organization>Apple, Inc.</organization>
      <address/>
    </author>

    <author fullname="Eric Osterweil" initials="E."
            surname="Osterweil">
      <organization>Verisign, Inc.</organization>
      <address>
        <email>eosterweil@verisign.com</email>
      </address>
    </author>

   <author fullname="Larry J. Blunk" initials="L."
       surname="Blunk">
     <organization>Merit Network, Inc.</organization>
     <address>
       <email>ljb@merit.edu</email>
     </address>
    </author>

    <author fullname="Dave Mitchell" initials="D." surname="Mitchell">
      <organization>Singularity Networks</organization>
      <address/>
    </author>

    <date year="2015"/>
    <area>Routing</area>

    <workgroup>GROW Working Group</workgroup>

    <abstract>
      <t>
	The purpose of this document is to catalog past issues influencing the
	efficacy of Internet Routing Registries (IRR) for inter-domain routing
	policy specification and application in the global routing system over the
	past two decades.  Additionally, it provides a discussion regarding which
	of these issues are still problematic in practice, and which are simply
	artifacts that are no longer applicable but continue to stifle
	inter-provider policy-based filtering adoption and IRR utility to this
	day.
      </t>
    </abstract>
  </front>


  <middle>

    <section anchor="Intro" title="Introduction">
      <t>
	The purpose of this document is to catalog past issues influencing the
	efficacy of Internet Routing Registries (IRR) for inter-domain routing
	policy specification and application in the global routing system over the
	past two decades.  Additionally, it provides a discussion regarding which
	of these issues still pose problems in practice, and which are 
	no longer obstacles, but whose perceived drawbacks continue to stifle
	inter-provider policy-based filtering support and IRR utility to this
	day.
      </t>
	</section> <!-- Introduction -->

    <section anchor="Background" title="Background">
	  <t>
	IRRs can be used to express a multitude of Internet number bindings and
	policy objectives, to include bindings between an origin AS and a given
	prefix, AS and community import and export policies for a given
	AS, as well as AS macros (as-sets in RPSL-speak) that convey the set of
	ASes for which a given AS intends to include in some common group.
	  </t>
	  <t>
	As quoted from Section 7 of <xref target='RFC1787'/>, Routing in a
	Multi-Provider Internet:
	  <list>
		<t>
		   While ensuring Internet-wide coordination may be more and more
		   difficult, as the Internet continues to grow, stability and
		   consistency of the Internet-wide routing could significantly
		   benefit if the information about routing requirements of various
		   organizations could be shared across organizational boundaries.
		   Such information could be used in a wide variety of situations
		   ranging from troubleshooting to detecting and eliminating
		   conflicting routing requirements.  The scale of the Internet
		   implies that the information should be distributed.  Work is
		   currently underway to establish depositories of this information
		   (Routing Registries), as well as to develop tools that analyze,
		   as well as utilize this information.
		</t>
	  </list>
	  </t>

	<!-- MORE HERE ABOUT RPSL AND IRRS, TO INCLUDE REFERNCES TO RIPE-181, RPSL, and SOME TEXT FROM THOSE RESOURCES, AS WELL AS A QUICK TIME-LINE OF DEVELOPMENT and ENHANCEMENTS.  ALSO SOME DISCUSSION ON BASIC OBJECT TYPES AND A GENERAL OVERVIEW. -->
	
	</section> <!-- Background -->

	<section anchor="History"
	         title="Historical Artifacts Influencing IRR Efficacy">

	  <t>
	The term IRR is often used, incorrectly, as a broad catch-all term to
	categorize issues related to the accuracy of data in the IRR, the Routing
	Policy Specification Language (RPSL) and the operational deployment of
  policy (derived from RPSL contained within the IRR) to routers.
  <!-- so that those policies take affect in the control plane of the Internet.  -->
  It is important to classify these issues into distinct categories so that the
	reader can understand which categories of issues are historical artifacts
	that are no longer applicable and which categories of issues still exist
	and might be addressed by the IETF.
	  </t>

	  <t>
	The following sections will separate out challenges related to the IRR
	into the following categories.  First, accuracy and integrity of data
	contained within the IRR.  Second, the Resource Policy Specification
	Language (RPSL) used to represent various types of data in the IRR.
	Third, operation of the IRR infrastructure, i.e.: synchronization of
	resources from one IRR to other IRRs.  Finally, the methods related to
	extraction of policy from the IRR and the input plus activation of that
	policy within routers.
	  </t>

	</section> <!-- EOS History -->

	<section anchor="Accuracy"
	         title="Accuracy and Integrity of Data Contained within the IRR">

	  <t>
	The following section will examine issues related to accuracy and
	integrity of data contained within the IRR.
	  </t>

	<section anchor="No-Resource-Certification"
	         title="Lack of Resource Certification">

    <t>
      Internet number resources include IPv4 addresses, IPv6 addresses, 
      Autonomous System Numbers (ASNs), and more.  While these resources
      are generally allocated by hierarchical authorities, a general mechanism
      for formally verifying (such as through cryptographic mechanisms)
      when parties have been allocated resource remains an open challenge.
      We generally define such a system a Resource Certification
      System, and we note that some candidate examples of how such a general system might
      be implemented and deployed exist <xref target="TASRS"/>, <xref target="RC_HotNetsX"/>, <xref target="RFC6480"/>.
    </t>

	  <t>
	One of the largest weaknesses often cited with the IRR system is that the
	data contained within the IRRs is out of date or lacks integrity.  This is
  largely attributable to the fact that 
  existing IRR mechanisms do not provide ways for a relying party to
  (cryptographically) verify the validity of an IRR object.
  That is, there has
	never existed a resource certification infrastructure that enables a
	resource holder to authorize a particular autonomous system to originate
	network layer reachability advertisements for a given IPv4 or IPv6 prefix.
	It should be noted that this is not a weakness of the underlying Routing
	Policy Specification Language (RPSL) <xref target='RFC2622'/>, but rather,
  was largely the result of no clear demand by the operator community
  for Internet Number Resource Registries to provide sufficient resource 
  certification infrastructure that would enable a resource holder to develop a
	cryptographic binding between, for example, a given AS number and an IP
	prefix.
	  </t>

    <t>
      Another noteworthy (but slightly different) deficiency in the IRR system is the
      absence of a tangible  tie between the resource and the resource holder.
      That is, generally there is no assurance of the validity of objects at their
      creation time (except for a subset of, for example, the RIPE IRR where RPSS 
      <xref target="RFC2725"/> attests for RIPE address holders and RIPE ASN holders).
      If a resource holder's authorization cannot be certified, then consumers
      cannot verify attestations made.  In effect, without resource certification, 
      consumers are basically only certifying the assertions that the creator /
      maintainer of the resource object has made (not if that assertion is valid).
    </t>

    <t>
      The RIPE community addressed this last issue by putting in a foundation policy
      <xref target="RIPE2007-01"/>, which requires a contractual link
      between the RIPE NCC and the end user in direct assignment + ASN assignment
      cases, which weren't previously covered by LIR contracts for address
      allocations.  There were a couple of intentions with this policy:
      <list style="numbers">
        <t>There was an encumbrance placed in the policy for the LIR to charge the
          end-user for provider independent resources.  This action created a 
          collection mechanism for PI address resources (IPv4 / IPv6 space, ASNs).
        </t>

        <t>
          It guaranteed that all RIPE NCC allocated/assigned space would be
          subject to a contractual link, and that this contractual chain might end up
          actually meaning something when it came to the issue of who made what claim
          about what number resource.
        </t>

        <t>
          It tied into the RIPE NCC's object grandfathering policy which ties
          the registration details of the end-user to the object registered in the
          IRR database.
        </t>
      </list>
      While this policy specifically addressed PI/portable space holders, other
      regions address this issue, too. Further, it is indeed a prerequisite for
      resource certification, though it does not directly address the IRR deficiencies.
    </t>

    <t>
      One of the central observations of this policy was that without a
      chain-of-ownership functionality in IRR databases, the discussion 
      of certifying their contents becomes moot.
    </t>


	</section> <!-- EOS No-Resource-Certification -->
	
	<section anchor="Incentives-To-Add"
	         title="Incentives to Maintain Data within the IRR">

	  <t>
	A second problem with data contained in the IRRs is that the
	incentives for resource holders to maintain both accurate and up-to-date
	information in one, or more, IRRs; including deletion of out-of-date or
	stale data from the IRRs can diminish rapidly when changing their peering 
	policies (such as switching transit providers).  Specifically, there is a 
	very strong incentive
	for an ISP's customers to register new routing information in the IRR,
	because some ISPs enforce a strict policy that they will only build or
	update a customer's prefix-lists applied to the customer's inbound eBGP
	sessions based off information found within the IRRs.  Unfortunately,
	there is little incentive for an ISP's customers to remove out-of-date
	information from an IRR, most likely attributed to the fact that some
	ISPs do not use, or enforce use of, data contained within the IRRs to
	automatically build incoming policy applied to customer's eBGP sessions.
	For example, if a customer is terminating service from one ISP that
	requires use of IRR data to build incoming policy and, at the same time,
	enabling service with another ISP that does not require use of IRR data,
	then that customer will likely let the data in the IRR become stale or
	inaccurate.
	  </t>
	  <t>
	Further, policy filters are almost exclusively generated based
	on the origin AS information contained within IRR route objects
	and used by providers to filter downstream transit customers.
	Since providers only look for route objects containing the
	origin AS of their downstream customer(s), stale route objects with
	historical and, possibly, incorrect origin AS information are ignored.
	Assuming that the downstream customer(s) do not continue to announce those
	routes with historical, or incorrect, origin AS information in BGP to
	the upstream provider, there is no significant incentive to remove them as
	they do not impact offline policy filter generation nor routing on the
	Internet.  On the other hand, the main incentive that causes the Service
	Provider to work with downstream customer(s) is when the resultant filter
	list becomes too large that it is difficult for it to be stored on-board
	PE routers; however, this is more practically an operational issue with
	very old, legacy PE routers, not more modern PE router hardware with
	more robust Control Plane Engines.
	  </t>

	</section> <!-- EOS Incentives-To-Add" -->

	<section anchor="Inability-To-Remove"
	         title="Inability for Third Parties to Remove (Stale) Information from the IRRs">
	
	  <t>
	A third challenge with data contained in IRRs is that it is not possible
	for IRR operators, and ISPs who use them, to proactively remove
	(perceived) out-of-date or "stale" resources in an IRR, on behalf of
	resource holders who may not be diligent in maintaining this information
	themselves.  The reason is that, according to the Resource Policy
	Specification Language (RPSL) <xref target='RFC2622'/>, only the resource
	holder ('mntner') specified in a 'mnt-by' value field of an RPSL resource 
	is authorized to add, modify or delete their own resources within the IRR.
	To address this issue, the 'auth-override' mechanism
	<xref target='RFC2725'/> was later developed that would have enabled
	a third party to update and/or remove "stale" resources from the IRR.
	While it is unclear if this was ever implemented or deployed, it does
	provide language semantics needed to overcome this obstacle.
	  </t>
	
	  <t>
	Nevertheless, with such a mechanism in place, there is still a risk that the original
	RPSL resource holder would not receive notifications (via the 'notify'
	attribute in various RPSL resources) about the pending or actual removal
	of a resource from the IRR in time to halt that action if those resources
	were still being used.  In this case, if the removal of a resource was not
	suspended, it could potentially result in an unintentional denial of
	service for the RPSL resource holder when, for example, ISPs
	automatically generated and deployed a new policy based on the newly
	removed resources from the IRR, thus dropping any reachability
	announcement for the removed resource in eBGP.
	  </t>
	
	</section> <!-- EOS Inability-To-Remove -->

	<section anchor="Lack-of-Authoritative"
	         title="Lack of Authoritative IRR for Resources">

	  <t>
	According to <xref target='RFC2622'/>, within an RPSL resource "the source
	attribute specifies the registry where the object is registered."  Note
	that this source attribute only exists within the RPSL resource itself.
	Unfortunately, given a specific resource, (e.g.: a specific IPv4 or IPv6
	prefix), most of the time it is impossible to tell a priori the
	authoritative IRR where to query and retrieve an authoritative copy of
	that resource.
	  </t>

	  <t>
	This makes it difficult for consumers of data from the IRR to
	automatically know the authoritative IRR of a resource holder, which will
	contain their most up-to-date set of resources.  This is typically not a
	problem for an ISP that has a direct (customer) relationship with the
	resource holder, because the ISP will ask the resource holder which
	(authoritative) IRR to pull their resources from on, for example, a
	"Customer BGP Order Form".  However, third parties that do not have a
	direct relationship with the resource holder, have a difficult time
	attempting to infer the authoritative IRR, preferred by the resource
	holder, that likely contains the most up-to-date set of resources.  As a
	result, it would be helpful for third parties if there was a robust
	referral mechanism so that a query to one IRR would be automatically
	redirected toward the authoritative IRR for the most up-to-date and
	authoritative copy of that particular resource.  This problem is worked
	around by individual IRR operators storing a local copy of other IRR's
	resources, through periodic mirroring, which allows the individual IRR to
	respond to a client's query with all registered instances of a particular
	IRR resource that exist in both the local IRR and all other IRRs.  Of
	course, the problem with this approach is that an individual IRR operator
	is under no obligation to mirror all other IRRs and, in practice, some
	IRRs do not mirror the resources from all other IRRs.  This could lead
	to the false impression that a particular resource is not registered or
	maintained at a particular IRR.  Furthermore, the authentication process
	of accepting updates by any given IRR may, or may not, be robust enough to
	overcome impersonation attacks.  As a result, there is no rigorous
	assurance that a mirrored RPSL statement was actually made by the authorized
	resource holder.
	  </t>

	</section> <!-- EOS Lack-of-Authoritative -->

  <section anchor="Client-Side-Considerations"
           title="Client-Side Considerations">
    <t>
      There are no provisions in the IRR mode for ensuring the confidentiality
      component for clients issuing queries.  The overall Confidentiality, 
      Integrity, and Availability (CIA) model of the system does lack this component,
      because the interface to IRRs is over an unencrypted TCP connection to port 43.
      This leaves the transaction open to inspection such that an adversary could be able
      to inspect the query and the response.  However, the IRR system is intended
      to be composed of public policy information, and protection of queries was not
      part of the protection calculus when it was designed, though the use of Transport 
      Layer Security (TLS)&nbsp;<xref target='RFC5246'/> would address protections
      of query information.  
    </t>
  </section>


	<section anchor="Conclusions-on-Lack"
	         title="Conclusions with respect to Data in the IRR">

	  <t>
	All of the aforementioned issues related to integrity and accuracy of
	data within the IRR stem from a distinct lack of resource certification
	for resources contained within the IRR.  Only now is an experimental
	test bed that reports to provide this function (under the auspices of the 
	Resource PKI <xref target='RFC6480'/>) being formally discussed,
	which could also aid in certification of resources within the IRR.  It 
	should be noted that the RPKI is only currently able to support signing
	of Route Origin Authorization (ROA) resources that are the equivalent of
  'route' resources in the IRR.  There has been some
  sentiment that the RPKI currently is not scoped to address the same set
  of issues and the nuanced policy applications that providers leverage
  in RPSL.  It is unclear if, in the future, the RPKI
	will be extended to support additional resources that already exist in the
  IRR, e.g.: aut-num, as-net, route-set, etc.  Finally, a seemingly
	equivalent resource certification specification for all resources in the
	IRR has already been developed <xref target='RFC2725'/>, however it is
	unclear how widely it was ever implemented or deployed.
	  </t>

	</section>
	
	</section> <!-- EOS Accuracy -->


	<!-- RPSL: TBD
	
	<section anchor="RSPL"
	         title="Routing Policy Specification Language (RPSL)">
	
	<t>
	A key strength of the RPSL schema is the ability to compactly define an
	organization's entire Routing Policy allowing for the automated creation
	and maintenance of routing policy within Edge routers imposed at the
	borders of their AS.
	</t>
	<t>
	RPSL contains significant flexibility to represent complex
	routing policies.  However, along with this flexibility come
	significant complexity.  Many providers currently only use a
	very limited subset of the RPSL feature set.   If one is
	unfamiliar with RPSL, it can be a challenge to translate an
	import existing policy expressed  in router configuration files
	into the RPSL syntax.
	</t>
	
	</section> 
	
	-->

	<section anchor="Operation-of-IRR"
             title="Operation of the IRR Infrastructure">

	<section anchor="Replication-of-IRR"
	         title="Replication of Resources Among IRRs">

	  <t>
      Currently, several IRRs <xref target="IRR_LIST"/>  use a Near-Real-Time Mirroring (NRTM)
	protocol to replicate each others contents.  However, this protocol
	has a several weaknesses.  Namely, there is no way to validate that
	the copy of mirrored source is correct and synchronization issues have often
	resulted.   Furthermore, the NRTM protocol does not employ any
	security mechanisms.  The NRTM protocol relies on a pull mechanism
	and is generally configured with a poll interval of 5 to 10
	minutes.  There is currently no mechanism to notify an IRR when an
	update has occurred in a mirrored IRR so that an immediate update
	can be made.
	  </t>
          <t>
        Some providers employ a process of mirroring an instance of an
        IRR that involves downloading a flat text file copy of the IRR that
        is made available via FTP&nbsp;<xref target='RFC0959'/>.   These FTP files are exported at regular
        intervals of typically anywhere between 2 and 24 hours by the IRRs.
        When a provider fetches those text files, it will process them
        to identify any updates and reflect changes within its own
        internally maintained database.  The use of an internally
        maintained database is out-of-scope of this document, but
        is generally used to assist with more straightforward access to or
        modification of data by the IRR operator.   Providers typically
        employ a 24 hour cycle to pull updated resources from IRRs.  Thus,
        depending on when resource holders submitted their changes to an IRR,
        it may take up to 24 hours for those changes to be reflected in their
        policy configurations.  In practice, it appears that the
        RPKI will also employ a 24 hour cycle whereby changes in resources are
        pushed out to other RPKI caches <xref target="RPKI_SIZING"/>.
          </t>
	  <t>
	IRRs originated from Section 7 of <xref target='RFC1787'/>, specifically:
	"The scale of the Internet implies that the [routing requirements]
	information should be distributed."  Regardless, the practical effect of
	an organization maintaining its own local cache of IRR resources is an
	increase in resource resiliency (due to multiple copies of the same
	resource being geographically distributed), a reduction in query time for
	resources and, likely, a reduction in inter-domain bandwidth consumption and associated
	costs.  This is particularly beneficial when, for example, an ISP is
	evaluating resources in an IRR just to determine if there are any
	modifications to those resources that will ultimately be reflected in a
	new routing policy that will get propagated to (edge) routers in the ISP's
	network.  Cache locality results in reduced inter-domain bandwidth utilization for each
	round trip.
	  </t>
	  <t>
	On the other hand, it is unclear from where the current
	provider replication interval of 24 hours originated or even
	whether it still provides enough freshness in the face of
	available resources, particularly in today's environment where
	a typical IRR system consists of
	a (multi-core) multi-GHz CPU connected to a network via a physical
	connection of 100 Mbps or, more likely, higher bandwidth.  In addition, 
  increasing bandwidth demands have shifted demand towards
	circuit sizes used by ISPs to 10
	Gbps, thus eliminating bandwidth as a significant factor in the transfer of
	data between IRRs.  Furthermore, it should be noted that Merit's Internet
	Routing Registry Daemon (IRRd) <xref target='MERIT-IRRD'/>, uses 10
	minutes as its default for "irr_mirror_interval".
	  </t>
	  <t>
	Lastly, it should be noted that <xref target='RFC2769'/>, Routing Policy
	System Replication, attempted to offer a more methodical solution for
	distributed replication of resources between IRRs.  It is unclear why
	this RFC failed to gain traction, but it is suspected that this was due to
	that specification's reliance on <xref target='RFC2725'/>, Routing Policy
	System Security, that addressed "the need to assure integrity of the data
	by providing an authentication and authorization model."
  Indeed, <xref target='RFC2725'/> attempts to add an otherwise absent security
  model to the integrity of policy statements made in RPSL.  Without formal
  protections, it is possible for anyone to author a policy statement about
  an arbitrary set of resources, and publish it (as discussed above in 
  Section&nbsp;<xref target='No-Resource-Certification'/>.
	  </t>

	</section> <!-- EOS Replication-of-IRR -->

	<section anchor="Update-Policies-on-Routers"
	         title="Updating Routing Policies from Updated IRR Resources">

<!-- EMO: I felt like this section needed to focus a bit more -->

	  <t>
	Ultimately, the length of time it takes to replicate resources among IRRs
	is, generally, the dominant factor in reflecting changes to resources in
	policy that is eventually applied within the Control Plane of routers.
	The length of time to update network elements will vary considerably
	depending on the size of the ISP and the number of IRR resources that were
	updated during any given interval.  However, there are a variety of common
	techniques, that are outside the scope of this document, that allow for
	this automated process to be optimized to considerably reduce the length
	of time it takes to update policies in the ISP's network.
	  </t>
	  <t>
	An ISP will begin the process of updating the policy in their network, by
	first fetching IRR resources associated with, for example, a customer ASN
	attached to their network.  Next, the ISP constructs a new policy
	associated to that customer and then evaluates if that new policy is
	different from existing policy associated with that same customer.  If
	there are no changes between the new and existing policy associated with
	that customer, then the ISP does not make any changes to the policy in
	their routers specific to that customer.  On the other hand, if the new
	policy does reflect changes from the existing policy for that customer,
	then the ISP begins a process of uploading the new policy to the routers
	attached to that customer.
	  </t>
	  <t>
	The process of constructing a new policy involves use of a set of
	programs, e.g.: IRRtoolset, that performs recursive expansion of an RPSL
	aut-num resource, that comprises an arbitrary combination of other RPSL
	aut-num, as-set, route and route-set resources, according to procedures
	defined by RPSL.  The end result of this process is, traditionally, a
	router vendor dependent configuration snippet that defines the routing
	policy for that customer.  This routing policy may consist of the set of
	IPv4 or IPv6 prefixes, associated prefix lengths and AS_PATH's that are
	supposed to be accepted from a customer's eBGP session.  However, if
	indicated in the appropriate RPSL resource, the policy may also set
	certain BGP Attributes, such as MED, AS_PATH prepend value, LOCAL_PREF,
	etc., at either the incoming eBGP session from the customer or on static
	routes that are originated by the resource holder.
	  </t>
	  <t>
	An ISP's customers may not adequately plan for pre-planned maintenance
	or, more likely, need to rapidly begin announcing a new IP prefix as a
	result of, for example, an emergency turn-up of the ISP customer's new
	downstream customer.  Unfortunately, the routine, automated process
	employed by the ISP means that they may not begin updating their
	routing policy on their network for up to 24 hours, because the ISP or the
	IRRs the ISP uses might only mirror changes to IRR resources once every
	24 hours.  The time interval for the routine/automated process is not
	responsive to the needs of directly paying customer(s) who need rapid
	changes in their policy in rare situations.  In these situations, when a
	customer has an urgent need for updates to take effect immediately, they
	will call the Network Operations Center (NOC) of their ISP and request
	that the ISP immediately fetch new IRR objects and push those changes out
	to their network.  This is often accomplished in as little as five
	minutes from the time a customer contacts their ISP's NOC to the
	time a new filtering policy is pushed out to the PE routers that are
	attached to that customer's Attachment Circuits (AC's).  It is conceivable
	that some ISPs automate this using out-of-band mechanisms as well,
	although the authors are unaware of any existing mechanisms that support
	this.
	  </t>
	  <t>
	Ultimately, the aforementioned latency with respect to "emergency changes"
	in IRR resources that need to be reflected in near-real-time in the
	network is compounded if the IRR resources were being used by third party
	ISPs to perform filtering on their peering circuits, where typically no
	such policies are employed today for this very reason.  It is likely that
	the length of time that it takes IRRs to mirror changes will have to be
  dramatically reduced.  There will need to be a corresponding reduction in the
  time needed by ISPs to evaluate whether those changes need to be re-compiled
  and reflected in router policies, which would then get pushed out
	to ASBR's and connected to peering circuits on their network.
	  </t>
	</section> <!-- EOS Update-Policies-on-Routers -->
	
	</section> <!-- EOS Operation-of-IRR -->

	<section anchor="Historical-Protocol"
	         title="Historical BGP Protocol Limitations">
	  <t>
	As mentioned previously, after a resource holder made changes to their
	resources in an IRR, those changes would automatically be distributed to
	other IRRs, ISPs would then learn of those changes, generate a new BGP
	policies, and then apply those to the appropriate subset of routers in their
	ASes.  However, in the past, one additional step is necessary in order
	to have any of those new BGP policies take effect in the Control Plane
	and to allow/deny the updated resource from a customer to their ISP and from
	their immediately upstream ISP to the ISP's peers.  
	It was necessary (often manually) to actually induce BGP on each
	router to apply the new policy within the Control Plane, thus
	learning of a newly announced/changed IP prefix (or, dropping a deleted IP
	prefix).  Unfortunately, most of these methods were not only highly
	operationally impactful, but also affected traffic forwarding to IP
	destinations that were unrelated to the most recent changes to the BGP
	policy.
	  </t>
	  <t>
	Historically, a customer would have to (re-)announce the new IP prefix
	toward their ISP, but only after the ISP had placed the new BGP policies
	into affect.  Alternatively, the ISP would have to reset the entire PE-CE
	eBGP session either by: a) bouncing the entire interface toward the
	customer, (e.g.: shutdown/no shutdown); or, b) clearing the eBGP session
	toward the customer, (e.g.: clear ip bgp neighbor &gt;IP address of CE
	router&lt;).  The latter two cases were, of course, the most highly
	impactful and thus could generally only be performed off-hours during a
	maintenance window.
	  </t>
	  <t>
	Once the new IP prefix has been successfully announced by the customer and
	permitted by the newly updated policy at the ISP's PE's (attached to that
	customer), it would be propagated to that ISP's ASBR's, attached to peers,
	at the perimeter of the ISP network.  Unfortunately, if those peers had
	either not yet learned of the changes to resources in the IRR or pushed
	out new BGP policies (and, reset their BGP sessions immediately
	afterward) incorporating those changes, then the newly announced route
	would also get dropped at the ingress ASBR's of the peers. 
	  </t>
	  <t>
	Ultimately, either of the two scenarios above further lengthen the
	effective time it would take for changes in IRR resources to take effect
	within BGP in the network.  Fortunately, BGP has been enhanced over the
	last several years in order that changes within BGP policy will take
	affect without requiring a service impacting reset of BGP sessions.
  Specifically, BGP soft-reconfiguration (<xref target='RFC2918'/> Section 1)
  and, later, Route Refresh
	Capability for BGP-4 <xref target='RFC2918'/> were developed so that
	ISPs, or their customers, could induce BGP to apply a new policy while
	leaving both the existing eBGP session active as well as (unaffected)
	routes active in both the Loc-RIB and, more importantly, FIB of the
	router.  Thus, using either of these mechanisms, an ISP or its peers
	currently will deploy a newly generated BGP policy, based on changes to
	resources within the IRR, and immediately trigger a non-service impacting
	notification to the BGP process to have those changes take effect in their
	Control Plane, either allowing a new IP prefix to be announced or an old
	IP prefix to be dropped.  This dramatically reduces the length of time
	after changes are propagated throughout the IRRs to when those changes
	are actually operational within BGP policy in an ISP's network.
	  </t>

	</section> <!-- EOS Historical-Protocol -->
	

	<section anchor="Router-Limits"
             title="Historical Limitations of Routers">

	<section anchor="Incremental-Updates"
             title="Incremental Updates to Policy on Routers">
	  <t>
	Routers in the mid 1990's rarely supported incrementally updatable prefix
	filters for BGP, and therefore, if new information was received from a
	policy or internal configuration database that would impact a policy
	applied to a given eBGP peer, the entire prefix list or access list would
	need to be deleted and rewritten, compiled, and installed.  This was very
	tedious and commonly led to leaked routes during the time when the policy
	was being rewritten, compiled, and applied on a router.  Furthermore,
	application of a new policy would not automatically result in new ingress
	or egress reachability advertisements, from that new policy, because
	routers at the time would require a reset of the eBGP sessions for routing
	information to be evaluated by the new policy.  Of course, resetting of an
	eBGP session had implications on traffic forwarding during the time the eBGP
	session was reestablished and new routing information was learned.
	  </t>
	  <t>
	Routers now support the ability to perform incremental, and in situ, updates to
	filter lists consisting of IP prefixes and/or AS_PATH's that are used within
	an ingress or egress BGP policy.  In addition, routers also can apply
	those incremental updates to policy, with no traffic disruption, using BGP
	soft-reconfiguration or BGP Route Refresh, as discussed in the previous
	section.
	  </t>
	</section> <!-- EOS Incremental-Updates -->

	<section anchor="Storage-Reqmts"
             title="Storage Requirements for Policy on Routers">
	  <t>
	Historically, routers had very limited storage capacity and would have
	difficulty in storing an extremely large BGP policy on-board.
	This was typically the result of router hardware vendors using an
	extremely limited amount of NVRAM for storage of router configurations.
	  </t>
	  <t>
	Another challenge with historical router hardware was that writing to NVRAM was
  extremely slow.  For example, when the router configuration had
	changed as a result of updating a BGP policy that needed to accommodate
	changes in IRR resources, this would result in extremely long times to
	write out these configuration changes.  Sometimes, due to bugs, this would
	result in loss of protocol keep-alives.  This would  cause an impact to routing
	or forwarding of packets through the platform.
	  </t>
    <!-- EMO: Need to add Danny's story about frequent NVRAM writes exceeding 
    th MTBF on NVRAM, and how that's not a problem anymore. -->
	  <t>
	The above limitations have largely been resolved with more modern
	equipment from the last few years shipping with increasing amounts of
	non-volatile storage such as: PCMCIA or USB Flash Cards, Hard Disk Drives
	or Solid State Disk Drives.
	  </t>

    <t>
      However, as capacities and technologies have evolved on modern routing hardware,
      so have some of the scaling requirements of the data.  In some large networks,
      configuration growth has begun to &quot;pose challenges&quot; <xref target="IEPG89_NTT"/>.  
      While the enhancements of hardware have overcome some historical limitations, evidence
      suggests that further optimizations in configuration processing may be needed in some cases.
      Some of the more recent operational issues include scheduler slips and protracted commit times.
      This suggests that even though many historical hurdles have been overcome, there are still
      motivations to optimize and modernize IRR technologies.
    </t>

	</section> <!-- EOS Storage-Reqmts -->

	<section anchor="Cfg-Updates"
             title="Updating Configuration on Routers">
	  <t>
	Historically, there has not been a standardized network configuration
	modeling language or an associated method to update router configurations.
	When an ISP detected a change in resources within the IRR, it would
	fashion a router vendor dependent BGP policy and upload that to the router
	usually via the following method.
	  </t>
	  <t>
	First, an updated BGP policy configuration 'snippet' is generated via
	processes running on an out-of-band server.  Next, the operator uses either
  telnet or SSH&nbsp;<xref target='RFC4253'/> to login to the CLI of a target router and issue router
	vendor dependent CLI commands that will trigger the target router to
	fetch the new configuration snippet via TFTP, FTP or Secure Copy (SCP)
	stored on the out-of-band server.  The target router will then perform
	syntax checking on that configuration snippet and, if that passes, merge
	that configuration snippet into the running configuration of the
	router's Control Software.  At this point, the new BGP policy
	configuration 'snippet' is active within the Control Plane of the router.
	One last step remains, which is the operator will issue a CLI command
	to induce the router to perform a "soft reset", via BGP 
	soft-reconfiguration or BGP Route Refresh, of the associated BGP session
	in order to trigger the router to apply the new policy to routes learned
	from that BGP session without disrupting traffic forwarding.
	  </t>
	  <t>
      More recently, operators have the ability to use NETCONF&nbsp;<xref target='RFC6241'/> / SSH (or, TLS)
	from an out-of-band server to push a BGP configuration 'snippet' from an
	out-of-band server toward a target router that has that capability.  However,
	this activity is still dependent on generating, via the out-of-band server, a
	router vendor dependent XML configuration snippet that would get uploaded
	via SSH or TLS to the target router.
	  </t>
	  <t>
	In the future, the ability to upload new Route Origin Authorization (ROA)
	information may be provided from the RPKI to routers via the RPKI-RTR
	<xref target='RFC6810'/> protocol.  However, this will not
	allow operators the ability to upload other configuration information such
	as BGP policy information, such as AS_PATH's, BGP communities, etc. that
	might be associated with that ROA information, like they can from IRR
	generated BGP policies.
	  </t>
	
	</section> <!-- EOS Cfg-Updates -->
	
	</section> <!-- EOS Router-Limits -->
	
	<!-- WORK IN PROGRESS!?!?
	
	SUB-HEADING: Disclosing Interconnection and Policy Information

	Live v. feasible paths, import and export policies, etc..

	SUB-HEADING: IRR Insecurities

	AS-SET inclusions, prefix binding, mail-from, etc..


	HEADING: CONTROL, AUTONOMY and RESILIENCY CONSIDERATIONS

	INTO THE FUTURE? A VIABLE OPTION WITH RESOURCE CERTIFICATION?

	Tool reuse, comfort with resource certification infrastructure,
	national sovereignty and related issues, etc..

	-->

    <section anchor="summary" title="Summary">
      <t>
        As discussed above, many of the problems that have traditionally stifled IRR deployment have,
        themselves, become historical.  However, there are still real operational considerations that
        limit IRR usage from realizing its full effectiveness.  The potential for IRRs to express
        inter-domain routing policy, and to allow relying parties to learn policy, has always positioned
        it as a strong candidate to aid the security postures of operators.  However, while routing
        density and complexity have grown, so have some of the challenges facing IRRs (even today).  
        Because of this state increase, the potential to model all policies for all ASes in all routers 
        may still remain illusive.  In addition, without an operationally deployed resource certification
        framework that can tie policies to resource holders, there is a fundamental limitation that still 
        exists.
      </t>
    </section>

    <section anchor="Security"
             title="Security Considerations">
	  <t>
		  One of the central concerns with IRRs is the ability of an IRR operator to remotely influence
      the routing operations of an external consumer.  Specifically, if the processing of IRR contents can 
      become burdensome, or if the policy statements can be crafted to introduce routing problems 
      or anomalies, then operators may want to be circumspect about ingesting contents from external parties.  
      <!--
      Consideration to the authenticity of statements is addressed above, in Section <xref target='Replication-of-IRR'/>,
      but this concern relates to the effect that vetted data may have on operations.
      -->
      A resource 
      certification framework should be used to address the authorization of IRR statements to make attestations
      and to assertions (as mentioned in <xref target="No-Resource-Certification"/>, and discussed above in 
      Section <xref target='Replication-of-IRR'/>).
	  </t>

    <t>
      Additionally, the external and systemic dependencies introduced by IRRs and other such systems employed to inform
      routing policy, and how tightly or loosely coupled those systems are to the global routing system and operational
      networks, introduces additional vectors that operators and system architects should consider when evaluating attack
      surface and service dependencies associated with those elements.  These attributes and concerns are certainly not unique
      to IRRs, and operators should evaluate the implications of external systems and varying degrees of coupling and
      operational buffers that might be installed in their environments.
    </t>

    </section> <!-- Security Considerations-->

    <section anchor="IANA"
             title="IANA Considerations">
      <t>
		    There are no IANA considerations.
      </t>

    </section> <!-- IANA Considerations -->



    <section anchor="Acknowledgements"
             title="Acknowledgements">
      <t>
        The editors would like to acknowledge and thank Chris Morrow, Jeff Haas, Wes George, and John Curran for their
        help and constructive feedback.
      </t>

    </section> <!-- Acknowledgements -->


  </middle>
  <back>

    <references title="Informative References">
	
      &RFC0959;
      &rfc1787;
      &rfc2622;
      &rfc2725;
      &rfc2769;
      &rfc2918;
      &RFC4253;
      &RFC5246;
      &RFC6241;
      &rfc6480;
      &rfc6810;

      <reference anchor="MERIT-IRRD">
        <front>
          <title>
            IRRd - Internet Routing Registry Daemon
          </title> 
          <author fullname="Merit">
            <organization >Merit</organization>
          </author>
        </front>
        <seriesInfo name="" value="http://www.irrd.net"/>
      </reference>

      <reference anchor="RIPE2007-01">
        <front>
          <title>
            DRAFT: Autonomous System (AS) Number Assignment Policies and Procedures
          </title>
          <author fullname="RIPE NCC">
            <organization>RIPE NCC</organization>
          </author>
        </front>
        <seriesInfo name="Foundation Policy" value="http://www.ripe.net/ripe/docs/ripe-452"/>
      </reference>

      <reference anchor="TASRS">
        <front>
          <title>
            TASRS: Towards a Secure Routing System Through Internet Number Resource Certification
          </title>
          <author initials="E. O." surname="Osterweil" fullname="E. Osterweil">
            <organization/>
          </author>
          <author initials="S. A," surname="Amante" fullname="S. Amante">
            <organization/>
          </author>
          <author initials="D. M." surname="McPherson" fullname="D. McPherson">
            <organization/>
          </author>
        </front>
        <seriesInfo name="Verisign Labs Technical Report 1130009" value="http://techreports.verisignlabs.com /tr-lookup.cgi?trid=1130009&rev=1"/>
      </reference>

      <reference anchor="RC_HotNetsX">
        <front>
          <title>
            The Great IPv4 Land Grab: Resource Certification for the IPv4 Grey Market
          </title>
          <author initials="E. O." surname="Osterweil" fullname="E. Osterweil">
            <organization/>
          </author>
          <author initials="S. A," surname="Amante" fullname="S. Amante">
            <organization/>
          </author>
          <author initials="D. M." surname="McPherson" fullname="D. McPherson">
            <organization/>
          </author>
          <author initials="D. M." surname="Massey" fullname="D. Massey">
            <organization/>
          </author>
        </front>
        <seriesInfo name="HotNets-X" value="http://dl.acm.org/citation.cfm?id=2070574"/>
      </reference>

      <reference anchor="IRR_LIST">
        <front>
         <title>
           List of Routing Registries
         </title>
         <author fullname="Internet Routing Registry (IRR)">
           <organization>Merit Network, Inc.</organization>
         </author>
       </front>
       <seriesInfo name="List of Routing Registries" value="http://www.irr.net/docs/list.html"/>
     </reference>

     <reference anchor="RPKI_SIZING">
       <front>
         <title>
           Sizing Estimates for a Fully Deployed RPKI
         </title>
         <author initials="E. O." surname="Osterweil" fullname="Eric Osterweil">
           <organization/>
         </author>
         <author initials="T. M." surname="Manderson" fullname="Terry Manderson">
           <organization/>
         </author>
         <author initials="R. W." surname="White" fullname="Russ White">
           <organization/>
         </author>
         <author initials="D. M." surname="McPherson" fullname="Danny McPherson">
           <organization/>
         </author>
       </front>
       <seriesInfo name="Verisign Labs Technical Report 1120005 version 2"
         value="http://techreports.verisignlabs.com/tr-lookup.cgi?trid=1120005&rev=2"/>
     </reference>

     <reference anchor="IEPG89_NTT">
       <front>
         <title>
           NTT BGP Configuration Size and Scope
         </title>
         <author fullname="Jared Mauch">
           <organization/>
         </author>
       </front>
       <seriesInfo name="IEPG 89" value="http://iepg.org/2014-03-02-ietf89/ietf89_iepg_jmauch.pdf"/>
     </reference>
	
    </references>

  </back>
</rfc>
