| < draft-katz-ward-bfd-v4v6-1hop-00.txt | draft-katz-ward-bfd-v4v6-1hop-01.txt > | |||
|---|---|---|---|---|
| Network Working Group D. Katz | Network Working Group D. Katz | |||
| Internet Draft Juniper Networks | Internet Draft Juniper Networks | |||
| D. Ward | D. Ward | |||
| Cisco Systems | Cisco Systems | |||
| Category: Informational August, 2003 | Category: Informational May, 2004 | |||
| Expires: February, 2004 | Expires: November, 2004 | |||
| BFD for IPv4 and IPv6 (Single Hop) | BFD for IPv4 and IPv6 (Single Hop) | |||
| draft-katz-ward-bfd-v4v6-1hop-00.txt | draft-katz-ward-bfd-v4v6-1hop-01.txt | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
| all provisions of Section 10 of RFC2026. | all provisions of Section 10 of RFC2026. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | Drafts. | |||
| skipping to change at page 1, line 36 ¶ | skipping to change at page 1, line 36 ¶ | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2004). All Rights Reserved. | |||
| Abstract | Abstract | |||
| This document describes the use of the Bidirectional Forwarding | This document describes the use of the Bidirectional Forwarding | |||
| Detection protocol [BFD] over IPv4 and IPv6 for single IP hops. It | Detection protocol over IPv4 and IPv6 for single IP hops. It further | |||
| further describes the use of BFD with OSPFv2 [OSPFv2], OSPFv3 | describes the use of BFD with OSPFv2, OSPFv3, and IS-IS. Comments on | |||
| [OSPFv3], and ISIS [ISIS]. | this draft should be directed to rtg-bfd@ietf.org. | |||
| Conventions used in this document | Conventions used in this document | |||
| 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 [KEYWORDS]. | document are to be interpreted as described in RFC-2119 [KEYWORDS]. | |||
| 1. Introduction | 1. Introduction | |||
| One very desirable application for BFD is to track IPv4 and IPv6 | One very desirable application for BFD [BFD] is to track IPv4 and | |||
| connectivity between directly-connected systems. This could be used | IPv6 connectivity between directly-connected systems. This could be | |||
| to supplant the detection mechanisms in ISIS and OSPF, or to monitor | used to supplant the detection mechanisms in IS-IS and OSPF, or to | |||
| router-host connectivity, among other applications. | monitor router-host connectivity, among other applications. | |||
| This document describes the particulars necessary to use BFD in this | This document describes the particulars necessary to use BFD in this | |||
| environment, and describes how BFD can be used in conjunction OSPFv2, | environment, and describes how BFD can be used in conjunction OSPFv2 | |||
| OSPFv3, and ISIS. | [OSPFv2], OSPFv3 [OSPFv3], and IS-IS [ISIS]. | |||
| 2. Applications and Limitations | 2. Applications and Limitations | |||
| This application of BFD can be used by any pair of systems | This application of BFD can be used by any pair of systems | |||
| communicating via IPv4 and/or IPv6 across a single IP hop that can be | communicating via IPv4 and/or IPv6 across a single IP hop that can be | |||
| associated with an incoming interface. This includes, but is not | associated with an incoming interface. This includes, but is not | |||
| limited to, physical media, virtual circuits, and tunnels. | limited to, physical media, virtual circuits, and tunnels. | |||
| Each BFD session between a pair of systems must traverse a separate | Each BFD session between a pair of systems MUST traverse a separate | |||
| path in both directions. | path in both directions. | |||
| If BFD is to be used in conjunction with both IPv4 and IPv6 on a | ||||
| particular link, a separate BFD session MUST be established for each | ||||
| protocol (and thus encapsulated by that protocol) over that link. | ||||
| 3. Initialization and Demultiplexing | 3. Initialization and Demultiplexing | |||
| In this application, there will be only a single BFD session between | In this application, there will be only a single BFD session between | |||
| two systems over a given interface (logical or physical.) The BFD | two systems over a given interface (logical or physical) for a | |||
| session must be bound to this interface. As such, both sides of a | particular protocol. The BFD session must be bound to this | |||
| session MUST use "Active" mode (sending BFD Control packets with a | interface. As such, both sides of a session MUST take the "Active" | |||
| zero value of Your Discriminator) and any BFD packet from the remote | role (sending initial BFD Control packets with a zero value of Your | |||
| machine with a zero value of Your Discriminator MUST be associated | Discriminator) and any BFD packet from the remote machine with a zero | |||
| with the session bound to the remote system and interface. | value of Your Discriminator MUST be associated with the session bound | |||
| to the remote system, interface, and protocol. | ||||
| 4. Encapsulation | 4. Encapsulation | |||
| 4.1. BFD for IPv4 | 4.1. BFD for IPv4 | |||
| In the case of IPv4, BFD Control packets MUST be transmitted in UDP | In the case of IPv4, BFD Control packets MUST be transmitted in UDP | |||
| packets with destination port 3784, within an IPv4 packet. The | packets with destination port 3784, within an IPv4 packet. The | |||
| source port MUST be in the range 49152 through 65535. The same UDP | source port MUST be in the range 49152 through 65535. The same UDP | |||
| source port number MUST be used for all BFD Control packets | source port number MUST be used for all BFD Control packets | |||
| associated with a particular session. The source port number SHOULD | associated with a particular session. The source port number SHOULD | |||
| be unique among all BFD sessions on the system. If more than 16384 | be unique among all BFD sessions on the system. If more than 16384 | |||
| BFD sessions are simultaneously active, UDP source port numbers MAY | BFD sessions are simultaneously active, UDP source port numbers MAY | |||
| be reused on multiple sessions, but the number of distinct uses of | be reused on multiple sessions, but the number of distinct uses of | |||
| the same UDP source port number SHOULD be minimized. An | the same UDP source port number SHOULD be minimized. An | |||
| implementation MAY use the UDP port source number to aid in | implementation MAY use the UDP port source number to aid in | |||
| demultiplexing incoming BFD Control packets, but ultimately the | demultiplexing incoming BFD Control packets, but ultimately the | |||
| mechanisms in [BFD] MUST be used to demultiplex incoming packets to | mechanisms in [BFD] MUST be used to demultiplex incoming packets to | |||
| the proper session. | the proper session. | |||
| BFD Echo packets are transmitted in UDP packets with destination UDP | BFD Echo packets MUST be transmitted in UDP packets with destination | |||
| port 3785 in an IPv4 packet. The setting of the UDP source port is | UDP port 3785 in an IPv4 packet. The setting of the UDP source port | |||
| outside the scope of this specification. The destination address | is outside the scope of this specification. The destination address | |||
| MUST be chosen in such a way as to cause the remote system to forward | MUST be chosen in such a way as to cause the remote system to forward | |||
| the packet back to the local system. The source address MUST be | the packet back to the local system. The source address MUST be | |||
| chosen in such a way as to preclude the remote system from generating | chosen in such a way as to preclude the remote system from generating | |||
| ICMP Redirect messages (in particular, the source address MUST NOT be | ICMP Redirect messages (in particular, the source address MUST NOT be | |||
| part of the subnet bound to the interface over which the BFD Echo | part of the subnet bound to the interface over which the BFD Echo | |||
| packet is being transmitted.) | packet is being transmitted.) | |||
| 4.2. BFD for IPv6 | 4.2. BFD for IPv6 | |||
| In the case of IPv6, BFD Control packets MUST be transmitted in UDP | In the case of IPv6, BFD Control packets MUST be transmitted in UDP | |||
| skipping to change at page 4, line 13 ¶ | skipping to change at page 4, line 14 ¶ | |||
| associated with a particular session. The source port number SHOULD | associated with a particular session. The source port number SHOULD | |||
| be unique among all BFD sessions on the system. If more than 16384 | be unique among all BFD sessions on the system. If more than 16384 | |||
| BFD sessions are simultaneously active, UDP source port numbers MAY | BFD sessions are simultaneously active, UDP source port numbers MAY | |||
| be reused on multiple sessions, but the number of distinct uses of | be reused on multiple sessions, but the number of distinct uses of | |||
| the same UDP source port number SHOULD be minimized. An | the same UDP source port number SHOULD be minimized. An | |||
| implementation MAY use the UDP port source number to aid in | implementation MAY use the UDP port source number to aid in | |||
| demultiplexing incoming BFD Control packets, but ultimately the | demultiplexing incoming BFD Control packets, but ultimately the | |||
| mechanisms in [BFD] MUST be used to demultiplex incoming packets to | mechanisms in [BFD] MUST be used to demultiplex incoming packets to | |||
| the proper session. | the proper session. | |||
| BFD Echo packets are transmitted in UDP packets with destination UDP | BFD Echo packets MUST be transmitted in UDP packets with destination | |||
| port 3785 in an IPv6 packet. The setting of the UDP source port is | UDP port 3785 in an IPv6 packet. The setting of the UDP source port | |||
| outside the scope of this specification. The source and destination | is outside the scope of this specification. The source and | |||
| addresses MUST both be associated with the local system. The | destination addresses MUST both be associated with the local system. | |||
| destination address MUST be chosen in such a way as to cause the | The destination address MUST be chosen in such a way as to cause the | |||
| remote system to forward the packet back to the local system. | remote system to forward the packet back to the local system. | |||
| 5. TTL Issues | 5. TTL/Hop Count Issues | |||
| All BFD packets for sessions operating in this mode MUST be sent with | All BFD Control packets for sessions operating according to this | |||
| a TTL value of 255. All received BFD packets that are demultiplexed | specification MUST be sent with a TTL or Hop Count value of 255. All | |||
| to sessions operating in this mode MUST be discarded if the received | received BFD Control packets that are demultiplexed to sessions | |||
| TTL is not equal to 255. | operating according to this specification MUST be discarded if the | |||
| received TTL or Hop Count is not equal to 255. | ||||
| 6. Addressing Issues | 6. Addressing Issues | |||
| On a subnetted network, BFD Control packets MUST be transmitted with | On a subnetted network, BFD Control packets MUST be transmitted with | |||
| source and destination addresses that are part of the subnet | source and destination addresses that are part of the subnet | |||
| (addressed from and to interfaces on the subnet.) | (addressed from and to interfaces on the subnet.) | |||
| On an addressed but unsubnetted point-to-point link, BFD Control | On an addressed but unsubnetted point-to-point link, BFD Control | |||
| packets MUST be transmitted with source and destination addresses | packets MUST be transmitted with source and destination addresses | |||
| that match the addresses configured on that link. | that match the addresses configured on that link. | |||
| On an unnumbered point-to-point link, the source address of a BFD | On an unnumbered point-to-point link, the source address of a BFD | |||
| Control packet MUST NOT be used to identify the session. This means | Control packet MUST NOT be used to identify the session. This means | |||
| that the initial BFD packet MUST be accepted with any source address, | that the initial BFD packet MUST be accepted with any source address, | |||
| and that subsequent BFD packets MUST be demultiplexed solely by the | and that subsequent BFD packets MUST be demultiplexed solely by the | |||
| My Discriminator field (as is always the case.) This allows the | My Discriminator field (as is always the case.) This allows the | |||
| source address to change if necessary. | source address to change if necessary. Note that the TTL/Hop Count | |||
| check described in section 5 precludes the BFD packets from having | ||||
| come from any source other than the immediate neighbor. | ||||
| 7. BFD for use with OSPFv2, OSPFv3, and ISIS | 7. BFD for use with OSPFv2, OSPFv3, and IS-IS | |||
| The two versions of OSPF, as well as ISIS, all suffer from an | The two versions of OSPF, as well as IS-IS, all suffer from an | |||
| architectural limitation, namely that their Hello protocols are | architectural limitation, namely that their Hello protocols are | |||
| limited in the granularity of failure their detection times. In | limited in the granularity of failure their detection times. In | |||
| particular, OSPF has a minimum detection time of two seconds, and | particular, OSPF has a minimum detection time of two seconds, and IS- | |||
| ISIS has a minimum detection time of one second. | IS has a minimum detection time of one second. | |||
| BFD MAY be used to achieve arbitrarily small detection times for | BFD MAY be used to achieve arbitrarily small detection times for | |||
| these protocols by supplanting the Hello protocols used in each case. | these protocols by supplanting the Hello protocols used in each case. | |||
| 7.1. Session Establishment | 7.1. Session Establishment | |||
| The mechanism by which a BFD session is established in this | The mechanism by which a BFD session is established in this | |||
| environment is outside the scope of this specification. An obvious | environment is outside the scope of this specification. An obvious | |||
| choice would be to use the discovery mechanism inherent in the Hello | choice would be to use the discovery mechanism inherent in the Hello | |||
| protocols in OSPF and ISIS to bootstrap the establishment of a BFD | protocols in OSPF and IS-IS to bootstrap the establishment of a BFD | |||
| session. | session. | |||
| Any BFD sessions established to support OSPF and ISIS MUST operate in | Any BFD sessions established to support OSPF and IS-IS across a | |||
| accordance with the rest of this document. | single IP hop MUST operate in accordance with the rest of this | |||
| document. | ||||
| If multiple protocols wish to establish BFD sessions with the same | If multiple routing protocols wish to establish BFD sessions with the | |||
| remote system, all MUST share a single BFD session. | same remote system for the same data protocol, all MUST share a | |||
| single BFD session. | ||||
| 7.2. Session Parameters | 7.2. Session Parameters | |||
| The setting of the various timing parameters and modes in this | The setting of the various timing parameters and modes in this | |||
| application are outside the scope of this specification. | application are outside the scope of this specification. | |||
| Note that all protocols sharing a session will operate using the same | Note that all protocols sharing a session will operate using the same | |||
| parameters. The mechanism for choosing the parameters among those | parameters. The mechanism for choosing the parameters among those | |||
| desired by the various protocols are outside the scope of this | desired by the various protocols are outside the scope of this | |||
| specification. | specification. | |||
| 7.3. Interactions with OSPF and ISIS | 7.3. Interactions with OSPF and IS-IS without Graceful Restart | |||
| When a BFD session transitions from Up to Failing, a Hello protocol | When a BFD session transitions from Up to Failing, action SHOULD be | |||
| timeout SHOULD be emulated for the associated OSPF neighbors and/or | taken in the routing protocol to signal the lack of connectivity for | |||
| ISIS adjacencies. | the data protocol (IPv4 or IPv6) over which BFD is running. If only | |||
| one data protocol is being advertised in the routing protocol Hello, | ||||
| or if multiple protocols are being advertised but the protocols must | ||||
| share a common topology, a Hello protocol timeout SHOULD be emulated | ||||
| for the associated OSPF neighbors and/or IS-IS adjacencies. | ||||
| An OSPF neighbor or an ISIS adjacency MUST be allowed to come up, | If multiple data protocols are advertised in the routing protocol | |||
| according to the appropriate specification, regardless of the state | Hello, and the routing protocol supports different topologies for | |||
| of the associated BFD session. | each data protocol, the failing data protocol SHOULD no longer be | |||
| advertised in Hello packets in order to signal a lack of connectivity | ||||
| for that protocol. | ||||
| 7.4. OSPF Virtual Links | If a BFD session never comes up (possibly because the remote system | |||
| does not support BFD), this MUST NOT preclude the establishment of an | ||||
| OSPF neighbor or an IS-IS adjacency. | ||||
| 7.4. Interactions with OSPF and IS-IS with Graceful Restart | ||||
| The Graceful Restart functions in OSPF [OSPF-GRACE] and IS-IS [ISIS- | ||||
| GRACE] are predicated on the existence of a separate forwarding plane | ||||
| that does not necessarily share fate with the control plane in which | ||||
| the routing protocols operate. In particular, the assumption is that | ||||
| the forwarding plane can continue to function while the protocols | ||||
| restart and sort things out. | ||||
| BFD implementations announce via the Control Plane Independent (C) | ||||
| bit whether or not BFD shares fate with the control plane. This | ||||
| information is used to determine the actions to be taken in | ||||
| conjunction with Graceful Restart. | ||||
| If BFD does not share its fate with the control plane on either | ||||
| system, it can be used to determine whether Graceful Restart is NOT | ||||
| viable (the forwarding plane is not operating.) In this situation, | ||||
| if a BFD session fails while graceful restart is taking place, and | ||||
| BFD is independent of the control plane on the local system, and the | ||||
| remote system has been transmitting BFD Control packets with the C | ||||
| bit set, the graceful restart SHOULD be aborted and the topology | ||||
| change made visible to the network as outlined in section 7.3. | ||||
| If BFD shares its fate with the control plane on either system | ||||
| (either the local system shares fate with the control plane, or the | ||||
| remote system is transmitting BFD packets with the C bit set to | ||||
| zero), it is not useful during graceful restart, as the BFD session | ||||
| is likely to fail regardless of the state of the forwarding plane. | ||||
| In this situation, if a BFD session fails while graceful restart is | ||||
| taking place (or if the BFD session failure triggers a graceful | ||||
| restart event), the graceful restart SHOULD be allowed to complete | ||||
| and the topology change should not be made visible to the network as | ||||
| outlined in section 7.3. | ||||
| 7.5. OSPF Virtual Links | ||||
| The use of BFD to support failure detection of OSPF Virtual Links is | The use of BFD to support failure detection of OSPF Virtual Links is | |||
| for further study and is not yet supported, pending the full | for further study and is not yet supported, pending the full | |||
| specification of multihop BFD. | specification of multihop BFD. | |||
| Authors' Addresses | Authors' Addresses | |||
| Dave Katz | Dave Katz | |||
| Juniper Networks | Juniper Networks | |||
| 1194 N. Mathilda Ave. | 1194 N. Mathilda Ave. | |||
| skipping to change at page 6, line 27 ¶ | skipping to change at page 7, line 27 ¶ | |||
| Phone: +1-408-745-2000 | Phone: +1-408-745-2000 | |||
| Email: dkatz@juniper.net | Email: dkatz@juniper.net | |||
| Dave Ward | Dave Ward | |||
| Cisco Systems | Cisco Systems | |||
| 170 W. Tasman Dr. | 170 W. Tasman Dr. | |||
| San Jose, CA 95134 USA | San Jose, CA 95134 USA | |||
| Phone: +1-408-526-4000 | Phone: +1-408-526-4000 | |||
| Email: dward@cisco.com | Email: dward@cisco.com | |||
| Changes from the previous draft | ||||
| The changes in this draft from the previous version are primarily | ||||
| editorial. Some language has been clarified, a description of how to | ||||
| handle multiprotocol routing has been added, and a section on the | ||||
| interaction with graceful restart has also been added. The two | ||||
| versions of this draft are believed to be fully interoperable. | ||||
| Normative References | Normative References | |||
| [BFD] Katz, D., and Ward, D., "Bidirectional Forwarding Detection", | [BFD] Katz, D., and Ward, D., "Bidirectional Forwarding Detection", | |||
| draft-katz-ward-bfd-01.txt, August 2003. | draft-katz-ward-bfd-02.txt, May, 2004. | |||
| [ISIS] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and dual | [ISIS] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and dual | |||
| environments", RFC 1195, December 1990. | environments", RFC 1195, December 1990. | |||
| [ISIS-GRACE] Shand, M., and Ginsberg, L., "Restart signaling for IS- | ||||
| IS", draft-ietf-isis-restart-05.txt, January 2004. | ||||
| [KEYWORD] Bradner, S., "Key words for use in RFCs to Indicate | ||||
| Requirement Levels", RFC 2119, March 1997. | ||||
| [OSPFv2] Moy, J., "OSPF Version 2", RFC 2328, April 1998. | [OSPFv2] Moy, J., "OSPF Version 2", RFC 2328, April 1998. | |||
| [OSPFv3] Coltun, R., et al, "OSPF for IPv6", RFC 2740, December 1999. | [OSPFv3] Coltun, R., et al, "OSPF for IPv6", RFC 2740, December 1999. | |||
| [OSPF-GRACE] Moy, J., et al, "Graceful OSPF Restart", RFC 3623, | ||||
| November 2003. | ||||
| Security Considerations | Security Considerations | |||
| In this application, the use of TTL=255 on transmit and receive is | In this application, the use of TTL=255 on transmit and receive is | |||
| viewed as supplying equivalent security characteristics to other | viewed as supplying equivalent security characteristics to other | |||
| protocols used in the infrastructure, as it is not trivially | protocols used in the infrastructure, as it is not trivially | |||
| spoofable. Other security mechanisms are for further study. | spoofable. Other security mechanisms are for further study. | |||
| Full Copyright Notice | Full Copyright Notice | |||
| Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2004). All Rights Reserved. | |||
| This document and translations of it may be copied and furnished to | This document and translations of it may be copied and furnished to | |||
| others, and derivative works that comment on or otherwise explain it | others, and derivative works that comment on or otherwise explain it | |||
| or assist in its implementation may be prepared, copied, published | or assist in its implementation may be prepared, copied, published | |||
| and distributed, in whole or in part, without restriction of any | and distributed, in whole or in part, without restriction of any | |||
| kind, provided that the above copyright notice and this paragraph are | kind, provided that the above copyright notice and this paragraph are | |||
| included on all such copies and derivative works. However, this | included on all such copies and derivative works. However, this | |||
| document itself may not be modified in any way, such as by removing | document itself may not be modified in any way, such as by removing | |||
| the copyright notice or references to the Internet Society or other | the copyright notice or references to the Internet Society or other | |||
| Internet organizations, except as needed for the purpose of | Internet organizations, except as needed for the purpose of | |||
| End of changes. 29 change blocks. | ||||
| 53 lines changed or deleted | 124 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/ | ||||