draft-ietf-bfd-large-packets-01.txt | draft-ietf-bfd-large-packets-02.txt | |||
---|---|---|---|---|
Network Working Group J. Haas | Network Working Group J. Haas | |||
Internet-Draft Juniper Networks, Inc. | Internet-Draft Juniper Networks, Inc. | |||
Intended status: Standards Track A. Fu | Intended status: Standards Track A. Fu | |||
Expires: February 27, 2020 Bloomberg L.P. | Expires: May 4, 2020 Bloomberg L.P. | |||
August 26, 2019 | November 1, 2019 | |||
BFD Encapsulated in Large Packets | BFD Encapsulated in Large Packets | |||
draft-ietf-bfd-large-packets-01 | draft-ietf-bfd-large-packets-02 | |||
Abstract | Abstract | |||
The Bidirectional Forwarding Detection (BFD) protocol is commonly | The Bidirectional Forwarding Detection (BFD) protocol is commonly | |||
used to verify connectivity between two systems. BFD packets are | used to verify connectivity between two systems. BFD packets are | |||
typically very small. It is desirable in some circumstances to know | typically very small. It is desirable in some circumstances to know | |||
that not only is the path between two systems reachable, but also | that not only is the path between two systems reachable, but also | |||
that it is capable of carrying a payload of a particular size. This | that it is capable of carrying a payload of a particular size. This | |||
document discusses thoughts on how to implement such a mechanism | document discusses thoughts on how to implement such a mechanism | |||
using BFD in Asynchronous mode. | using BFD in Asynchronous mode. | |||
skipping to change at page 1, line 45 ¶ | skipping to change at page 1, line 45 ¶ | |||
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 February 27, 2020. | This Internet-Draft will expire on May 4, 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 | |||
(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 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
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 | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. BFD Encapsulated in Large Packets . . . . . . . . . . . . . . 3 | 2. BFD Encapsulated in Large Packets . . . . . . . . . . . . . . 3 | |||
3. Implementation and Deployment Considerations . . . . . . . . 3 | 3. Implementation and Deployment Considerations . . . . . . . . 3 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | 3.1. Implementations that do not support Large BFD Packets . . 3 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | 3.2. Selecting MTU size to be detected . . . . . . . . . . . . 4 | |||
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.3. Detecting MTU mismatches . . . . . . . . . . . . . . . . 4 | |||
6.1. Normative References . . . . . . . . . . . . . . . . . . 4 | 3.4. Equal Cost Multiple Paths (ECMP) or other Load Balancing | |||
6.2. Informative References . . . . . . . . . . . . . . . . . 5 | Considerations . . . . . . . . . . . . . . . . . . . . . 5 | |||
Appendix A. Related Features . . . . . . . . . . . . . . . . . . 5 | 3.5. S-BFD . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | ||||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
7.1. Normative References . . . . . . . . . . . . . . . . . . 6 | ||||
7.2. Informative References . . . . . . . . . . . . . . . . . 7 | ||||
Appendix A. Related Features . . . . . . . . . . . . . . . . . . 7 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
1. Introduction | 1. Introduction | |||
The Bidirectional Forwarding Detection (BFD) [RFC5880] protocol is | The Bidirectional Forwarding Detection (BFD) [RFC5880] protocol is | |||
commonly used to verify connectivity between two systems. However, | commonly used to verify connectivity between two systems. However, | |||
some applications may require that the Path MTU [RFC1191] between | some applications may require that the Path MTU [RFC1191] between | |||
those two systems meets a certain minimum criteria. When the Path | those two systems meets a certain minimum criteria. When the Path | |||
MTU decreases below the minimum threshold, those applications may | MTU decreases below the minimum threshold, those applications may | |||
wish to consider the path unusable. | wish to consider the path unusable. | |||
skipping to change at page 3, line 33 ¶ | skipping to change at page 3, line 38 ¶ | |||
value. The contents of this additional payload MUST be zero. | value. The contents of this additional payload MUST be zero. | |||
The minimum size of this variable MUST NOT be smaller than | The minimum size of this variable MUST NOT be smaller than | |||
permitted by the element of BFD procedure; 24 or 26 - see | permitted by the element of BFD procedure; 24 or 26 - see | |||
Section 6.8.6 of [RFC5880]. | Section 6.8.6 of [RFC5880]. | |||
The Don't Fragment bit (Section 2.3 of [RFC0791]) of the IP payload, | The Don't Fragment bit (Section 2.3 of [RFC0791]) of the IP payload, | |||
when using IPv4 encapsulation, MUST be set. | when using IPv4 encapsulation, MUST be set. | |||
3. Implementation and Deployment Considerations | 3. Implementation and Deployment Considerations | |||
3.1. Implementations that do not support Large BFD Packets | ||||
While this document proposes no change to the BFD protocol, | While this document proposes no change to the BFD protocol, | |||
implementations may not permit arbitrarily padded transport PDUs to | implementations may not permit arbitrarily padded transport PDUs to | |||
carry BFD packets. While Section 6 of [RFC5880] warns against | carry BFD packets. While Section 6 of [RFC5880] warns against | |||
excessive pedantry, implementations may not work with this mechanism | excessive pedantry, implementations may not work with this mechanism | |||
without additional support. Additional changes to the base BFD | without additional support. | |||
protocol may be required to permit negotiation of this functionality | ||||
and the padding value. | ||||
It is also worthy of note that even if an implementation can function | [RFC5880], section 6.8.6, discusses the procedures for receiving BFD | |||
with larger transport PDUs, that additional packet size may have | Control packets. When an implementation is incapable of processing | |||
impact on BFD scaling. Such systems may support a lower transmission | Large BFD Packets, it could manifest in one of two possible ways: | |||
interval (bfd.DesiredMinTxInterval) when operating in large packet | ||||
mode. This interval may depend on the size of the transport PDU. | ||||
Given the impact on scaling larger PDU sizes may have on BFD | o A receiving BFD implementation is incapable of accepting Large BFD | |||
implementations, operators should consider applying it only in | Packets. This is identical to the packet being discarded. | |||
situations where there is appropriate concern for path MTU. An | ||||
example of this is commercial WAN services. | o A receiving BFD implementation is capable of accepting Large BFD | |||
Packets, but the Control packet is improperly rejected during | ||||
validation procedures. This is identical to the packet being | ||||
discarded. | ||||
In each of these cases, the BFD state machine would behave as if it | ||||
were not receiving Control packets and the implementation would | ||||
follow normal BFD procedures with regards to not having received | ||||
Control packets. | ||||
3.2. Selecting MTU size to be detected | ||||
Since the consideration is path MTU, BFD sessions using this feature | Since the consideration is path MTU, BFD sessions using this feature | |||
only need to use a bfd.PaddedPduSize appropriate to exercise the path | only need to use a bfd.PaddedPduSize appropriate to exercise the path | |||
MTU for the desired application. This may be significantly smaller | MTU for the desired application. This may be significantly smaller | |||
than the system's link MTU; e.g. desired path MTU is 1500 bytes while | than the system's link MTU; e.g. desired path MTU is 1500 bytes while | |||
the interface MTU that BFD with large packets is running on is 9000 | the interface MTU that BFD with large packets is running on is 9000 | |||
bytes. | bytes. | |||
In the case multiple BFD clients desire to test the same BFD | ||||
endpoints using different bfd.PaddedPduSize parameters, | ||||
implementations should select the largest bfd.PaddedPduSize parameter | ||||
from the configured sessions. This is similar to how implementations | ||||
of BFD select the most aggressive timing parameters for multiple | ||||
sessions to the same endpoint. | ||||
3.3. Detecting MTU mismatches | ||||
The accepted MTU for an interface is impacted by packet encapsulation | ||||
considerations at a given layer; e.g. layer 2, layer 3, tunnel, etc. | ||||
A common misconfiguration of interface parameters is inconsistent | ||||
MTU. In the presence of inconsistent MTU, it is possible for | ||||
applications to have unidirectional connectivity. | ||||
When it is necessary for an application using BFD with Large Packets | ||||
to test the bi-directional Path MTU, it is necessary to configure the | ||||
bfd.PaddedPduSize parameter on both sides of an interface. E.g., if | ||||
the desire is to verify a 1500 byte MTU in both directions on an | ||||
Ethernet or point to point link, each side of the BFD session must | ||||
have bfd.PaddedPduSize set to 1500. In the absence of such | ||||
consistent configuration, BFD with Large Packets may correctly | ||||
determine unidirectional connectivity at the tested MTU, but bi- | ||||
directional MTU may not be properly validated. | ||||
It should be noted that some interfaces may intentionally have | ||||
different MTUs. Setting the bfd.PaddedPduSize appropriately for each | ||||
side of the interface supports such scenarios. | ||||
3.4. Equal Cost Multiple Paths (ECMP) or other Load Balancing | ||||
Considerations | ||||
Various mechanisms are utilized to increase throughput between two | ||||
endpoints at various network layers. Such features include Link | ||||
Aggregate Groups (LAGs) or ECMP forwarding. Such mechanisms balance | ||||
traffic across multiple physical links while hiding the details of | ||||
that balacing from the higher networking layers. The details of that | ||||
balancing are highly implementation specific. | ||||
In the presence of such load balancing mechanisms, it is possible to | ||||
have member links that are not properly forwarding traffic. In such | ||||
circumstances, this will result in dropped traffic when traffic is | ||||
chosen to be load balanced across those member links. | ||||
Such load balancing mechanisms may not permit all link members to be | ||||
properly tested by BFD. This is because the BFD Control packets may | ||||
be forwarded only along links that are up. BFD on LAG, [RFC7130], | ||||
was developed to help cover one such scenario. However, for testing | ||||
forwarding over multiple hops, there is no such specified general | ||||
purpose BFD mechanism for exercising all links in an ECMP. This may | ||||
result in a BFD session being in the Up state while some traffic may | ||||
be dropped or otherwise negatively impacted along some component | ||||
links. | ||||
Some BFD implementations utilize their internal understanding of the | ||||
component links and their resultant forwarding to exercise BFD in | ||||
such a way to better test the ECMP members and to tie the BFD session | ||||
state to the health of that ECMP. Due to the implementation specific | ||||
load balancing, it is not possible to standardize such additional | ||||
mechanisms for BFD. | ||||
Mis-configuration of some member MTUs may lead to Load Balancing that | ||||
may have an inconsistent Path MTU depending on how the traffic is | ||||
balanced. While the intent of BFD with Large Packets is to verify | ||||
path MTU, it is subject to the same considerations above. | ||||
3.5. S-BFD | ||||
This mechanism also can be applied to other forms of BFD, including | This mechanism also can be applied to other forms of BFD, including | |||
S-BFD [RFC7880]. | S-BFD [RFC7880]. | |||
4. Security Considerations | 4. Security Considerations | |||
This document does not change the underlying security considerations | This document does not change the underlying security considerations | |||
of the BFD protocol or its encapsulations. | of the BFD protocol or its encapsulations. | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document introduces no additional considerations to IANA. | This document introduces no additional considerations to IANA. | |||
6. References | 6. Acknowledgments | |||
6.1. Normative References | The authors would like to thank Les Ginsberg, Mahesh Jethandani, | |||
Robert Raszuk, and Ketan Talaulikar, for their valuable feedback on | ||||
this proposal. | ||||
7. References | ||||
7.1. Normative References | ||||
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | |||
DOI 10.17487/RFC0791, September 1981, <https://www.rfc- | DOI 10.17487/RFC0791, September 1981, <https://www.rfc- | |||
editor.org/info/rfc791>. | editor.org/info/rfc791>. | |||
[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, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
skipping to change at page 5, line 5 ¶ | skipping to change at page 6, line 41 ¶ | |||
[RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
(BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | |||
DOI 10.17487/RFC5881, June 2010, <https://www.rfc- | DOI 10.17487/RFC5881, June 2010, <https://www.rfc- | |||
editor.org/info/rfc5881>. | editor.org/info/rfc5881>. | |||
[RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
(BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, | (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, | |||
June 2010, <https://www.rfc-editor.org/info/rfc5883>. | June 2010, <https://www.rfc-editor.org/info/rfc5883>. | |||
[RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed., | ||||
Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional | ||||
Forwarding Detection (BFD) on Link Aggregation Group (LAG) | ||||
Interfaces", RFC 7130, DOI 10.17487/RFC7130, February | ||||
2014, <https://www.rfc-editor.org/info/rfc7130>. | ||||
[RFC7880] Pignataro, C., Ward, D., Akiya, N., Bhatia, M., and S. | [RFC7880] Pignataro, C., Ward, D., Akiya, N., Bhatia, M., and S. | |||
Pallagatti, "Seamless Bidirectional Forwarding Detection | Pallagatti, "Seamless Bidirectional Forwarding Detection | |||
(S-BFD)", RFC 7880, DOI 10.17487/RFC7880, July 2016, | (S-BFD)", RFC 7880, DOI 10.17487/RFC7880, July 2016, | |||
<https://www.rfc-editor.org/info/rfc7880>. | <https://www.rfc-editor.org/info/rfc7880>. | |||
6.2. Informative References | 7.2. Informative References | |||
[I-D.haas-xiao-bfd-echo-path-mtu] | [I-D.haas-xiao-bfd-echo-path-mtu] | |||
Haas, J. and M. Xiao, "Application of the BFD Echo | Haas, J. and M. Xiao, "Application of the BFD Echo | |||
function for Path MTU Verification or Detection", draft- | function for Path MTU Verification or Detection", draft- | |||
haas-xiao-bfd-echo-path-mtu-01 (work in progress), July | haas-xiao-bfd-echo-path-mtu-01 (work in progress), July | |||
2011. | 2011. | |||
[RFC1191] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191, | [RFC1191] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191, | |||
DOI 10.17487/RFC1191, November 1990, <https://www.rfc- | DOI 10.17487/RFC1191, November 1990, <https://www.rfc- | |||
editor.org/info/rfc1191>. | editor.org/info/rfc1191>. | |||
End of changes. 13 change blocks. | ||||
26 lines changed or deleted | 121 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/ |