1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333
|
<pre>Internet Engineering Task Force (IETF) D. Katz
Request for Comments: 5883 D. Ward
Category: Standards Track Juniper Networks
ISSN: 2070-1721 June 2010
<span class="h1">Bidirectional Forwarding Detection (BFD) for Multihop Paths</span>
Abstract
This document describes the use of the Bidirectional Forwarding
Detection (BFD) protocol over multihop paths, including
unidirectional links.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in <a href="./rfc5741#section-2">Section 2 of RFC 5741</a>.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
<a href="http://www.rfc-editor.org/info/rfc5883">http://www.rfc-editor.org/info/rfc5883</a>.
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) 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.
<span class="grey">Katz & Ward Standards Track [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc5883">RFC 5883</a> BFD for Multihop Paths June 2010</span>
<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>. Introduction</span>
The Bidirectional Forwarding Detection (BFD) protocol [<a href="#ref-BFD" title=""Bidirectional Forwarding Detection"">BFD</a>] defines a
method for liveness detection of arbitrary paths between systems.
The BFD one-hop specification [<a href="#ref-BFD-1HOP" title=""Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)"">BFD-1HOP</a>] describes how to use BFD
across single hops of IPv4 and IPv6.
BFD can also be useful on arbitrary paths between systems, which may
span multiple network hops and follow unpredictable paths.
Furthermore, a pair of systems may have multiple paths between them
that may overlap. This document describes methods for using BFD in
such scenarios.
<span class="h3"><a class="selflink" id="section-1.1" href="#section-1.1">1.1</a>. Conventions Used in This Document</span>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <a href="./rfc2119">RFC 2119</a> [<a href="#ref-KEYWORDS" title=""Key words for use in RFCs to Indicate Requirement Levels"">KEYWORDS</a>].
<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>. Applicability</span>
Please note that BFD is intended as an Operations, Administration,
and Maintenance (OAM) mechanism for connectivity check and connection
verification. It is applicable for network-based services (e.g.
router-to-router, subscriber-to-gateway, LSP/circuit endpoints, and
service appliance failure detection). In these scenarios it is
required that the operator correctly provision the rates at which BFD
is transmitted to avoid congestion (e.g link, I/O, CPU) and false
failure detection. It is not applicable for application-to-
application failure detection across the Internet because it does not
have sufficient capability to do necessary congestion detection and
avoidance and therefore cannot prevent congestion collapse. Host-to-
host or application-to-application deployment across the Internet
will require the encapsulation of BFD within a transport that
provides "TCP-friendly" [<a href="#ref-TFRC" title=""TCP Friendly Rate Control (TFRC): Protocol Specification"">TFRC</a>] behavior.
<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>. Issues</span>
There are three primary issues in the use of BFD for multihop paths.
The first is security and spoofing; [<a href="#ref-BFD-1HOP" title=""Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)"">BFD-1HOP</a>] describes a
lightweight method of avoiding spoofing by requiring a Time to Live
(TTL)/Hop Limit of 255 on both transmit and receive, but this
obviously does not work across multiple hops. The utilization of BFD
authentication addresses this issue.
The second, more subtle, issue is that of demultiplexing multiple BFD
sessions between the same pair of systems to the proper BFD session.
In particular, the first BFD packet received for a session may carry
<span class="grey">Katz & Ward Standards Track [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc5883">RFC 5883</a> BFD for Multihop Paths June 2010</span>
a Your Discriminator value of zero, resulting in ambiguity as to
which session the packet should be associated. Once the
discriminator values have been exchanged, all further packets are
demultiplexed to the proper BFD session solely by the contents of the
Your Discriminator field.
[<a id="ref-BFD-1HOP">BFD-1HOP</a>] addresses this by requiring that multiple sessions
traverse independent physical or logical links -- the first packet is
demultiplexed based on the link over which it was received. In the
more general case, this scheme cannot work, as two paths over which
BFD is running may overlap to an arbitrary degree (including the
first and/or last hop).
Finally, the Echo function MUST NOT be used over multiple hops.
Intermediate hops would route the packets back to the sender, and
connectivity through the entire path would not be possible to verify.
<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>. Demultiplexing Packets</span>
There are a number of possibilities for addressing the demultiplexing
issue that may be used, depending on the application.
<span class="h3"><a class="selflink" id="section-4.1" href="#section-4.1">4.1</a>. Totally Arbitrary Paths</span>
It may be desired to use BFD for liveness detection over paths for
which no part of the route is known (or if known, may not be stable).
A straightforward approach to this problem is to limit BFD deployment
to a single session between a source/destination address pair.
Multiple sessions between the same pair of systems must have at least
one endpoint address distinct from one another.
In this scenario, the initial packet is demultiplexed to the
appropriate BFD session based on the source/destination address pair
when Your Discriminator is set to zero.
This approach is appropriate for general connectivity detection
between systems over routed paths and is also useful for OSPF Virtual
Links [<a href="#ref-OSPFv2" title=""OSPF Version 2"">OSPFv2</a>] [<a href="#ref-OSPFv3" title=""OSPF for IPv6"">OSPFv3</a>].
<span class="h3"><a class="selflink" id="section-4.2" href="#section-4.2">4.2</a>. Out-of-Band Discriminator Signaling</span>
Another approach to the demultiplexing problem is to signal the
discriminator values in each direction through an out-of-band
mechanism prior to establishing the BFD session. Once learned, the
discriminators are sent as usual in the BFD Control packets; no
packets with Your Discriminator set to zero are ever sent. This
method is used by the BFD MPLS specification [<a href="#ref-BFD-MPLS" title=""Bidirectional Forwarding Detection (BFD) for MPLS Label Switched Paths (LSPs)"">BFD-MPLS</a>].
<span class="grey">Katz & Ward Standards Track [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc5883">RFC 5883</a> BFD for Multihop Paths June 2010</span>
This approach is advantageous because it allows BFD to be directed by
other system components that have knowledge of the paths in use, and
from the perspective of BFD implementation it is very simple.
The disadvantage is that it requires at least some level of BFD-
specific knowledge in parts of the system outside of BFD.
<span class="h3"><a class="selflink" id="section-4.3" href="#section-4.3">4.3</a>. Unidirectional Links</span>
Unidirectional links are classified as multihop paths because the
return path (which should exist at some level in order to make the
link useful) may be arbitrary, and the return paths for BFD sessions
protecting parallel unidirectional links may overlap or even be
identical. (If two unidirectional links, one in each direction, are
to carry a single BFD session, this can be done using the single-hop
approach.)
Either of the two methods outlined earlier may be used in the
unidirectional link case, but a more general solution can be found
strictly within BFD and without addressing limitations.
The approach is similar to the one-hop specification, since the
unidirectional link is a single hop. Let's define the two systems as
the Unidirectional Sender and the Unidirectional Receiver. In this
approach, the Unidirectional Sender MUST operate in the Active role
(as defined in the base BFD specification), and the Unidirectional
Receiver MUST operate in the Passive role.
In the Passive role, by definition, the Unidirectional Receiver does
not transmit any BFD Control packets until it learns the
discriminator value in use by the other system (upon receipt of the
first BFD Control packet). The Unidirectional Receiver demultiplexes
the first packet to the proper BFD session based on the physical or
logical link over which it was received. This allows the receiver to
learn the remote discriminator value, which it then echoes back to
the sender in its own (arbitrarily routed) BFD Control packet, after
which time all packets are demultiplexed solely by discriminator.
<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>. Encapsulation</span>
The encapsulation of BFD Control packets for multihop application in
IPv4 and IPv6 is identical to that defined in [<a href="#ref-BFD-1HOP" title=""Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)"">BFD-1HOP</a>], except that
the UDP destination port MUST have a value of 4784. This can aid in
the demultiplexing and internal routing of incoming BFD packets.
<span class="grey">Katz & Ward Standards Track [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc5883">RFC 5883</a> BFD for Multihop Paths June 2010</span>
<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>. Authentication</span>
By their nature, multihop paths expose BFD to spoofing. As the
number of hops increases, the exposure to attack grows. As such,
implementations of BFD SHOULD utilize cryptographic authentication
over multihop paths to help mitigate denial-of-service attacks.
<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>. IANA Considerations</span>
Port 4784 has been assigned by IANA for use with BFD Multihop
Control.
<span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a>. Security Considerations</span>
As the number of hops increases, BFD becomes further exposed to
attack. The use of strong forms of authentication is strongly
encouraged.
No additional security issues are raised in this document beyond
those that exist in the referenced BFD documents.
<span class="h2"><a class="selflink" id="section-9" href="#section-9">9</a>. References</span>
<span class="h3"><a class="selflink" id="section-9.1" href="#section-9.1">9.1</a>. Normative References</span>
[<a id="ref-BFD">BFD</a>] Katz, D. and D. Ward, "Bidirectional Forwarding
Detection", <a href="./rfc5880">RFC 5880</a>, June 2010.
[<a id="ref-BFD-1HOP">BFD-1HOP</a>] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD) for IPv4 and IPv6 (Single Hop)", <a href="./rfc5881">RFC 5881</a>, June
2010.
[<a id="ref-KEYWORDS">KEYWORDS</a>] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.
<span class="h3"><a class="selflink" id="section-9.2" href="#section-9.2">9.2</a>. Informative References</span>
[<a id="ref-BFD-MPLS">BFD-MPLS</a>] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow,
"Bidirectional Forwarding Detection (BFD) for MPLS Label
Switched Paths (LSPs)", <a href="./rfc5884">RFC 5884</a>, June 2010.
[<a id="ref-OSPFv2">OSPFv2</a>] Moy, J., "OSPF Version 2", STD 54, <a href="./rfc2328">RFC 2328</a>, April 1998.
[<a id="ref-OSPFv3">OSPFv3</a>] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
for IPv6", <a href="./rfc5340">RFC 5340</a>, July 2008.
<span class="grey">Katz & Ward Standards Track [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc5883">RFC 5883</a> BFD for Multihop Paths June 2010</span>
[<a id="ref-TFRC">TFRC</a>] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP
Friendly Rate Control (TFRC): Protocol Specification", <a href="./rfc5348">RFC</a>
<a href="./rfc5348">5348</a>, September 2008.
Authors' Addresses
Dave Katz
Juniper Networks
1194 N. Mathilda Ave.
Sunnyvale, CA 94089-1206
USA
Phone: +1-408-745-2000
EMail: dkatz@juniper.net
Dave Ward
Juniper Networks
1194 N. Mathilda Ave.
Sunnyvale, CA 94089-1206
USA
Phone: +1-408-745-2000
EMail: dward@juniper.net
Katz & Ward Standards Track [Page 6]
</pre>
|