draft-ietf-idr-error-handling-16.txt | draft-ietf-idr-error-handling-17.txt | |||
---|---|---|---|---|
Internet Engineering Task Force E. Chen, Ed. | Internet Engineering Task Force E. Chen, Ed. | |||
Internet-Draft Cisco Systems, Inc. | Internet-Draft Cisco Systems, Inc. | |||
Updates: 1997, 4271, 4360, 4456, 4760, J. Scudder, Ed. | Updates: 1997, 4271, 4360, 4456, 4760, J. Scudder, Ed. | |||
5543, 5701, 6368 (if approved) Juniper Networks | 5543, 5701, 6368 (if approved) Juniper Networks | |||
Intended status: Standards Track P. Mohapatra | Intended status: Standards Track P. Mohapatra | |||
Expires: May 16, 2015 Sproute Networks | Expires: June 15, 2015 Sproute Networks | |||
K. Patel | K. Patel | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
November 12, 2014 | December 12, 2014 | |||
Revised Error Handling for BGP UPDATE Messages | Revised Error Handling for BGP UPDATE Messages | |||
draft-ietf-idr-error-handling-16 | draft-ietf-idr-error-handling-17 | |||
Abstract | Abstract | |||
According to the base BGP specification, a BGP speaker that receives | According to the base BGP specification, a BGP speaker that receives | |||
an UPDATE message containing a malformed attribute is required to | an UPDATE message containing a malformed attribute is required to | |||
reset the session over which the offending attribute was received. | reset the session over which the offending attribute was received. | |||
This behavior is undesirable, because a session reset would impact | This behavior is undesirable, because a session reset would impact | |||
not only routes with the offending attribute, but also other, valid | not only routes with the offending attribute, but also other, valid | |||
routes exchanged over the session. This document partially revises | routes exchanged over the session. This document partially revises | |||
the error handling for UPDATE messages and provides guidelines for | the error handling for UPDATE messages and provides guidelines for | |||
skipping to change at page 1, line 47 | skipping to change at page 1, line 47 | |||
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 May 16, 2015. | This Internet-Draft will expire on June 15, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 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 | |||
skipping to change at page 2, line 52 | skipping to change at page 2, line 52 | |||
5.2. Missing NLRI . . . . . . . . . . . . . . . . . . . . . . 7 | 5.2. Missing NLRI . . . . . . . . . . . . . . . . . . . . . . 7 | |||
5.3. Syntactic Correctness of NLRI Fields . . . . . . . . . . 8 | 5.3. Syntactic Correctness of NLRI Fields . . . . . . . . . . 8 | |||
5.4. Typed NLRI . . . . . . . . . . . . . . . . . . . . . . . 8 | 5.4. Typed NLRI . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
6. Operational Considerations . . . . . . . . . . . . . . . . . 9 | 6. Operational Considerations . . . . . . . . . . . . . . . . . 9 | |||
7. Error Handling Procedures for Existing Attributes . . . . . . 10 | 7. Error Handling Procedures for Existing Attributes . . . . . . 10 | |||
7.1. ORIGIN . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 7.1. ORIGIN . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
7.2. AS_PATH . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 7.2. AS_PATH . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
7.3. NEXT_HOP . . . . . . . . . . . . . . . . . . . . . . . . 11 | 7.3. NEXT_HOP . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
7.4. MULTI_EXIT_DISC . . . . . . . . . . . . . . . . . . . . . 11 | 7.4. MULTI_EXIT_DISC . . . . . . . . . . . . . . . . . . . . . 11 | |||
7.5. LOCAL_PREF . . . . . . . . . . . . . . . . . . . . . . . 11 | 7.5. LOCAL_PREF . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
7.6. ATOMIC_AGGREGATE . . . . . . . . . . . . . . . . . . . . 11 | 7.6. ATOMIC_AGGREGATE . . . . . . . . . . . . . . . . . . . . 12 | |||
7.7. AGGREGATOR . . . . . . . . . . . . . . . . . . . . . . . 12 | 7.7. AGGREGATOR . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
7.8. Community . . . . . . . . . . . . . . . . . . . . . . . . 12 | 7.8. Community . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
7.9. ORIGINATOR_ID . . . . . . . . . . . . . . . . . . . . . . 12 | 7.9. ORIGINATOR_ID . . . . . . . . . . . . . . . . . . . . . . 12 | |||
7.10. CLUSTER_LIST . . . . . . . . . . . . . . . . . . . . . . 12 | 7.10. CLUSTER_LIST . . . . . . . . . . . . . . . . . . . . . . 13 | |||
7.11. MP_REACH_NLRI . . . . . . . . . . . . . . . . . . . . . . 13 | 7.11. MP_REACH_NLRI . . . . . . . . . . . . . . . . . . . . . . 13 | |||
7.12. MP_UNREACH_NLRI . . . . . . . . . . . . . . . . . . . . . 13 | 7.12. MP_UNREACH_NLRI . . . . . . . . . . . . . . . . . . . . . 13 | |||
7.13. Traffic Engineering path attribute . . . . . . . . . . . 13 | 7.13. Traffic Engineering path attribute . . . . . . . . . . . 13 | |||
7.14. Extended Community . . . . . . . . . . . . . . . . . . . 13 | 7.14. Extended Community . . . . . . . . . . . . . . . . . . . 14 | |||
7.15. IPv6 Address Specific BGP Extended Community Attribute . 14 | 7.15. IPv6 Address Specific BGP Extended Community Attribute . 14 | |||
7.16. ATTR_SET . . . . . . . . . . . . . . . . . . . . . . . . 14 | 7.16. ATTR_SET . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
8. Guidance for Authors of BGP Specifications . . . . . . . . . 14 | 8. Guidance for Authors of BGP Specifications . . . . . . . . . 15 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 16 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 17 | 12.2. Informative References . . . . . . . . . . . . . . . . . 17 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
1. Introduction | 1. Introduction | |||
According to the base BGP specification [RFC4271], a BGP speaker that | According to the base BGP specification [RFC4271], a BGP speaker that | |||
receives an UPDATE message containing a malformed attribute is | receives an UPDATE message containing a malformed attribute is | |||
required to reset the session over which the offending attribute was | required to reset the session over which the offending attribute was | |||
received. This behavior is undesirable, because a session reset | received. This behavior is undesirable, because a session reset | |||
skipping to change at page 4, line 21 | skipping to change at page 4, line 21 | |||
revised. | revised. | |||
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]. | |||
2. Error-Handling Approaches | 2. Error-Handling Approaches | |||
In this document we refer to four different approaches to handling | In this document we refer to four different approaches to handle | |||
errors found in BGP path attributes. They are as follows (listed in | errors found in BGP path attributes. They are as follows (listed in | |||
order, from the one with the "strongest" action to the one with the | order, from the one with the "strongest" action to the one with the | |||
"weakest" action): | "weakest" action): | |||
o Session reset: This is the approach used throughout the base BGP | o Session reset: This is the approach used throughout the base BGP | |||
specification [RFC4271], where a NOTIFICATION is sent and the | specification [RFC4271], where a NOTIFICATION is sent and the | |||
session terminated. | session terminated. | |||
o AFI/SAFI disable: [RFC4760] specifies a procedure for disabling a | o AFI/SAFI disable: [RFC4760] specifies a procedure for disabling a | |||
particular AFI/SAFI. | particular AFI/SAFI. | |||
skipping to change at page 4, line 43 | skipping to change at page 4, line 43 | |||
o Treat-as-withdraw: In this approach, the UPDATE message containing | o Treat-as-withdraw: In this approach, the UPDATE message containing | |||
the path attribute in question MUST be treated as though all | the path attribute in question MUST be treated as though all | |||
contained routes had been withdrawn just as if they had been | contained routes had been withdrawn just as if they had been | |||
listed in the WITHDRAWN ROUTES field (or in the MP_UNREACH_NLRI | listed in the WITHDRAWN ROUTES field (or in the MP_UNREACH_NLRI | |||
attribute if appropriate) of the UPDATE message, thus causing them | attribute if appropriate) of the UPDATE message, thus causing them | |||
to be removed from the Adj-RIB-In according to the procedures of | to be removed from the Adj-RIB-In according to the procedures of | |||
[RFC4271]. | [RFC4271]. | |||
o Attribute discard: In this approach the malformed attribute MUST | o Attribute discard: In this approach the malformed attribute MUST | |||
be discarded and the UPDATE message continues to be processed. | be discarded and the UPDATE message continues to be processed. | |||
This approach must not be used except in the case of an attribute | This approach MUST NOT be used except in the case of an attribute | |||
that has no effect on route selection or installation. | that has no effect on route selection or installation. | |||
3. Revision to BGP UPDATE Message Error Handling | 3. Revision to BGP UPDATE Message Error Handling | |||
This specification amends [RFC4271] Section 6.3 in a number of ways. | This specification amends [RFC4271] Section 6.3 in a number of ways. | |||
See also Section 7 for treatment of specific path attributes. | See also Section 7 for treatment of specific path attributes. | |||
a. The first paragraph is revised as follows: | a. The first paragraph is revised as follows: | |||
Old Text: | Old Text: | |||
skipping to change at page 11, line 22 | skipping to change at page 11, line 22 | |||
[RFC4271] also says that an implementation optionally "MAY check | [RFC4271] also says that an implementation optionally "MAY check | |||
whether the leftmost ... AS in the AS_PATH attribute is equal to the | whether the leftmost ... AS in the AS_PATH attribute is equal to the | |||
autonomous system number of the peer that sent the message". A BGP | autonomous system number of the peer that sent the message". A BGP | |||
implementation SHOULD also handle routes that violate this check | implementation SHOULD also handle routes that violate this check | |||
using "treat-as-withdraw", but MAY follow the session reset behavior | using "treat-as-withdraw", but MAY follow the session reset behavior | |||
if configured to do so. | if configured to do so. | |||
7.3. NEXT_HOP | 7.3. NEXT_HOP | |||
The attribute is considered malformed if its length is not 4 | The attribute is considered malformed if its length is not 4 | |||
[RFC4271]. | [RFC4271]. A length of 16 is also permissible if [RFC5549] is in use | |||
and all conditions given in that specification have been satisfied. | ||||
An UPDATE message with a malformed NEXT_HOP attribute SHALL be | An UPDATE message with a malformed NEXT_HOP attribute SHALL be | |||
handled using the approach of "treat-as-withdraw". | handled using the approach of "treat-as-withdraw". | |||
7.4. MULTI_EXIT_DISC | 7.4. MULTI_EXIT_DISC | |||
The attribute is considered malformed if its length is not 4 | The attribute is considered malformed if its length is not 4 | |||
[RFC4271]. | [RFC4271]. | |||
An UPDATE message with a malformed MULTI_EXIT_DISC attribute SHALL be | An UPDATE message with a malformed MULTI_EXIT_DISC attribute SHALL be | |||
skipping to change at page 16, line 37 | skipping to change at page 16, line 40 | |||
Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, | Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, | |||
January 2007. | January 2007. | |||
[RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | |||
"Multiprotocol Extensions for BGP-4", RFC 4760, January | "Multiprotocol Extensions for BGP-4", RFC 4760, January | |||
2007. | 2007. | |||
[RFC5543] Ould-Brahim, H., Fedyk, D., and Y. Rekhter, "BGP Traffic | [RFC5543] Ould-Brahim, H., Fedyk, D., and Y. Rekhter, "BGP Traffic | |||
Engineering Attribute", RFC 5543, May 2009. | Engineering Attribute", RFC 5543, May 2009. | |||
[RFC5549] Le Faucheur, F. and E. Rosen, "Advertising IPv4 Network | ||||
Layer Reachability Information with an IPv6 Next Hop", RFC | ||||
5549, May 2009. | ||||
[RFC5701] Rekhter, Y., "IPv6 Address Specific BGP Extended Community | [RFC5701] Rekhter, Y., "IPv6 Address Specific BGP Extended Community | |||
Attribute", RFC 5701, November 2009. | Attribute", RFC 5701, November 2009. | |||
[RFC6368] Marques, P., Raszuk, R., Patel, K., Kumaki, K., and T. | [RFC6368] Marques, P., Raszuk, R., Patel, K., Kumaki, K., and T. | |||
Yamagata, "Internal BGP as the Provider/Customer Edge | Yamagata, "Internal BGP as the Provider/Customer Edge | |||
Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)", | Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)", | |||
RFC 6368, September 2011. | RFC 6368, September 2011. | |||
[RFC6793] Vohra, Q. and E. Chen, "BGP Support for Four-Octet | [RFC6793] Vohra, Q. and E. Chen, "BGP Support for Four-Octet | |||
Autonomous System (AS) Number Space", RFC 6793, December | Autonomous System (AS) Number Space", RFC 6793, December | |||
2012. | 2012. | |||
12.2. Informative References | 12.2. Informative References | |||
[I-D.ietf-l2vpn-evpn] | [I-D.ietf-l2vpn-evpn] | |||
Sajassi, A., Aggarwal, R., Bitar, N., Isaac, A., and J. | Sajassi, A., Aggarwal, R., Bitar, N., Isaac, A., and J. | |||
Uttaro, "BGP MPLS Based Ethernet VPN", draft-ietf-l2vpn- | Uttaro, "BGP MPLS Based Ethernet VPN", draft-ietf-l2vpn- | |||
evpn-11 (work in progress), October 2014. | evpn-11 (work in progress), October 2014. | |||
[RFC5549] Le Faucheur, F. and E. Rosen, "Advertising IPv4 Network | ||||
Layer Reachability Information with an IPv6 Next Hop", RFC | ||||
5549, May 2009. | ||||
[RFC6514] Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP | [RFC6514] Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP | |||
Encodings and Procedures for Multicast in MPLS/BGP IP | Encodings and Procedures for Multicast in MPLS/BGP IP | |||
VPNs", RFC 6514, February 2012. | VPNs", RFC 6514, February 2012. | |||
[RFC7117] Aggarwal, R., Kamite, Y., Fang, L., Rekhter, Y., and C. | [RFC7117] Aggarwal, R., Kamite, Y., Fang, L., Rekhter, Y., and C. | |||
Kodeboniya, "Multicast in Virtual Private LAN Service | Kodeboniya, "Multicast in Virtual Private LAN Service | |||
(VPLS)", RFC 7117, February 2014. | (VPLS)", RFC 7117, February 2014. | |||
Authors' Addresses | Authors' Addresses | |||
End of changes. 14 change blocks. | ||||
16 lines changed or deleted | 17 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/ |