Seamless Bidirectional Forwarding Detection (BFD) for Segment Routing (SR)
Cisco Systemsnobo@cisco.comCisco Systemscpignata@cisco.comCisco Systemsnaikumar@cisco.com
BFD Working Group
Internet Engineering Task ForceBFDseamless BFDnegotiation freelabel verificationsegment routingIPThis specification defines procedures to use Seamless Bidirectional Forwarding Detection (BFD) in a Segment Routing (SR) based environment.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 RFC 2119.One application for Seamless Bidrectional Forwarding Detection (BFD) [I-D.akiya-bfd-seamless-base] is to perform full reachability validations, partial reachability validations and adjacency segment ID verifications on a Segment Routing (SR) based environment.This specification defines procedures to use Seamless BFD in a SR based environment.BFD target identifier type of value 2 is used for SR. Note that BFD target identifier type of value 2, which specifies segment routing node segment ID, is not tied to a specific routing protocol. If definitions and procedures need routing protocol specifics, then IGP specific SR types will be defined.With SR technology, BFD target identifier type 2 is used. BFD discriminator values corresponding to all or subset of local node segment IDs are to be reserved on corresponding network node. Node segment IDs are used as BFD discriminators. Corresponding BFD discriminators MUST be reserved and those BFD discriminators MUST NOT be used for other BFD sessions.Example:
BFD Target Identifier Type 2: Node segment ID 0x03E9A0FF maps to BFD discriminator 0x03E9A0FF.With SR BFD target identifier type, only locally reserved BFD discriminators and corresponding information are to be in this table. No inter-node communications are needed to exchange BFD discriminator and BFD target identifier mappings.Any SR network node can attempt to perform a full reachability validation to any BFD target identifier of type 2 (node segment ID) on other network nodes, as long as destination BFD target identifier is provisioned to use this mechanism. Transmitted BFD control packet by the initiator is to have "your discriminator" corresponding to destination BFD target identifier of type 2.Initiator is to use following procedures to construct BFD control packets to perform SR full reachability validations:
MUST set "your discriminator" to target node segment ID.MUST use explicit label switching packet format described in [I-D.akiya-bfd-seamless-base].To respond to received BFD control packet which was targeted to local BFD target identifier of type 2 (Segment Routing Node Segment ID), response BFD control packet is targeted to IP address taken from received "source IP address". Responder MUST validate obtained IP address is in valid format (ex: not Martian address). Responder MUST consult local routing table to ensure obtained IP address is reachable. Responder MAY impose node segment ID, corresponding to obtained IP address, on the response BFD control packet.Procedures described in [I-D.akiya-bfd-seamless-base] applies.With target identifier type 2, SR based, when a network node wants to test an adjacency segment ID, then adjacency segment ID (label value + EXP) being tested is encoded as lower 23 bits of localhost IP destination address. When passive BFD session receives a SR BFD control packet with lower 23 bits of IP destination address non-zero, then response will contain adjacency segment ID (label value + EXP) corresponding to incoming interface as lower 23 bits of localhost IP destination address.Simple ASCII art is provided to illustrate the MPLS label verification concept on a SR network.
If a response BFD control packet is received, then initiator can conclude that a packet has reached intended node correctly. With information embedded in last 23 bits of response BFD control packet from responder, initiator has the ability to perform further verifications on how responded node received BFD control packet.Many factors will influence how to provision active BFD sessions on which network nodes. This section provides some provisioning suggestions of active BFD sessions on SR networks. However, they are only suggestions. Less provisioning of active BFD sessions may be required in some cases, or further active BFD sessions may be required in other cases.Traffic engineered segment routing
SR TE LSP has path-protection and no local repairs on transit nodes: Active BFD sessions should be instantiated on the LSP ingress. Instantiated active BFD sessions should perform full reachability validation to all node segment IDs that are immediate nexthop of all adjacency segment IDs used in the LSP. This verifies that strict switching based on adjacency segment IDs is being switched to correct downstream node segment. If multiple links exist on one or more of adjacency points being validated, MPLS label verification technique should also be provisioned to ensure correct link is being traversed. Lastly, full reachability validation should be performed from LSP ingress to LSP egress to verify end-to-end reachability. Fate of the LSP is tied to all active BFD sessions instantiated on LSP ingress.SR TE LSP has local repairs on transit nodes: Active BFD sessions should be instantiated on each local repair points, using combination of full reachability validation technique and MPLS label verification technique. These active sessions are programmed to be one of the triggers of local repair procedures. Lastly, full reachability validation should be performed from LSP ingress to LSP egress to verify end-to-end reachability, but this should be provisioned with more relaxed failure detection count than other active BFD sessions instantiated on transit repair points. Fate of the LSP is tied only to the active BFD session verifying end-to-end reachability on LSP ingress.Single node segment ID data forwarding
In order to protect all data passing through local network using single node segment ID, active BFD sessions can be instantiated on each network edge node to verify full reachability to all other network edge nodes.Additionally, it may be beneficial to provision active BFD sessions on other network nodes (non-edge) for local repair purposes. These network nodes can also instantiate active BFD sessions to desired identifier (edge or non-edge).Same security considerations as , , , , and [I-D.akiya-bfd-seamless-base] apply to this document.NoneAuthors would like to thank Marc Binderberger from Cisco Systems for providing valuable comments.Dave Ward
Cisco Systems
Email: wardd@cisco.comTarek Saad
Cisco Systems
Email: tsaad@cisco.comSiva Sivabalan
Cisco Systems
Email: msiva@cisco.com