- Read Me First
- Introduction to Segment Routing
- Segment Routing With IS-IS v4 Node SID
- IS-IS Link-protection Topology Independent Loop Free Alternate Fast Reroute
- Segment Routing Traffic Engineering With IS-IS
- Segment Routing With OSPFv2 Node SID
- OSPFv2 Link-protection Topology Independent Loop Free Alternate Fast Reroute
- Segment Routing Traffic Engineering With OSPF
- BGP Dynamic Segment Routing Traffic Engineering
- Segment Routing On Demand Next Hop for L3/L3VPN
- Routing Information Base Support
- SR-TE On Demand LSP
- Segment Routing MPLS OAM Support
- Using Seamless BFD and SSPF with Segment Routing
- Dynamic PCC
- ISIS - SR: uLoop Avoidance
- BGP - SR: BGP Prefix SID Redistribution
- Restrictions For Using Seamless BFD and SSPF with Segment Routing
- Information About Seamless BFD and SSPF with Segment Routing
- How to Configure Seamless BFD and SSPF with Segment Routing
- Configuring Seamless-Bidirectional Forwarding Detection (S-BFD) for Segment Routing
- Configuring Strict Shortest Path First (SPF)
Using Seamless BFD and SSPF with Segment Routing
The Segment Routing TE feature provides information support for the following on segment routing: Seamless Bidirectional Forwarding Detection (S-BFD) and Strict Shortest Path First (SPF).
- Restrictions For Using Seamless BFD and SSPF with Segment Routing
- Information About Seamless BFD and SSPF with Segment Routing
- How to Configure Seamless BFD and SSPF with Segment Routing
- Additional References for Seamless BFD and SSPF with Segment Routing
- Feature Information for Seamless BFD and SSPF with Segment Routing
Restrictions For Using Seamless BFD and SSPF with Segment Routing
Restrictions for Seamless-Birdirectional Forwarding (S-BFD)
Seamless-Birdirectional Forwarding (S-BFD) supporting IPv4 only for segment routing traffic engineering (SR-TE). IPv6 is not supported.
-
Single hop S-BFD session is only supported.
-
SR-TE does not support BFD.
-
S-BFD does not support TE-RSVP.
Information About Seamless BFD and SSPF with Segment Routing
Bidirectional Forwarding Detection and Seamless-Bidirectional Forwarding Detection (S-BFD)
Bidirectional Forwarding Detection (BFD) is a detection protocol designed to provide fast forwarding path failure detection times for all media types, encapsulations, topologies, and routing protocols.
BFD provides a consistent failure detection method for network administrators, in addition to fast forwarding path failure detection. Because the network administrator can use BFD to detect forwarding path failures at a uniform rate, rather than the variable rates for different routing protocol hello mechanisms, network profiling and planning will be easier, and reconvergence time will be consistent and predictable.
Seamless Bidirectional Forwarding Detection (S-BFD), is a simplified mechanism for using BFD with a large proportion of negotiation aspects eliminated, thus providing benefits such as quick provisioning, as well as improved control and flexibility for network nodes initiating path monitoring.
If SBFD session fails, S-BFD brings down the SR-TE session. S-BFD also provides faster session bring up due to less control packets exchange. S-BFD is associated with SR-TE to bring a session up quickly. The BFD state is only maintained at head end thereby reducing overhead.
S-BFD implements support for RFC 7880, RFC 7881 on segment routing.
Initiators and Reflectors
SBFD runs in an asymmetric behavior, using initiators and reflectors. The following figure illustrates the roles of an SBFD initiator and reflector.
The initiator is an SBFD session on a network node that performs a continuity test to a remote entity by sending SBFD packets. The initiator injects the SBFD packets into the segment-routing traffic-engineering (SRTE) policy. The initiator triggers the SBFD session and maintains the BFD state and client context.
The reflector is an SBFD session on a network node that listens for incoming SBFD control packets to local entities and generates response SBFD control packets. The reflector is stateless and only reflects the SBFD packets back to the initiator.
A node can be both an initiator and a reflector, thereby allowing you to configure different SBFD sessions.
S-BFD can be enabled and supported for SR-TE IPv4, but IPv6 is not supported. For SR-TE, S-BFD control packets are label switched in forward and reverse direction. For S-BFD, the tail end is the reflector node. Other nodes cannot be a reflector. When using S-BFD with SR-TE, if the forward and return directions are label switched paths, S-BFD need not be configured on the reflector node.
Strict Shortest Path First
In segment routing tunnels, the traffic is subject to next hop by hop routing. Nodes in the tunnel path are unaware of the tunnel existence and hence, backup paths on the midpoint nodes may route the tunnel traffic back to the tunnel head. This results in a situation where the traffic reenters the tunnel head causing a loop. This could also happen with explicit SR-TE tunnels using segments with link metrics forcing the traffic back to the tunnel head.
In previous releases of segment routing, this situation was prevented by allowing IP traffic on the SR-TE tunnel and MPLS traffic on interior gateway protocol (IGP) shortest path. In Cisco IOS XE Everest 16.6.1, loop formation is prevented via the Strict Shortest Path First (SPF) feature.
The label stack representing the SR-TE tunnel consists of strict SPF segment identifiers (SID) and adjacency SIDs only. Strict Shortest Path First traffic is not routed back the SR-TE tunnel.
The Strict Shortest Path First feature requires all nodes in an area or in the IGP domain to advertise and program the forwarding for both SIDs. The Strict Shortest Path First also requires installing backup paths for both SIDs, advertising the support for Strict SPF SID, and using Strict SPF SIDs for adjacency protection. The Strict Shortest Path First feature applies to SR TE tunnels that are enabled with explicit path option, SR TE tunnels configured with dynamic path option are not subject to traffic loop.
The following figure shows a topology with Strict Shortest Path First.
Approaches for Configure Strict Shortest Path First
The two approaches to configure Strict SFP are as follows:
-
Using the connect-prefix-sid-map command—Strict SFP is configured globally on all the nodes. For a network to be Strict SFP-aware (that is, for ISIS to populate Strict SPF), all nodes must be configured with a local Strict SFP SID.
-
Using Segment-routing Mapping Server—One node in the network is configured as mapping server and the remaining nodes act as a client.
How to Configure Seamless BFD and SSPF with Segment Routing
Configuring Seamless-Bidirectional Forwarding Detection (S-BFD) for Segment Routing
S-BFD must be enabled on both initiator and reflector nodes.
Note | When using S-BFD with SR-TE, if the forward and return directions are label switched paths, S-BFD need not be configured on the reflector node. |
- Enabling Seamless Bidirectional Forwarding Detection (S-BFD) on the Reflector Node
- Enabling Seamless Bidirectional Forwarding Detection (S-BFD) on the Initiator Node
- Enabling Segment Routing Traffic Engineering Tunnel with Seamless-Bidirectional Forwarding (S-BFD)
- Verifying S-BFD Configuration
Enabling Seamless Bidirectional Forwarding Detection (S-BFD) on the Reflector Node
Perform this task to configure S-BFD on the reflector node.
sbfd local-discriminator 55.55.55.55
Enabling Seamless Bidirectional Forwarding Detection (S-BFD) on the Initiator Node
Perform this task to configure S-BFD on the initiator node.
bfd-template single-hop ABC interval min-tx 300 min-rx 300 multiplier 10
Enabling Segment Routing Traffic Engineering Tunnel with Seamless-Bidirectional Forwarding (S-BFD)
interface Tunnel56 ip unnumbered Loopback11 tunnel mode mpls traffic-eng tunnel destination 55.55.55.55 */IP address of Reflector node/* tunnel mpls traffic-eng path-option 1 dynamic segment-routing tunnel mpls traffic-eng bfd sbfd ABC ! end
Verifying S-BFD Configuration
1.
show mpls traffic-engineering tunnel
tunnel-name
2.
show bfd neighbors
DETAILED STEPS
Step 1 | show mpls traffic-engineering tunnel
tunnel-name Verifies the SR TE state and the S-BFD session state. Example: Router# sh mpls traffic-eng tunnel tunnel 56 Name: R1_t56 (Tunnel56) Destination: 55.55.55.55 Status: Admin: up Oper: up Path: valid Signalling: connected path option 1, (SEGMENT-ROUTING) type dynamic (Basis for Setup, path weight 12) Config Parameters: Bandwidth: 0 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF Metric Type: TE (default) Path Selection: Protection: any (default) Path-selection Tiebreaker: Global: not set Tunnel Specific: not set Effective: min-fill (default) Hop Limit: disabled Cost Limit: disabled Path-invalidation timeout: 10000 msec (default), Action: Tear AutoRoute: disabled LockDown: disabled Loadshare: 0 [0] bw-based auto-bw: disabled Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No SBFD configured with template: ABC Session type: CURRENT State: UP SBFD handle: 0x3 LSP ID: 1 Last uptime duration: 3 minutes, 35 seconds Last downtime duration: -- Active Path Option Parameters: State: dynamic path option 1 is active BandwidthOverride: disabled LockDown: disabled Verbatim: disabled Node Hop Count: 2 History: Tunnel: Time since created: 4 minutes, 3 seconds Number of LSP IDs (Tun_Instances) used: 1 Current LSP: [ID: 1] Uptime: 3 minutes, 36 seconds Tun_Instance: 1 Segment-Routing Path Info (isis level-2) Segment0[Link]: 12.12.12.1 - 12.12.12.2, Label: 48 Segment1[Link]: 25.25.25.2 - 25.25.25.5, Label: 35 ! |
Step 2 | show bfd neighbors Verifies that BFD neighbors are established properly. Example: Router# show bfd neighbors MPLS-TE SR Sessions Interface LSP ID(Type) LD/RD RH/RS State Tunnel56 1 (SR) 4097/926365495 Up Up |
Configuring Strict Shortest Path First (SPF)
Enabling Strict Shortest Path First Using the connect-prefix-sid-map command
Enabling Shortest Path First on a Provider-Edge Device
When enabling Strict Shortest Path First using the connect-prefix-sid-map command, the Strict Shortest Path First (SPF) must be configured on the provider-edge device first and then on the node devices. The following is a sample configuration code snippet to enable Strict Shortest Path First on a provider-edge device.
segment-routing mpls set-attributes address-family ipv4 sr-label-preferred exit-address-family connected-prefix-sid-map address-family ipv4 10.10.10.10/32 index 100 range 1 exit-address-family address-family ipv4 strict-spf 10.10.10.10/32 index 1000 range 1 ------------------configure strict SPF locally exit-address-family
Enabling Shortest Path First on a Node Device
The following is a sample configuration code snippet to enable Strict Shortest Path First on a node in the network and must be enabled on all nodes in a network.
segment-routing mpls set-attributes address-family ipv4 sr-label-preferred exit-address-family connected-prefix-sid-map address-family ipv4 20.20.20.20/32 index 110 range 1 exit-address-family address-family ipv4 strict-spf 20.20.20.20/32 index 1100 range 1 exit-address-family
Enabling Strict Shortest Path First Using Segment Routing Mapping Server
Configuring a Node as Segment Routing Mapping Server
The following is a sample configuration code snippet to configure a node as Segment Routing Mapping Server.
segment-routing mpls set-attributes address-family ipv4 sr-label-preferred exit-address-family mapping-server prefix-sid-map address-family ipv4 10.10.10.10/32 index 100 range 1 20.20.20.20/32 index 110 range 1 30.30.30.30/32 index 120 range 1 40.40.40.40/32 index 130 range 1 50.50.50.50/32 index 140 range 1 exit-address-family address-family ipv4 strict-spf 10.10.10.10/32 index 1000 range 1 20.20.20.20/32 index 1100 range 1 30.30.30.30/32 index 1200 range 1 40.40.40.40/32 index 1300 range 1 50.50.50.50/32 index 1400 range 1 100.100.100.100/32 index 2000 range 1 exit-address-family
Configuring the Segment Routing Mapping Server to Advertise and Receive Local Prefixes
The following is a sample configuration code snippet to configure a Segment Routing Mapping Server to advertise and receive local prefixes.
router isis SR segment-routing mpls segment-routing prefix-sid-map advertise-local segment-routing prefix-sid-map receive
Verifying ISIS Advertises the SIDs
The following is a sample configuration code snippet to verify that ISIS advertises the SIDs.
Router# show isis segment-routing prefix-sid-map advertise strict-spf Tag SR: IS-IS Level-1 advertise prefix-sid maps: Prefix SID Index Range Flags 10.10.10.10/32 1000 1 20.20.20.20/32 1100 1 30.30.30.30/32 1200 1 40.40.40.40/32 1300 1 50.50.50.50/32 1400 1 100.100.100.100/32 2000 1 Tag SR: IS-IS Level-2 advertise prefix-sid maps: Prefix SID Index Range Flags 10.10.10.10/32 1000 1 20.20.20.20/32 1100 1 30.30.30.30/32 1200 1 40.40.40.40/32 1300 1 50.50.50.50/32 1400 1 100.100.100.100/32 2000 1
The following is a sample configuration code snippet to verify that a provider-edge device receives Strict Shortest Path First SID from SRMS Server.
Router# show isis segment-routing prefix-sid-map receive strict-spf Tag SR: IS-IS Level-1 receive prefix-sid maps: Host Prefix SID Index Range Flags P1 10.10.10.10/32 1000 1 20.20.20.20/32 1100 1 30.30.30.30/32 1200 1 40.40.40.40/32 1300 1 50.50.50.50/32 1400 1 100.100.100.100/32 2000 1 Tag SR: IS-IS Level-2 receive prefix-sid maps: Host Prefix SID Index Range Flags P1 10.10.10.10/32 1000 1 20.20.20.20/32 1100 1 30.30.30.30/32 1200 1 40.40.40.40/32 1300 1 50.50.50.50/32 1400 1 100.100.100.100/32 2000 1
Configuring SR-TE Tunnel
The following is a sample configuration code snippet to configure hop by hop SR-TE path tunnel and SR-TE tunnel.
ip explicit-path name SR enable next-address 20.20.20.20 next-address 30.30.30.30 next-address 40.40.40.40 next-address 50.50.50.50
The following is a sample configuration code snippet to configure SR-TE tunnel.
interface Tunnel1 ip unnumbered Loopback0 tunnel mode mpls traffic-eng tunnel destination 50.50.50.50 tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng priority 7 7 tunnel mpls traffic-eng bandwidth 200 tunnel mpls traffic-eng path-option 10 explicit name SR segment-routing
Disabling Strict Shortest Path First Using the connect-prefix-sid-map command
If you have configured Strict Shortest Path First via the connect-prefix-sid-map command method and want to use the Strict Shortest Path First using the Segment Routing Mapping Server, you must disable configuration via the no connect-prefix-sid-map command.
Verifying Strict Shortest Path First Configuration
1.
show isis segment-routing
2. Verifies that Strict Shortest Path First segment identifier labels are populated in the traffic engineering database.
3. Verifies that the segment routing traffic engineering tunnel uses Strict Shortest Path First segment identifier to establish tunnels.
4. Verifies that the network is Strict Shortest Path First capable via the traceroute command.
DETAILED STEPS
Step 1 | show isis segment-routing Verifies that the network is Strict SID capable.
Example: Router# show isis segment-routing ISIS protocol is registered with MFI ISIS MFI Client ID:0x63 Tag SR - Segment-Routing: SR State:SR_ENABLED Number of SRGB:1 SRGB Start:16000, Range:8000, srgb_handle:0x7FD14D47DEE0, srgb_state: created Address-family IPv4 unicast SR is configured Operational state:Enabled Maximum encapsulation labels for SR tunnel: 13 Level-1 is strict-spf capabled Level-2 is strict-spf capabled Prefix-sid-map receive is enabled Advertise local is enabled Explicit null is disabled SR label preferred is enabled Verifies that the Strict SID labels are populated in the MPLS Forwarding Table (LFIB).
Example: Router# show mpls forwarding-table Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 16 Pop Label 1.1.1.2-A 0 Et0/0 1.1.1.2 17 Pop Label 1.1.1.2-A 0 Et0/0 1.1.1.2 18 Pop Label 1.1.1.2-A 0 Et0/0 1.1.1.2 19 Pop Label 15.15.15.2-A 0 Et0/1 15.15.15.2 20 Pop Label 15.15.15.2-A 0 Et0/1 15.15.15.2 21 Pop Label 15.15.15.2-A 0 Et0/1 15.15.15.2 22 [T] Pop Label 1/1[TE-Bind] 0 Tu1 point2point 16110 Pop Label 20.20.20.20/32 0 Et0/0 1.1.1.2 16120 16120 30.30.30.30/32 0 Et0/0 1.1.1.2 16130 16130 40.40.40.40/32 0 Et0/0 1.1.1.2 [T] 16130 40.40.40.40/32 0 Tu1 point2point 16140 [T] Pop Label 50.50.50.50/32 0 Tu1 point2point 16200 Pop Label 100.100.100.100/32 \ 0 Et0/1 15.15.15.2 17100 Pop Label 0-20.20.20.20/32-0 \ 0 Et0/0 1.1.1.2 17200 17200 0-30.30.30.30/32-0 \ 0 Et0/0 1.1.1.2 17300 17300 0-40.40.40.40/32-0 \ 0 Et0/1 15.15.15.2 17400 17400 0-50.50.50.50/32-0 \ 0 Et0/1 15.15.15.2 18000 Pop Label 0-100.100.100.100/32-0 \ 0 Et0/1 15.15.15.2 [T] Forwarding through a LSP tunnel. View additional labelling info with the 'detail' option A - Adjacency SID |
Step 2 |
Verifies that Strict Shortest Path First segment identifier labels are populated in the traffic engineering database. Example: Router# show mpls traffic-engineering segment-routing summary IGP Area[1]: isis level-1, Strict SPF Enabled: Nodes: IGP Id: 0010.0100.1001.00, MPLS TE Id: 10.10.10.10, ISIS level-1 2 links with segment-routing adjacency SID IGP Id: 0020.0200.2002.00, MPLS TE Id: 20.20.20.20, ISIS level-1 2 links with segment-routing adjacency SID IGP Id: 0030.0300.3003.00, MPLS TE Id: 30.30.30.30, ISIS level-1 2 links with segment-routing adjacency SID IGP Id: 0040.0400.4004.00, MPLS TE Id: 40.40.40.40, ISIS level-1 2 links with segment-routing adjacency SID IGP Id: 0050.0500.5005.00, MPLS TE Id: 50.50.50.50, ISIS level-1 2 links with segment-routing adjacency SID IGP Id: 0060.0600.6006.00, MPLS TE Id: 100.100.100.100, ISIS level-1 2 links with segment-routing adjacency SID Prefixes: 10.10.10.10/32, SID index: 100, Strict SID index: 1000 20.20.20.20/32, SID index: 110, Strict SID index: 1100 30.30.30.30/32, SID index: 120, Strict SID index: 1200 40.40.40.40/32, SID index: 130, Strict SID index: 1300 50.50.50.50/32, SID index: 140, Strict SID index: 1400 100.100.100.100/32, SID index: 200, Strict SID index: 2000 Total: Node Count : 6 Adjacency-SID Count: 12 Prefix-SID Count : 6 IGP Area[2]: isis level-2, Strict SPF Enabled: Nodes: IGP Id: 0010.0100.1001.00, MPLS TE Id: 10.10.10.10, ISIS level-2 2 links with segment-routing adjacency SID IGP Id: 0020.0200.2002.00, MPLS TE Id: 20.20.20.20, ISIS level-2 2 links with segment-routing adjacency SID IGP Id: 0030.0300.3003.00, MPLS TE Id: 30.30.30.30, ISIS level-2 2 links with segment-routing adjacency SID IGP Id: 0040.0400.4004.00, MPLS TE Id: 40.40.40.40, ISIS level-2 2 links with segment-routing adjacency SID IGP Id: 0050.0500.5005.00, MPLS TE Id: 50.50.50.50, ISIS level-2 2 links with segment-routing adjacency SID IGP Id: 0060.0600.6006.00, MPLS TE Id: 100.100.100.100, ISIS level-2 2 links with segment-routing adjacency SID Prefixes: 10.10.10.10/32, SID index: 100 Total: Node Count : 6 Adjacency-SID Count: 24 Prefix-SID Count : 1 Grand Total: Node Count : 12 Adjacency-SID Count: 36 Prefix-SID Count : 7 IGP Areas Count : 2 |
Step 3 |
Verifies that the segment routing traffic engineering tunnel uses Strict Shortest Path First segment identifier to establish tunnels. Example: Router1# show mpls traffic-engineering tunnels tunnel 1 Name: PE1_t1 (Tunnel1) Destination: 50.50.50.50 Status: Admin: up Oper: up Path: valid Signalling: connected path option 10, (SEGMENT-ROUTING) type explicit SR (Basis for Setup) Config Parameters: Bandwidth: 200 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF Metric Type: TE (default) Path Selection: Protection: any (default) Path-selection Tiebreaker: Global: not set Tunnel Specific: not set Effective: min-fill (default) Hop Limit: disabled [ignore: Explicit Path Option with all Strict Hops] Cost Limit: disabled Path-invalidation timeout: 10000 msec (default), Action: Tear AutoRoute: enabled LockDown: disabled Loadshare: 200 [10000000] bw-based auto-bw: disabled Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No Active Path Option Parameters: State: explicit path option 10 is active BandwidthOverride: disabled LockDown: disabled Verbatim: disabled History: Tunnel: Time since created: 22 seconds Time since path change: 21 seconds Number of LSP IDs (Tun_Instances) used: 1 Current LSP: [ID: 1] Uptime: 21 seconds Tun_Instance: 1 Segment-Routing Path Info (isis level-1), Strict Segment0[Node]: 20.20.20.20, Label: 17100 Segment1[Node]: 30.30.30.30, Label: 17200 Segment2[Node]: 40.40.40.40, Label: 17300 Segment3[Node]: 50.50.50.50, Label: 17400 |
Step 4 |
Verifies that the network is Strict Shortest Path First capable via the traceroute command.
Example: Router# traceroute 50.50.50.50 Type escape sequence to abort. Tracing the route to 50.50.50.50 VRF info: (vrf in name/id, vrf out name/id) 1 1.1.1.2 [MPLS: Labels 17200/17300/17400 Exp 0] 1 msec 1 msec 1 msec 2 2.2.2.2 [MPLS: Labels 17300/17400 Exp 0] 1 msec 1 msec 1 msec 3 3.3.3.2 [MPLS: Label 17400 Exp 0] 1 msec 1 msec 1 msec 4 4.4.4.2 1 msec 2 msec * |
Additional References for Seamless BFD and SSPF with Segment Routing
Related Documents
Related Topic |
Document Title |
---|---|
Cisco IOS commands |
|
Segment Routing Traffic Engineering configuration |
Segment Routing -Traffic Engineering |
Standards and RFC
Standard/RFC |
Title |
---|---|
draft-akiya-bfd-seamless-base-03 |
Seamless Bidirectional Forwarding Detection (S-BFD) |
draft-ietf-isis-segment-routing-extensions-07 |
IS-IS Extensions for Segment Routing |
draft-ietf-spring-segment-routing-09 |
Segment Routing Architecture |
RFC 7880 |
Seamless Bidirectional Forwarding Detection (S-BFD) |
RFC 7881 |
Seamless Bidirectional Forwarding Detection (S-BFD) for IPv4, IPv6, and MPLS |
Feature Information for Seamless BFD and SSPF with Segment Routing
The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Feature Name |
Releases |
Feature Information |
---|---|---|
Segment Routing TE Feature |
Cisco IOS XE Denali 16.4.1 |
The Segment Routing TE feature provides information support for the following on segment routing: Seamless Bidirectional Forwarding Detection (S-BFD) and Strict Shortest Path First (SPF). The following commands were introduced or modified: address-family ipv4 strict-spf, bfd-template single-hop, index range, sbfd local-discriminator, show bfd neighbor, show isis segment-routing, show mpls forwarding-table, show mpls traffic tunnel, show mpls traffic-engineering. |