draft-ietf-sidr-rpki-rtr-rfc6810-bis-07.txt | draft-ietf-sidr-rpki-rtr-rfc6810-bis-08.txt | |||
---|---|---|---|---|
Network Working Group R. Bush | Network Working Group R. Bush | |||
Internet-Draft Internet Initiative Japan | Internet-Draft Internet Initiative Japan | |||
Obsoletes: 6810 (if approved) R. Austein | Intended status: Standards Track R. Austein | |||
Intended status: Standards Track Dragon Research Labs | Expires: July 11, 2017 Dragon Research Labs | |||
Expires: September 4, 2016 March 3, 2016 | January 7, 2017 | |||
The Resource Public Key Infrastructure (RPKI) to Router Protocol | The Resource Public Key Infrastructure (RPKI) to Router Protocol | |||
draft-ietf-sidr-rpki-rtr-rfc6810-bis-07 | draft-ietf-sidr-rpki-rtr-rfc6810-bis-08 | |||
Abstract | Abstract | |||
In order to verifiably validate the origin Autonomous Systems and | In order to verifiably validate the origin Autonomous Systems and | |||
Autonomous System Paths of BGP announcements, routers need a simple | Autonomous System Paths of BGP announcements, routers need a simple | |||
but reliable mechanism to receive Resource Public Key Infrastructure | but reliable mechanism to receive Resource Public Key Infrastructure | |||
(RFC 6480) prefix origin data and router keys from a trusted cache. | (RFC 6480) prefix origin data and router keys from a trusted cache. | |||
This document describes a protocol to deliver validated prefix origin | This document describes a protocol to deliver them. | |||
data and router keys to routers. | ||||
This document describes version 1 of the rpki-rtr protocol. | This document describes version 1 of the rpki-rtr protocol. RFC 6810 | |||
describes version 0. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted 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). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
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." | |||
This Internet-Draft will expire on September 4, 2016. | This Internet-Draft will expire on July 11, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 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 | (http://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 | |||
skipping to change at page 2, line 19 | skipping to change at page 2, line 19 | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Changes from RFC 6810 . . . . . . . . . . . . . . . . . . 3 | 1.2. Changes from RFC 6810 . . . . . . . . . . . . . . . . . . 3 | |||
2. Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Deployment Structure . . . . . . . . . . . . . . . . . . . . 4 | 3. Deployment Structure . . . . . . . . . . . . . . . . . . . . 4 | |||
4. Operational Overview . . . . . . . . . . . . . . . . . . . . 5 | 4. Operational Overview . . . . . . . . . . . . . . . . . . . . 5 | |||
5. Protocol Data Units (PDUs) . . . . . . . . . . . . . . . . . 6 | 5. Protocol Data Units (PDUs) . . . . . . . . . . . . . . . . . 6 | |||
5.1. Fields of a PDU . . . . . . . . . . . . . . . . . . . . . 6 | 5.1. Fields of a PDU . . . . . . . . . . . . . . . . . . . . . 6 | |||
5.2. Serial Notify . . . . . . . . . . . . . . . . . . . . . . 8 | 5.2. Serial Notify . . . . . . . . . . . . . . . . . . . . . . 9 | |||
5.3. Serial Query . . . . . . . . . . . . . . . . . . . . . . 9 | 5.3. Serial Query . . . . . . . . . . . . . . . . . . . . . . 9 | |||
5.4. Reset Query . . . . . . . . . . . . . . . . . . . . . . . 10 | 5.4. Reset Query . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
5.5. Cache Response . . . . . . . . . . . . . . . . . . . . . 11 | 5.5. Cache Response . . . . . . . . . . . . . . . . . . . . . 11 | |||
5.6. IPv4 Prefix . . . . . . . . . . . . . . . . . . . . . . . 11 | 5.6. IPv4 Prefix . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
5.7. IPv6 Prefix . . . . . . . . . . . . . . . . . . . . . . . 13 | 5.7. IPv6 Prefix . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
5.8. End of Data . . . . . . . . . . . . . . . . . . . . . . . 13 | 5.8. End of Data . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
5.9. Cache Reset . . . . . . . . . . . . . . . . . . . . . . . 14 | 5.9. Cache Reset . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
5.10. Router Key . . . . . . . . . . . . . . . . . . . . . . . 15 | 5.10. Router Key . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
5.11. Error Report . . . . . . . . . . . . . . . . . . . . . . 16 | 5.11. Error Report . . . . . . . . . . . . . . . . . . . . . . 16 | |||
6. Protocol Timing Parameters . . . . . . . . . . . . . . . . . 17 | 6. Protocol Timing Parameters . . . . . . . . . . . . . . . . . 17 | |||
skipping to change at page 3, line 12 | skipping to change at page 3, line 12 | |||
16.2. Informative References . . . . . . . . . . . . . . . . . 32 | 16.2. Informative References . . . . . . . . . . . . . . . . . 32 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
1. Introduction | 1. Introduction | |||
In order to verifiably validate the origin Autonomous Systems (ASes) | In order to verifiably validate the origin Autonomous Systems (ASes) | |||
and AS paths of BGP announcements, routers need a simple but reliable | and AS paths of BGP announcements, routers need a simple but reliable | |||
mechanism to receive cryptographically validated Resource Public Key | mechanism to receive cryptographically validated Resource Public Key | |||
Infrastructure (RPKI) [RFC6480] prefix origin data and router keys | Infrastructure (RPKI) [RFC6480] prefix origin data and router keys | |||
from a trusted cache. This document describes a protocol to deliver | from a trusted cache. This document describes a protocol to deliver | |||
validated prefix origin data and router keys to routers. The design | them. The design is intentionally constrained to be usable on much | |||
is intentionally constrained to be usable on much of the current | of the current generation of ISP router platforms. | |||
generation of ISP router platforms. | ||||
Section 3 describes the deployment structure, and Section 4 then | Section 3 describes the deployment structure, and Section 4 then | |||
presents an operational overview. The binary payloads of the | presents an operational overview. The binary payloads of the | |||
protocol are formally described in Section 5, and the expected | protocol are formally described in Section 5, and the expected | |||
Protocol Data Unit (PDU) sequences are described in Section 8. The | Protocol Data Unit (PDU) sequences are described in Section 8. The | |||
transport protocol options are described in Section 9. Section 10 | transport protocol options are described in Section 9. Section 10 | |||
details how routers and caches are configured to connect and | details how routers and caches are configured to connect and | |||
authenticate. Section 11 describes likely deployment scenarios. The | authenticate. Section 11 describes likely deployment scenarios. The | |||
traditional security and IANA considerations end the document. | traditional security and IANA considerations end the document. | |||
The protocol is extensible in order to support new PDUs with new | The protocol is extensible in order to support new PDUs with new | |||
semantics, if deployment experience indicates they are needed. PDUs | semantics, if deployment experience indicates they are needed. PDUs | |||
are versioned should deployment experience call for change. | are versioned should deployment experience call for change. | |||
For an implementation (not interoperability) report on the use of | ||||
this protocol with prefix origin data, see [RFC7128]. | ||||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119] | document are to be interpreted as described in RFC 2119 [RFC2119] | |||
only when they appear in all upper case. They may also appear in | only when they appear in all upper case. They may also appear in | |||
lower or mixed case as English words, without special meaning. | lower or mixed case as English words, without special meaning. | |||
1.2. Changes from RFC 6810 | 1.2. Changes from RFC 6810 | |||
The protocol described in this document is largely compatible with | This section summarizes the significant changes between [RFC6810] and | |||
[RFC6810]. This section summarizes the significant changes. | the protocol described in this document. | |||
o New Router Key PDU type (Section 5.10) added. | o New Router Key PDU type (Section 5.10) added. | |||
o Explicit timing parameters (Section 5.8, Section 6) added. | o Explicit timing parameters (Section 5.8, Section 6) added. | |||
o Protocol version number incremented from zero to one. | o Protocol version number incremented from zero to one. | |||
o Protocol version number negotiation (Section 7) added. | o Protocol version number negotiation (Section 7) added. | |||
2. Glossary | 2. Glossary | |||
The following terms are used with special meaning. | The following terms are used with special meaning. | |||
Global RPKI: The authoritative data of the RPKI are published in a | Global RPKI: The authoritative data of the RPKI are published in a | |||
distributed set of servers at the IANA, Regional Internet | distributed set of servers at the IANA, Regional Internet | |||
Registries (RIRs), National Internet Registries (NIRs), and ISPs; | Registries (RIRs), National Internet Registries (NIRs), and ISPs; | |||
see [RFC6481]. | see [RFC6481]. | |||
Cache: A coalesced copy of the published Global RPKI data, | Cache: A coalesced copy of the published Global RPKI data, | |||
periodically fetched or refreshed, directly or indirectly, using | periodically fetched or refreshed, directly or indirectly, using | |||
the [RFC5781] protocol or some successor protocol. Relying party | the [RFC5781] protocol or some successor. Relying party software | |||
software is used to gather and validate the distributed data of | is used to gather and validate the distributed data of the RPKI | |||
the RPKI into a cache. Trusting this cache further is a matter | into a cache. Trusting this cache further is a matter between the | |||
between the provider of the cache and a relying party. | provider of the cache and a relying party. | |||
Serial Number: A 32-bit strictly increasing unsigned integer which | Serial Number: A 32-bit strictly increasing unsigned integer which | |||
wraps from 2^32-1 to 0. It denotes the logical version of a | wraps from 2^32-1 to 0. It denotes the logical version of a | |||
cache. A cache increments the value when it successfully updates | cache. A cache increments the value when it successfully updates | |||
its data from a parent cache or from primary RPKI data. While a | its data from a parent cache or from primary RPKI data. While a | |||
cache is receiving updates, new incoming data and implicit deletes | cache is receiving updates, new incoming data and implicit deletes | |||
are associated with the new serial but MUST NOT be sent until the | are associated with the new serial but MUST NOT be sent until the | |||
fetch is complete. A Serial Number is not commensurate between | fetch is complete. A Serial Number is not commensurate between | |||
different caches or different protocol versions, nor need it be | different caches or different protocol versions, nor need it be | |||
maintained across resets of the cache server. See [RFC1982] on | maintained across resets of the cache server. See [RFC1982] on | |||
DNS Serial Number Arithmetic for too much detail on the topic. | DNS Serial Number Arithmetic for too much detail on the topic. | |||
Session ID: When a cache server is started, it generates a Session | Session ID: When a cache server is started, it generates a Session | |||
ID to uniquely identify the instance of the cache and to bind it | ID to uniquely identify the instance of the cache and to bind it | |||
to the sequence of Serial Numbers that cache instance will | to the sequence of Serial Numbers that cache instance will | |||
generate. This allows the router to restart a failed session | generate. This allows the router to restart a failed session | |||
knowing that the Serial Number it is using is commensurate with | knowing that the Serial Number it is using is commensurate with | |||
that of the cache. | that of the cache. | |||
Payload PDU: A protocol message which contains data for use by the | Payload PDU: A protocol message which contains data for use by the | |||
router, as opposed to a PDU which just conveys the semantics of | router, as opposed to a PDU which conveys the control mechanisms | |||
this protocol. Prefixes and Router Keys are examples of payload | of this protocol. Prefixes and Router Keys are examples of | |||
PDUs. | payload PDUs. | |||
3. Deployment Structure | 3. Deployment Structure | |||
Deployment of the RPKI to reach routers has a three-level structure | Deployment of the RPKI to reach routers has a three-level structure | |||
as follows: | as follows: | |||
Global RPKI: The authoritative data of the RPKI are published in a | Global RPKI: The authoritative data of the RPKI are published in a | |||
distributed set of servers, RPKI publication repositories, e.g., | distributed set of servers, RPKI publication repositories, e.g., | |||
by the IANA, RIRs, NIRs, and ISPs (see [RFC6481]). | by the IANA, RIRs, NIRs, and ISPs (see [RFC6481]). | |||
Local Caches: A local set of one or more collected and verified | Local Caches: A local set of one or more collected and verified | |||
caches. A relying party, e.g., router or other client, MUST have | caches of RPKI data. A relying party, e.g., router or other | |||
a trust relationship with, and a trusted transport channel to, any | client, MUST have a trust relationship with, and a trusted | |||
cache(s) it uses. | transport channel to, any cache(s) it uses. | |||
Routers: A router fetches data from a local cache using the protocol | Routers: A router fetches data from a local cache using the protocol | |||
described in this document. It is said to be a client of the | described in this document. It is said to be a client of the | |||
cache. There MAY be mechanisms for the router to assure itself of | cache. There MAY be mechanisms for the router to assure itself of | |||
the authenticity of the cache and to authenticate itself to the | the authenticity of the cache and to authenticate itself to the | |||
cache. | cache (see Section 9). | |||
4. Operational Overview | 4. Operational Overview | |||
A router establishes and keeps open a connection to one or more | A router establishes and keeps open a connection to one or more | |||
caches with which it has client/server relationships. It is | caches with which it has client/server relationships. It is | |||
configured with a semi-ordered list of caches, and establishes a | configured with a semi-ordered list of caches, and establishes a | |||
connection to the most preferred cache, or set of caches, which | connection to the most preferred cache, or set of caches, which | |||
accept the connections. | accept the connections. | |||
The router MUST choose the most preferred, by configuration, cache or | The router MUST choose the most preferred, by configuration, cache or | |||
skipping to change at page 5, line 41 | skipping to change at page 5, line 41 | |||
a router establishes a new session with a cache, or wishes to reset a | a router establishes a new session with a cache, or wishes to reset a | |||
current relationship, it sends a Reset Query. | current relationship, it sends a Reset Query. | |||
The cache responds to the Serial Query with all data changes which | The cache responds to the Serial Query with all data changes which | |||
took place since the given Serial Number. This may be the null set, | took place since the given Serial Number. This may be the null set, | |||
in which case the End of Data PDU is still sent. Note that the | in which case the End of Data PDU is still sent. Note that the | |||
Serial Number comparison used to determine "since the given Serial | Serial Number comparison used to determine "since the given Serial | |||
Number" MUST take wrap-around into account, see [RFC1982]. | Number" MUST take wrap-around into account, see [RFC1982]. | |||
When the router has received all data records from the cache, it sets | When the router has received all data records from the cache, it sets | |||
its current Serial Number to that of the Serial Number in the End of | its current Serial Number to that of the Serial Number in the | |||
Data PDU. | received End of Data PDU. | |||
When the cache updates its database, it sends a Notify message to | When the cache updates its database, it sends a Notify message to | |||
every currently connected router. This is a hint that now would be a | every currently connected router. This is a hint that now would be a | |||
good time for the router to poll for an update, but is only a hint. | good time for the router to poll for an update, but is only a hint. | |||
The protocol requires the router to poll for updates periodically in | The protocol requires the router to poll for updates periodically in | |||
any case. | any case. | |||
Strictly speaking, a router could track a cache simply by asking for | Strictly speaking, a router could track a cache simply by asking for | |||
a complete data set every time it updates, but this would be very | a complete data set every time it updates, but this would be very | |||
inefficient. The Serial Number based incremental update mechanism | inefficient. The Serial Number based incremental update mechanism | |||
skipping to change at page 7, line 48 | skipping to change at page 7, line 48 | |||
router already has. In such cases, a router will detect the error | router already has. In such cases, a router will detect the error | |||
and reset the session. The one case in which the router may stay | and reset the session. The one case in which the router may stay | |||
out of sync is when nothing in the Cache Response contradicts any | out of sync is when nothing in the Cache Response contradicts any | |||
data currently held by the router. | data currently held by the router. | |||
Using persistent storage for the Session ID or a clock-based | Using persistent storage for the Session ID or a clock-based | |||
scheme for generating Session IDs should avoid the risk of Session | scheme for generating Session IDs should avoid the risk of Session | |||
ID collisions. | ID collisions. | |||
The Session ID might be a pseudo-random value, a strictly | The Session ID might be a pseudo-random value, a strictly | |||
increasing value if the cache has reliable storage, etc. | increasing value if the cache has reliable storage, et cetera. A | |||
seconds-since-epoch timestamp value such as the POSIX time() | ||||
function makes a good Session ID value. | ||||
Length: A 32-bit unsigned integer which has as its value the count | Length: A 32-bit unsigned integer which has as its value the count | |||
of the bytes in the entire PDU, including the eight bytes of | of the bytes in the entire PDU, including the eight bytes of | |||
header which end with the length field. | header which includes the length field. | |||
Flags: The lowest order bit of the Flags field is 1 for an | Flags: The lowest order bit of the Flags field is 1 for an | |||
announcement and 0 for a withdrawal. For a Prefix PDU (IPv4 or | announcement and 0 for a withdrawal. For a Prefix PDU (IPv4 or | |||
IPv6), the flag indicates whether this PDU announces a new right | IPv6), the flag indicates whether this PDU announces a new right | |||
to announce the prefix or withdraws a previously announced right; | to announce the prefix or withdraws a previously announced right; | |||
a withdraw effectively deletes one previously announced Prefix PDU | a withdraw effectively deletes one previously announced Prefix PDU | |||
with the exact same Prefix, Length, Max-Len, and Autonomous System | with the exact same Prefix, Length, Max-Len, and Autonomous System | |||
Number (ASN). Similarly, for a Router Key PDU, the flag indicates | Number (ASN). Similarly, for a Router Key PDU, the flag indicates | |||
whether this PDU announces a new Router Key or deletes one | whether this PDU announces a new Router Key or deletes one | |||
previously announced Router Key PDU with the exact same AS Number, | previously announced Router Key PDU with the exact same AS Number, | |||
subjectKeyIdentifier, and subjectPublicKeyInfo. | subjectKeyIdentifier, and subjectPublicKeyInfo. | |||
The remaining bits in the flags field are reserved for future use. | The remaining bits in the flags field are reserved for future use. | |||
In protocol version 1, they MUST be 0 on transmission and SHOULD | In protocol version 1, they MUST be 0 on transmission and SHOULD | |||
be ignored on receipt. | be ignored on receipt. | |||
Prefix Length: An 8-bit unsigned integer denoting the shortest | Prefix Length: An 8-bit unsigned integer denoting the shortest | |||
prefix allowed for the prefix. | prefix allowed for the Prefix element. | |||
Max Length: An 8-bit unsigned integer denoting the longest prefix | Max Length: An 8-bit unsigned integer denoting the longest prefix | |||
allowed by the prefix. This MUST NOT be less than the Prefix | allowed by the Prefix element. This MUST NOT be less than the | |||
Length element. | Prefix Length element. | |||
Prefix: The IPv4 or IPv6 prefix of the ROA. | Prefix: The IPv4 or IPv6 prefix of the ROA. | |||
Autonomous System Number: A 32-bit unsigned integer representing an | Autonomous System Number: A 32-bit unsigned integer representing an | |||
ASN allowed to announce a prefix or associated with a router key. | ASN allowed to announce a prefix or associated with a router key. | |||
Subject Key Identifier: 20-octet Subject Key Identifier (SKI) value | Subject Key Identifier: 20-octet Subject Key Identifier (SKI) value | |||
of a router key, as described in [RFC6487]. | of a router key, as described in [RFC6487]. | |||
Subject Public Key Info: a router key's subjectPublicKeyInfo value, | Subject Public Key Info: a router key's subjectPublicKeyInfo value, | |||
as described in [I-D.ietf-sidr-bgpsec-algs]. This is the full | as described in [I-D.ietf-sidr-bgpsec-algs]. This is the full | |||
ASN.1 DER encoding of the subjectPublicKeyInfo, including the | ASN.1 DER encoding of the subjectPublicKeyInfo, including the | |||
ASN.1 tag and length values of the subjectPublicKeyInfo SEQUENCE. | ASN.1 tag and length values of the subjectPublicKeyInfo SEQUENCE. | |||
Zero: Fields shown as zero MUST be zero on transmission. The value | Refresh Interval: Interval between normal cache polls. See | |||
of such a field SHOULD be ignored on receipt. | Section 6 | |||
Retry Interval: Interval between cache poll retries after a failed | ||||
cache poll. See Section 6 | ||||
Expire Interval: Interval during which data fetched from a cache | ||||
remains valid in the absence of a successful subsequent cache | ||||
poll. See Section 6 | ||||
5.2. Serial Notify | 5.2. Serial Notify | |||
The cache notifies the router that the cache has new data. | The cache notifies the router that the cache has new data. | |||
The Session ID reassures the router that the Serial Numbers are | The Session ID reassures the router that the Serial Numbers are | |||
commensurate, i.e., the cache session has not been changed. | commensurate, i.e., the cache session has not been changed. | |||
Upon receipt of a Serial Notify PDU, the router MAY issue an | Upon receipt of a Serial Notify PDU, the router MAY issue an | |||
immediate Serial Query (Section 5.3) or Reset Query (Section 5.4) | immediate Serial Query (Section 5.3) or Reset Query (Section 5.4) | |||
without waiting for the Refresh Interval timer (see Section 6) to | without waiting for the Refresh Interval timer (see Section 6) to | |||
expire. | expire. | |||
Serial Notify is the only message that the cache can send that is not | Serial Notify is the only message that the cache can send that is not | |||
in response to a message from the router. | in response to a message from the router. | |||
If the router receives a Serial Notify PDU during the initial start- | If the router receives a Serial Notify PDU during the initial start- | |||
up period where the router and cache are still negotiating to agree | up period where the router and cache are still negotiating to agree | |||
on a protocol version, the router SHOULD simply ignore the Serial | on a protocol version, the router MUST simply ignore the Serial | |||
Notify PDU, even if the Serial Notify PDU is for an unexpected | Notify PDU, even if the Serial Notify PDU is for an unexpected | |||
protocol version. See Section 7 for details. | protocol version. See Section 7 for details. | |||
0 8 16 24 31 | 0 8 16 24 31 | |||
.-------------------------------------------. | .-------------------------------------------. | |||
| Protocol | PDU | | | | Protocol | PDU | | | |||
| Version | Type | Session ID | | | Version | Type | Session ID | | |||
| 1 | 0 | | | | 1 | 0 | | | |||
+-------------------------------------------+ | +-------------------------------------------+ | |||
| | | | | | |||
skipping to change at page 14, line 34 | skipping to change at page 14, line 34 | |||
| Retry Interval | | | Retry Interval | | |||
| | | | | | |||
+-------------------------------------------+ | +-------------------------------------------+ | |||
| | | | | | |||
| Expire Interval | | | Expire Interval | | |||
| | | | | | |||
`-------------------------------------------' | `-------------------------------------------' | |||
The Refresh Interval, Retry Interval, and Expire Interval are all | The Refresh Interval, Retry Interval, and Expire Interval are all | |||
32-bit elapsed times measured in seconds, and express the timing | 32-bit elapsed times measured in seconds, and express the timing | |||
parameters that the cache expects the router to use to decide when | parameters which the cache expects the router to use in deciding when | |||
next to send the cache another Serial Query or Reset Query PDU. See | to send subsequent Serial Query or Reset Query PDUs to the cache. | |||
Section 6 for an explanation of the use and the range of allowed | See Section 6 for an explanation of the use and the range of allowed | |||
values for these parameters. | values for these parameters. | |||
5.9. Cache Reset | 5.9. Cache Reset | |||
The cache may respond to a Serial Query informing the router that the | The cache may respond to a Serial Query informing the router that the | |||
cache cannot provide an incremental update starting from the Serial | cache cannot provide an incremental update starting from the Serial | |||
Number specified by the router. The router must decide whether to | Number specified by the router. The router must decide whether to | |||
issue a Reset Query or switch to a different cache. | issue a Reset Query or switch to a different cache. | |||
0 8 16 24 31 | 0 8 16 24 31 | |||
skipping to change at page 16, line 24 | skipping to change at page 16, line 24 | |||
Also note that it is possible, albeit very unlikely, for multiple | Also note that it is possible, albeit very unlikely, for multiple | |||
distinct Subject Public Key values to hash to the same SKI. For this | distinct Subject Public Key values to hash to the same SKI. For this | |||
reason, implementations MUST compare Subject Public Key values as | reason, implementations MUST compare Subject Public Key values as | |||
well as SKIs when detecting duplicate PDUs. | well as SKIs when detecting duplicate PDUs. | |||
5.11. Error Report | 5.11. Error Report | |||
This PDU is used by either party to report an error to the other. | This PDU is used by either party to report an error to the other. | |||
Error reports are only sent as responses to other PDUs. | Error reports are only sent as responses to other PDUs, not to report | |||
errors in Error Report PDUS. | ||||
The Error Code is described in Section 12. | The Error Code is described in Section 12. | |||
If the error is generic (e.g., "Internal Error") and not associated | If the error is generic (e.g., "Internal Error") and not associated | |||
with the PDU to which it is responding, the Erroneous PDU field MUST | with the PDU to which it is responding, the Erroneous PDU field MUST | |||
be empty and the Length of Encapsulated PDU field MUST be zero. | be empty and the Length of Encapsulated PDU field MUST be zero. | |||
An Error Report PDU MUST NOT be sent for an Error Report PDU. If an | An Error Report PDU MUST NOT be sent for an Error Report PDU. If an | |||
erroneous Error Report PDU is received, the session SHOULD be | erroneous Error Report PDU is received, the session SHOULD be | |||
dropped. | dropped. | |||
skipping to change at page 17, line 47 | skipping to change at page 17, line 47 | |||
retrieved from the Global RPKI system at intervals which are only | retrieved from the Global RPKI system at intervals which are only | |||
known to the cache, only the cache can really know how frequently it | known to the cache, only the cache can really know how frequently it | |||
makes sense for the router to poll the cache, or how long the data | makes sense for the router to poll the cache, or how long the data | |||
are likely to remain valid (or, at least, unchanged). For this | are likely to remain valid (or, at least, unchanged). For this | |||
reason, as well as to allow the cache some control over the load | reason, as well as to allow the cache some control over the load | |||
placed on it by its client routers, the End Of Data PDU includes | placed on it by its client routers, the End Of Data PDU includes | |||
three values that allow the cache to communicate timing parameters to | three values that allow the cache to communicate timing parameters to | |||
the router. | the router. | |||
Refresh Interval: This parameter tells the router how long to wait | Refresh Interval: This parameter tells the router how long to wait | |||
before next attempting to poll the cache, using a Serial Query or | before next attempting to poll the cache and between subsequent | |||
Reset Query PDU. The router SHOULD NOT poll the cache sooner than | attempts, using a Serial Query or Reset Query PDU. The router | |||
indicated by this parameter. Note that receipt of a Serial Notify | SHOULD NOT poll the cache sooner than indicated by this parameter. | |||
PDU overrides this interval and allows the router to issue an | Note that receipt of a Serial Notify PDU overrides this interval | |||
immediate query without waiting for the Refresh Interval to | and suggests that the router issue an immediate query without | |||
expire. Countdown for this timer starts upon receipt of the | waiting for the Refresh Interval to expire. Countdown for this | |||
containing End Of Data PDU. | timer starts upon receipt of the containing End Of Data PDU. | |||
Minimum allowed value: 1 second. | Minimum allowed value: 1 second. | |||
Maximum allowed value: 86400 seconds (one day). | Maximum allowed value: 86400 seconds (one day). | |||
Recommended default: 3600 seconds (one hour). | Recommended default: 3600 seconds (one hour). | |||
Retry Interval: This parameter tells the router how long to wait | Retry Interval: This parameter tells the router how long to wait | |||
before retrying a failed Serial Query or Reset Query. The router | before retrying a failed Serial Query or Reset Query. The router | |||
SHOULD NOT retry sooner than indicated by this parameter. Note | SHOULD NOT retry sooner than indicated by this parameter. Note | |||
skipping to change at page 18, line 30 | skipping to change at page 18, line 30 | |||
restarts after each subsequent failure until a query succeeds. | restarts after each subsequent failure until a query succeeds. | |||
Minimum allowed value: 1 second. | Minimum allowed value: 1 second. | |||
Maximum allowed value: 7200 seconds (two hours). | Maximum allowed value: 7200 seconds (two hours). | |||
Recommended default: 600 seconds (ten minutes). | Recommended default: 600 seconds (ten minutes). | |||
Expire Interval: This parameter tells the router how long it can | Expire Interval: This parameter tells the router how long it can | |||
continue to use the current version of the data while unable to | continue to use the current version of the data while unable to | |||
perform a successful query. The router MUST NOT retain the data | perform a successful subsequent query. The router MUST NOT retain | |||
past the time indicated by this parameter. Countdown for this | the data past the time indicated by this parameter. Countdown for | |||
timer starts upon receipt of the containing End Of Data PDU. | this timer starts upon receipt of the containing End Of Data PDU. | |||
Minimum allowed value: 600 seconds (ten minutes). | Minimum allowed value: 600 seconds (ten minutes). | |||
Maximum allowed value: 172800 seconds (two days). | Maximum allowed value: 172800 seconds (two days). | |||
Recommended default: 7200 seconds (two hours). | Recommended default: 7200 seconds (two hours). | |||
If the router has never issued a successful query against a | If the router has never issued a successful query against a | |||
particular cache, it SHOULD retry periodically using the default | particular cache, it SHOULD retry periodically using the default | |||
Retry Interval, above. | Retry Interval, above. | |||
skipping to change at page 19, line 19 | skipping to change at page 19, line 19 | |||
1. The cache may terminate the connection, perhaps with a version 0 | 1. The cache may terminate the connection, perhaps with a version 0 | |||
Error Report PDU. In this case the router MAY retry the | Error Report PDU. In this case the router MAY retry the | |||
connection using protocol version 0. | connection using protocol version 0. | |||
2. The cache may reply with a version 0 response. In this case the | 2. The cache may reply with a version 0 response. In this case the | |||
router MUST either downgrade to version 0 or terminate the | router MUST either downgrade to version 0 or terminate the | |||
connection. | connection. | |||
In any of the downgraded combinations above, the new features of | In any of the downgraded combinations above, the new features of | |||
version 1 will not be available. | version 1 will not be available, and all PDUs will have 0 in their | |||
version fields. | ||||
If either party receives a PDU containing an unrecognized Protocol | If either party receives a PDU containing an unrecognized Protocol | |||
Version (neither 0 nor 1) during this negotiation, it MUST either | Version (neither 0 nor 1) during this negotiation, it MUST either | |||
downgrade to a known version or terminate the connection, with an | downgrade to a known version or terminate the connection, with an | |||
Error Report PDU unless the received PDU is itself an Error Report | Error Report PDU unless the received PDU is itself an Error Report | |||
PDU. | PDU. | |||
The router MUST ignore any Serial Notify PDUs it might receive from | The router MUST ignore any Serial Notify PDUs it might receive from | |||
the cache during this initial start-up period, regardless of the | the cache during this initial start-up period, regardless of the | |||
Protocol Version field in the Serial Notify PDU. Since Session ID | Protocol Version field in the Serial Notify PDU. Since Session ID | |||
and Serial Number values are specific to a particular protocol | and Serial Number values are specific to a particular protocol | |||
version, the values in the notification are not useful to the router. | version, the values in the notification are not useful to the router. | |||
Even if these values were meaningful, the only effect that processing | Even if these values were meaningful, the only effect that processing | |||
the notification would have would be to trigger exactly the same | the notification would have would be to trigger exactly the same | |||
Reset Query or Serial Query that the router has already sent as part | Reset Query or Serial Query that the router has already sent as part | |||
of the not-yet-complete version negotiation process, so there is | of the not-yet-complete version negotiation process, so there is | |||
nothing to be gained by processing notifications until version | nothing to be gained by processing notifications until version | |||
negotiation completes. | negotiation completes. | |||
Caches SHOULD NOT send Serial Notify PDUs before version negotiation | Caches SHOULD NOT send Serial Notify PDUs before version negotiation | |||
completes. Note, however, that routers MUST handle such | completes. Routers, however, MUST handle such notifications (by | |||
notifications (by ignoring them) for backwards compatibility with | ignoring them) for backwards compatibility with caches serving | |||
caches serving protocol version 0. | protocol version 0. | |||
Once the cache and router have agreed upon a Protocol Version via the | Once the cache and router have agreed upon a Protocol Version via the | |||
negotiation process above, that version is stable for the life of the | negotiation process above, that version is stable for the life of the | |||
session. See Section 5.1 for a discussion of the interaction between | session. See Section 5.1 for a discussion of the interaction between | |||
Protocol Version and Session ID. | Protocol Version and Session ID. | |||
If either party receives a PDU for a different Protocol Version once | If either party receives a PDU for a different Protocol Version once | |||
the above negotiation completes, that party MUST drop the session; | the above negotiation completes, that party MUST drop the session; | |||
unless the PDU containing the unexpected Protocol Version was itself | unless the PDU containing the unexpected Protocol Version was itself | |||
an Error Report PDU, the party dropping the session SHOULD send an | an Error Report PDU, the party dropping the session SHOULD send an | |||
skipping to change at page 20, line 26 | skipping to change at page 20, line 27 | |||
| <----- Reset Query -------- | R requests data (or Serial Query) | | <----- Reset Query -------- | R requests data (or Serial Query) | |||
| | | | | | |||
| ----- Cache Response -----> | C confirms request | | ----- Cache Response -----> | C confirms request | |||
| ------- Payload PDU ------> | C sends zero or more | | ------- Payload PDU ------> | C sends zero or more | |||
| ------- Payload PDU ------> | IPv4 Prefix, IPv6 Prefix, | | ------- Payload PDU ------> | IPv4 Prefix, IPv6 Prefix, | |||
| ------- Payload PDU ------> | or Router Key PDUs | | ------- Payload PDU ------> | or Router Key PDUs | |||
| ------- End of Data ------> | C sends End of Data | | ------- End of Data ------> | C sends End of Data | |||
| | and sends new serial | | | and sends new serial | |||
~ ~ | ~ ~ | |||
When a transport connection is first established, the router MAY send | When a transport connection is first established, the router MUST | |||
a Reset Query and the cache responds with a data sequence of all data | send either a Reset Query or a Serial Query. A Serial Query would be | |||
it contains. | appropriate if the router has significant unexpired data from a | |||
broken session with the same cache and remembers the Session ID of | ||||
Alternatively, if the router has significant unexpired data from a | that session, in which case a Serial Query containing the Session ID | |||
broken session with the same cache, it MAY start with a Serial Query | from the previous session will allow the router to bring itself up to | |||
containing the Session ID from the previous session to ensure the | date while ensuring that the Serial Numbers are commensurate and that | |||
Serial Numbers are commensurate. | the router and cache are speaking compatible versions of the | |||
protocol. In all other cases, the router lacks the necessary data | ||||
for fast re-synchronization and therefore MUST fall back to a Reset | ||||
Query. | ||||
This Reset Query sequence is also used when the router receives a | The Reset Query sequence is also used when the router receives a | |||
Cache Reset, chooses a new cache, or fears that it has otherwise lost | Cache Reset, chooses a new cache, or fears that it has otherwise lost | |||
its way. | its way. | |||
The router MUST send either a Reset Query or a Serial Query when | See Section 7 for details on version negotiation. | |||
starting a transport connection, in order to confirm that router and | ||||
cache are speaking compatible versions of the protocol. See | ||||
Section 7 for details on version negotiation. | ||||
To limit the length of time a cache must keep the data necessary to | To limit the length of time a cache must keep the data necessary to | |||
generate incremental updates, a router MUST send either a Serial | generate incremental updates, a router MUST send either a Serial | |||
Query or a Reset Query periodically. This also acts as a keep-alive | Query or a Reset Query periodically. This also acts as a keep-alive | |||
at the application layer. See Section 6 for details on the required | at the application layer. See Section 6 for details on the required | |||
polling frequency. | polling frequency. | |||
8.2. Typical Exchange | 8.2. Typical Exchange | |||
Cache Router | Cache Router | |||
skipping to change at page 23, line 27 | skipping to change at page 23, line 27 | |||
It is expected that, when the TCP Authentication Option (TCP-AO) | It is expected that, when the TCP Authentication Option (TCP-AO) | |||
[RFC5925] is available on all platforms deployed by operators, it | [RFC5925] is available on all platforms deployed by operators, it | |||
will become the mandatory-to-implement transport. | will become the mandatory-to-implement transport. | |||
Caches and routers MUST implement unprotected transport over TCP | Caches and routers MUST implement unprotected transport over TCP | |||
using a port, rpki-rtr (323); see Section 14. Operators SHOULD use | using a port, rpki-rtr (323); see Section 14. Operators SHOULD use | |||
procedural means, e.g., access control lists (ACLs), to reduce the | procedural means, e.g., access control lists (ACLs), to reduce the | |||
exposure to authentication issues. | exposure to authentication issues. | |||
Caches and routers SHOULD use TCP-AO, SSHv2, TCP MD5, or IPsec | ||||
transport. | ||||
If unprotected TCP is the transport, the cache and routers MUST be on | If unprotected TCP is the transport, the cache and routers MUST be on | |||
the same trusted and controlled network. | the same trusted and controlled network. | |||
If available to the operator, caches and routers MUST use one of the | If available to the operator, caches and routers MUST use one of the | |||
following more protected protocols. | following more protected protocols. | |||
Caches and routers SHOULD use TCP-AO transport [RFC5925] over the | Caches and routers SHOULD use TCP-AO transport [RFC5925] over the | |||
rpki-rtr port. | rpki-rtr port. | |||
Caches and routers MAY use SSHv2 transport [RFC4252] using the normal | Caches and routers MAY use SSHv2 transport [RFC4252] using the normal | |||
SSH port. For an example, see Section 9.1. | SSH port. For an example, see Section 9.1. | |||
Caches and routers MAY use TCP MD5 transport [RFC2385] using the | Caches and routers MAY use TCP MD5 transport [RFC2385] using the | |||
rpki-rtr port. Note that TCP MD5 has been obsoleted by TCP-AO | rpki-rtr port. Note that TCP MD5 has been obsoleted by TCP-AO | |||
[RFC5925]. | [RFC5925]. | |||
Caches and routers MAY use TCP over IPsec transport [RFC4301] using | Caches and routers MAY use TCP over IPsec transport [RFC4301] using | |||
the rpki-rtr port. | the rpki-rtr port. | |||
Caches and routers MAY use TLS transport [RFC5246] using a port, | Caches and routers MAY use TLS transport [RFC5246] using port rpki- | |||
rpki-rtr-tls (324); see Section 14. | rtr-tls (324); see Section 14. | |||
9.1. SSH Transport | 9.1. SSH Transport | |||
To run over SSH, the client router first establishes an SSH transport | To run over SSH, the client router first establishes an SSH transport | |||
connection using the SSHv2 transport protocol, and the client and | connection using the SSHv2 transport protocol, and the client and | |||
server exchange keys for message integrity and encryption. The | server exchange keys for message integrity and encryption. The | |||
client then invokes the "ssh-userauth" service to authenticate the | client then invokes the "ssh-userauth" service to authenticate the | |||
application, as described in the SSH authentication protocol | application, as described in the SSH authentication protocol | |||
[RFC4252]. Once the application has been successfully authenticated, | [RFC4252]. Once the application has been successfully authenticated, | |||
the client invokes the "ssh-connection" service, also known as the | the client invokes the "ssh-connection" service, also known as the | |||
skipping to change at page 24, line 30 | skipping to change at page 24, line 30 | |||
the application transport as an SSH subsystem called "rpki-rtr". | the application transport as an SSH subsystem called "rpki-rtr". | |||
Subsystem support is a feature of SSH version 2 (SSHv2) and is not | Subsystem support is a feature of SSH version 2 (SSHv2) and is not | |||
included in SSHv1. Running this protocol as an SSH subsystem avoids | included in SSHv1. Running this protocol as an SSH subsystem avoids | |||
the need for the application to recognize shell prompts or skip over | the need for the application to recognize shell prompts or skip over | |||
extraneous information, such as a system message that is sent at | extraneous information, such as a system message that is sent at | |||
shell start-up. | shell start-up. | |||
It is assumed that the router and cache have exchanged keys out of | It is assumed that the router and cache have exchanged keys out of | |||
band by some reasonably secured means. | band by some reasonably secured means. | |||
Cache servers supporting SSH transport MUST accept RSA and Digital | Cache servers supporting SSH transport MUST accept RSA authentication | |||
Signature Algorithm (DSA) authentication and SHOULD accept Elliptic | and SHOULD accept Elliptic Curve Digital Signature Algorithm (ECDSA) | |||
Curve Digital Signature Algorithm (ECDSA) authentication. User | authentication. User authentication MUST be supported; host | |||
authentication MUST be supported; host authentication MAY be | authentication MAY be supported. Implementations MAY support | |||
supported. Implementations MAY support password authentication. | password authentication. Client routers SHOULD verify the public key | |||
Client routers SHOULD verify the public key of the cache to avoid | of the cache to avoid monkey-in-the-middle attacks. | |||
monkey-in-the-middle attacks. | ||||
9.2. TLS Transport | 9.2. TLS Transport | |||
Client routers using TLS transport MUST present client-side | Client routers using TLS transport MUST present client-side | |||
certificates to authenticate themselves to the cache in order to | certificates to authenticate themselves to the cache in order to | |||
allow the cache to manage the load by rejecting connections from | allow the cache to manage the load by rejecting connections from | |||
unauthorized routers. In principle, any type of certificate and | unauthorized routers. In principle, any type of certificate and | |||
certificate authority (CA) may be used; however, in general, cache | certificate authority (CA) may be used; however, in general, cache | |||
operators will wish to create their own small-scale CA and issue | operators will wish to create their own small-scale CA and issue | |||
certificates to each authorized router. This simplifies credential | certificates to each authorized router. This simplifies credential | |||
skipping to change at page 26, line 26 | skipping to change at page 26, line 26 | |||
establish a session with each potential serving cache in preference | establish a session with each potential serving cache in preference | |||
order, and then starts to load data from the most preferred cache to | order, and then starts to load data from the most preferred cache to | |||
which it can connect and authenticate. The router's list of caches | which it can connect and authenticate. The router's list of caches | |||
has the following elements: | has the following elements: | |||
Preference: An unsigned integer denoting the router's preference to | Preference: An unsigned integer denoting the router's preference to | |||
connect to that cache; the lower the value, the more preferred. | connect to that cache; the lower the value, the more preferred. | |||
Name: The IP address or fully qualified domain name of the cache. | Name: The IP address or fully qualified domain name of the cache. | |||
Key: Any needed public key of the cache. | Cache Credential(s): Any credential (such as a public key) needed to | |||
authenticate the cache's identity to the router. | ||||
MyKey: Any needed private key or certificate of this client. | Router Credential(s): Any credential (such as a private key or | |||
certificate) needed to authenticate the router's identity to the | ||||
cache. | ||||
Due to the distributed nature of the RPKI, caches simply cannot be | Due to the distributed nature of the RPKI, caches simply cannot be | |||
rigorously synchronous. A client may hold data from multiple caches | rigorously synchronous. A client may hold data from multiple caches | |||
but MUST keep the data marked as to source, as later updates MUST | but MUST keep the data marked as to source, as later updates MUST | |||
affect the correct data. | affect the correct data. | |||
Just as there may be more than one covering ROA from a single cache, | Just as there may be more than one covering ROA from a single cache, | |||
there may be multiple covering ROAs from multiple caches. The | there may be multiple covering ROAs from multiple caches. The | |||
results are as described in [RFC6811]. | results are as described in [RFC6811]. | |||
If data from multiple caches are held, implementations MUST NOT | If data from multiple caches are held, implementations MUST NOT | |||
distinguish between data sources when performing validation. | distinguish between data sources when performing validation of BGP | |||
announcements. | ||||
When a more preferred cache becomes available, if resources allow, it | When a more preferred cache becomes available, if resources allow, it | |||
would be prudent for the client to start fetching from that cache. | would be prudent for the client to start fetching from that cache. | |||
The client SHOULD attempt to maintain at least one set of data, | The client SHOULD attempt to maintain at least one set of data, | |||
regardless of whether it has chosen a different cache or established | regardless of whether it has chosen a different cache or established | |||
a new connection to the previous cache. | a new connection to the previous cache. | |||
A client MAY drop the data from a particular cache when it is fully | A client MAY drop the data from a particular cache when it is fully | |||
in sync with one or more other caches. | in sync with one or more other caches. | |||
skipping to change at page 28, line 10 | skipping to change at page 28, line 10 | |||
recommended that primary caches which load from the distributed | recommended that primary caches which load from the distributed | |||
Global RPKI not do so all at the same times, e.g., on the hour. | Global RPKI not do so all at the same times, e.g., on the hour. | |||
Choose a random time, perhaps the ISP's AS number modulo 60 and | Choose a random time, perhaps the ISP's AS number modulo 60 and | |||
jitter the inter-fetch timing. | jitter the inter-fetch timing. | |||
12. Error Codes | 12. Error Codes | |||
This section contains a preliminary list of error codes. The authors | This section contains a preliminary list of error codes. The authors | |||
expect additions to the list during development of the initial | expect additions to the list during development of the initial | |||
implementations. There is an IANA registry where valid error codes | implementations. There is an IANA registry where valid error codes | |||
are listed; see Section 14. Errors which are considered fatal SHOULD | are listed; see Section 14. Errors which are considered fatal MUST | |||
cause the session to be dropped. | cause the session to be dropped. | |||
0: Corrupt Data (fatal): The receiver believes the received PDU to | 0: Corrupt Data (fatal): The receiver believes the received PDU to | |||
be corrupt in a manner not specified by another error code. | be corrupt in a manner not specified by another error code. | |||
1: Internal Error (fatal): The party reporting the error experienced | 1: Internal Error (fatal): The party reporting the error experienced | |||
some kind of internal error unrelated to protocol operation (ran | some kind of internal error unrelated to protocol operation (ran | |||
out of memory, a coding assertion failed, et cetera). | out of memory, a coding assertion failed, et cetera). | |||
2: No Data Available: The cache believes itself to be in good | 2: No Data Available: The cache believes itself to be in good | |||
skipping to change at page 28, line 40 | skipping to change at page 28, line 40 | |||
request to be invalid. | request to be invalid. | |||
4: Unsupported Protocol Version (fatal): The Protocol Version is not | 4: Unsupported Protocol Version (fatal): The Protocol Version is not | |||
known by the receiver of the PDU. | known by the receiver of the PDU. | |||
5: Unsupported PDU Type (fatal): The PDU Type is not known by the | 5: Unsupported PDU Type (fatal): The PDU Type is not known by the | |||
receiver of the PDU. | receiver of the PDU. | |||
6: Withdrawal of Unknown Record (fatal): The received PDU has Flag=0 | 6: Withdrawal of Unknown Record (fatal): The received PDU has Flag=0 | |||
but a matching record ({Prefix, Len, Max-Len, ASN} tuple for an | but a matching record ({Prefix, Len, Max-Len, ASN} tuple for an | |||
IPvX PDU, {SKI, ASN, Subject Public Key} tuple for a Router Key | IPvX PDU, or {SKI, ASN, Subject Public Key} tuple for a Router Key | |||
PDU) does not exist in the receiver's database. | PDU) does not exist in the receiver's database. | |||
7: Duplicate Announcement Received (fatal): The received PDU has | 7: Duplicate Announcement Received (fatal): The received PDU has | |||
Flag=1 but a matching record ({Prefix, Len, Max-Len, ASN} tuple | Flag=1 but a matching record ({Prefix, Len, Max-Len, ASN} tuple | |||
for an IPvX PDU, {SKI, ASN, Subject Public Key} tuple for a Router | for an IPvX PDU, or {SKI, ASN, Subject Public Key} tuple for a | |||
Key PDU) is already active in the router. | Router Key PDU) is already active in the router. | |||
8: Unexpected Protocol Version (fatal): The received PDU has a | 8: Unexpected Protocol Version (fatal): The received PDU has a | |||
Protocol Version field that differs from the protocol version | Protocol Version field that differs from the protocol version | |||
negotiated in Section 7. | negotiated in Section 7. | |||
13. Security Considerations | 13. Security Considerations | |||
As this document describes a security protocol, many aspects of | As this document describes a security protocol, many aspects of | |||
security interest are described in the relevant sections. This | security interest are described in the relevant sections. This | |||
section points out issues which may not be obvious in other sections. | section points out issues which may not be obvious in other sections. | |||
skipping to change at page 31, line 33 | skipping to change at page 31, line 33 | |||
No doubt this list is incomplete. We apologize to any contributor | No doubt this list is incomplete. We apologize to any contributor | |||
whose name we missed. | whose name we missed. | |||
16. References | 16. References | |||
16.1. Normative References | 16.1. Normative References | |||
[I-D.ietf-sidr-bgpsec-algs] | [I-D.ietf-sidr-bgpsec-algs] | |||
Turner, S., "BGPsec Algorithms, Key Formats, & Signature | Turner, S., "BGPsec Algorithms, Key Formats, & Signature | |||
Formats", draft-ietf-sidr-bgpsec-algs-14 (work in | Formats", draft-ietf-sidr-bgpsec-algs-16 (work in | |||
progress), November 2015. | progress), November 2016. | |||
[RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, | [RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, | |||
August 1996. | August 1996. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", RFC 2119, BCP 14, March 1997. | Requirement Levels", RFC 2119, BCP 14, March 1997. | |||
[RFC2385] Heffernan, A., "Protection of BGP Sessions via the TCP MD5 | [RFC2385] Heffernan, A., "Protection of BGP Sessions via the TCP MD5 | |||
Signature Option", RFC 2385, August 1998. | Signature Option", RFC 2385, August 1998. | |||
skipping to change at page 33, line 12 | skipping to change at page 33, line 12 | |||
[RFC5781] Weiler, S., Ward, D., and R. Housley, "The rsync URI | [RFC5781] Weiler, S., Ward, D., and R. Housley, "The rsync URI | |||
Scheme", RFC 5781, February 2010. | Scheme", RFC 5781, February 2010. | |||
[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, February 2012. | Secure Internet Routing", RFC 6480, February 2012. | |||
[RFC6481] Huston, G., Loomans, R., and G. Michaelson, "A Profile for | [RFC6481] Huston, G., Loomans, R., and G. Michaelson, "A Profile for | |||
Resource Certificate Repository Structure", RFC 6481, | Resource Certificate Repository Structure", RFC 6481, | |||
February 2012. | February 2012. | |||
[RFC7128] Bush, R., Austein, R., Patel, K., Gredler, H., and M. | ||||
Waehlisch, "Resource Public Key Infrastructure (RPKI) | ||||
Router Implementation Report", RFC 7128, February 2014. | ||||
Authors' Addresses | Authors' Addresses | |||
Randy Bush | Randy Bush | |||
Internet Initiative Japan | Internet Initiative Japan | |||
5147 Crystal Springs | 5147 Crystal Springs | |||
Bainbridge Island, Washington 98110 | Bainbridge Island, Washington 98110 | |||
US | US | |||
Email: randy@psg.com | Email: randy@psg.com | |||
End of changes. 41 change blocks. | ||||
95 lines changed or deleted | 98 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |