| rfc8206v1.txt | rfc8206.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) W. George | Internet Engineering Task Force (IETF) W. George | |||
| Request for Comments: 8206 | Request for Comments: 8206 Neustar | |||
| Updates: 8205 S. Murphy | Updates: 8205 S. Murphy | |||
| Category: Standards Track SPARTA, Inc., a Parsons Company | Category: Standards Track SPARTA, Inc., a Parsons Company | |||
| ISSN: 2070-1721 June 2017 | ISSN: 2070-1721 September 2017 | |||
| BGPsec Considerations for Autonomous System (AS) Migration | BGPsec Considerations for Autonomous System (AS) Migration | |||
| Abstract | Abstract | |||
| This document discusses considerations and methods for supporting and | This document discusses considerations and methods for supporting and | |||
| securing a common method for Autonomous System (AS) migration within | securing a common method for Autonomous System (AS) migration within | |||
| the BGPsec protocol. | the BGPsec protocol. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 29 | skipping to change at page 1, line 29 | |||
| This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
| This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
| (IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
| received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
| Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
| Information about the current status of this document, any errata, | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at | |||
| http://www.rfc-editor.org/info/rfc8206. | https://www.rfc-editor.org/info/rfc8206. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | |||
| 1.2. Documentation Note . . . . . . . . . . . . . . . . . . . 3 | 1.2. Documentation Note . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. General Scenario . . . . . . . . . . . . . . . . . . . . . . 3 | 2. General Scenario . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. RPKI Considerations . . . . . . . . . . . . . . . . . . . . . 3 | 3. RPKI Considerations . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. Origin Validation . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Origin Validation . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.2. Path Validation . . . . . . . . . . . . . . . . . . . . . 5 | 3.2. Path Validation . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2.1. Outbound Announcements (PE->CE) . . . . . . . . . . . 5 | 3.2.1. Outbound Announcements (PE-->CE) . . . . . . . . . . 5 | |||
| 3.2.2. Inbound Announcements (CE->PE) . . . . . . . . . . . 6 | 3.2.2. Inbound Announcements (CE-->PE) . . . . . . . . . . . 6 | |||
| 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 5. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.1. Outbound (PE->CE) . . . . . . . . . . . . . . . . . . . . 8 | 5.1. Outbound (PE-->CE) . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.2. Inbound (CE->PE) . . . . . . . . . . . . . . . . . . . . 8 | 5.2. Inbound (CE-->PE) . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.3. Other Considerations . . . . . . . . . . . . . . . . . . 9 | 5.3. Other Considerations . . . . . . . . . . . . . . . . . . 9 | |||
| 5.4. Example . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.4. Example . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 14 | 8.2. Informative References . . . . . . . . . . . . . . . . . 14 | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 15 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| skipping to change at page 4, line 5 | skipping to change at page 4, line 5 | |||
| widely used during network integrations resulting from mergers and | widely used during network integrations resulting from mergers and | |||
| acquisitions, as well as network redesigns; therefore, it is | acquisitions, as well as network redesigns; therefore, it is | |||
| necessary to support this capability on any BGPsec-enabled routers/ | necessary to support this capability on any BGPsec-enabled routers/ | |||
| ASNs. What follows is a discussion of the potential issues to be | ASNs. What follows is a discussion of the potential issues to be | |||
| considered regarding how ASN migration and BGPsec [RFC8205] | considered regarding how ASN migration and BGPsec [RFC8205] | |||
| validation might interact. | validation might interact. | |||
| One of the primary considerations for this document and migration is | One of the primary considerations for this document and migration is | |||
| that service providers (SPs) rarely stop after one | that service providers (SPs) rarely stop after one | |||
| merger/acquisition/divestiture; they end up accumulating several | merger/acquisition/divestiture; they end up accumulating several | |||
| legacy ASNs over time. Since they are using methods to migrate that | legacy ASNs over time. Since SPs are using migration methods that | |||
| are transparent to, and therefore do not require coordination with | are transparent to customers and therefore do not require | |||
| customers, they do not have a great deal of control over the length | coordination with customers, they do not have as much control over | |||
| of the transition period as they might with something completely | the length of the transition period as they might with something | |||
| under their administrative control (e.g., a key roll). Because they | completely under their administrative control (e.g., a key roll). | |||
| are not forcing a simultaneous migration (i.e., both ends switch to | Because they are not forcing a simultaneous migration (i.e., both | |||
| the new ASN at an agreed-upon time), there is no incentive for a | ends switch to the new ASN at an agreed-upon time), there is no | |||
| given customer to complete the move from the old ASN to the new one. | incentive for a given customer to complete the move from the old ASN | |||
| This leaves many SPs with multiple legacy ASNs that don't go away | to the new one. This leaves many SPs with multiple legacy ASNs that | |||
| very quickly, if at all. As solutions were being proposed for | don't go away very quickly, if at all. As solutions were being | |||
| Resource Public Key Infrastructure (RPKI) implementations to solve | proposed for Resource Public Key Infrastructure (RPKI) | |||
| this transition case, the WG carefully considered operational | implementations to solve this transition case, the WG carefully | |||
| complexity and hardware scaling issues associated with maintaining | considered operational complexity and hardware scaling issues | |||
| multiple legacy ASN keys on routers throughout the combined network. | associated with maintaining multiple legacy ASN keys on routers | |||
| While SPs who choose to remain in this transition phase indefinitely | throughout the combined network. While SPs who choose to remain in | |||
| invite added risks because of the operational complexity and scaling | this transition phase indefinitely invite added risks because of the | |||
| considerations associated with maintaining multiple legacy ASN keys | operational complexity and scaling considerations associated with | |||
| on routers throughout the combined network, saying "don't do this" is | maintaining multiple legacy ASN keys on routers throughout the | |||
| of limited utility as a solution. As a result, this solution | combined network, saying "don't do this" is of limited utility as a | |||
| attempts to minimize the additional complexity during the transition | solution. As a result, this solution attempts to minimize the | |||
| period, on the assumption that it will likely be protracted. Note | additional complexity during the transition period, on the assumption | |||
| that while this document primarily discusses service provider | that it will likely be protracted. Note that while this document | |||
| considerations, it is not solely applicable to SPs, as enterprises | primarily discusses service provider considerations, it is not solely | |||
| often migrate between ASNs using the same functionality. What | applicable to SPs, as enterprises often migrate between ASNs using | |||
| follows is a discussion of origin and path validation functions and | the same functionality. What follows is a discussion of origin and | |||
| how they interact with ASN migrations. | path validation functions and how they interact with ASN migrations. | |||
| 3.1. Origin Validation | 3.1. Origin Validation | |||
| Route Origin Validation as defined by RFC 6480 [RFC6480] does not | Route Origin Validation as defined by RFC 6480 [RFC6480] does not | |||
| modification to enable AS migration, as the existing protocol and | require modification to enable AS migration, as the existing protocol | |||
| procedure allow for a solution. In the scenario discussed in RFC | and procedure allow for a solution. In the scenario discussed in RFC | |||
| 7705 [RFC7705], AS64510 is being replaced by AS64500. If there are | 7705 [RFC7705], AS64510 is being replaced by AS64500. If there are | |||
| any existing routes originated by AS64510 on the router being moved | any existing routes originated by AS64510 on the router being moved | |||
| into the new ASN, this simply requires generating new Route Origin | into the new ASN, new Route Origination Authorizations (ROAs) for the | |||
| Authorizations (ROAs) for the routes with the new ASN and treating | routes with the new ASN should be generated, and they should be | |||
| them as new routes to be added to AS64500. However, we also need to | treated as new routes to be added to AS64500. However, we also need | |||
| consider the situation where one or more other PEs are still in | to consider the situation where one or more other PEs are still in | |||
| AS64510 and are originating one or more routes that may be distinct | AS64510 and are originating one or more routes that may be distinct | |||
| from any that the router under migration is originating. PE1 (which | from any that the router under migration is originating. PE1 (which | |||
| is now a part of AS64500 and instructed to use "Replace Old AS" as | is now a part of AS64500 and instructed to use "Replace Old AS" as | |||
| defined in [RFC7705] to remove AS64510 from the path) needs to be | defined in [RFC7705] to remove AS64510 from the path) needs to be | |||
| able to properly handle routes originated from AS64510. If the route | able to properly handle routes originated from AS64510. If the route | |||
| now shows up as originating from AS64500, any downstream peers' | now shows up as originating from AS64500, any downstream peers' | |||
| validation check will fail unless a ROA is *also* available for | validation check will fail unless a ROA is *also* available for | |||
| AS64500 as the origin ASN. In addition to generating a ROA for 65400 | AS64500 as the origin ASN. In addition to generating a ROA for 65400 | |||
| for any prefixes originated by the router being moved, it may be | for any prefixes originated by the router being moved, it may be | |||
| necessary to generate ROAs for 65400 for prefixes that are | necessary to generate ROAs for 65400 for prefixes that are | |||
| skipping to change at page 5, line 20 | skipping to change at page 5, line 20 | |||
| permissible per Section 3.2 of RFC 6480 [RFC6480] so managing origin | permissible per Section 3.2 of RFC 6480 [RFC6480] so managing origin | |||
| validation during a migration like this is merely applying the | validation during a migration like this is merely applying the | |||
| defined case where a set of prefixes are originated from more than | defined case where a set of prefixes are originated from more than | |||
| one ASN. Therefore, for each ROA that authorizes the old ASN (e.g., | one ASN. Therefore, for each ROA that authorizes the old ASN (e.g., | |||
| AS64510) to originate a prefix, a new ROA MUST also be created that | AS64510) to originate a prefix, a new ROA MUST also be created that | |||
| authorizes the replacing ASN (e.g., AS64500) to originate the same | authorizes the replacing ASN (e.g., AS64500) to originate the same | |||
| prefix. | prefix. | |||
| 3.2. Path Validation | 3.2. Path Validation | |||
| BGPsec path validation requires that each router in the AS Path | BGPsec path validation requires that each router in the AS path | |||
| cryptographically sign its update to assert that "every Autonomous | cryptographically sign its update to assert that "every Autonomous | |||
| System (AS) on the path of ASes listed in the update message has | System (AS) on the path of ASes listed in the UPDATE message has | |||
| explicitly authorized the advertisement of the route to the | explicitly authorized the advertisement of the route to the | |||
| subsequent AS in the path" (see Section 1 of RFC 8205 [RFC8205]). | subsequent AS in the path" (see Section 1 of RFC 8205 [RFC8205]). | |||
| Since the referenced AS-migration technique explicitly modifies the | Since the referenced AS-migration technique explicitly modifies the | |||
| AS_PATH between two eBGP peers who are not coordinating with one | AS_PATH between two eBGP peers who are not coordinating with one | |||
| another (are not in the same administrative domain), no level of | another (are not in the same administrative domain), no level of | |||
| trust can be assumed; therefore, it may be difficult to identify | trust can be assumed; therefore, it may be difficult to identify | |||
| legitimate manipulation of the AS_PATH for migration activities when | legitimate manipulation of the AS_PATH for migration activities when | |||
| compared to manipulation due to misconfiguration or malicious intent. | compared to manipulation due to misconfiguration or malicious intent. | |||
| 3.2.1. Outbound Announcements (PE->CE) | 3.2.1. Outbound Announcements (PE-->CE) | |||
| When PE1 is moved from AS64510 to AS64500, it will be provisioned | When PE1 is moved from AS64510 to AS64500, it will be provisioned | |||
| with the appropriate keys for AS64500 to allow it to forward-sign | with the appropriate keys for AS64500 to allow it to forward-sign | |||
| routes using AS64500. However, there is no guidance in the BGPsec | routes using AS64500. However, there is no guidance in the BGPsec | |||
| protocol specification [RFC8205] on whether or not the forward-signed | protocol specification [RFC8205] on whether or not the forward-signed | |||
| ASN value is required to match the configured remote AS to validate | ASN value is required to match the configured remote AS to validate | |||
| properly. That is, if CE1's BGP session is configured as "remote AS | properly. That is, if CE1's BGP session is configured as "remote AS | |||
| 64510", the presence of "local AS 64510" on PE1 will ensure that | 64510", the presence of "local AS 64510" on PE1 will ensure that | |||
| there is no ASN mismatch on the BGP session itself, but if CE1 | there is no ASN mismatch on the BGP session itself, but if CE1 | |||
| receives updates from its remote neighbor (PE1) forward-signed from | receives updates from its remote neighbor (PE1) forward-signed from | |||
| AS64500, there is no guidance as to whether the BGPsec validator on | AS64500, there is no guidance as to whether the BGPsec validator on | |||
| CE1 still considers those valid by default. Section 6.3 of RFC 4271 | CE1 still considers those valid by default. Section 6.3 of RFC 4271 | |||
| [RFC4271] mentions this match between the ASN of the peer and the | [RFC4271] mentions this match between the ASN of the peer and the | |||
| AS_PATH data, but it is listed as an optional validation, rather than | AS_PATH data, but it is listed as an optional validation, rather than | |||
| a requirement. We cannot assume that this mismatch will be allowed | a requirement. We cannot assume that this mismatch will be allowed | |||
| by vendor implementations, so using it as a means to solve this | by vendor implementations, so using it as a means to solve this | |||
| migration case is likely to be problematic. | migration case is likely to be problematic. | |||
| 3.2.2. Inbound Announcements (CE->PE) | 3.2.2. Inbound Announcements (CE-->PE) | |||
| Inbound is more complicated, because the CE doesn't know that PE1 has | Inbound is more complicated, because the CE doesn't know that PE1 has | |||
| changed ASNs, so it is forward-signing all of its routes with | changed ASNs, so it is forward-signing all of its routes with | |||
| AS64510, not AS64500. The BGPsec speaker cannot manipulate previous | AS64510, not AS64500. The BGPsec speaker cannot manipulate previous | |||
| signatures and therefore cannot manipulate the previous AS Path | signatures and therefore cannot manipulate the previous AS path | |||
| without causing a mismatch that will invalidate the route. If the | without causing a mismatch that will invalidate the route. If the | |||
| updates are simply left intact, the ISP would still need to publish | updates are simply left intact, the ISP would still need to publish | |||
| and maintain valid and active public keys for AS 64510 if it is to | and maintain valid and active public keys for AS 64510 if it is to | |||
| appear in the BGPsec_Path_Signature so that receivers can validate | appear in the BGPsec_PATH signature so that receivers can validate | |||
| that the BGPsec_Path_Signature arrived intact/whole. However, if the | that the BGPsec_PATH signature arrived intact/whole. However, if the | |||
| updates are left intact, this will cause the AS Path length to be | updates are left intact, this will cause the AS path length to be | |||
| increased, which is unacceptable as discussed in RFC 7705 [RFC7705]. | increased, which is unacceptable as discussed in RFC 7705 [RFC7705]. | |||
| 4. Requirements | 4. Requirements | |||
| In order to be deployable, any solution to the described problem | In order to be deployable, any solution to the described problem | |||
| needs to consider the following requirements, listed in no particular | needs to consider the following requirements, listed in no particular | |||
| order. BGPsec: | order. BGPsec: | |||
| o MUST support AS migration for both inbound and outbound route | o MUST support AS migration for both inbound and outbound route | |||
| announcements (see Sections 3.2.1 and 3.2.2), without reducing | announcements (see Sections 3.2.1 and 3.2.2), without reducing | |||
| BGPsec's protections for route path. | BGPsec's protections for route path. | |||
| o MUST NOT require any reconfiguration on the remote eBGP neighbor | o MUST NOT require any reconfiguration on the remote eBGP neighbor | |||
| (CE). | (CE). | |||
| o SHOULD NOT require global (i.e., network-wide) configuration | o SHOULD NOT require global (i.e., network-wide) configuration | |||
| changes to support migration. The goal is to limit required | changes to support migration. The goal is to limit required | |||
| configuration changes to the devices (PEs) being migrated. | configuration changes to the devices (PEs) being migrated. | |||
| o MUST NOT lengthen the AS Path during migration. | o MUST NOT lengthen the AS path during migration. | |||
| o MUST operate within existing trust boundaries, e.g., can't expect | o MUST operate within existing trust boundaries, e.g., can't expect | |||
| remote side to accept pCount=0 (see Section 4.2 of RFC 8205 | remote side to accept pCount=0 (see Section 4.2 of RFC 8205 | |||
| [RFC8205]) from untrusted/non-confed neighbor. | [RFC8205]) from untrusted/non-confederation neighbor. | |||
| 5. Solution | 5. Solution | |||
| As noted in Section 4.2 of RFC 8205 [RFC8205], BGPsec already has a | As noted in Section 4.2 of RFC 8205 [RFC8205], BGPsec already has a | |||
| solution for hiding ASNs where increasing the AS Path length is | solution for hiding ASNs where increasing the AS path length is | |||
| undesirable. So a simple solution would be to retain the keys for | undesirable. So a simple solution would be to retain the keys for | |||
| AS64510 on PE1 and forward-sign towards CE1 with AS64510 and | AS64510 on PE1 and forward-sign towards CE1 with AS64510 and | |||
| pCount=0. However, this would mean passing a pCount=0 between two | pCount=0. However, this would mean passing a pCount=0 between two | |||
| ASNs that are in different administrative and trust domains such that | ASNs that are in different administrative and trust domains such that | |||
| it could represent a significant attack vector to manipulate BGPsec- | it could represent a significant attack vector to manipulate BGPsec- | |||
| signed paths. The expectation for legitimate instances of pCount=0 | signed paths. The expectation for legitimate instances of pCount=0 | |||
| (to make a route server that is not part of the transit path | (to make a route server that is not part of the transit path | |||
| invisible) is that there is some sort of existing trust relationship | invisible) is that there is some sort of existing trust relationship | |||
| between the operators of the route server and the downstream peers | between the operators of the route server and the downstream peers | |||
| such that the peers could be explicitly configured by policy to | such that the peers could be explicitly configured by policy to | |||
| skipping to change at page 7, line 50 | skipping to change at page 7, line 50 | |||
| applying a similar technique to the BGPsec signatures generated for | applying a similar technique to the BGPsec signatures generated for | |||
| routing updates processed through this migration machinery. Each | routing updates processed through this migration machinery. Each | |||
| routing update that is received from or destined to an eBGP neighbor | routing update that is received from or destined to an eBGP neighbor | |||
| that is still using the old ASN (64510) will be signed twice, once | that is still using the old ASN (64510) will be signed twice, once | |||
| with the ASN to be hidden and once with the ASN that will remain | with the ASN to be hidden and once with the ASN that will remain | |||
| visible. In essence, we are treating the update as if the PE had an | visible. In essence, we are treating the update as if the PE had an | |||
| internal BGP hop and the update was passed across an eBGP session | internal BGP hop and the update was passed across an eBGP session | |||
| between AS64500 and AS64510, configured to use and accept pCount=0, | between AS64500 and AS64510, configured to use and accept pCount=0, | |||
| while eliminating the processing and storage overhead of creating an | while eliminating the processing and storage overhead of creating an | |||
| actual eBGP session between the two ASNs within the PE router. This | actual eBGP session between the two ASNs within the PE router. This | |||
| will result in a properly secured AS Path in the affected route | will result in a properly secured AS path in the affected route | |||
| updates, because the PE router will be provisioned with valid keys | updates, because the PE router will be provisioned with valid keys | |||
| for both AS64500 and AS64510. An important distinction here is that | for both AS64500 and AS64510. An important distinction here is that | |||
| while AS migration under standard BGP4 is manipulating the AS_PATH | while AS migration under standard BGP4 is manipulating the AS_PATH | |||
| attribute, BGPsec uses an attribute called the "Secure_Path" (see | attribute, BGPsec uses an attribute called the "Secure_Path" (see | |||
| Section 3.1 of RFC 8205 [RFC8205]) and BGPsec-capable neighbors do | Section 3.1 of RFC 8205 [RFC8205]) and BGPsec-capable neighbors do | |||
| not exchange AS_PATH information in their route announcements. | not exchange AS_PATH information in their route announcements. | |||
| However, a BGPsec neighbor peering with a non-BGPsec-capable neighbor | However, a BGPsec neighbor peering with a non-BGPsec-capable neighbor | |||
| will use the information found in the Secure_Path to reconstruct a | will use the information found in the Secure_Path to reconstruct a | |||
| standard AS_PATH for updates sent to that neighbor. Unlike in the | standard AS_PATH for updates sent to that neighbor. Unlike in the | |||
| Secure_Path where the ASN to be hidden is still present but ignored | Secure_Path where the ASN to be hidden is still present but ignored | |||
| when considering the AS Path (due to pCount=0), when reconstructing | when considering the AS path (due to pCount=0), when reconstructing | |||
| an AS_PATH for a non-BGPsec neighbor, the pCount=0 ASNs will not | an AS_PATH for a non-BGPsec neighbor, the pCount=0 ASNs will not | |||
| appear in the AS_PATH at all (see Section 4.4 of RFC 8205 [RFC8205]). | appear in the AS_PATH at all (see Section 4.4 of RFC 8205 [RFC8205]). | |||
| This document is not changing existing AS_PATH reconstruction | This document is not changing existing AS_PATH reconstruction | |||
| behavior, merely highlighting it for clarity. | behavior, merely highlighting it for clarity. | |||
| The procedure to support AS migration in BGPsec is slightly different | The procedure to support AS migration in BGPsec is slightly different | |||
| depending on whether the PE under migration is receiving the routes | depending on whether the PE under migration is receiving the routes | |||
| from one of its eBGP peers ("inbound" as in Section 3.2.2) or | from one of its eBGP peers ("inbound" as in Section 3.2.2) or | |||
| destined toward the eBGP peers ("outbound" as in Section 3.2.1). | destined toward the eBGP peers ("outbound" as in Section 3.2.1). | |||
| 5.1. Outbound (PE->CE) | 5.1. Outbound (PE-->CE) | |||
| When a PE router receives an update destined for an eBGP neighbor | When a PE router receives an update destined for an eBGP neighbor | |||
| that is locally configured with AS-migration mechanisms as discussed | that is locally configured with AS-migration mechanisms as discussed | |||
| in RFC 7705 [RFC7705], it MUST generate a valid BGPsec signature as | in RFC 7705 [RFC7705], it MUST generate a valid BGPsec signature as | |||
| defined in RFC 8205 [RFC8205] for _both_ configured ASNs. It MUST | defined in RFC 8205 [RFC8205] for _both_ configured ASNs. It MUST | |||
| generate a signature from the new (global) ASN forward-signing to the | generate a signature from the new (global) ASN forward-signing to the | |||
| old (local) ASN with pCount=0, and then it MUST generate a forward | old (local) ASN with pCount=0, and then it MUST generate a forward | |||
| signature from the old (local) ASN to the target eBGP ASN with | signature from the old (local) ASN to the target eBGP ASN with | |||
| pCount=1 as normal. | pCount=1 as normal. | |||
| 5.2. Inbound (CE->PE) | 5.2. Inbound (CE-->PE) | |||
| When a PE router receives an update from an eBGP neighbor that is | When a PE router receives an update from an eBGP neighbor that is | |||
| locally configured with AS-migration mechanisms (i.e., the opposite | locally configured with AS-migration mechanisms (i.e., the opposite | |||
| direction of the previous route flow), it MUST generate a signature | direction of the previous route flow), it MUST generate a signature | |||
| from the old (local) ASN forward-signing to the new (global) ASN with | from the old (local) ASN forward-signing to the new (global) ASN with | |||
| pCount=0. It is not necessary to generate the second signature from | pCount=0. It is not necessary to generate the second signature from | |||
| the new (global) ASN because the Autonomous System Border Router | the new (global) ASN because the Autonomous System Border Router | |||
| (ASBR) will generate that when it forward-signs towards its eBGP | (ASBR) will generate that when it forward-signs towards its eBGP | |||
| peers as defined in normal BGPsec operation. Note that a signature | peers as defined in normal BGPsec operation. Note that a signature | |||
| is not normally added when a routing update is sent across an iBGP | is not normally added when a routing update is sent across an iBGP | |||
| (internal BGP) session. The requirement to sign updates in iBGP | (internal BGP) session. The requirement to sign updates in iBGP | |||
| represents a change to the normal behavior for this specific AS- | represents a change to the normal behavior for this specific AS- | |||
| migration scenario only. | migration scenario only. | |||
| 5.3. Other Considerations | 5.3. Other Considerations | |||
| In this case, the PE is adding BGPsec attributes to routes received | In the inbound case discussed in Section 5.2, the PE is adding BGPsec | |||
| from or destined to an iBGP neighbor and using pCount=0 to mask them. | attributes to routes received from or destined to an iBGP neighbor | |||
| While this is not prohibited by BGPsec [RFC8205], BGPsec-capable | and using pCount=0 to mask them. While this is not prohibited by | |||
| routers that receive updates from BGPsec-enabled iBGP neighbors MUST | BGPsec [RFC8205], BGPsec-capable routers that receive updates from | |||
| accept updates with new (properly formed) BGPsec attributes, | BGPsec-enabled iBGP neighbors MUST accept updates with new (properly | |||
| including the presence of pCount=0 on a previous signature, or they | formed) BGPsec attributes, including the presence of pCount=0 on a | |||
| will interfere with this method. In a similar fashion, any BGPsec- | previous signature, or they will interfere with this method. In a | |||
| capable route-reflectors in the path of these updates MUST reflect | similar fashion, any BGPsec-capable route-reflectors in the path of | |||
| them transparently to their BGPsec-capable clients. | these updates MUST reflect them transparently to their BGPsec-capable | |||
| clients. | ||||
| In order to secure this set of signatures, the PE router MUST be | In order to secure this set of signatures, the PE router MUST be | |||
| provisioned with valid keys for _both_ configured ASNs (old and new), | provisioned with valid keys for _both_ configured ASNs (old and new), | |||
| and the key for the old ASN MUST be kept valid until all eBGP | and the key for the old ASN MUST be kept valid until all eBGP | |||
| sessions are migrated to the new ASN. Downstream neighbors will see | sessions are migrated to the new ASN. Downstream neighbors will see | |||
| this as a valid BGPsec path, as they will simply trust that their | this as a valid BGPsec path, as they will simply trust that their | |||
| upstream neighbor accepted pCount=0 because it was explicitly | upstream neighbor accepted pCount=0 because it was explicitly | |||
| configured to do so based on a trust relationship and business | configured to do so based on a trust relationship and business | |||
| relationship between the upstream and its neighbor (the old and new | relationship between the upstream and its neighbor (the old and new | |||
| ASNs). | ASNs). | |||
| skipping to change at page 10, line 5 | skipping to change at page 10, line 5 | |||
| 5.4. Example | 5.4. Example | |||
| The following example will illustrate the method being used above. | The following example will illustrate the method being used above. | |||
| As with previous examples, PE1 is the router being migrated, AS64510 | As with previous examples, PE1 is the router being migrated, AS64510 | |||
| is the old ASN, which is being subsumed by AS64500, the ASN to be | is the old ASN, which is being subsumed by AS64500, the ASN to be | |||
| permanently retained. 64505 is another external peer, used to | permanently retained. 64505 is another external peer, used to | |||
| demonstrate what the announcements will look like to a third-party | demonstrate what the announcements will look like to a third-party | |||
| peer that is not part of the migration. Some additional notation is | peer that is not part of the migration. Some additional notation is | |||
| used to delineate the details of each signature as follows: | used to delineate the details of each signature as follows: | |||
| The origin BGPsec signature attribute takes the form: | The origin BGPsec Signature Segment takes the form: | |||
| sig(<Target ASN>, Origin ASN, pCount, NLRI Prefix) key. | sig(Target ASN, (pCount,...,Origin ASN), NLRI) key. | |||
| Intermediate BGPsec signature attributes take the form: | Intermediate BGPsec Signature Segments take the form: | |||
| sig(<Target ASN>, Signer ASN, pCount, <most recent sig field>) key. | sig(Target ASN,...,(pCount,...,Signer ASN),...,NLRI) key. | |||
| (pCount,...,ASN) refers to the new Secure_Path Segment added to the | ||||
| BGPsec_PATH attribute by the ASN (Origin ASN or Signer ASN). | ||||
| "Equivalent AS_PATH" refers to what the AS_PATH would look like if it | "Equivalent AS_PATH" refers to what the AS_PATH would look like if it | |||
| was reconstructed to be sent to a non-BGPsec peer, while the | was reconstructed to be sent to a non-BGPsec peer, while the | |||
| Secure_Path shows the AS Path as represented between BGPsec peers. | Securedpath shows the AS path as represented between BGPsec peers. | |||
| Note: The representation of signature attribute generation is being | Note: The representation of Signature Segment generation is being | |||
| simplified here somewhat for the sake of brevity; the actual details | simplified here somewhat for the sake of brevity; the actual details | |||
| of the signing process are as described in Sections 4.1 and 4.2 of | of the signing process are as described in Sections 4.1 and 4.2 of | |||
| RFC 8205 [RFC8205]. For example, what is covered by the signature | [RFC8205]. For example, what is covered by the signature also | |||
| also includes Flags, Algorithm Suite ID, NLRI length, etc. Also, the | includes Flags, Algorithm Suite Identifier, NLRI length, etc. Also, | |||
| key is not carried in the update, instead the Subject Key Identifier | the key is not carried in the update; instead, the Subject Key | |||
| (SKI) is carried. | Identifier (SKI) is carried. | |||
| Before Merger | Before Merger | |||
| 64505 | ||||
| | | ||||
| ISP B ISP A | ||||
| CE-1 <--- PE-1 <------------------- PE-2 <--- CE-2 | ||||
| 64496 Old_ASN: 64510 Old_ASN: 64500 64499 | ||||
| CE-2 to PE-2: sig(64500, (pCount=1,...,64499), N)K_64499-CE2 | ||||
| Equivalent AS_PATH=(64499) | ||||
| Securedpath=(64499) | ||||
| length=sum(pCount)=1 | ||||
| PE-2 to 64505: sig(64505,...,(pCount=1,...,64500),...,N)K_64500-PE2 | ||||
| sig(64500, (pCount=1,...,64499), N)K_64499-CE2 | ||||
| Equivalent AS_PATH=(64500,64499) | ||||
| Securedpath=(64500,64499) | ||||
| length=sum(pCount)=2 | ||||
| PE-2 to PE-1: sig(64510,...,(pCount=1,...,64500),...,N)K_64500-PE2 | ||||
| sig(64500, (pCount=1,...,64499), N)K_64499-CE2 | ||||
| Equivalent AS_PATH=(64500,64499) | ||||
| Securedpath=(64500,64499) | ||||
| length=sum(pCount)=2 | ||||
| PE-1 to CE-1: sig(64496,...,(pCount=1,...,64510),...,N)K_64510-PE1 | ||||
| sig(64510,...,(pCount=1,...,64500),...,N)K_64500-PE2 | ||||
| sig(64500, (pCount=1,...,64499), N)K_64499-CE2 | ||||
| Equivalent AS_PATH= (64510,64500,64499) | ||||
| Securedpath=(64510,64500,64499) | ||||
| length=sum(pCount)=3 | ||||
| Migrating, route flow outbound PE-1 to CE-1 | ||||
| 64505 | 64505 | |||
| | | | | |||
| ISP B ISP A | ISP A' ISP A' | |||
| CE-1 <--- PE-1 <------------------- PE-2 <--- CE-2 | CE-1 <--- PE-1 <------------------- PE-2 <--- CE-2 | |||
| 64496 Old_ASN: 64510 Old_ASN: 64500 64499 | 64496 Old_ASN: 64510 Old_ASN: 64500 64499 | |||
| New_ASN: 64500 New_ASN: 64500 | ||||
| CE-2 to PE-2: sig(<64500>, O=64499, pCount=1, N)K_64499-CE2 [sig1] | CE-2 to PE-2: sig(64500, (pCount=1,...,64499), N)K_64499-CE2 | |||
| Equivalent AS_PATH=(64499) | Equivalent AS_PATH=(64499) | |||
| Secure_Path=(64499) | Securedpath=(64499) | |||
| length=sum(pCount)=1 | length=sum(pCount)=1 | |||
| PE-2 to 64505: sig(<64505>, 64500, pCount=1, <sig1>)K_64500-PE2 [sig2] | PE-2 to 64505: sig(64505,...,(pCount=1,...,64500),...,N)K_64500-PE2 | |||
| sig(<64500>, 64499, pCount=1, N)K_64499-CE2 [sig1] | sig(64500, (pCount=1,...,64499), N)K_64499-CE2 | |||
| Equivalent AS_PATH=(64500,64499) | ||||
| Secure_Path=(64500,64499) | ||||
| length=sum(pCount)=2 | ||||
| PE-2 to PE-1: sig(<64510>, 64500, pCount=1, <sig1>)K_64500-PE2 [sig3] | ||||
| sig(<64500>, 64499, pCount=1, N)K_64499-CE2 [sig1] | ||||
| Equivalent AS_PATH=(64500,64499) | Equivalent AS_PATH=(64500,64499) | |||
| Secure_Path=(64500,64499) | Securedpath=(64500,64499) | |||
| length=sum(pCount)=2 | length=sum(pCount)=2 | |||
| PE-1 to CE-1: sig(<64496>, 64510, pCount=1, <sig3>)K_64510-PE1 [sig4] | PE-2 to PE-1: sig(64500, (pCount=1,...,64499), N)K_64499-CE2 | |||
| sig(<64510>, 64500, pCount=1, <sig1>)K_64500-PE2 [sig3] | Equivalent AS_PATH=(64499) | |||
| sig(<64500>, 64499, pCount=1, N)K_64499-CE2 [sig1] | Securedpath=(64499) | |||
| Equivalent AS_PATH= (64510,64500,64499) | length=sum(pCount)=1 | |||
| Secure_Path=(64510,64500,64499) | #PE-2 sends to PE-1 (in iBGP) the exact same update | |||
| length=sum(pCount)=3 | #as it received from AS64499. | |||
| Migrating, route flow outbound PE-1 to CE-1 | ||||
| 64505 | ||||
| | | ||||
| ISP A' ISP A' | ||||
| CE-1 <--- PE-1 <------------------- PE-2 <--- CE-2 | ||||
| 64496 Old_ASN: 64510 Old_ASN: 64500 64499 | ||||
| New_ASN: 64500 New_ASN: 64500 | ||||
| CE-2 to PE-2: sig(<64500>, 64499, pCount=1, N)K_64499-CE2 [sig11] | ||||
| Equivalent AS_PATH=(64499) | ||||
| Secure_Path=(64499) | ||||
| length=sum(pCount)=1 | ||||
| PE-2 to 64505: sig(<64505>, 64500, pCount=1, <sig11>)K_64500-PE2 [sig12] | ||||
| sig(<64500>, 64499, pCount=1, N)K_64499-CE2 [sig11] | ||||
| Equivalent AS_PATH=(64500,64499) | ||||
| Secure_Path=(64500,64499) | ||||
| length=sum(pCount)=2 | ||||
| PE-2 to PE-1: sig(<64500>, 64499, pCount=1, N)K_64499-CE2 [sig11] | ||||
| Equivalent AS_PATH=(64499) | ||||
| Secure_Path=(64499) | ||||
| length=sum(pCount)=1 | ||||
| #PE-2 sends to PE-1 (in iBGP) the exact same update | ||||
| #as received from AS64499. | ||||
| PE-1 to CE-1: sig(<64496>, 64510, pCount=1, <sig13>)K_64510-PE1 [sig14] | PE-1 to CE-1: sig(64496,...,(pCount=1,...,64510),...,N)K_64510-PE1 | |||
| sig(<64510>, 64500, pCount=0, <sig11>)K_64500-PE2 [sig13] | sig(64510,...,(pCount=0,...,64500),...,N)K_64500-PE2 (*) | |||
| sig(<64500>, 64499, pCount=1, N)K_64499-CE2 [sig11] | sig(64500, (pCount=1,...,64499), N)K_64499-CE2 | |||
| Equivalent AS_PATH=(64510,64499) | Equivalent AS_PATH=(64510,64499) | |||
| Secure_Path=(64510, 64500(pCount=0),64499) | Securedpath=(64510, 64500 (pCount=0),64499) | |||
| length=sum(pCount)=2 (length is NOT 3) | length=sum(pCount)=2 (length is NOT 3) | |||
| #PE1 adds [sig13] acting as AS64500 | #PE-1 adds the Secure_Path Segment in (*) acting as AS64500 | |||
| #PE1 accepts [sig13] with pCount=0 acting as AS64510, | #PE-1 accepts (*) with pCount=0 acting as AS64510, | |||
| #as it would if it received sig13 from an eBGP peer | #as it would if it received (*) from an eBGP peer | |||
| Migrating, route flow inbound CE-1 to PE-1 | Migrating, route flow inbound CE-1 to PE-1 | |||
| 64505 | 64505 | |||
| | | | | |||
| ISP A' ISP A' | ISP A' ISP A' | |||
| CE-1 ---> PE-1 -------------------> PE-2 ---> CE-2 | CE-1 ---> PE-1 -------------------> PE-2 ---> CE-2 | |||
| 64496 Old_ASN: 64510 Old_ASN: 64500 64499 | 64496 Old_ASN: 64510 Old_ASN: 64500 64499 | |||
| New_ASN: 64500 New_ASN: 64500 | New_ASN: 64500 New_ASN: 64500 | |||
| CE-1 to PE-1: sig(<64510>, 64496, pCount=1, N)K_64496-CE1 [sig21] | CE-1 to PE-1: sig(64510, (pCount=1,...,64496), N)K_64496-CE1 | |||
| Equivalent AS_PATH=(64496) | Equivalent AS_PATH=(64496) | |||
| Secure_Path=(64496) | Securedpath=(64496) | |||
| length=sum(pCount)=1 | length=sum(pCount)=1 | |||
| PE-1 to PE-2: sig(<64500>, 64510, pCount=0, <sig21>)K_64510-PE1 [sig22] | PE-1 to PE-2: sig(64500,...,(pCount=0,...,64510),...,N)K_64510-PE1 (**) | |||
| sig(<64510>, 64496, pCount=1, N)K_64496-CE1 [sig21] | sig(64510, (pCount=1,...,64496), N)K_64496-CE1 | |||
| Equivalent AS_PATH=(64496) | Equivalent AS_PATH=(64496) | |||
| Secure_Path=(64510 (pCount=0),64496) | Securedpath=(64510 (pCount=0),64496) | |||
| length=sum(pCount)=1 (length is NOT 2) | length=sum(pCount)=1 (length is NOT 2) | |||
| #PE1 adds [sig22] acting as AS64510 | #PE-1 adds the Secure_Path Segment in (**) acting as AS64510 | |||
| #PE1 accepts [sig22] with pCount=0 acting as AS64500, | #PE-1 accepts (**) with pCount=0 acting as AS64500, | |||
| #as it would if it received sig22 from an eBGP peer | #as it would if it received (**) from an eBGP peer | |||
| #PE-1, as AS64500, sends the update including (**) to PE-2 (in iBGP) | ||||
| PE-2 to 64505: sig(<64505>, 64500, pCount=1, <sig22>)K_64500-PE2 [sig23] | PE-2 to 64505: sig(64505,...,(pCount=1,...,64500),...,N)K_64500-PE2 | |||
| sig(<64500>, 64510, pCount=0, <sig21>)K_64510-PE1 [sig22] | sig(64500,...,(pCount=0,...,64510),...,N)K_64510-PE1 | |||
| sig(<64510>, 64496, pCount=1, N)K_64496-CE1 [sig21] | sig(64510, (pCount=1,...,64496), N)K_64496-CE1 | |||
| Equivalent AS_PATH=(64500,64496) | Equivalent AS_PATH=(64500,64496) | |||
| Secure_Path=(64500,64510 (pCount=0), 64496) | Securedpath=(64500,64510 (pCount=0), 64496) | |||
| length=sum(pCount)=2 (length is NOT 3) | length=sum(pCount)=2 (length is NOT 3) | |||
| PE-2 to CE-2: sig(<64499>, 64500, pCount=1, <sig22>)K_64500-PE2 [sig24] | PE-2 to CE-2: sig(64499,...,(pCount=1,...,64500),...,N)K_64500-PE2 | |||
| sig(<64500>, 64510, pCount=0, <sig21>)K_64510-PE1 [sig22] | sig(64500,...,(pCount=0,...,64510),...,N)K_64510-PE1 | |||
| sig(<64510>, 64496, pCount=1, N)K_64496-CE1 [sig21] | sig(64510, (pCount=1,...,64496), N)K_64496-CE1 | |||
| Equivalent AS_PATH=(64500,64496) | Equivalent AS_PATH=(64500,64496) | |||
| Secure_Path=(64500, 64510 (pCount=0), 64496) | Securedpath=(64500, 64510 (pCount=0), 64496) | |||
| length=sum(pCount)=2 (length is NOT 3) | length=sum(pCount)=2 (length is NOT 3) | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This document does not require any IANA actions. | This document does not require any IANA actions. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| RFC 7705 [RFC7705] discusses a process by which one ASN is migrated | RFC 7705 [RFC7705] discusses a process by which one ASN is migrated | |||
| into and subsumed by another. Because this process involves | into and subsumed by another. Because this process involves | |||
| skipping to change at page 14, line 27 | skipping to change at page 14, line 28 | |||
| keys are permitted, this does potentially enable an AS_PATH | keys are permitted, this does potentially enable an AS_PATH | |||
| shortening attack, but these are existing security risks for BGPsec. | shortening attack, but these are existing security risks for BGPsec. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC7705] George, W. and S. Amante, "Autonomous System Migration | [RFC7705] George, W. and S. Amante, "Autonomous System Migration | |||
| Mechanisms and Their Effects on the BGP AS_PATH | Mechanisms and Their Effects on the BGP AS_PATH | |||
| Attribute", RFC 7705, DOI 10.17487/RFC7705, November 2015, | Attribute", RFC 7705, DOI 10.17487/RFC7705, November 2015, | |||
| <http://www.rfc-editor.org/info/rfc7705>. | <https://www.rfc-editor.org/info/rfc7705>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <http://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | [RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | |||
| Specification", RFC 8205, DOI 10.17487/RFC8205, June 2017. | Specification", RFC 8205, DOI 10.17487/RFC8205, June 2017. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [RFC1930] Hawkinson, J. and T. Bates, "Guidelines for creation, | [RFC1930] Hawkinson, J. and T. Bates, "Guidelines for creation, | |||
| selection, and registration of an Autonomous System (AS)", | selection, and registration of an Autonomous System (AS)", | |||
| BCP 6, RFC 1930, DOI 10.17487/RFC1930, March 1996, | BCP 6, RFC 1930, DOI 10.17487/RFC1930, March 1996, | |||
| <http://www.rfc-editor.org/info/rfc1930>. | <https://www.rfc-editor.org/info/rfc1930>. | |||
| [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
| Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
| DOI 10.17487/RFC4271, January 2006, | DOI 10.17487/RFC4271, January 2006, | |||
| <http://www.rfc-editor.org/info/rfc4271>. | <https://www.rfc-editor.org/info/rfc4271>. | |||
| [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous | [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous | |||
| System Confederations for BGP", RFC 5065, | System Confederations for BGP", RFC 5065, | |||
| DOI 10.17487/RFC5065, August 2007, | DOI 10.17487/RFC5065, August 2007, | |||
| <http://www.rfc-editor.org/info/rfc5065>. | <https://www.rfc-editor.org/info/rfc5065>. | |||
| [RFC5398] Huston, G., "Autonomous System (AS) Number Reservation for | [RFC5398] Huston, G., "Autonomous System (AS) Number Reservation for | |||
| Documentation Use", RFC 5398, DOI 10.17487/RFC5398, | Documentation Use", RFC 5398, DOI 10.17487/RFC5398, | |||
| December 2008, <http://www.rfc-editor.org/info/rfc5398>. | December 2008, <https://www.rfc-editor.org/info/rfc5398>. | |||
| [RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support | [RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support | |||
| Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, | Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, | |||
| February 2012, <http://www.rfc-editor.org/info/rfc6480>. | February 2012, <https://www.rfc-editor.org/info/rfc6480>. | |||
| Acknowledgements | Acknowledgements | |||
| Thanks to Kotikalapudi Sriram, Shane Amante, Warren Kumari, Terry | Thanks to Kotikalapudi Sriram, Shane Amante, Warren Kumari, Terry | |||
| Manderson, Keyur Patel, Alia Atlas, and Alvaro Retana for their | Manderson, Keyur Patel, Alia Atlas, and Alvaro Retana for their | |||
| review comments. | review comments. | |||
| The authors particularly wish to acknowledge Kotikalapudi Sriram, | ||||
| Oliver Borchert, and Michael Baer for their review and suggestions | ||||
| for the examples in Section 5.4, which made an important contribution | ||||
| to the quality of the text. | ||||
| Additionally, the solution presented in this document is an amalgam | Additionally, the solution presented in this document is an amalgam | |||
| of several Secure Inter-Domain Routing (SIDR) interim meeting | of several Secure Inter-Domain Routing (SIDR) interim meeting | |||
| discussions plus a discussion at IETF 85, collected and articulated | discussions plus a discussion at IETF 85, collected and articulated | |||
| thanks to Sandy Murphy. | thanks to Sandy Murphy. | |||
| Authors' Addresses | Authors' Addresses | |||
| Wesley George | Wesley George | |||
| Neustar | ||||
| 45980 Center Oak Plaza | ||||
| Sterling, VA 20166 | ||||
| United States of America | ||||
| Email: wesgeorge@puck.nether.net | Email: wesgeorge@puck.nether.net | |||
| Sandy Murphy | Sandy Murphy | |||
| SPARTA, Inc., a Parsons Company | SPARTA, Inc., a Parsons Company | |||
| 7110 Samuel Morse Drive | 7110 Samuel Morse Drive | |||
| Columbia, MD 21046 | Columbia, MD 21046 | |||
| United States | United States of America | |||
| Phone: +1 443-430-8000 | Phone: +1 443-430-8000 | |||
| Email: sandy@tislabs.com | Email: sandy@tislabs.com | |||
| End of changes. 60 change blocks. | ||||
| 156 lines changed or deleted | 169 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||