draft-ietf-idr-bgp-extended-messages-31.txt | draft-ietf-idr-bgp-extended-messages-32.txt | |||
---|---|---|---|---|
Network Working Group R. Bush | Network Working Group R. Bush | |||
Internet-Draft IIJ & Arrcus | Internet-Draft IIJ & Arrcus | |||
Updates: 4271 (if approved) K. Patel | Updates: 4271 (if approved) K. Patel | |||
Intended status: Standards Track Arrcus, Inc. | Intended status: Standards Track Arrcus, Inc. | |||
Expires: January 1, 2020 D. Ward | Expires: January 3, 2020 D. Ward | |||
Cisco Systems | Cisco Systems | |||
June 30, 2019 | July 2, 2019 | |||
Extended Message support for BGP | Extended Message support for BGP | |||
draft-ietf-idr-bgp-extended-messages-31 | draft-ietf-idr-bgp-extended-messages-32 | |||
Abstract | Abstract | |||
The BGP specification mandates a maximum BGP message size of 4,096 | The BGP specification mandates a maximum BGP message size of 4,096 | |||
octets. As BGP is extended to support newer AFI/SAFIs and other | octets. As BGP is extended to support newer AFI/SAFIs and other | |||
features, there is a need to extend the maximum message size beyond | features, there is a need to extend the maximum message size beyond | |||
4,096 octets. This document updates the BGP specification RFC4271 by | 4,096 octets. This document updates the BGP specification RFC4271 by | |||
extending the maximum message size from 4,096 octets to 65,535 octets | extending the maximum message size from 4,096 octets to 65,535 octets | |||
for all except the OPEN and KEEPALIVE messages. | for all except the OPEN and KEEPALIVE messages. | |||
skipping to change at page 1, line 46 ¶ | skipping to change at page 1, line 46 ¶ | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 January 1, 2020. | This Internet-Draft will expire on January 3, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 | |||
(https://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 | |||
skipping to change at page 2, line 33 ¶ | skipping to change at page 2, line 33 ¶ | |||
2. BGP Extended Message . . . . . . . . . . . . . . . . . . . . 2 | 2. BGP Extended Message . . . . . . . . . . . . . . . . . . . . 2 | |||
3. Extended Message Capability for BGP . . . . . . . . . . . . . 3 | 3. Extended Message Capability for BGP . . . . . . . . . . . . . 3 | |||
4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 4 | 5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
6. Changes to RFC4271 . . . . . . . . . . . . . . . . . . . . . 5 | 6. Changes to RFC4271 . . . . . . . . . . . . . . . . . . . . . 5 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | |||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 6 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 6 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 7 | 10.2. Informative References . . . . . . . . . . . . . . . . . 6 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
1. Introduction | 1. Introduction | |||
The BGP specification [RFC4271] mandates a maximum BGP message size | The BGP specification [RFC4271] mandates a maximum BGP message size | |||
of 4,096 octets. As BGP is extended to support newer AFI/SAFIs and | of 4,096 octets. As BGP is extended to support newer AFI/SAFIs and | |||
newer capabilities (e.g., BGPsec [RFC8205] and BGP-LS [RFC7752]), | newer capabilities (e.g., BGPsec [RFC8205] and BGP-LS [RFC7752]), | |||
there is a need to extend the maximum message size beyond 4,096 | there is a need to extend the maximum message size beyond 4,096 | |||
octets. This draft provides an extension to BGP to extend its | octets. This draft provides an extension to BGP to extend its | |||
message size limit from 4,096 octets to 65,535 octets for all except | message size limit from 4,096 octets to 65,535 octets for all except | |||
skipping to change at page 3, line 7 ¶ | skipping to change at page 3, line 7 ¶ | |||
2. BGP Extended Message | 2. BGP Extended Message | |||
A BGP message over 4,096 octets in length is a BGP Extended Message. | A BGP message over 4,096 octets in length is a BGP Extended Message. | |||
BGP Extended Messages have a maximum message size of 65,535 octets. | BGP Extended Messages have a maximum message size of 65,535 octets. | |||
The smallest message that may be sent consists of a BGP KEEPALIVE | The smallest message that may be sent consists of a BGP KEEPALIVE | |||
which consists of 19 octets. | which consists of 19 octets. | |||
3. Extended Message Capability for BGP | 3. Extended Message Capability for BGP | |||
The BGP Extended Message Capability is a new BGP Capability [RFC5492] | ||||
defined with Capability code 6 and Capability length 0. | ||||
To advertise the BGP Extended Message Capability to a peer, a BGP | To advertise the BGP Extended Message Capability to a peer, a BGP | |||
speaker uses BGP Capabilities Advertisement [RFC5492]. By | speaker uses BGP Capabilities Advertisement [RFC5492]. By | |||
advertising the BGP Extended Message Capability to a peer, a BGP | advertising the BGP Extended Message Capability to a peer, a BGP | |||
speaker conveys that it is able to send, receive, and properly | speaker conveys that it is able to send, receive, and properly | |||
handle, see Section 4, BGP Extended Messages. | handle, see Section 4, BGP Extended Messages. | |||
The BGP Extended Message Capability is a new BGP Capability [RFC5492] | ||||
defined with Capability code 6 and Capability length 0. | ||||
A peer which does not advertise this capability MUST NOT send BGP | A peer which does not advertise this capability MUST NOT send BGP | |||
Extended Messages, and BGP Extended Messages MUST NOT be sent to it. | Extended Messages, and BGP Extended Messages MUST NOT be sent to it. | |||
Peers that wish to use the BGP Extended Message capability must | Peers that wish to use the BGP Extended Message capability MUST | |||
support Error Handling for BGP UPDATE Messages per [RFC7606]. | support Error Handling for BGP UPDATE Messages per [RFC7606]. | |||
4. Operation | 4. Operation | |||
The Extended Message Capability applies to all messages except for | The Extended Message Capability applies to all messages except for | |||
the OPEN and KEEPALIVE messages. The former exception is to reduce | the OPEN and KEEPALIVE messages. The former exception is to reduce | |||
the complexity of providing a backward compatibility | the complexity of providing a backward compatibility. | |||
A BGP speaker that is capable of sending and receiving BGP Extended | A BGP speaker that is capable of sending and receiving BGP Extended | |||
Messages SHOULD advertise the BGP Extended Message Capability to its | Messages SHOULD advertise the BGP Extended Message Capability to its | |||
peers using BGP Capabilities Advertisement [RFC5492]. A BGP speaker | peers using BGP Capabilities Advertisement [RFC5492]. A BGP speaker | |||
MAY send Extended Messages to its peer only if both peers have | MAY send Extended Messages to a peer only if the Extended Message | |||
negotiated the Extended Message Capability with each other. | Capability was advertised by both peers. | |||
An implementation that advertises support for BGP Extended Messages | An implementation that advertises the BGP Extended Message capability | |||
MUST be capable of receiving a message with a Length up to and | MUST be capable of receiving a message with a Length up to and | |||
including 65,535 octets. | including 65,535 octets. | |||
Applications generating information which might be encapsulated | Applications generating information which might be encapsulated | |||
within BGP messages MUST limit the size of their payload to take the | within BGP messages MUST limit the size of their payload to take the | |||
maximum message size into account. | maximum message size into account. | |||
If a BGP message with a Length lgreater than 4,096 octets is received | If a BGP message with a Length lgreater than 4,096 octets is received | |||
by a BGP listener who has not advertised the Extended Message | by a BGP listener who has not advertised the Extended Message | |||
Capability, the listener MUST treat this as a malformed message, and | Capability, the listener MUST treat this as a malformed message, and | |||
MUST generate a NOTIFICATION with the Error Subcode set to Bad | MUST generate a NOTIFICATION with the Error Subcode set to Bad | |||
Message Length (see [RFC4271] Sec 6.1). | Message Length (see [RFC4271] Sec 6.1). | |||
A BGP announcement will (policy, best path, etc., allowing) propagate | A BGP announcement will (policy, best path, etc., allowing) propagate | |||
throughout the BGP speaking Internet; and hence to BGP speakers which | throughout the BGP speaking Internet; and hence to BGP speakers which | |||
may not have the Extended Message capability. Therefore, an | may not have the Extended Message capability. Therefore, an | |||
announcement in an Extended Message where the size of the attribute | announcement in an Extended Message where the size of the attribute | |||
set plus the NLRI can not be decomposed to 4,096 octets or less may | set plus the NLRI can not be decomposed to 4,096 octets or less may | |||
cause lack of reachability. | cause lack of reachability. | |||
A speaker capable of BGP Extended Messages having a mixture of peers | A BGP UPDATE will typically propagate throughout the BGP speaking | |||
some of which have not exchanged the BGP Extended Message capability, | Internet; and hence to BGP speakers which may not support Extended | |||
may receive an announcement from one of its capable peers that would | Messages. Therefore, a route announcement in an Extended Message | |||
(due to the new AS on the path, new added attributes, etc.) produce | where the size of the attribute set plus the NLRI is larger than | |||
an ongoing announcement that would be over 4,096 octets. When | 4,096 octets or less may cause lack of reachability. | |||
propagating that update onward to a neighbor with which it has not | ||||
negotiated the BGP Extended Message capability, the sender SHOULD try | ||||
to reduce the outgoing message size by downgrading BGPsec to BGP4, | ||||
decomposing a multi-NLRI update producing multiple updates with fewer | ||||
NLRI per update, removing attributes eligible under the attribute | ||||
discard approach of [RFC7606], etc. If the resulting message would | ||||
still be over the 4,096 octet limit, the sender SHOULD treat-as- | ||||
withdraw per [RFC7606]. | ||||
In an iBGP mesh, all peers SHOULD support the BGP Extended Message | A BGP speaker with a mixture of peers some of which have advertised | |||
Capability and [RFC7606]. Only then is it consistent to deploy with | the BGP Extended Message capability and some which have not, may | |||
eBGP peers. | receive an UPDATE from one of its capable peers that produces an | |||
ongoing announcement that is larger than 4,096 octets. When | ||||
propagating that UPDATE onward to a neighbor which has not advertised | ||||
the BGP Extended Message capability, the sender SHOULD try to reduce | ||||
the outgoing message size by removing attributes eligible under the | ||||
"attribute discard" approach of [RFC7606]. If the message is still | ||||
too big, then it MUST NOT be sent to the neighbor ([RFC4271], | ||||
Section 9.2). Additionally, if the NLRI was previously advertised to | ||||
that peer, it SHOULD be withdrawn from service ([RFC4271], | ||||
Section 9.1.3). | ||||
In an iBGP mesh, if BGP Extended Messages are to be advertized, all | ||||
peers MUST advertize the BGP Extended Message Capability and | ||||
[RFC7606]. This is not only for consistent internal routing, but | ||||
also to give a consistent view to eBGP peers. | ||||
During the incremental deployment of BGP Extended Messages and | During the incremental deployment of BGP Extended Messages and | |||
[RFC7606] in an iBGP mesh, or with eBGP peers, the operator should | [RFC7606] in an iBGP mesh, or with eBGP peers, the operator should | |||
monitor any routes dropped as "treat-as-withdraw". | monitor any routes dropped as "treat-as-withdraw" and any discarded | |||
attributes. | ||||
It is RECOMMENDED that BGP protocol developers and implementers are | It is RECOMMENDED that BGP protocol developers and implementers are | |||
conservative in their application and use of Extended Messages. | conservative in their application and use of Extended Messages. | |||
Future protocol specifications will need to describe how to handle | Future protocol specifications MUST describe how to handle peers | |||
peers which can only accommodate 4,096 octet messages. | which can only accommodate 4,096 octet messages. | |||
5. Error Handling | 5. Error Handling | |||
A BGP speaker that has the ability to use Extended Messages but has | A BGP speaker that has the ability to use Extended Messages but has | |||
not advertised the BGP Extended Messages capability, presumably due | not advertised the BGP Extended Messages capability, presumably due | |||
to configuration, SHOULD NOT accept an Extended Message. A speaker | to configuration, MUST NOT accept an Extended Message. A speaker | |||
SHOULD NOT implement a more liberal policy accepting BGP Extended | MUST NOT implement a more liberal policy accepting BGP Extended | |||
Messages. | Messages. | |||
A BGP speaker that does not advertise the BGP Extended Messages | A BGP speaker that does not advertise the BGP Extended Messages | |||
capability might also genuinely not support Extended Messages. Such | capability might also genuinely not support Extended Messages. Such | |||
a speaker will follow the error handling procedures of [RFC4271] if | a speaker will follow the error handling procedures of [RFC4271] if | |||
it receives an Extended Message. Similarly, any speaker that treats | it receives an Extended Message. Similarly, any speaker that treats | |||
an improper Extended Message as a fatal error, MUST treat it | an improper Extended Message as a fatal error, MUST follow the error | |||
similarly. | handling procedures of [RFC4271]. | |||
The inconsistency between the local and remote BGP speakers MUST be | ||||
flagged to the network operator through standard operational | ||||
interfaces. The information should include the NLRI and as much | ||||
relevant information as reasonably possible. | ||||
6. Changes to RFC4271 | 6. Changes to RFC4271 | |||
[RFC4271] states "The value of the Length field MUST always be at | [RFC4271] states "The value of the Length field MUST always be at | |||
least 19 and no greater than 4,096." This document changes the | least 19 and no greater than 4,096." This document changes the | |||
latter number to 65,535 for all except the OPEN and KEEPALIVE | latter number to 65,535 for all except the OPEN and KEEPALIVE | |||
messages. | messages. | |||
[RFC4271] Sec 6.1, specifies raising an error if the length of a | [RFC4271] Sec 6.1, specifies raising an error if the length of a | |||
message is over 4,096 octets. For all messages except the OPEN | message is over 4,096 octets. For all messages except the OPEN | |||
message, if the receiver has advertised the BGP Extended Messages | message, if the receiver has advertised the BGP Extended Messages | |||
Capability, this document raises that limit to 65,535. | Capability, this document raises that limit to 65,535. | |||
7. IANA Considerations | 7. IANA Considerations | |||
The IANA has made an early allocation for this new BGP Extended | The IANA has made an early allocation for this new BGP Extended | |||
Message Capability referring to this document. | Message Capability referring to this document. | |||
Registry: BGP Capability Code | Registry: Capability Codes | |||
Value Description Document | Value Description Document | |||
----- ----------------------------------- ------------- | ----- ----------------------------------- ------------- | |||
6 BGP-Extended Message [this draft] | 6 BGP Extended Message [this draft] | |||
8. Security Considerations | 8. Security Considerations | |||
This extension to BGP does not change BGP's underlying security | This extension to BGP does not change BGP's underlying security | |||
issues; see [RFC4272]. | issues; [RFC4272]. | |||
Section 5 allows a receiver to accept an Extended Message even though | ||||
it had not advertised the capability. This slippery slope could lead | ||||
to sloppy implementations sending Extended Messages when the receiver | ||||
is not prepared to deal with them, e.g. to peer groups. At best, | ||||
this will result in errors; at worst, buffer overflows. | ||||
Due to increased memory requirements for buffering, there may be | Due to increased memory requirements for buffering, there may be | |||
increased exposure to resource exhaustion, intentional or | increased exposure to resource exhaustion, intentional or | |||
unintentional. | unintentional. | |||
As this draft requires support for [RFC7606] update error handling, | As this draft requires support for [RFC7606] UPDATE error handling, | |||
it inherits the security considerations of [RFC7606]. BGP peers may | it inherits the security considerations of [RFC7606]. | |||
avoid such issues by using Authenticated Encryption with additional | ||||
Data (AEAD) ciphers [RFC5116] and discard messages that do not | ||||
verify. | ||||
If a remote attacker is able to craft a large BGP Extended Message to | If a remote attacker is able to craft a large BGP Extended Message to | |||
send on a path where one or more peers do not support BGP Extended | send on a path where one or more peers do not support BGP Extended | |||
Messages, peers which support BGP Extended Messages may act to reduce | Messages, peers which support BGP Extended Messages may act to reduce | |||
the outgoing message, see Section 4, and in doing so produce a | the outgoing message, see Section 4, and in doing so cause a | |||
downgrade attack, e.g. convert BGPsec to BGP4. | downgrade attack. | |||
If a remote attacker is able to craft a large BGP Extended Message to | If a remote attacker is able to craft a large BGP Extended Message to | |||
send on a path where one or more peers do not support BGP Extended | send on a path where one or more peers do not support BGP Extended | |||
Messages, peers which support BGP Extended Messages may incur | Messages, peers which support BGP Extended Messages may incur | |||
resource load (processing, message resizing, etc.) reformatting the | resource load (processing, message resizing, etc.) reformatting the | |||
large messages. Worse, ([RFC7606] "treat-as-withdraw" may | large messages. Worse, [RFC7606] "treat-as-withdraw" may | |||
consistently withdraw announcements causing inconsistent routing. | consistently withdraw announcements causing inconsistent routing. | |||
BGP routes are filtered by policies set by the operators. | ||||
Implementations may provide policies to filter routes that would | ||||
cause the "treat-as-withdraw" from being passed by an extended | ||||
message speaker. | ||||
9. Acknowledgments | 9. Acknowledgments | |||
The authors thank Alvaro Retana for an amazing review, Enke Chen, | The authors thank Alvaro Retana for an amazing review, Enke Chen, | |||
Susan Hares, John Scudder, John Levine, and Job Snijders for their | Susan Hares, John Scudder, John Levine, and Job Snijders for their | |||
input; and Oliver Borchert and Kyehwan Lee for their implementations | input; and Oliver Borchert and Kyehwan Lee for their implementations | |||
and testing. | and testing. | |||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
[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>. | <http://www.rfc-editor.org/info/rfc4271>. | |||
[RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | |||
RFC 4272, DOI 10.17487/RFC4272, January 2006, | RFC 4272, DOI 10.17487/RFC4272, January 2006, | |||
<http://www.rfc-editor.org/info/rfc4272>. | <http://www.rfc-editor.org/info/rfc4272>. | |||
[RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated | ||||
Encryption", RFC 5116, DOI 10.17487/RFC5116, January 2008, | ||||
<http://www.rfc-editor.org/info/rfc5116>. | ||||
[RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement | [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement | |||
with BGP-4", RFC 5492, DOI 10.17487/RFC5492, February | with BGP-4", RFC 5492, DOI 10.17487/RFC5492, February | |||
2009, <http://www.rfc-editor.org/info/rfc5492>. | 2009, <http://www.rfc-editor.org/info/rfc5492>. | |||
[RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. | [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. | |||
Patel, "Revised Error Handling for BGP UPDATE Messages", | Patel, "Revised Error Handling for BGP UPDATE Messages", | |||
RFC 7606, DOI 10.17487/RFC7606, August 2015, | RFC 7606, DOI 10.17487/RFC7606, August 2015, | |||
<http://www.rfc-editor.org/info/rfc7606>. | <http://www.rfc-editor.org/info/rfc7606>. | |||
10.2. Informative References | 10.2. Informative References | |||
End of changes. 25 change blocks. | ||||
67 lines changed or deleted | 51 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |