| < draft-retana-idr-bgp-quic-stream-01.txt | draft-retana-idr-bgp-quic-stream-02.txt > | |||
|---|---|---|---|---|
| IDR Workgroup A. Retana | IDR Workgroup A. Retana | |||
| Internet-Draft Y. Qu | Internet-Draft Y. Qu | |||
| Intended status: Standards Track Futurewei Technologies, Inc. | Intended status: Standards Track Futurewei Technologies, Inc. | |||
| Expires: May 12, 2022 J. Tantsura | Expires: 12 November 2022 J. Tantsura | |||
| Microsoft | Microsoft | |||
| November 8, 2021 | 11 May 2022 | |||
| Use of Streams in BGP over QUIC | Use of Streams in BGP over QUIC | |||
| draft-retana-idr-bgp-quic-stream-01 | draft-retana-idr-bgp-quic-stream-02 | |||
| Abstract | Abstract | |||
| This document specifies the use of QUIC Streams to support multiple | This document specifies the use of QUIC Streams to support multiple | |||
| BGP sessions over one connection in order to achieve high resiliency. | BGP sessions over one connection in order to achieve high resiliency. | |||
| 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. | |||
| skipping to change at page 1, line 33 ¶ | skipping to change at page 1, line 33 ¶ | |||
| 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 May 12, 2022. | This Internet-Draft will expire on 12 November 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 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/ | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
| carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
| to this document. Code Components extracted from this document must | extracted from this document must include Revised BSD License text as | |||
| include Simplified BSD License text as described in Section 4.e of | described in Section 4.e of the Trust Legal Provisions and are | |||
| the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Revised BSD License. | |||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Multiple BGP Sessions . . . . . . . . . . . . . . . . . . . . 3 | 2. Multiple BGP Sessions . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Multiple QUIC Streams . . . . . . . . . . . . . . . . . . 3 | 2.1. Multiple QUIC Streams . . . . . . . . . . . . . . . . . . 3 | |||
| 2.2. Multiple BGP Sessions Using QUIC Streams . . . . . . . . 3 | 2.2. Multiple BGP Sessions Using QUIC Streams . . . . . . . . 4 | |||
| 3. MultiStream Capability . . . . . . . . . . . . . . . . . . . 4 | 3. MultiStream Capability . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. BGP Session Establishment and Collision Avoidance . . . . . . 5 | 5. BGP Session Establishment and Collision Avoidance . . . . . . 6 | |||
| 6. Modifications to FSM . . . . . . . . . . . . . . . . . . . . 7 | 6. Modifications to FSM . . . . . . . . . . . . . . . . . . . . 7 | |||
| 7. Operational Considerations . . . . . . . . . . . . . . . . . 7 | 7. Operational Considerations . . . . . . . . . . . . . . . . . 7 | |||
| 7.1. Backward Compatibility . . . . . . . . . . . . . . . . . 7 | 7.1. Backward Compatibility . . . . . . . . . . . . . . . . . 7 | |||
| 7.2. Session Prioritization . . . . . . . . . . . . . . . . . 7 | 7.2. Session Prioritization . . . . . . . . . . . . . . . . . 7 | |||
| 7.3. Other Considerations . . . . . . . . . . . . . . . . . . 7 | 7.3. Other Considerations . . . . . . . . . . . . . . . . . . 8 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 10. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 8 | 10. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 9 | 11.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 1. Introduction | 1. Introduction | |||
| The Border Gateway Protocol (BGP) [RFC4271] uses TCP as its transport | The Border Gateway Protocol (BGP) [RFC4271] uses TCP as its transport | |||
| protocol. BGP establishes peer relationships between routers using a | protocol. BGP establishes peer relationships between routers using a | |||
| TCP session on port 179. TCP also provides reliable packet | TCP session on port 179. TCP also provides reliable packet | |||
| communication. | communication. | |||
| Multiprotocol Extensions for BGP-4 (MP-BGP) [RFC4760] allow BGP to | Multiprotocol Extensions for BGP-4 (MP-BGP) [RFC4760] allow BGP to | |||
| carry information for multiple Network Layer protocols. However, | carry information for multiple Network Layer protocols. However, | |||
| skipping to change at page 7, line 7 ¶ | skipping to change at page 7, line 22 ¶ | |||
| Closing the BGP session (that results from the collision resolution | Closing the BGP session (that results from the collision resolution | |||
| procedure) is accomplished by sending the NOTIFICATION message with | procedure) is accomplished by sending the NOTIFICATION message with | |||
| the Error Code Cease, Subcode Connection Collision Resolution (7) | the Error Code Cease, Subcode Connection Collision Resolution (7) | |||
| [RFC4486]. | [RFC4486]. | |||
| The remainder of the process is as specified in [RFC4271]. | The remainder of the process is as specified in [RFC4271]. | |||
| 6. Modifications to FSM | 6. Modifications to FSM | |||
| [To be completed.] | The modifications to BGP FSM is described in section 4.4 of | |||
| [I-D.chen-idr-bgp-over-quic]. For simplicity and security reason, it | ||||
| is suggested that 1-RTT is used. | ||||
| This specification does not modify BGP FSM, but the collision | ||||
| handling procedure should be replaced with the procedure described in | ||||
| this document. | ||||
| 7. Operational Considerations | 7. Operational Considerations | |||
| 7.1. Backward Compatibility | 7.1. Backward Compatibility | |||
| A BGP speaker that doesn't understand the MSC will ignore it | A BGP speaker that doesn't understand the MSC will ignore it | |||
| [RFC5492]. Section 3 recommends not terminating a session when only | [RFC5492]. Section 3 recommends not terminating a session when only | |||
| one peer supports the MSC. Instead, the operation will continue as | one peer supports the MSC. Instead, the operation will continue as | |||
| specified in [I-D.chen-idr-bgp-over-quic]. | specified in [I-D.chen-idr-bgp-over-quic]. | |||
| skipping to change at page 7, line 34 ¶ | skipping to change at page 8, line 15 ¶ | |||
| QUIC [RFC9000] does not provide a mechanism for exchanging | QUIC [RFC9000] does not provide a mechanism for exchanging | |||
| prioritization information. Instead, it recommends that | prioritization information. Instead, it recommends that | |||
| implementations provide ways for an application to indicate the | implementations provide ways for an application to indicate the | |||
| relative priority of streams, in this case, mapped to BGP sessions. | relative priority of streams, in this case, mapped to BGP sessions. | |||
| An operator should prioritize BGP sessions (streams) that carry | An operator should prioritize BGP sessions (streams) that carry | |||
| critical control plane information if the functionality is available. | critical control plane information if the functionality is available. | |||
| The definition of this functionality and the determination of the | The definition of this functionality and the determination of the | |||
| importance of a BGP session are both outside the scope of this | importance of a BGP session are both outside the scope of this | |||
| document. | document. | |||
| An example implementation is to have four priority (0-3) defined, and | ||||
| smaller number means higher priority. Each AFI/SAFI should be | ||||
| assigned a default priority and optional configuration to modify the | ||||
| default value. For example, IPv4 and IPv6 unicast AFI/SAFI (1/1 and | ||||
| 2/1) may have priority of 1, while BGP-LS (16388/71 and 16388/72) may | ||||
| have a priority of 3, and BGP FlowSpec (1/133 and 1/134) may have a | ||||
| priority of 4. | ||||
| 7.3. Other Considerations | 7.3. Other Considerations | |||
| A configuration command SHOULD be implemented to allow grouping of | A configuration command SHOULD be implemented to allow grouping of | |||
| some AFI/SAFIs into one session. | some AFI/SAFIs into one session. | |||
| 8. Security Considerations | 8. Security Considerations | |||
| This document specifies how to establish multiple BGP sessions over a | This document specifies how to establish multiple BGP sessions over a | |||
| single QUIC connection. The general operation of BGP is not changed, | single QUIC connection. The general operation of BGP is not changed, | |||
| nor is its security model. The security considerations of | nor is its security model. The security considerations of | |||
| skipping to change at page 8, line 14 ¶ | skipping to change at page 8, line 51 ¶ | |||
| On the other hand, a high number of BGP sessions may result in higher | On the other hand, a high number of BGP sessions may result in higher | |||
| resource utilization and the risk of depletion. Also, more sessions | resource utilization and the risk of depletion. Also, more sessions | |||
| may imply additional configuration and operational complexity. | may imply additional configuration and operational complexity. | |||
| However, this risk is mitigated by the fact that BGP sessions | However, this risk is mitigated by the fact that BGP sessions | |||
| typically require explicit configuration by the operator. | typically require explicit configuration by the operator. | |||
| 9. IANA Considerations | 9. IANA Considerations | |||
| IANA is asked to assign a new Capability Code for the MultiStream | IANA is asked to assign a new Capability Code for the MultiStream | |||
| Capablity (Section 3) as follows: | Capability (Section 3) as follows: | |||
| +-------+----------------------+-----------------+------------------+ | +=======+========================+===========+===================+ | |||
| | Value | Description | Reference | Change | | | Value | Description | Reference | Change Controller | | |||
| | | | | Controller | | +=======+========================+===========+===================+ | |||
| +-------+----------------------+-----------------+------------------+ | | TBD1 | MultiStream Capability | [This | IETF | | |||
| | TBD1 | MultiStream | [This Document] | IETF | | | | | Document] | | | |||
| | | Capability | | | | +-------+------------------------+-----------+-------------------+ | |||
| +-------+----------------------+-----------------+------------------+ | ||||
| MultiStream Capability | Table 1: MultiStream Capability | |||
| IANA is asked to assign three values from the OPEN Message Error | IANA is asked to assign three values from the OPEN Message Error | |||
| subcodes registrty as follows: | subcodes registry as follows: | |||
| +-------+---------------------------------+-----------------+ | +=======+=================================+=================+ | |||
| | Value | Name | Reference | | | Value | Name | Reference | | |||
| +-------+---------------------------------+-----------------+ | +=======+=================================+=================+ | |||
| | TBD2 | MultiSession Conflicty | [This Document] | | | TBD2 | MultiSession Conflicty | [This Document] | | |||
| +-------+---------------------------------+-----------------+ | ||||
| | TBD3 | Session Capability Mismatch | [This Document] | | | TBD3 | Session Capability Mismatch | [This Document] | | |||
| +-------+---------------------------------+-----------------+ | ||||
| | TBD4 | Network Layer Protocol Mismatch | [This Document] | | | TBD4 | Network Layer Protocol Mismatch | [This Document] | | |||
| +-------+---------------------------------+-----------------+ | +-------+---------------------------------+-----------------+ | |||
| Table 2 | ||||
| 10. Acknowledgement | 10. Acknowledgement | |||
| This document references the text and procedures defined in | This document references the text and procedures defined in | |||
| [I-D.ietf-idr-bgp-multisession], and we are grateful for their | [I-D.ietf-idr-bgp-multisession], and we are grateful for their | |||
| contributions. | contributions. | |||
| The authors would like to thank xx for review and comments. | The authors would like to thank xx for review and comments. | |||
| 11. References | 11. References | |||
| 11.1. Normative References | 11.1. Normative References | |||
| [I-D.chen-idr-bgp-over-quic] | [I-D.chen-idr-bgp-over-quic] | |||
| Chen, S., Zhang, Y., Wang, H., and Z. Li, "BGP Over QUIC", | Chen, S., Zhang, Y., Wang, H., and Z. Li, "BGP Over QUIC", | |||
| draft-chen-idr-bgp-over-quic-00 (work in progress), June | Work in Progress, Internet-Draft, draft-chen-idr-bgp-over- | |||
| 2021. | quic-00, 3 June 2021, <https://www.ietf.org/archive/id/ | |||
| draft-chen-idr-bgp-over-quic-00.txt>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc4271>. | <https://www.rfc-editor.org/info/rfc4271>. | |||
| skipping to change at page 9, line 40 ¶ | skipping to change at page 10, line 35 ¶ | |||
| [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | |||
| Multiplexed and Secure Transport", RFC 9000, | Multiplexed and Secure Transport", RFC 9000, | |||
| DOI 10.17487/RFC9000, May 2021, | DOI 10.17487/RFC9000, May 2021, | |||
| <https://www.rfc-editor.org/info/rfc9000>. | <https://www.rfc-editor.org/info/rfc9000>. | |||
| 11.2. Informative References | 11.2. Informative References | |||
| [I-D.ietf-idr-bgp-multisession] | [I-D.ietf-idr-bgp-multisession] | |||
| Scudder, J., Appanna, C., and I. Varlashkin, "Multisession | Scudder, J., Appanna, C., and I. Varlashkin, "Multisession | |||
| BGP", draft-ietf-idr-bgp-multisession-07 (work in | BGP", Work in Progress, Internet-Draft, draft-ietf-idr- | |||
| progress), September 2012. | bgp-multisession-07, 13 September 2012, | |||
| <http://www.ietf.org/internet-drafts/draft-ietf-idr-bgp- | ||||
| multisession-07.txt>. | ||||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc4272>. | <https://www.rfc-editor.org/info/rfc4272>. | |||
| [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, | "Multiprotocol Extensions for BGP-4", RFC 4760, | |||
| DOI 10.17487/RFC4760, January 2007, | DOI 10.17487/RFC4760, January 2007, | |||
| <https://www.rfc-editor.org/info/rfc4760>. | <https://www.rfc-editor.org/info/rfc4760>. | |||
| [RFC7454] Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations | [RFC7454] Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations | |||
| and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454, | and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454, | |||
| February 2015, <https://www.rfc-editor.org/info/rfc7454>. | February 2015, <https://www.rfc-editor.org/info/rfc7454>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Alvaro Retana | Alvaro Retana | |||
| Futurewei Technologies, Inc. | Futurewei Technologies, Inc. | |||
| 2330 Central Expressway | 2330 Central Expressway | |||
| Santa Clara, CA 95050 | Santa Clara, CA 95050 | |||
| USA | United States of America | |||
| Email: aretana@futurewei.com | Email: aretana@futurewei.com | |||
| Yingzhen Qu | Yingzhen Qu | |||
| Futurewei Technologies, Inc. | Futurewei Technologies, Inc. | |||
| 2330 Central Expressway | 2330 Central Expressway | |||
| Santa Clara, CA 95050 | Santa Clara, CA 95050 | |||
| USA | United States of America | |||
| Email: yingzhen.qu@futurewei.com | Email: yingzhen.qu@futurewei.com | |||
| Jeff Tantsura | Jeff Tantsura | |||
| Microsoft | Microsoft | |||
| USA | United States of America | |||
| Email: jefftant.ietf@gmail.com | Email: jefftant.ietf@gmail.com | |||
| End of changes. 26 change blocks. | ||||
| 47 lines changed or deleted | 63 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||