Configure Segment Routing Microloop Avoidance

The Segment Routing Microloop Avoidance feature enables link-state routing protocols, such as IS-IS, to prevent or avoid microloops during network convergence after a topology change.

About Segment Routing Microloop Avoidance

Microloops (uLoops) are brief packet loops that occur in the network following a topology change (link down, link up, or metric change events). Microloops are caused by the non-simultaneous convergence of different nodes in the network. If a node converges and sends traffic to a neighbor node that has not converged yet, traffic may be looped between these two nodes, resulting in packet loss, jitter, and out-of-order packets.

A router with the Segment Routing Microloop Avoidance feature detects if microloops are possible following a topology change associated with a remote link event. If a node computes that a microloop could occur on the new topology, the node installs a temporary (based on a RIB update delay timer) microloop-avoidant SR-TE policy path to the destination using a list of segments. After the RIB update delay timer expires, the SR-TE policy is replaced with regular forwarding paths.

Consider the following example topology.

Node1 sends traffic to node 6 (16006) via Node7. Node 7 is configured with TI-LFA to protect traffic to Node6.

If the link between Node7 and Node6 goes down, TI-LFA on Node7 calculates a new path to Node6 (16006). All nodes are notified of the topology change due to the link failure.

However, if a node in this path does not converge fast enough, it would not be aware of the topology change. For example, if Node2 converged before Node3, Node3 would send traffic back to Node2 as the shortest IGP path to Node6. The traffic between Node2 and Node3 creates a microloop.

With microloop avoidance configured on Node1, a post-convergence path is computed and possible microloops on the post-convergence path for any destination are detected.

If microloops are possible on the post-convergence path to Node6, a microloop-avoidant SR-TE policy path is constructed to steer the traffic to Node6 over the post-convergence path (for example, <16005, 24056, 16006>).

Node1 updates the forwarding table and installs the SID-list imposition entries for those destinations with possible microloops, such as Node6. All nodes converge and update their forwarding tables, using SID lists where needed.

After the RIB update delay timer expires, the microloop-avoidant SR-TE policy is replaced with regular forwarding paths; traffic now natively follows the post-convergence path.

Configure Segment Routing Microloop Avoidance for IS-IS

This task describes how to enable Segment Routing Microloop Avoidance and set the Routing Information Base (RIB) update delay value for IS-IS.

Before you begin

Ensure that the following topology requirements are met:

SUMMARY STEPS

  1. configure
  2. router isis instance-id
  3. address-family ipv4 [ unicast ]
  4. microloop avoidance segment-routing
  5. microloop avoidance rib-update-delay delay-time

DETAILED STEPS

  Command or Action Purpose
Step 1

configure

Example:


RP/0/RSP0/CPU0:router# configure

Enters global configuration mode.

Step 2

router isis instance-id

Example:


RP/0/RSP0/CPU0:router(config)# router isis 1

Enables IS-IS routing for the specified routing instance, and places the router in router configuration mode.

You can change the level of routing to be performed by a particular routing instance by using the is-type router configuration command.

Step 3

address-family ipv4 [ unicast ]

Example:


RP/0/RSP0/CPU0:router(config-isis)# address-family ipv4 unicast 

Specifies the IPv4 address family and enters router address family configuration mode.

Step 4

microloop avoidance segment-routing

Example:


RP/0/RSP0/CPU0:router(config-isis-af)# microloop avoidance segment-routing 

Enables Segment Routing Microloop Avoidance.

Step 5

microloop avoidance rib-update-delay delay-time

Example:


RP/0/RSP0/CPU0:router(config-isis-af)# microloop avoidance rib-update-delay 3000 

Specifies the amount of time the node uses the microloop avoidance policy before updating its forwarding table. The delay-time is in milliseconds. The range is from 1-60000. The default value is 5000.

Configure Segment Routing Microloop Avoidance for OSPF

This task describes how to enable Segment Routing Microloop Avoidance and set the Routing Information Base (RIB) update delay value for OSPF.

Before you begin

Ensure that the following topology requirements are met:

SUMMARY STEPS

  1. configure
  2. router ospf process-name
  3. microloop avoidance segment-routing
  4. microloop avoidance rib-update-delay delay-time

DETAILED STEPS

  Command or Action Purpose
Step 1

configure

Example:


RP/0/RSP0/CPU0:router# configure

Enters global configuration mode.

Step 2

router ospf process-name

Example:


RP/0/RSP0/CPU0:router(config)# router ospf 1

Enables OSPF routing for the specified routing process, and places the router in router configuration mode.

Step 3

microloop avoidance segment-routing

Example:


RP/0/RSP0/CPU0:router(config-ospf)# microloop avoidance segment-routing 

Enables Segment Routing Microloop Avoidance.

Step 4

microloop avoidance rib-update-delay delay-time

Example:


RP/0/RSP0/CPU0:router(config-ospf)# microloop avoidance rib-update-delay 3000 

Specifies the amount of time the node uses the microloop avoidance policy before updating its forwarding table. The delay-time is in milliseconds. The range is from 1-60000. The default value is 5000.