| < draft-ietf-sidr-roa-validation-03.txt | draft-ietf-sidr-roa-validation-04.txt > | |||
|---|---|---|---|---|
| Secure Inter-Domain Routing (SIDR) G. Huston | Secure Inter-Domain Routing (SIDR) G. Huston | |||
| Internet-Draft G. Michaelson | Internet-Draft G. Michaelson | |||
| Intended status: Informational APNIC | Intended status: Informational APNIC | |||
| Expires: February 7, 2010 August 6, 2009 | Expires: September 4, 2010 March 3, 2010 | |||
| Validation of Route Origination in BGP using the Resource Certificate | Validation of Route Origination using the Resource Certificate PKI and | |||
| PKI and ROAs | ROAs | |||
| draft-ietf-sidr-roa-validation-03.txt | draft-ietf-sidr-roa-validation-04.txt | |||
| Abstract | ||||
| This document defines the semantics of a Route Origin Authorization | ||||
| in terms of the context of an application of the Resource Public Key | ||||
| Infrastructure to validate the origination of routes advertised in | ||||
| the Border Gateway Protocol. | ||||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | Drafts. | |||
| skipping to change at page 1, line 33 ¶ | skipping to change at page 1, line 40 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on February 7, 2010. | This Internet-Draft will expire on September 4, 2010. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2010 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents in effect on the date of | Provisions Relating to IETF Documents | |||
| publication of this document (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | ||||
| Abstract | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | ||||
| This document defines an application of the Resource Public Key | described in the BSD License. | |||
| Infrastructure to validate the origination of routes advertised in | ||||
| the Border Gateway Protocol. The proposed application is intended to | ||||
| fit within the requirement for adding security to inter-domain | ||||
| routing, including the ability to support incremental and piecemeal | ||||
| deployment, and does not require any changes to the specification of | ||||
| BGP. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Validation Outcomes of a BGP Route Object . . . . . . . . . . 3 | 2. ROA Validation Outcomes for a Route Object . . . . . . . . . . 3 | |||
| 3. Applying Validation Outcomes to BGP Route Selection . . . . . 4 | 3. Applying Validation Outcomes to Route Selection . . . . . . . . 5 | |||
| 4. Further Considerations . . . . . . . . . . . . . . . . . . . . 6 | 4. Disavowal of Routing Origination . . . . . . . . . . . . . . . 6 | |||
| 4.1. Partial Deployment Considerations . . . . . . . . . . . . 6 | 5. Route Object Validation Lifetime . . . . . . . . . . . . . . . 7 | |||
| 4.2. Disavowal of Routing Origination . . . . . . . . . . . . . 7 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.3. BGP Considerations . . . . . . . . . . . . . . . . . . . . 8 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 8 | |||
| 7. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 8.2. Informative References . . . . . . . . . . . . . . . . . . 8 | |||
| 7.1. Changes -02 to -03 . . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7.2. Changes -01 to -02 . . . . . . . . . . . . . . . . . . . . 10 | ||||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 10 | ||||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 11 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 1. Introduction | 1. Introduction | |||
| This document defines an application of the Resource Public Key | This document defines the semantics of a Route Origin Authorization | |||
| Infrastructure (RPKI) [I-D.ietf-sidr-arch] to validate the | (ROA) in terms of the context of an application of the Resource | |||
| Public Key Infrastructure (RPKI) [I-D.ietf-sidr-arch] to validate the | ||||
| origination of routes advertised in the Border Gateway Protocol (BGP) | origination of routes advertised in the Border Gateway Protocol (BGP) | |||
| [RFC4271]. | [RFC4271]. | |||
| The RPKI is based on a hierarchy of Resource Certificates that are | The RPKI is based on a hierarchy of Resource Certificates that are | |||
| aligned to the Internet number resource allocation structure. | aligned to the Internet number resource allocation structure. | |||
| Resource Certificates are X.509 certificates that conform to the PKIX | Resource Certificates are X.509 certificates that conform to the PKIX | |||
| profile [RFC5280], and to the extensions for IP addresses and AS | profile [RFC5280], and to the extensions for IP addresses and AS | |||
| identifiers [RFC3779]. A Resource Certificate describes an action by | identifiers [RFC3779]. A Resource Certificate describes an action by | |||
| an issuer that binds a list of IP address blocks and Autonomous | an issuer that binds a list of IP address blocks and Autonomous | |||
| System (AS) numbers to the Subject of a certificate, identified by | System (AS) numbers to the Subject of a certificate, identified by | |||
| the unique association of the Subject's private key with the public | the unique association of the Subject's private key with the public | |||
| key contained in the Resource Certificate. The RPKI is structured | key contained in the Resource Certificate. The RPKI is structured | |||
| such that each current Resource Certificate matches a current | such that each current Resource Certificate matches a current | |||
| resource allocation or assignment. This is further described in | resource allocation or assignment. This is further described in | |||
| [I-D.ietf-sidr-arch]. | [I-D.ietf-sidr-arch]. | |||
| Route Origin Authorizations (ROAs) are digitally signed objects that | ROAs are digitally signed objects that bind an address to an AS | |||
| bind an address to an AS number, signed by the address holder. A ROA | number, signed by the address holder. A ROA provides a means of | |||
| provides a means of verifying that an IP address block holder has | verifying that an IP address block holder has authorized a particular | |||
| authorized an AS to originate route objects in the inter-domain | AS to originate route objects in the inter-domain routing environment | |||
| routing environment for that address block. ROAs are described in | for that address block. ROAs are described in | |||
| [I-D.ietf-sidr-roa-format]. ROAs are intended to fit within the | [I-D.ietf-sidr-roa-format]. ROAs are intended to fit within the | |||
| requirements for adding security to inter-domain routing. | requirements for adding security to inter-domain routing. | |||
| This document describes the semantic interpretation of a valid ROA, | This document describes the semantic interpretation of a ROA, with | |||
| with particular reference to application in BGP relating to the | particular reference to application in inter-domain routing relating | |||
| origination of route objects. | to the origination of route objects, and the intended scope of the | |||
| authority that is conveyed in the ROA. | ||||
| This proposed application of validation of ROAs does not require any | 2. ROA Validation Outcomes for a Route Object | |||
| changes to the specification of BGP protocol elements. The outcomes | ||||
| of ROA validation may be used as part of BGP's local route selection | ||||
| procedure [RFC4271]. | ||||
| 2. Validation Outcomes of a BGP Route Object | A "route object" is an address prefix and an associated set of | |||
| routing attributes. In terms of validation of the route object in | ||||
| the context of BGP [RFC4271]the address prefix value and the "origin | ||||
| AS" are used in the ROA validation operation. The route object's | ||||
| origin AS is the final element of the route object's AS_PATH | ||||
| attribute. If the final AS_PATH element is an AS Set, indicating | ||||
| that the route object is an aggregate, then the origin AS is taken as | ||||
| the AS component of the AGGREGATOR attribute [RFC4271]. | ||||
| A BGP "route object" is an address prefix and an associated set of | It is assumed here that a Relying Party (RP) has access to a local | |||
| attributes. In terms of validation of the route object the address | cache of the complete set of valid ROAs when performing validation of | |||
| prefix value and the "origin AS" are used in the ROA validation | a route object. (Valid ROAs are defined as ROAs that are determined | |||
| operation. The route object's origin AS is the final element of the | to be syntactically correct and are signed using a signature that can | |||
| route object's AS_PATH attribute. If the final AS_PATH element is an | be verified using the RPKI, as described in | |||
| AS Set, indicating that the route object is an aggregate, then the | [I-D.ietf-sidr-roa-format].) The RP needs to match a route object to | |||
| origin AS is taken as the AS component of the AGGREGATOR attribute | one or more candidate valid ROAs in order to determine a validation | |||
| [RFC4271]. | outcome, which, in turn, can be used to determine the appropriate | |||
| local actions to perform on the route object. | ||||
| A BGP route object does not refer to a specific ROA that should be | This approach to route object origination validation uses a model of | |||
| used by a Relying Party (RP) to validate the origination information | "positive" attestations, where route objects that cannot be validated | |||
| contained in the route object. The RP needs to match a route object | within the RPKI framework would conventionally be treated by a RP as | |||
| to one or more candidate valid ROAs in order to determine a | "invalid". However, the considerations of accommodating environments | |||
| validation outcome, which, in turn, can be used to determine the | of partial adoption of the use of ROAs, where only a subset of | |||
| appropriate local actions to perform on the route object. Valid ROAs | validly advertised address prefixes have associated published ROAs | |||
| are defined as ROAs that are determined to be syntactically correct | within the structure of the RPKI, imply some modification to this | |||
| and are signed using a signature that can be verified using the RPKI, | model of positive attestation. In the context of route object | |||
| as described in [I-D.ietf-sidr-roa-format]. The outcome of this ROA | validation it is assumed that once an address prefix is described in | |||
| validation function is that either the RP has determined that the ROA | a ROA, then this ROA speifically encompasses all address prefixes | |||
| is valid in the context of the RPKI, or the ROA is invalid, in which | that are more specific than that described in the ROA. Thus, any | |||
| case the ROA is not to be used by the RP. | route object for more specific address prefix than that described by | |||
| any valid ROA that does not itself have a matching valid ROA is | ||||
| considered to be "invalid". However, routes objects for address | ||||
| prefixes that are not fully described by any single ROA, i.e., those | ||||
| route objects whose address prefixes may be an aggregate of address | ||||
| prefixes described in a valid ROA, or have address prefixes where | ||||
| there is no intersection with any ROA, and are not matched by any ROA | ||||
| and are not a more specific of any ROA cannot be reliably classified | ||||
| as "invalid" in a partial deployment scenario. Such route objects | ||||
| have a validation outcome of "unknown". | ||||
| It is assumed here that ROAs are managed and distributed | The validation condition of a route object with a prefix and an | |||
| independently of the operation of BGP itself, and that a local BGP | origin AS when using single ROA for validation is summarized in the | |||
| speaker has access to a local cache of the complete set of valid ROAs | following table: | |||
| when performing a route object validation operation. | ||||
| Prefix matching non-matching | ||||
| AS AS | ||||
| +---------+-------------+ | ||||
| Covering | unknown | unknown | | ||||
| Aggregate | | | | ||||
| +---------+-------------+ | ||||
| match ROA | valid | invalid | | ||||
| prefix | | | | ||||
| +---------+-------------+ | ||||
| More | invalid | invalid | | ||||
| Specific | | | | ||||
| than ROA | | | | ||||
| +---------+-------------+ | ||||
| In an environment of a collection of ROAs, a route object is | ||||
| considered to be "valid" if any ROA provides a "valid" outcome. It | ||||
| is considered to be "invalid" if one (or more) ROAs provide an | ||||
| "invalid" outcome and no ROAs provide a "valid" outcome. It is | ||||
| considered to be "unknown" when no ROA produces either a "valid" or | ||||
| an "invalid" outcome. | ||||
| Route object validation is defined by the following procedure: | Route object validation is defined by the following procedure: | |||
| 1. Select all valid ROAs that include a ROAIPAddress value that | 1. Select all valid ROAs that include a ROAIPAddress value that | |||
| either matches, or is a covering aggregate of, the address | either matches, or is a covering aggregate of, the address | |||
| prefix in the route object. | prefix in the route object. | |||
| 2. If the set of candidate ROAs is empty then the validation | 2. If the set of candidate ROAs is empty then the validation | |||
| procedure stops with an outcome of "unknown". | procedure stops with an outcome of "unknown". | |||
| 3. If any ROA has an asID value that matches the origin AS in the | 3. If any of the selected ROAs has an asID value that matches the | |||
| route object, and either the route object's address prefix | origin AS in the route object, and either the route object's | |||
| precisely matches a ROAIPAddress in the ROA, or the route | address prefix precisely matches a ROAIPAddress in the ROA, or | |||
| object's address prefix is a more specific prefix of a | the route object's address prefix is a more specific prefix of | |||
| ROAIPAddress and the route object's prefix length value is | a ROAIPAddress, and the route object's prefix length value is | |||
| less than or equal to the ROAIPAddress' maxLength value, then | less than or equal to the ROAIPAddress' maxLength value, then | |||
| the validation procedure stops with an outcome of "valid". | the validation procedure stops with an outcome of "valid". | |||
| 4. Otherwise, the validation procedure stops with an outcome of | 4. Otherwise, the validation procedure stops with an outcome of | |||
| "invalid". | "invalid". | |||
| 3. Applying Validation Outcomes to BGP Route Selection | 3. Applying Validation Outcomes to Route Selection | |||
| Within the framework of the abstract model of BGP operation, a | Within the framework of the abstract model of the operation of inter- | |||
| received prefix announcement from a BGP speaking peer is compared to | domain routing using BGP [RFC4271], a received prefix announcement | |||
| all announcements for this prefix received from other BGP peers and a | from a routing peer is compared to all announcements for this prefix | |||
| route selection procedure is used to select the "best" route object | received from other routing peers and a route selection procedure is | |||
| from this candidate set. This route object is then used locally by | used to select the "best" route object from this candidate set. | |||
| installing it in the loc-RIB [RFC4271], and is announced to peers as | ||||
| the local "best" route. | ||||
| The route object validation outcome, described in Section 2, of | The route object validation outcome, described in Section 2, of | |||
| "unknown", "valid" or "invalid" may be used as part of the | "unknown", "valid" or "invalid" may be used as part of the | |||
| determination of the local degree of preference as defined in section | determination of the local degree of preference, in which case the | |||
| 9.1.1 of the BGP specification [RFC4271]. The local degree of | local order of preference is as follows: | |||
| preference is as follows: | ||||
| "valid" is to be preferred over | "valid" is to be preferred over | |||
| "unknown", which itself is to be preferred over | "unknown", which itself is to be preferred over | |||
| "invalid". | "invalid". | |||
| This preference ranking is performed prior to the steps described in | It is a matter of local routing policy as to the actions to be | |||
| section 9.1.1 of [RFC4271]. | undertaken by a routing entity in processing route objects with | |||
| It is a matter of local BGP selection policy as to the actions to be | ||||
| undertaken by a BGP instance in processing route objects with | ||||
| "unknown" validation outcomes. Due to considerations of partial use | "unknown" validation outcomes. Due to considerations of partial use | |||
| of ROAs in heterogeneous environments, such as in the public | of ROAs in heterogeneous environments, such as in the public | |||
| Internet, it is advised that local policy settings should not result | Internet, it is advised that local policy settings should not result | |||
| in "unknown" validation outcomes being considered as sufficient | in "unknown" validation outcomes being considered as sufficient | |||
| grounds to reject a route object outright from further consideration | grounds to reject a route object outright from further consideration | |||
| as a local "best" route. | as a local "best" route. | |||
| It is a matter of local BGP selection policy as to whether "invalid" | It is a matter of local routing policy as to whether "invalid" route | |||
| route objects are considered to be ineligible for further | objects are considered to be ineligible for further consideration in | |||
| consideration in the route selection process. The consideration here | a route selection process. A possible consideration here is one of | |||
| is one of potential circularity of dependence. If the authoritative | potential circularity of dependence. If the authoritative | |||
| publication point of the repository of ROAs, or that of any | publication point of the repository of ROAs, or that of any | |||
| certificate used in relation to an address prefix, is located at an | certificate used in relation to an address prefix, is located at an | |||
| address that lies within the address prefix described in a ROA, then | address that lies within the address prefix described in a ROA, then | |||
| the repository can only be accessed once a route for the prefix has | the repository can only be accessed by the RP once a route for the | |||
| been accepted by the RP's local routing domain. It is also noted | prefix has been accepted by the RP's local routing domain. It is | |||
| that the propagation time of RPKI objects may be different to the | also noted that the propagation time of RPKI objects may be different | |||
| propagation time of route objects in BGP, and that route objects may | to the propagation time of route objects, and that route objects may | |||
| be received before the RP's local repository cache picks up the | be received before the RP's local repository cache picks up the | |||
| associated ROAs and recognises them as valid within the RPKI. | associated ROAs and recognises them as valid within the RPKI. | |||
| A local policy setting may be considered such that "invalid" | 4. Disavowal of Routing Origination | |||
| validation outcomes would be sufficient grounds to reject the route | ||||
| object. However, due to these considerations of circular dependence | ||||
| and differing propagation times of ROAs and route objects, an | ||||
| alternate local policy setting may be considered that would involve | ||||
| the use of a local timer to accept the route object as feasible for | ||||
| an interim period of time, until there is an acceptable level of | ||||
| assurance that all reasonable efforts to obtain a valid ROA for the | ||||
| route object have been undertaken. | ||||
| 4. Further Considerations | ||||
| 4.1. Partial Deployment Considerations | ||||
| This approach to route object origination validation uses a model of | ||||
| "positive security" attestations, where information that cannot be | ||||
| validated within the RPKI framework is intended to interpreted by a | ||||
| RP as invalid information. | ||||
| However, the considerations of accommodating environments of partial | ||||
| adoption, where only a subset of valid route objects have associated | ||||
| ROAs within the structure of the RPKI, imply some modification to | ||||
| this model of positive security. Here it is assumed that once an | ||||
| address prefix is described in a ROA, then this ROA encompasses all | ||||
| address prefixes that are more specific than that described in the | ||||
| ROA. Thus, any more specific address prefix and originating AS | ||||
| combination of a valid ROA, that does not have a matching valid ROA | ||||
| is considered to be "invalid". | ||||
| Routes objects that describe address prefixes that are not fully | ||||
| described by any single ROA, i.e., those address prefixes that may be | ||||
| an aggregate of a ROA, or have no intersection with any ROA, and are | ||||
| not matched by any ROA and are not a more specific of any ROA cannot | ||||
| be reliably classified as "invalid" in a partial deployment scenario, | ||||
| and are therefore described as "unknown". | ||||
| The match condition of a route object against a single ROA is | ||||
| summarized in the following table: | ||||
| Prefix matching non-matching | ||||
| AS AS | ||||
| +---------+-------------+ | ||||
| Covering | unknown | unknown | | ||||
| Aggregate | | | | ||||
| +---------+-------------+ | ||||
| match ROA | valid | invalid | | ||||
| prefix | | | | ||||
| +---------+-------------+ | ||||
| More | invalid | invalid | | ||||
| Specific | | | | ||||
| than ROA | | | | ||||
| +---------+-------------+ | ||||
| In an environment of a collection of ROAs, a route object is | ||||
| considered to be "valid" if any ROA provides a "valid" outcome, and | ||||
| "invalid" if one or more ROAs provide an "invalid" outcome and no | ||||
| ROAs provide a "valid" outcome. The "unknown" outcome occurs when no | ||||
| ROA produces either a "valid" or an "invalid" outcome. | ||||
| 4.2. Disavowal of Routing Origination | ||||
| A ROA is a positive attestation that a prefix holder has authorized | A ROA is a positive attestation that a prefix holder has authorized | |||
| an AS to originate a route for this prefix into the inter-domain | an AS to originate a route for this prefix into the inter-domain | |||
| routing system. It is possible for a prefix holder to attest that no | routing system. It is possible for a prefix holder to construct an | |||
| AS has been granted any such authority by using a ROA where the ROA'S | authorization where no valid AS has been granted any such authority | |||
| subject AS is one that will not be used in a routing context. | to originate a route object for an address prefix. This is acheived | |||
| Specifically, AS 0 is reserved by the IANA such that it "may be use | by using a ROA where the ROA's subject AS is one that must never be | |||
| [sic] to identify non-routed networks" [IANA.AS-Registry]. | used in any routing context. Specifically, AS 0 is reserved by the | |||
| IANA such that it "may be use [sic] to identify non-routed networks" | ||||
| [IANA.AS-Registry]. | ||||
| A ROA with a subject of AS 0 is an attestation by the holder of a | A ROA with a subject of AS 0 is an attestation by the holder of a | |||
| prefix that the prefix described in the ROA, and any more specific | prefix that the prefix described in the ROA, and any more specific | |||
| prefix, should not be used in a routing context. | prefix, SHOULD NOT be used in a routing context. | |||
| The route object validation procedure, described in Section 2, will | The route object validation procedure, described in Section 2, will | |||
| provide a "valid" outcome if any ROA matches the address prefix and | provide a "valid" outcome if any ROA matches the address prefix and | |||
| origin AS, even if other valid ROAs would provide an "invalid" | origin AS, even if other valid ROAs would provide an "invalid" | |||
| validation outcome if used in isolation. Consequently, an AS0 ROA | validation outcome if used in isolation. Consequently, an AS 0 ROA | |||
| has a lower preference than any other ROA that has a routeable AS as | has a lower preference than any other ROA that has a routeable AS as | |||
| its subject. This allows a prefix holder to use an AS0 ROA to | its subject. This allows a prefix holder to use an AS 0 ROA to | |||
| declare a default condition that any route object that is equal to, | declare a default condition that any route object that is equal to, | |||
| or more specific than the prefix to be considered to be invalid, | or more specific than the prefix to be considered to be invalid, | |||
| while also allowing other concurrently issued ROAs to describe valid | while also allowing other concurrently issued ROAs to describe valid | |||
| origination authorizations for more specific prefixes. | origination authorizations for more specific prefixes. | |||
| For example, the holder of prefix 203.0.113.0/24 may wish to | By convention, an AS 0 ROA SHOULD have a maxLength value of 32 for | |||
| authorise the origination of a route object of 203.0.113.196/26 by | ||||
| 64496, and explicitly declare that all other use of prefixes from | ||||
| this block should be considered invalid. This could be achieved | ||||
| through the issuing of a ROA for Address=203.0.113.0/24, | ||||
| maxLength=32, AS = 0 and a second ROA for Address=203.0.113.196/26, | ||||
| maxLength=26, AS=64496. | ||||
| By convention, an AS 0 ROA should have a maxLength value of 32 for | ||||
| IPv4 addresses and 128 for IPv6 addresses, although in terms of route | IPv4 addresses and 128 for IPv6 addresses, although in terms of route | |||
| object validation the same outcome would be achieved with any valid | object validation the same outcome would be achieved with any valid | |||
| maxLength value, or even if the maxLength element were to be omitted | maxLength value, or even if the maxLength element were to be omitted | |||
| from the ROA. Also by convention, an AS 0 ROA should be the only ROA | from the ROA. | |||
| issued for a given address prefix, although again this is not a | ||||
| strict requirement. An AS 0 ROA can coexist with ROAs that have | ||||
| different subject AS values, although in such cases the presence of | ||||
| the AS 0 ROA does not alter the route object validation outcome in | ||||
| any way. | ||||
| 4.3. BGP Considerations | ||||
| This document provides a description of how ROAs could be used by a | ||||
| BGP speaker. | ||||
| It is noted that the proposed procedure requires no changes to the | ||||
| operation of BGP. However, there are a number of considerations | ||||
| about this approach to origination validation that are relevant to | ||||
| the operation of a BGP speaker that are not specified here. | ||||
| These considerations include: | Also by convention, an AS 0 ROA SHOULD be the only ROA issued for a | |||
| given address prefix, although again this is not a strict | ||||
| requirement. An AS 0 ROA can coexist with ROAs that have different | ||||
| subject AS values, although in such cases the presence of the AS 0 | ||||
| ROA does not alter the route object validation outcome in any way. | ||||
| * It is not specified when validation of an advertised prefix | 5. Route Object Validation Lifetime | |||
| should be performed by a BGP speaker. It is considered to be a | ||||
| matter of local policy whether it is strictly required to | ||||
| perform validation at a point prior to loading the object into | ||||
| the Adj-RIB-In structure [RFC4271], or once the object has been | ||||
| loaded into Adj-RIB-In, or at a later time that is determined | ||||
| by a local configuration setting. It is also not specified | ||||
| whether origination validation should be performed each time a | ||||
| route object is updated by a peer even when the origin AS has | ||||
| not altered. | ||||
| * The lifetime of a validation outcome is not specified here. | The "lifetime" of a validation outcome refers to the time period | |||
| This specifically refers to the time period during which the | during which the original validation outcome can be still applied. | |||
| original validation outcome can be still applied, at the | The implicit assumption here is that when the validation lifetime | |||
| expiration of which the routing object should be re-tested for | expires the routing object SHOULD be re-tested for validity. | |||
| validity. It is a matter of local policy setting as to whether | ||||
| a validation outcome be regarded as valid until the route | ||||
| object is withdrawn or further updated, or whether validation | ||||
| of a route object should occur at more frequent intervals. | ||||
| * It is a matter of local configuration as to whether ROA | The validation lifetime for a ROA is controlled by the Valid times | |||
| validation is performed on a per-AS basis rather than a per-BGP | specified in the End Entity (EE) Certificate used to sign the ROA, | |||
| speaker, and the appropriate mechanisms to support a de-coupled | and the valid times of those certificates in the certification path | |||
| framework of validation of ROAs and the loading of outcomes | used to validate the EE Certificate. A ROA validation "expires" at | |||
| into BGP speakers are not considered here. | the Validity To field of the signing EE certificate, or at such a | |||
| time when there is no certification path that can validate the ROA. | ||||
| A ROA issuer may prematurely invalidate a ROA by revoking the EE | ||||
| certificate that was used to sign the ROA. | ||||
| 5. Security Considerations | 6. Security Considerations | |||
| ROA issuers should be aware of the validation implication in issuing | ROA issuers should be aware of the validation implication in issuing | |||
| a ROA, in that a ROA will implicitly invalidate all route objects for | a ROA, in that a ROA implicitly invalidates all route objects that | |||
| more specific prefixes with a prefix length greater than maxLength, | have more specific prefixes with a prefix length greater than | |||
| and all originating AS's other than the AS listed in the collection | maxLength, and all originating AS's other than the AS listed in the | |||
| of ROAs. | collection of ROAs for this prefix. | |||
| A conservative operational practice would be to ensure the issuing of | A conservative operational practice would be to ensure the issuing of | |||
| ROAs for all more specific prefixes with distinct origination AS's | ROAs for all more specific prefixes with distinct origination AS's | |||
| prior to the issuing of ROAs for larger encompassing address blocks, | prior to the issuing of ROAs for larger encompassing address blocks, | |||
| in order to avoid inadvertent invalidation of valid route objects | in order to avoid inadvertent invalidation of valid route objects | |||
| during ROA generation. | during ROA generation. | |||
| ROA issuers should also be aware that if they generate a ROA for one | ROA issuers should also be aware that if they generate a ROA for one | |||
| origin AS, then if the prefix is authorised by multiple AS's then | origin AS, then if the prefix holder authorises multiple AS's to | |||
| ROAs should be generated for all such authorized AS's. | originate route objects it is necessary for a ROA be generated for | |||
| every such authorized AS. | ||||
| 6. IANA Considerations | ||||
| Dear IANA, | ||||
| The AS number registry [IANA.AS-Registry] contains the following | ||||
| annotation against AS 0: "may be use to identify non-routed | ||||
| networks." Could you please add a 'd' as appropriate to this text? | ||||
| Thank you, | ||||
| the authors. | ||||
| 7. Change Log | ||||
| Note: This section is NOT to be included in final version of this | ||||
| document. | ||||
| 7.1. Changes -02 to -03 | ||||
| Further Considerations section now has a subsection describing the | ||||
| assumptions that ROA validation is making about the precise nature of | ||||
| partial deployment, noting that a ROA has an implicit scope of | ||||
| application for all prefixes that are equal to or more specific than | ||||
| the prefix listed in the ROA | ||||
| Moved the table of validation outcomes from the Security | ||||
| Considerations section to the section on Further Considerations. | ||||
| Added consideration about disavowal and the use of an AS 0 ROA and | ||||
| its interpretation in the context of validation of route objects, and | ||||
| proposed conventions of use of an AS 0 ROA. | ||||
| Noted hierarchical dependence of ROA issuance in the Security | ||||
| Considerations section. | ||||
| 7.2. Changes -01 to -02 | ||||
| Following WG review of the means of specification of denial in | 7. IANA Considerations | |||
| routing authorizations in the context of the RPKI at IETF 74 and IETF | ||||
| 75, it appears that there is no general WG support for the use of an | ||||
| explicit denial object (termed a 'BOA'). The alternative approach, | ||||
| explored in previous iterations of this draft, used a more restricted | ||||
| interpretation of a ROA that yielded only "valid" or "unknown" | ||||
| outcomes (by using "unknown" where "invalid" is used in this revision | ||||
| of the document). To allow for "invalid" outcomes the draft used the | ||||
| BOA to undertake the role of a 'disavow' constraint, where a route | ||||
| object was considered to be "invalid" if it was the subject of a | ||||
| valid BOA and was not considered to be "valid" by any valid ROA. The | ||||
| reasons advanced to support the dropping of the BOA was the increased | ||||
| complexity of RP systems through the use of a second object in route | ||||
| validation, a potentially confusing mismatch in the interpretation | ||||
| scope between the ROA and the BOA, where the ROAs scope was limited | ||||
| to set of prefixes described in the ROA, while the BOA's scope | ||||
| included all possible more specifics of the prefixes listed in the | ||||
| BOA, and the ability to reconstruct the semantic equivalent of a BOA | ||||
| through the use of a ROA that used a restricted-use AS as its asID. | ||||
| Accordingly, this draft has been revised to remove all references to | ||||
| the use of an explicit denial object and uses the implicit semantics | ||||
| of denial in a ROA object. | ||||
| There appears to be no WG interest in consideration of validation in | [There are no IANA Considerations.] | |||
| a "linked" model, where a ROA is bound to the route object that it is | ||||
| intended to validate. Accordingly this section of the text has also | ||||
| been dropped from this version. | ||||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [I-D.ietf-sidr-arch] | [I-D.ietf-sidr-arch] | |||
| Lepinski, M. and S. Kent, "An Infrastructure to Support | Lepinski, M. and S. Kent, "An Infrastructure to Support | |||
| Secure Internet Routing", draft-ietf-sidr-arch (work in | Secure Internet Routing", draft-ietf-sidr-arch (work in | |||
| progress), July 2009. | progress), October 2009. | |||
| [I-D.ietf-sidr-roa-format] | [I-D.ietf-sidr-roa-format] | |||
| Lepinski, M., Kent, S., and D. Kong, "An Infrastructure to | Lepinski, M., Kent, S., and D. Kong, "An Infrastructure to | |||
| Support Secure Internet Routing", | Support Secure Internet Routing", | |||
| draft-ietf-sidr-roa-format (work in progress), July 2009. | draft-ietf-sidr-roa-format (work in progress), | |||
| October 2009. | ||||
| [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP | [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP | |||
| Addresses and AS Identifiers", RFC 3779, June 2004. | Addresses and AS Identifiers", RFC 3779, June 2004. | |||
| [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway | [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway | |||
| Protocol 4 (BGP-4)", RFC 4271, January 2006. | Protocol 4 (BGP-4)", RFC 4271, January 2006. | |||
| [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
| Housley, R., and W. Polk, "Internet X.509 Public Key | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
| Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
| (CRL) Profile", RFC 5280, May 2008. | (CRL) Profile", RFC 5280, May 2008. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [IANA.AS-Registry] | [IANA.AS-Registry] | |||
| IANA, "IANA Autonomous System Number Registry", | IANA, "IANA Autonomous System Number Registry", | |||
| August 2009. | March 2010. | |||
| Authors' Addresses | Authors' Addresses | |||
| Geoff Huston | Geoff Huston | |||
| Asia Pacific Network Information Centre | Asia Pacific Network Information Centre | |||
| Email: gih@apnic.net | Email: gih@apnic.net | |||
| George Michaelson | George Michaelson | |||
| Asia Pacific Network Information Centre | Asia Pacific Network Information Centre | |||
| Email: ggm@apnic.net | Email: ggm@apnic.net | |||
| End of changes. 41 change blocks. | ||||
| 295 lines changed or deleted | 175 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||