Internet Engineering Task Force (IETF) O. Borchert Internet-Draft D. Montgomery Updates: 8097 (if approved) USA NIST Intended status: Standards Track D. Kopp Expires: May 21, 2020 DE-IX November 18, 2019 BGPsec Validation State Signaling draft-sidrops-bgpsec-validation-signaling-01 Abstract This document updates RFC 8097 by adding the BGPsec path validation state to the reserved portion of the extended community in RFC 8097. BGP speakers that receive this community string can use the embedded BGPsec validation state and configure local policies that allow it being used to influence their decision process. This is especially helpful because Section 5 of RFC 8205 specifically allows putting BGPsec path validation temporarily on hold. This allows reducing the load of validation particularly from IBGP learned routes or EBGP learned routes when warranted. Status of This Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Borchert, et al. Expires May 21, 2020 [Page 1] Internet Draft BGPsec Validation State Signaling November 18, 2019 Copyright Notice Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 2. Suggested Reading . . . . . . . . . . . . . . . . . . . . . . 3 3. Validation State Extended Community . . . . . . . . . . . . . 3 3.1. Error Handling at Peers . . . . . . . . . . . . . . . . . . 4 3.2. Backwards Compatibility to RFC8097 . . . . . . . . . . . . 4 4. Deployment Considerations . . . . . . . . . . . . . . . . . . 5 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.1. Normative References . . . . . . . . . . . . . . . . . . . 6 8.2. Informative References . . . . . . . . . . . . . . . . . . 7 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8 1. Introduction This document updates the BGP non-transitive extended community as specified in RFC 8097 to also carry BGPsec path validation state information. BGP speakers that receive this community string can be used used to configure local policies that use the signaled BGPsec path validation state to influence their decision process. When used in IBGP sessions, this new community can result in significant reduction in the computational load imposed by BGPsec path validation. When used in EBGP sessions, the new community can provide utility to receivers that are unable to perform BGPsec validation for themselves or put it temporarily on hold as specified in [RFC8205] (Section 5) as well as provides important diagnostic information about a peer's validation process. Borchert, et al. Expires May 21, 2020 [Page 2] Internet Draft BGPsec Validation State Signaling November 18, 2019 1.1. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 2. Suggested Reading It is assumed that the reader understands BGPsec [RFC8205]. 3. Validation State Extended Community The validation state extended community is a non-transitive extended community [RFC4360] with the following encoding: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x43 | 0x0 | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved |Path |Origin | | |validationstate|validationstate| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ As specified in [RFC 8097] (Section 2.), the value of the high-order octet of the extended Type field is 0x43, which indicates it is non- transitive. The value of the low-order octet of the extended Type field as assigned by IANA is 0x00. The Reserved field MUST be set to 0 by the sender and ignored upon the receipt of this community. The second to last octet is an unsigned integer that gives the route's BGPsec path validation state as specified in [RFC8205] and [BORCHERT]. It can assume the following values: +-------+---------------------------------+ | Value | Meaning | +-------+---------------------------------+ | 0 | Validation state = "Unverified" | | 1 | Validation state = "Valid" | | 2 | Validation state = "Not valid" | +-------+---------------------------------+ Borchert, et al. Expires May 21, 2020 [Page 3] Internet Draft BGPsec Validation State Signaling November 18, 2019 As specified in RFC 8097, The last octet of the extended community is an unsigned integer that gives the route's origin validation state [RFC6811]. It can assume the following values: +-------+--------------------------------+ | Value | Meaning | +-------+--------------------------------+ | 0 | Validation state = "valid" | | 1 | Validation state = "not found" | | 2 | Validation state = "invalid" | +-------+--------------------------------+ If the router is configured to support the extension as defined in this document, it SHOULD attach the path/prefix-origin validation state extended community to UPDATE messages sent to BGP peers by mapping the validation states to the appropriate fields of the extended community as outlined above. This SHOULD be done automatically for IBGP peers and configurable for EBGP peers. Receiving BGP and BGPsec speakers SHOULD in the absence of local BGPsec/RPKI data derive the path validation from the second to last octet and the route origin validation from the last octet of the extended community. Implementations MUST provide a configuration mechanism to allow the use of this community (both sending and receiving) to be disabled on a per peer basis. By default, routers performing route origin validation or path validation SHOULD enable use of this community on all IBGP sessions. By default, routers SHOULD disable the use of this community on all EBGP sessions. Implementations MUST NOT send more than one instance of the origin validation state extended community and MUST drop (without processing) the path/origin validation state extended community if received over an External BGP (EBGP) peering session that has not be explicitly configured to enable processing. 3.1. Error Handling at Peers If more than one instance of the extended community is received, or if the value received for either origin validation or path validation is greater than the largest specified value (Section 3.), then the implementation MUST disregard all instances and MUST apply a strategy similar to attribute discard [RFC7606] by discarding the erroneous community and logging the error for further analysis. 3.2. Backwards Compatibility to RFC8097 Borchert, et al. Expires May 21, 2020 [Page 4] Internet Draft BGPsec Validation State Signaling November 18, 2019 RFC 8097 originally specified five (5) octets as reserved. These five octets are to be ignored by implementations that receive the community string as specified in RFC 8097. Therefore, drafts such as this one that update RFC 8097 MUST use zero (0) for values whose meaning can be read the same regardless if created by a legacy router or a newer router that implements the respective draft. As an example, using the value "0" for BGPsec path validation "unverified" accomplishes exactly that. Routers that do not implement BGPsec path validation do not validate and if they only implement RFC 8097 label the path validation state field correctly as "Unverified" and can be correctly read by routers that do implement this draft. Routers that do BGPsec path validation and talk to legacy routers that do not still can use the path validation value because these legacy routers do ignore the path validation field. 4. Deployment Considerations As specified in [RFC8205] (Section 5) "a BGPsec speaker MAY temporarily defer validation of incoming UPDATE messages. The treatment of such UPDATE messages, whose validation has been deferred, is a matter of local policy". Furthermore, one can envision that the operator of a BGPsec router decides to defer local BGPsec validation when a validation state value is learned via IBGP or a trusted EBGP peer. The router then will use the validation result learned via the community string and apply it to the route. In case the peer did send the validation state "unverified" for BGPsec, the receiving router SHOULD perform BGPsec path validation as described in [RFC8205] (Section 5.2). 5. Security Considerations Security considerations such as those described in [RFC4272] continue to apply. Because this document introduces an extended community that will generally be used to affect route selection, the analysis in Section 4.5 ("Falsification") of [RFC4593] is relevant. These issues are neither new nor unique to the validation extended community. The security considerations provided in [RFC8205] apply equally to this application of BGPsec path validation. In addition, this document describes a scheme where router A outsources validation to some router B. If this scheme is used, the participating routers should have the appropriate trust relationship -- B should trust A either because they are under the same administrative control or for Borchert, et al. Expires May 21, 2020 [Page 5] Internet Draft BGPsec Validation State Signaling November 18, 2019 some other reasons as explained earlier. The security properties of the TCP connection between the two routers should also be considered. See [RFC7454] (Section 5.1) for advice regarding protection of the TCP connection. 6. References 6.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended Communities Attribute", RFC 4360, DOI 10.17487/RFC4360, February 2006, . [RFC8097] Mohapatra, P., Patel, K., Scudder, J., Ward, D., and R. Bush, "BGP Prefix Origin Validation State Extended Community", RFC 8097, DOI 10.17487/RFC8097, March 2017, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8205] Lepinski, M., Ed., and K. Sriram, Ed., "BGPsec Protocol Specification", RFC 8205, DOI 10.17487/RFC8205, September 2017, . [BORCHERT] Borchert, O., Montgomery, D., "BGPsec Validation State Unverified", draft-borchert-sidr-bgpsec-validation-state- unverified-02, Borchert, et al. Expires May 21, 2020 [Page 6] Internet Draft BGPsec Validation State Signaling November 18, 2019 8.2. Informative References [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006, . [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", RFC 4272, DOI 10.17487/RFC4272, January 2006, . [RFC4593] Barbir, A., Murphy, S., and Y. Yang, "Generic Threats to Routing Protocols", RFC 4593, DOI 10.17487/RFC4593, October 2006, . [RFC7454] Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454, February 2015, . [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. Patel, "Revised Error Handling for BGP UPDATE Messages", RFC 7606, DOI 10.17487/RFC7606, August 2015, . Borchert, et al. Expires May 21, 2020 [Page 7] Internet Draft BGPsec Validation State Signaling November 18, 2019 Acknowledgements The authors wish to thank P. Mohapatra, K. Patel, J. Scudder, D. Ward, and R. Bush for producing [RFC8097], which this document is based on. The authors would also like to acknowledge the valuable review and suggestions from K. Sriram on this document. Authors' Addresses Oliver Borchert National Institute of Standards and Technology (NIST) 100 Bureau Drive Gaithersburg, MD 20899 United States of America Email: oliver.borchert@nist.gov Doug Montgomery National Institute of Standards and Technology (NIST) 100 Bureau Drive Gaithersburg, MD 20899 United States of America Email: dougm@nist.gov Daniel Kopp DE-CIX Management GmbH Lichtstrasse 43i Cologne 50825 Germany Email: daniel.kopp@de-cix.net Borchert, et al. Expires May 21, 2020 [Page 8]