draft-ietf-bfd-seamless-base-09.txt   draft-ietf-bfd-seamless-base-10.txt 
Internet Engineering Task Force N. Akiya Internet Engineering Task Force N. Akiya
Internet-Draft Big Switch Networks Internet-Draft Big Switch Networks
Updates: 5880 (if approved) C. Pignataro Updates: 5880 (if approved) C. Pignataro
Intended status: Standards Track D. Ward Intended status: Standards Track D. Ward
Expires: October 15, 2016 Cisco Systems Expires: November 5, 2016 Cisco
M. Bhatia M. Bhatia
Ionos Networks Ionos Networks
S. Pallagatti S. Pallagatti
April 13, 2016 May 4, 2016
Seamless Bidirectional Forwarding Detection (S-BFD) Seamless Bidirectional Forwarding Detection (S-BFD)
draft-ietf-bfd-seamless-base-09 draft-ietf-bfd-seamless-base-10
Abstract Abstract
This document defines a simplified mechanism to use Bidirectional This document defines a simplified mechanism to use Bidirectional
Forwarding Detection (BFD) with large portions of negotiation aspects Forwarding Detection (BFD) with large portions of negotiation aspects
eliminated, thus providing benefits such as quick provisioning as eliminated, thus providing benefits such as quick provisioning as
well as improved control and flexibility to network nodes initiating well as improved control and flexibility to network nodes initiating
the path monitoring. the path monitoring.
This document updates RFC5880. This document updates RFC5880.
skipping to change at page 1, line 47 skipping to change at page 1, line 47
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 October 15, 2016. This Internet-Draft will expire on November 5, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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 31 skipping to change at page 2, line 31
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Seamless BFD Overview . . . . . . . . . . . . . . . . . . . . 5 3. Seamless BFD Overview . . . . . . . . . . . . . . . . . . . . 5
4. S-BFD Discriminators . . . . . . . . . . . . . . . . . . . . 6 4. S-BFD Discriminators . . . . . . . . . . . . . . . . . . . . 6
4.1. S-BFD Discriminator Uniqueness . . . . . . . . . . . . . 6 4.1. S-BFD Discriminator Uniqueness . . . . . . . . . . . . . 6
4.2. Discriminator Pools . . . . . . . . . . . . . . . . . . . 7 4.2. Discriminator Pools . . . . . . . . . . . . . . . . . . . 7
5. Reflector BFD Session . . . . . . . . . . . . . . . . . . . . 7 5. Reflector BFD Session . . . . . . . . . . . . . . . . . . . . 7
6. State Variables . . . . . . . . . . . . . . . . . . . . . . . 8 6. State Variables . . . . . . . . . . . . . . . . . . . . . . . 8
6.1. New State Variables . . . . . . . . . . . . . . . . . . . 8 6.1. New State Variables . . . . . . . . . . . . . . . . . . . 8
6.2. State Variable Initialization and Maintenance . . . . . . 8 6.2. State Variable Initialization and Maintenance . . . . . . 9
7. S-BFD Procedures . . . . . . . . . . . . . . . . . . . . . . 9 7. S-BFD Procedures . . . . . . . . . . . . . . . . . . . . . . 9
7.1. Demultiplexing of S-BFD Control Packet . . . . . . . . . 9 7.1. Demultiplexing of S-BFD Control Packet . . . . . . . . . 9
7.2. Responder Procedures . . . . . . . . . . . . . . . . . . 10 7.2. Responder Procedures . . . . . . . . . . . . . . . . . . 10
7.2.1. Responder Demultiplexing . . . . . . . . . . . . . . 10 7.2.1. Responder Demultiplexing . . . . . . . . . . . . . . 10
7.2.2. Transmission of S-BFD Control Packet by SBFDReflector 10 7.2.2. Transmission of S-BFD Control Packet by SBFDReflector 10
7.2.3. Additional SBFDReflector Behaviors . . . . . . . . . 11 7.2.3. Additional SBFDReflector Behaviors . . . . . . . . . 11
7.3. Initiator Procedures . . . . . . . . . . . . . . . . . . 12 7.3. Initiator Procedures . . . . . . . . . . . . . . . . . . 12
7.3.1. SBFDInitiator State Machine . . . . . . . . . . . . . 13 7.3.1. SBFDInitiator State Machine . . . . . . . . . . . . . 12
7.3.2. Transmission of S-BFD Control Packet by SBFDInitiator 13 7.3.2. Transmission of S-BFD Control Packet by SBFDInitiator 13
7.3.3. Additional SBFDInitiator Behaviors . . . . . . . . . 14 7.3.3. Additional SBFDInitiator Behaviors . . . . . . . . . 14
7.4. Diagnostic Values . . . . . . . . . . . . . . . . . . . . 14 7.4. Diagnostic Values . . . . . . . . . . . . . . . . . . . . 14
7.5. The Poll Sequence . . . . . . . . . . . . . . . . . . . . 15 7.5. The Poll Sequence . . . . . . . . . . . . . . . . . . . . 15
8. Operational Considerations . . . . . . . . . . . . . . . . . 15 8. Operational Considerations . . . . . . . . . . . . . . . . . 15
8.1. Scaling Aspect . . . . . . . . . . . . . . . . . . . . . 15 8.1. Scaling Aspect . . . . . . . . . . . . . . . . . . . . . 15
8.2. Congestion Considerations . . . . . . . . . . . . . . . . 15 8.2. Congestion Considerations . . . . . . . . . . . . . . . . 16
9. Co-existence with Classical BFD Sessions . . . . . . . . . . 16 9. Co-existence with Classical BFD Sessions . . . . . . . . . . 16
10. S-BFD Echo Function . . . . . . . . . . . . . . . . . . . . . 16 10. S-BFD Echo Function . . . . . . . . . . . . . . . . . . . . . 16
11. Security Considerations . . . . . . . . . . . . . . . . . . . 17 11. Security Considerations . . . . . . . . . . . . . . . . . . . 17
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18
14. Contributing Authors . . . . . . . . . . . . . . . . . . . . 18 14. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
15.1. Normative References . . . . . . . . . . . . . . . . . . 18 15.1. Normative References . . . . . . . . . . . . . . . . . . 19
15.2. Informative References . . . . . . . . . . . . . . . . . 19 15.2. Informative References . . . . . . . . . . . . . . . . . 19
Appendix A. Loop Problem . . . . . . . . . . . . . . . . . . . . 19 Appendix A. Loop Problem and Solution . . . . . . . . . . . . . 20
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20
1. Introduction 1. Introduction
Bidirectional Forwarding Detection (BFD), [RFC5880] and related Bidirectional Forwarding Detection (BFD), [RFC5880] and related
documents, has efficiently generalized the failure detection documents, has efficiently generalized the failure detection
mechanism for multiple protocols and applications. There are some mechanism for multiple protocols and applications. There are some
improvements which can be made to better fit existing technologies. improvements which can be made to better fit existing technologies.
There is a possibility of evolving BFD to better fit new There is a possibility of evolving BFD to better fit new
technologies. This document focuses on several aspects of BFD in technologies. This document focuses on several aspects of BFD in
skipping to change at page 5, line 34 skipping to change at page 5, line 34
An S-BFD module on each network node allocates one or more S-BFD An S-BFD module on each network node allocates one or more S-BFD
discriminators for local entities, and creates a reflector BFD discriminators for local entities, and creates a reflector BFD
session. Allocated S-BFD discriminators may be advertised by session. Allocated S-BFD discriminators may be advertised by
applications (e.g., OSPF/IS-IS). Required result is that applications (e.g., OSPF/IS-IS). Required result is that
applications, on other network nodes, possess the knowledge of the applications, on other network nodes, possess the knowledge of the
S-BFD discriminators allocated by a remote node to remote entities. S-BFD discriminators allocated by a remote node to remote entities.
The reflector BFD session is to, upon receiving an S-BFD control The reflector BFD session is to, upon receiving an S-BFD control
packet targeted to one of local S-BFD discriminator values, transmit packet targeted to one of local S-BFD discriminator values, transmit
a response S-BFD control packet back to the initiator. a response S-BFD control packet back to the initiator.
Once above setup is complete, any network node, having the knowledge Once the above setup is complete, any network node, having the
of the S-BFD discriminator allocated to by a remote node to remote knowledge of the S-BFD discriminator allocated to by a remote node to
entity/entities, it can quickly perform a continuity test to the remote entity/entities, can quickly perform a continuity test to the
remote entity by simply sending S-BFD control packets with remote entity by simply sending S-BFD control packets with
corresponding S-BFD discriminator value in the "your discriminator" corresponding S-BFD discriminator value in the "your discriminator"
field. field.
For example: For example:
<------- IS-IS Network -------> <------- IS-IS Network ------->
+---------+ +---------+
| | | |
skipping to change at page 6, line 22 skipping to change at page 6, line 22
^ ^ ^ ^
| | | |
SystemID SystemID SystemID SystemID
xxx yyy xxx yyy
BFD Discrim BFD Discrim BFD Discrim BFD Discrim
123 456 123 456
Figure 2: S-BFD for IS-IS Network Figure 2: S-BFD for IS-IS Network
S-BFD module in a system IS-IS SystemID xxx (node A) allocates an S-BFD module in a system IS-IS SystemID xxx (node A) allocates an
S-BFD discriminator 123, and IS-IS will advertises the S-BFD S-BFD discriminator 123, and IS-IS advertises the S-BFD discriminator
discriminator 123 in an IS-IS TLV. S-BFD module in a system with IS- 123 in an IS-IS TLV. S-BFD module in a system with IS-IS SystemID
IS SystemID yyy (node D) allocates an S-BFD discriminator 456, and yyy (node D) allocates an S-BFD discriminator 456, and IS-IS
IS-IS advertises the S-BFD discriminator 456 in an IS-IS TLV. A advertises the S-BFD discriminator 456 in an IS-IS TLV. A reflector
reflector BFD session is created on both network nodes (node A and BFD session is created on both network nodes (node A and node D).
node D). When network node A wants to check the reachability to When network node A wants to check the reachability to network node
network node D, node A can send an S-BFD control packet, destined to D, node A can send an S-BFD control packet, destined to node D, with
node D, with "your discriminator" field set to 456. When the "your discriminator" field set to 456. When the reflector BFD
reflector BFD session on node D receives this S-BFD control packet, session on node D receives this S-BFD control packet, then a response
then response S-BFD control packet is sent back to node A, which S-BFD control packet is sent back to node A, which allows node A to
allows node A to complete the continuity test. complete the continuity test.
When a node allocates multiple S-BFD discriminators, how remote nodes When a node allocates multiple S-BFD discriminators, how remote nodes
determine which of the discriminators is associated with a specific determine which of the discriminators is associated with a specific
entity is currently unspecified. The use of multiple S-BFD entity is currently unspecified. The use of multiple S-BFD
discriminators by a single network node is therefore discouraged discriminators by a single network node is therefore discouraged
until a means of learning the mapping is defined. until a means of learning the mapping is defined.
4. S-BFD Discriminators 4. S-BFD Discriminators
4.1. S-BFD Discriminator Uniqueness 4.1. S-BFD Discriminator Uniqueness
One important characteristics of an S-BFD discriminator is that it One important characteristics of an S-BFD discriminator is that it
MUST be unique within an administrative domain. If multiple network MUST be unique within an administrative domain. If multiple network
nodes allocated a same S-BFD discriminator value, then S-BFD control nodes allocated the same S-BFD discriminator value, then S-BFD
packets falsely terminating on a wrong network node can result in a control packets falsely terminating on a wrong network node can
reflector BFD session to generate a response back, due to "your result in a reflector BFD session to generate a response back, due to
discriminator" matching. This is clearly not desirable. "your discriminator" matching. This is clearly not desirable.
4.2. Discriminator Pools 4.2. Discriminator Pools
This subsection describes a discriminator pool implementation This subsection describes a discriminator pool implementation
technique to minimize S-BFD discriminator collisions. The result technique to minimize S-BFD discriminator collisions. The result
will allow an implementation to better satisfy the S-BFD will allow an implementation to better satisfy the S-BFD
discriminator uniqueness requirement defined in Section 4.1. discriminator uniqueness requirement defined in Section 4.1.
o SBFDInitiator is to allocate a discriminator from the BFD o SBFDInitiator is to allocate a discriminator from the BFD
discriminator pool. If the system also supports classical BFD discriminator pool. If the system also supports classical BFD
that runs on [RFC5880], then the BFD discriminator pool SHOULD be that runs on [RFC5880], then the BFD discriminator pool SHOULD be
shared by SBFDInitiator sessions and classical BFD sessions. shared by SBFDInitiator sessions and classical BFD sessions.
o SBFDReflector is to allocate a discriminator from the S-BFD o SBFDReflector is to allocate a discriminator from the S-BFD
discriminator pool. The S-BFD discriminator pool SHOULD be a discriminator pool. The S-BFD discriminator pool SHOULD be a
separate pool than the BFD discriminator pool. separate pool than the BFD discriminator pool.
Remainder of this subsection describes the reasons for above The remainder of this subsection describes the reasons for the
suggestions. suggestions above.
Locally allocated S-BFD discriminator values for entities, listened Locally allocated S-BFD discriminator values for entities, listened
by SBFDReflector sessions, may be arbitrary allocated or derived from by SBFDReflector sessions, may be arbitrary allocated or derived from
values provided by applications. These values may be protocol IDs values provided by applications. These values may be protocol IDs
(e.g., System-ID, Router-ID) or network targets (e.g., IP address). (e.g., System-ID, Router-ID) or network targets (e.g., IP address).
To avoid derived S-BFD discriminator values already being assigned to To avoid derived S-BFD discriminator values already being assigned to
other BFD sessions (i.e., SBFDInitiator sessions and classical BFD other BFD sessions (i.e., SBFDInitiator sessions and classical BFD
sessions), it is RECOMMENDED that discriminator pool for sessions), it is RECOMMENDED that the discriminator pool for
SBFDReflector sessions be separate from other BFD sessions. SBFDReflector sessions be separate from other BFD sessions.
Even when following the separate discriminator pool approach, Even when following the separate discriminator pool approach,
collision is still possible between one S-BFD application to another collision is still possible between one S-BFD application to another
S-BFD application, that may be using different values and algorithms S-BFD application, that may be using different values and algorithms
to derive S-BFD discriminator values. If the two applications are to derive S-BFD discriminator values. If the two applications are
using S-BFD for a same purpose (e.g., network reachability), then the using S-BFD for the same purpose (e.g., network reachability), then
colliding S-BFD discriminator value can be shared. If the two the colliding S-BFD discriminator value can be shared. If the two
applications are using S-BFD for a different purpose, then the applications are using S-BFD for a different purpose, then the
collision must be addressed. How such collisions are addressed is collision must be addressed. The use of multiple S-BFD
outside the scope of this document. discriminators by a single network node, however, is discouraged (see
Section 3).
5. Reflector BFD Session 5. Reflector BFD Session
Each network node creates one or more reflector BFD sessions. This Each network node creates one or more reflector BFD sessions. This
reflector BFD session is a session which transmits S-BFD control reflector BFD session is a session which transmits S-BFD control
packets in response to received S-BFD control packets with "your packets in response to received S-BFD control packets with "your
discriminator" having S-BFD discriminators allocated for local discriminator" having S-BFD discriminators allocated for local
entities. Specifically, this reflector BFD session is to have entities. Specifically, this reflector BFD session has the following
following characteristics: characteristics:
o MUST NOT transmit any S-BFD packets based on local timer expiry. o MUST NOT transmit any S-BFD packets based on local timer expiry.
o MUST transmit an S-BFD control packet in response to a received o MUST transmit an S-BFD control packet in response to a received
S-BFD control packet having a valid S-BFD discriminator in the S-BFD control packet having a valid S-BFD discriminator in the
"your discriminator" field, unless prohibited by local policies "your discriminator" field, unless prohibited by local policies
(e.g., administrative, security, rate-limiter, etc). (e.g., administrative, security, rate-limiter, etc).
o MUST be capable of sending only two states: UP and ADMINDOWN. o MUST be capable of sending only two states: UP and ADMINDOWN.
skipping to change at page 9, line 7 skipping to change at page 9, line 12
bfd.SessionType variable MUST be initialized to the appropriate type bfd.SessionType variable MUST be initialized to the appropriate type
when an S-BFD session is created. when an S-BFD session is created.
6.2. State Variable Initialization and Maintenance 6.2. State Variable Initialization and Maintenance
A state variable defined in Section 6.8.1 of [RFC5880] need to be A state variable defined in Section 6.8.1 of [RFC5880] need to be
initialized or manipulated differently depending on the session type. initialized or manipulated differently depending on the session type.
o bfd.DemandMode: This variable MUST be initialized to 1 for session o bfd.DemandMode: This variable MUST be initialized to 1 for session
type SBFDInitiator, and MUST be initialized to 0 for session type type SBFDInitiator, and MUST be initialized to 0 for session type
SBFDReflector. SBFDReflector. This is done to prevent loops (see Appendix A).
7. S-BFD Procedures 7. S-BFD Procedures
7.1. Demultiplexing of S-BFD Control Packet 7.1. Demultiplexing of S-BFD Control Packet
S-BFD packet MUST be demultiplexed with lower layer information S-BFD packet MUST be demultiplexed with lower layer information
(e.g., dedicated destination UDP port, associated channel type). (e.g., dedicated destination UDP port [I-D.ietf-bfd-seamless-ip],
Following procedure SHOULD be executed on both initiator and associated channel type [I-D.ietf-pals-seamless-vccv]). Following
reflector. procedure SHOULD be executed on both initiator and reflector.
If S-BFD packet If S-BFD packet
If S-BFD packet is for SBFDReflector If S-BFD packet is for SBFDReflector
Packet MUST be looked up to locate a corresponding Packet MUST be looked up to locate a corresponding
SBFDReflector session based on the value from the "your SBFDReflector session based on the value from the "your
discriminator" field in the table describing S-BFD discriminator" field in the table describing S-BFD
discriminators. discriminators.
skipping to change at page 10, line 14 skipping to change at page 10, line 17
7.2. Responder Procedures 7.2. Responder Procedures
A network node which receives S-BFD control packets transmitted by an A network node which receives S-BFD control packets transmitted by an
initiator is referred as responder. The responder, upon reception of initiator is referred as responder. The responder, upon reception of
S-BFD control packets, is to perform necessary relevant validations S-BFD control packets, is to perform necessary relevant validations
described in [RFC5880]. described in [RFC5880].
7.2.1. Responder Demultiplexing 7.2.1. Responder Demultiplexing
S-BFD packet MUST be demultiplexed with lower layer information S-BFD packet MUST be demultiplexed with lower layer information.
(e.g., dedicated destination UDP port, associated channel type).
Following procedure SHOULD be executed by responder: Following procedure SHOULD be executed by responder:
If "your discriminator" not one of the entry allocated for local If "your discriminator" not one of the entry allocated for local
entities entities
Packet MUST be discarded. Packet MUST be discarded.
Else Else
Packet is determined to be handled by a reflector BFD session Packet is determined to be handled by a reflector BFD session
skipping to change at page 10, line 48 skipping to change at page 10, line 50
needs to be set differently from [RFC5880] as follows: needs to be set differently from [RFC5880] as follows:
State (Sta) State (Sta)
Set to bfd.SessionState (either UP or ADMINDOWN only). Set to bfd.SessionState (either UP or ADMINDOWN only).
Clarification of reflector BFD session state is described in Clarification of reflector BFD session state is described in
Section 7.2.3. Section 7.2.3.
Demand (D) Demand (D)
Set to 0. Set to 0, to identify the S-BFD packet is sent by the
SBFDReflector.
Detect Mult Detect Mult
Value to be copied from "Detection Multiplier" filed of Value to be copied from "Detection Multiplier" filed of
received BFD packet. received BFD packet.
My Discriminator My Discriminator
Value be copied from "your discriminator" filed of received BFD Value be copied from "your discriminator" filed of received BFD
packet. packet.
Your Discriminator Your Discriminator
skipping to change at page 11, line 49 skipping to change at page 12, line 5
7.2.3. Additional SBFDReflector Behaviors 7.2.3. Additional SBFDReflector Behaviors
o S-BFD control packets transmitted by the SBFDReflector MUST have o S-BFD control packets transmitted by the SBFDReflector MUST have
"Required Min RX Interval" set to a value which expresses, in "Required Min RX Interval" set to a value which expresses, in
microseconds, the minimum interval between incoming S-BFD control microseconds, the minimum interval between incoming S-BFD control
packets this SBFDReflector can handle. The SBFDReflector can packets this SBFDReflector can handle. The SBFDReflector can
control how fast SBFInitiators will be sending S-BFD control control how fast SBFInitiators will be sending S-BFD control
packets to self by ensuring "Required Min RX Interval" indicates a packets to self by ensuring "Required Min RX Interval" indicates a
value based on the current load. value based on the current load.
o If the SBFDReflector wishes to communicate to some or all o When the SBFDReflector receives an S-BFD control packet from an
SBFDInitiators that monitored local entity is "temporarily out of SBFDInitiator, then the SBFDReflector needs to determine what
service", then S-BFD control packets with "state" set to ADMINDOWN "state" to send in the response S-BFD control packet. If the
are sent to those SBFDInitiators. The SBFDInitiators, upon monitored local entity is in service, then the "state" MUST be set
reception of such packets, MUST NOT conclude loss of reachability to UP. If the monitored local entity is "temporarily out of
to corresponding remote entity, and MUST back off packet service", then the "state" SHOULD be set to ADMINDOWN.
transmission interval for the remote entity to an interval no
faster than 1 second. If the SBFDReflector is generating a
response S-BFD control packet for a local entity that is in
service, then "state" in response BFD control packets MUST be set
to UP.
o If an SBFDReflector receives an S-BFD control packet with Demand o If an SBFDReflector receives an S-BFD control packet with Demand
(D) bit cleared, the packet MUST be discarded. (D) bit cleared, the packet MUST be discarded (see Appendix A).
7.3. Initiator Procedures 7.3. Initiator Procedures
S-BFD control packets transmitted by an SBFDInitiator MUST set "your S-BFD control packets transmitted by an SBFDInitiator MUST set "your
discriminator" field to an S-BFD discriminator corresponding to the discriminator" field to an S-BFD discriminator corresponding to the
remote entity. remote entity.
Every SBFDInitiator MUST have a locally unique "my discriminator" Every SBFDInitiator MUST have a locally unique "my discriminator"
allocated from the BFD discriminator pool. allocated from the BFD discriminator pool.
skipping to change at page 13, line 35 skipping to change at page 13, line 28
+------+ UP +------+ +------+ UP +------+
| |-------------------->| |----+ | |-------------------->| |----+
| DOWN | | UP | | UP | DOWN | | UP | | UP
| |<--------------------| |<---+ | |<--------------------| |<---+
+------+ ADMIN DOWN, +------+ +------+ ADMIN DOWN, +------+
TIMER TIMER
Figure 4: SBFDInitiator FSM Figure 4: SBFDInitiator FSM
Note that the above state machine is different from the base BFD Note that the above state machine is different from the base BFD
specification[RFC5880]. This is because the INIT state is no longer specification [RFC5880]. This is because the INIT state is no longer
applicable for the SBFDInitiator. Another important difference is applicable for the SBFDInitiator. Another important difference is
the transition of the state machine from the DOWN state to the UP the transition of the state machine from the DOWN state to the UP
state when a packet with State UP is received by the SBFDInitiator. state when a packet with State UP is received by the SBFDInitiator.
The definitions of the states and the events have the same meaning as The definitions of the states and the events have the same meaning as
in the base BFD specification [RFC5880]. in the base BFD specification [RFC5880].
7.3.2. Transmission of S-BFD Control Packet by SBFDInitiator 7.3.2. Transmission of S-BFD Control Packet by SBFDInitiator
Contents of S-BFD control packets sent by an SBFDInitiator MUST be Contents of S-BFD control packets sent by an SBFDInitiator MUST be
set as per Section 6.8.7 of [RFC5880]. There are few fields which set as per Section 6.8.7 of [RFC5880]. There are few fields which
skipping to change at page 14, line 26 skipping to change at page 14, line 20
Set to 0. Set to 0.
7.3.3. Additional SBFDInitiator Behaviors 7.3.3. Additional SBFDInitiator Behaviors
o If the SBFDInitiator receives a valid S-BFD control packet in o If the SBFDInitiator receives a valid S-BFD control packet in
response to transmitted S-BFD control packet to a remote entity, response to transmitted S-BFD control packet to a remote entity,
then the SBFDInitiator SHOULD conclude that S-BFD control packet then the SBFDInitiator SHOULD conclude that S-BFD control packet
reached the intended remote entity. reached the intended remote entity.
o When an SBFDInitiator receives a response S-BFD control packet, if
the state specified is ADMINDOWN, the SBFDInitiator MUST NOT
conclude loss of reachability to the corresponding remote entity,
and MUST back off packet transmission interval for the remote
entity to an interval no faster than 1 second.
o When a sufficient number of S-BFD packets have not arrived as they o When a sufficient number of S-BFD packets have not arrived as they
should, the SBFDInitiator SHOULD declare loss of reachability to should, the SBFDInitiator SHOULD declare loss of reachability to
the remote entity. The criteria for declaring loss of the remote entity. The criteria for declaring loss of
reachability and the action that would be triggered as a result reachability and the action that would be triggered as a result
are outside the scope of this document. are outside the scope of this document; the action MAY include
logging an error.
o Relating to above bullet item, it is critical for an o Relating to above bullet item, it is critical for an
implementation to understand the latency to/from the reflector BFD implementation to understand the latency to/from the reflector BFD
session on the responder. In other words, for very first S-BFD session on the responder. In other words, for very first S-BFD
packet transmitted by the SBFDInitiator, an implementation MUST packet transmitted by the SBFDInitiator, an implementation MUST
NOT expect response S-BFD packet to be received for time NOT expect response S-BFD packet to be received for time
equivalent to sum of latencies: initiator to responder and equivalent to sum of latencies: initiator to responder and
responder back to initiator. responder back to initiator.
o If the SBFDInitiator receives an S-BFD control packet with Demand o If the SBFDInitiator receives an S-BFD control packet with Demand
(D) bit set, the packet MUST be discarded. (D) bit set, the packet MUST be discarded (see Appendix A).
7.4. Diagnostic Values 7.4. Diagnostic Values
Diagnostic value in both directions MAY be set to a certain value, to Diagnostic value in both directions MAY be set to a certain value, to
attempt to communicate further information to both ends. attempt to communicate further information to both ends.
Implementation MAY use already existing diagnostic values defined in Implementation MAY use already existing diagnostic values defined in
Section 4.1 of [RFC5880]. However, details of such are outside the Section 4.1 of [RFC5880]. However, details of such are outside the
scope of this specification. scope of this specification.
7.5. The Poll Sequence 7.5. The Poll Sequence
skipping to change at page 15, line 21 skipping to change at page 15, line 21
SBFDReflector using procedures described in Section 7.2.3 and setting SBFDReflector using procedures described in Section 7.2.3 and setting
the Poll (P) bit in the reflected S-BFD control packet. The the Poll (P) bit in the reflected S-BFD control packet. The
SBFDInitiator is to then send the next S-BFD control packet with the SBFDInitiator is to then send the next S-BFD control packet with the
Final (F) bit set. If an SBFDReflector receives an S-BFD control Final (F) bit set. If an SBFDReflector receives an S-BFD control
packet with Poll (P) bit set, then the SBFDReflector MUST respond packet with Poll (P) bit set, then the SBFDReflector MUST respond
with an S-BFD control packet with Poll (P) bit cleared and Final (F) with an S-BFD control packet with Poll (P) bit cleared and Final (F)
bit set. bit set.
8. Operational Considerations 8. Operational Considerations
S-BFD provides a smooth and continuous operational experience as a S-BFD provides a smooth and continuous (i.e., seamless) operational
failure detection mechanism. This is achieved by providing a experience as an Operations, Administration, and Maintenance (OAM)
simplified mechanism with large portions of negotiation aspects mechanism for connectivity check and connection verification. This
eliminated, resulting in a faster and simpler provisioning. is achieved by providing a simplified mechanism with large portions
of negotiation aspects eliminated, resulting in a faster and simpler
provisioning.
Because of this simplified mechanism, due to a misconfiguration, an
SBFDInitiator could send S-BFD control packets to a target that does
not exist or that is outside the S-BFD administrative domain. As
explained in Section 7.3.1, an SBFDInitiator can be a "persistent"
initiator or a "when needed" one. When an S-BFD "persistent"
SBFDInitiator is used, it SHOULD be controlled that S-BFD control
packet do not propagate for an extended period of time outside of the
administrative domain that uses it. Further, operational measures
SHOULD be taken to identify if S-BFD packets are not responded to for
an extended period of time, and remediate the situation. These
potential concerns are largely mitigated by dynamic advertisement
mechanisms for S-BFD, and with automation checks before applying
configurations.
8.1. Scaling Aspect 8.1. Scaling Aspect
This mechanism brings forth one noticeable difference in terms of This mechanism brings forth one noticeable difference in terms of
scaling aspect: number of SBFDReflector. This specification scaling aspect: number of SBFDReflector. This specification
eliminates the need for egress nodes to have fully active BFD eliminates the need for egress nodes to have fully active BFD
sessions when only one side desires to perform continuity tests. sessions when only one side desires to perform continuity tests.
With introduction of reflector BFD concept, egress no longer is With introduction of reflector BFD concept, egress no longer is
required to create any active BFD session per path/LSP/function required to create any active BFD session per path/LSP/function
basis. Due to this, total number of BFD sessions in a network is basis. Due to this, total number of BFD sessions in a network is
skipping to change at page 17, line 22 skipping to change at page 17, line 38
11. Security Considerations 11. Security Considerations
Same security considerations as [RFC5880] apply to this document. Same security considerations as [RFC5880] apply to this document.
Additionally, implementing the following measures will strengthen Additionally, implementing the following measures will strengthen
security aspects of the mechanism described by this document: security aspects of the mechanism described by this document:
o SBFDInitiator MAY pick a sequence number to be set in "sequence o SBFDInitiator MAY pick a sequence number to be set in "sequence
Number" in authentication section based on authentication mode Number" in authentication section based on authentication mode
configured. configured.
o SBFDReflector MUST NOT look at the crypto sequence number before o SBFDReflector MUST NOT use the crypto sequence number to make a
accepting the packet. decision about accepting the packet. This is because the
SBFDReflector does not maintain S-BFD peer state, and because the
SBFDReflector can receive S-BFD packets from multiple
SBFDInitiators. Consequently, BFD authentication can be used but
not the sequence number.
o SBFDReflector MAY look at the Auth Key ID in the incoming packet o SBFDReflector MAY use the Auth Key ID in the incoming packet to
and verify the authentication data. verify the authentication data.
o SBFDReflector MUST accept the packet if authentication is o SBFDReflector MUST accept the packet if authentication is
successful. successful.
o SBFDReflector MUST compute the Authentication data and MUST use o SBFDReflector MUST compute the Authentication data and MUST use
the same sequence number that it received in the S-BFD control the same sequence number that it received in the S-BFD control
packet that it is responding to. packet that it is responding to.
o SBFDInitiator SHOULD accept S-BFD control packet with sequence o SBFDInitiator SHOULD accept S-BFD control packet with sequence
number within permissible window. One potential approach is the number within permissible window. One potential approach is the
skipping to change at page 17, line 52 skipping to change at page 18, line 26
o SBFDReflector are not susceptible to replay attacks as they always o SBFDReflector are not susceptible to replay attacks as they always
respond to S-BFD control packets irrespective of the sequence respond to S-BFD control packets irrespective of the sequence
number carried. number carried.
o An attacker cannot impersonate the responder since the o An attacker cannot impersonate the responder since the
SBFDInitiator will only accept S-BFD control packets that come SBFDInitiator will only accept S-BFD control packets that come
with the sequence number that it had originally used when sending with the sequence number that it had originally used when sending
the S-BFD control packet. the S-BFD control packet.
Additionally, the use of strong forms of authentication is strongly
encouraged for S-BFD. The use of Simple Password authentication
potentially puts other services at risk, if S-BFD packets can be
intercepted and if those password values are reused for other
services.
Considerations about loop problems are covered in Appendix A. Considerations about loop problems are covered in Appendix A.
12. IANA Considerations 12. IANA Considerations
No action is required by IANA for this document. No action is required by IANA for this document.
13. Acknowledgements 13. Acknowledgements
Authors would like to thank Jeffrey Haas, Greg Mirsky, Marc Authors would like to thank Jeffrey Haas, Greg Mirsky, Marc
Binderberger, and Alvaro Retana for performing thorough reviews and Binderberger, and Alvaro Retana for performing thorough reviews and
providing number of suggestions. Authors would like to thank Girija providing number of suggestions. Authors would like to thank Girija
Raghavendra Rao, Les Ginsberg, Srihari Raghavan, Vanitha Neelamegam Raghavendra Rao, Les Ginsberg, Srihari Raghavan, Vanitha Neelamegam
and Vengada Prasad Govindan from Cisco Systems for providing valuable and Vengada Prasad Govindan from Cisco Systems for providing valuable
comments. Authors would also like to thank John E. Drake and Pablo comments. Authors would also like to thank John E. Drake and Pablo
Frank for providing comments and suggestions. Frank for providing comments and suggestions.
14. Contributing Authors 14. Contributors
Tarek Saad
Cisco Systems
Email: tsaad@cisco.com
Siva Sivabalan
Cisco Systems
Email: msiva@cisco.com
Nagendra Kumar The following are key contributors to this document:
Cisco Systems
Email: naikumar@cisco.com
Mallik Mudigonda Tarek Saad, Cisco Systems, Inc.
Cisco Systems
Email: mmudigon@cisco.com
Sam Aldrin Siva Sivabalan, Cisco Systems, Inc.
Google Nagendra Kumar, Cisco Systems, Inc.
Email: aldrin.ietf@gmail.com Mallik Mudigonda, Cisco Systems, Inc.
Sam Aldrin, Google
15. References 15. References
15.1. Normative References 15.1. Normative References
[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,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
skipping to change at page 19, line 15 skipping to change at page 19, line 33
15.2. Informative References 15.2. Informative References
[I-D.ietf-bfd-generic-crypto-auth] [I-D.ietf-bfd-generic-crypto-auth]
Bhatia, M., Manral, V., Zhang, D., and M. Jethanandani, Bhatia, M., Manral, V., Zhang, D., and M. Jethanandani,
"BFD Generic Cryptographic Authentication", draft-ietf- "BFD Generic Cryptographic Authentication", draft-ietf-
bfd-generic-crypto-auth-06 (work in progress), April 2014. bfd-generic-crypto-auth-06 (work in progress), April 2014.
[I-D.ietf-bfd-seamless-ip] [I-D.ietf-bfd-seamless-ip]
Akiya, N., Pignataro, C., and D. Ward, "Seamless Akiya, N., Pignataro, C., and D. Ward, "Seamless
Bidirectional Forwarding Detection (S-BFD) for IPv4, IPv6 Bidirectional Forwarding Detection (S-BFD) for IPv4, IPv6
and MPLS", draft-ietf-bfd-seamless-ip-03 (work in and MPLS", draft-ietf-bfd-seamless-ip-04 (work in
progress), February 2016. progress), April 2016.
[I-D.ietf-bfd-seamless-use-case] [I-D.ietf-bfd-seamless-use-case]
Aldrin, S., Bhatia, M., Matsushima, S., Mirsky, G., and N. Aldrin, S., Pignataro, C., Mirsky, G., and N. Kumar,
Kumar, "Seamless Bidirectional Forwarding Detection (BFD) "Seamless Bidirectional Forwarding Detection (S-BFD) Use
Use Case", draft-ietf-bfd-seamless-use-case-04 (work in Cases", draft-ietf-bfd-seamless-use-case-06 (work in
progress), March 2016. progress), April 2016.
[I-D.ietf-pals-seamless-vccv]
Govindan, V. and C. Pignataro, "Seamless BFD for VCCV",
draft-ietf-pals-seamless-vccv-03 (work in progress), April
2016.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791,
DOI 10.17487/RFC0791, September 1981, DOI 10.17487/RFC0791, September 1981,
<http://www.rfc-editor.org/info/rfc791>. <http://www.rfc-editor.org/info/rfc791>.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460, (IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460,
December 1998, <http://www.rfc-editor.org/info/rfc2460>. December 1998, <http://www.rfc-editor.org/info/rfc2460>.
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
Label Switching Architecture", RFC 3031, Label Switching Architecture", RFC 3031,
DOI 10.17487/RFC3031, January 2001, DOI 10.17487/RFC3031, January 2001,
<http://www.rfc-editor.org/info/rfc3031>. <http://www.rfc-editor.org/info/rfc3031>.
Appendix A. Loop Problem Appendix A. Loop Problem and Solution
Consider a scenario where we have two nodes and both are S-BFD Consider a scenario where we have two nodes and both are S-BFD
capable. capable.
Node A (IP 2001:db8::1) ----------------- Node B (IP 2001:db8::2) Node A (IP 2001:db8::1) ----------------- Node B (IP 2001:db8::2)
| |
| |
Man in the Middle (MiM) Man in the Middle (MiM)
Assume node A reserved a discriminator 0x01010101 for target Assume node A reserved a discriminator 0x01010101 for target
skipping to change at page 20, line 18 skipping to change at page 20, line 43
swap the discriminators and IP addresses of the received packet and swap the discriminators and IP addresses of the received packet and
reflect it back, since YourDisc of the received packet matched with reflect it back, since YourDisc of the received packet matched with
reserved discriminator of Node B. The reflected packet that reached reserved discriminator of Node B. The reflected packet that reached
Node A will have MyDdisc=0x02020202 and YourDisc=0x01010101. Since Node A will have MyDdisc=0x02020202 and YourDisc=0x01010101. Since
YourDisc of the received packet matched the reserved discriminator of YourDisc of the received packet matched the reserved discriminator of
Node A, Node A will swap the discriminators and reflects the packet Node A, Node A will swap the discriminators and reflects the packet
back to Node B. Since reflectors must set the TTL of the reflected back to Node B. Since reflectors must set the TTL of the reflected
packets to 255, the above scenario will result in an infinite loop packets to 255, the above scenario will result in an infinite loop
with just one malicious packet injected from MiM. with just one malicious packet injected from MiM.
FYI: Packet fields do not carry any direction information, i.e., if The solution to avoid the loop problem uses the "D" bit (Demand mode
this is Ping packet or reply packet. bit). The Initiator always sets the 'D' bit and the reflector always
clears it. This way we can identify if a received packet was a
Solutions reflected packet and avoid reflecting it back.
The current proposals to avoid the loop problem are:
o Overload "D" bit (Demand mode bit): Initiator always sets the 'D'
bit and reflector clears it. This way we can identify if a
received packet was a reflected packet and avoid reflecting it
back. However this changes the interpretation of 'D' bit.
o Use of State field in the BFD control packets: Initiator will
always send packets with State set to DOWN and reflector will send
back packets with state field set to UP. Reflectors will never
reflect any received packets with state as UP. However the only
issue is the use of state field differently i.e., state in the
S-BFD control packet from initiator does not reflect the local
state which is anyway not significant at reflector.
o Use of local discriminator as My Disc at reflector: Reflector will
always fill in My Discriminator with a locally allocated
discriminator value (not reserved discriminators) and will not
copy it from the received packet.
Authors' Addresses Authors' Addresses
Nobo Akiya Nobo Akiya
Big Switch Networks Big Switch Networks
Email: nobo.akiya.dev@gmail.com Email: nobo.akiya.dev@gmail.com
Carlos Pignataro Carlos Pignataro
Cisco Systems Cisco Systems, Inc.
Email: cpignata@cisco.com Email: cpignata@cisco.com
Dave Ward Dave Ward
Cisco Systems Cisco Systems, Inc.
Email: wardd@cisco.com Email: wardd@cisco.com
Manav Bhatia Manav Bhatia
Ionos Networks Ionos Networks
Email: manav@ionosnetworks.com Email: manav@ionosnetworks.com
Santosh Pallagatti Santosh Pallagatti
 End of changes. 44 change blocks. 
120 lines changed or deleted 124 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/