Segment Routing over IPv6

Segment Routing over IPv6

Segment Routing over IPv6 (SRv6) in Cisco IoT is a technology that enables source routing of IPv6 traffic by encoding a list of segments or instructions in the IPv6 packet header. This capability allows the source router to define the path that the packet must take through the network. Each segment is represented by an IPv6 address called a Segment Identifier (SID), and the packet carries a Segment Routing Header (SRH) that lists these segments.

Benefits of using SRv6:

  • Operates over the IPv6 data plane and uses the SRH to encode an ordered list of segments that the packet must traverse.

  • Enables network nodes to forward packets based on the active segment present in the destination address field and updates the destination address to the next segment as the packet progresses.

  • Supports network programming by allowing each segment to execute at a node level.

  • Simplifies network operations by removing the need for additional protocol layers like MPLS, which is beneficial for IoT environments requiring scalable and efficient routing.

  • Helps enhance reliability and performance.

  • Used in programmable, scalable, and automated networks, including IoT deployments, by providing end-to-end solutions.

Table 1. Feature History Table

Feature name

Release information

Feature description

Segment Routing over IPv6

Release 26.1.1a

This feature enables source routing of IPv6 traffic by encoding a list of segments or instructions in the IPv6 packet header. This allows the source router to define the path that the packet must take through the network.

Prerequisites

Cisco IOS XE supports micro-Segment Identifier (uSID) with 32-bit uSID block and 16-bit uSID IDs (3216). This format must be used for uSID locators in a SRv6 uSID domain.

Configure SRv6

Follow this procedure to configure SRv6.

Procedure


Step 1

Use the configure terminal command to enter the configuration mode.

Example:

Router#configure terminal

Step 2

Use the segment-routing srv6 command to enable SRv6.

Example:

Router(config)# segment-routing srv6

Step 3

Use the locators command to enable the locators for SRv6.

Example:


Router(config-srv6)# locators

Step 4

Use the locator [locator-name] command for assigning the locator for SRv6.

Example:


Router(config-srv6-locators)# locator locapoke3

Step 5

Use the prefix [subnet-address] command to specify IPv6 prefix for the locator.

Example:

Router(config-srv6-locs-locator)# prefix 2001:0:5::/48

Step 6

Use the format [format-id] command to specify the IS-IS level for SRv6 locator.

Example:

Router(config-srv6-locs-locator)# format usid-f3216

Step 7

Use the end command to save the configuration and exit the privileged EXEC mode.

Example:

Router(config-srv6-locators)# end

What to do next

Verify SRv6 configuration.

Configure SRv6 under IS-IS

Follow this procedure to enable SRv6 under IS-IS IPv6 address family.

Intermediate System-to-Intermediate System (IS-IS) protocol supports segment routing with IPv6 data plane.

SRv6 as part of IS-IS:

  • Interacts with SID Manager to learn local locator prefixes and announces the locator prefixes in the Interior Gateway Protocol (IGP) domain.

  • Learns remote locator prefixes from other IS-IS neighbor routers and installs the learned remote locator IPv6 prefix in Routing Information Base (RIB).

  • Allocates or learns prefix SID and adjacency SIDs, creates local SID entries, and advertises them in the IGP domain.

Procedure


Step 1

Use the configure terminal command to enter the configuration mode.

Example:

Router#configure terminal

Step 2

Use the router isis core command to enable and configure the IS-IS routing protocol on the router.

Example:

Router(config)# router isis core
  1. Use the net [network-area-address-id ] command to define the area address of IS-IS.

    Example:

    Router(config-router)# net 49.0000.0000.0000.0005.00
  2. Use the metric-style wide command to generate the new-style Type-Length-Value (TLV).

    Example:

    Router(config-router)# metric-style wide
  3. Use the lsp-mtu [bytes] command to set the maximum size of link state packets.

    Example:

    Router(config-router)# lsp-mtu 1400

Step 3

Use the address-family ipv6 command to enter the IPv6 unicast address family configuration mode.

Example:

Router(config-router)# address-family ipv6

Step 4

Use the router-id Loopback0 command to enable loopback.

Example:

Router(config-router-af)# router-id Loopback0

Step 5

Use the segment-routing srv6 command to enable SRv6.

Example:

Router(config-router-af)# segment-routing srv6

Step 6

Use the locator [locator-name] command for enabling the locator for SRv6.

Example:


Router(config-isis-af-srv6)# locator locapoke3

Step 7

Use the level 1 command to specify the IS-IS level for SRv6 locator.

Example:

Router(config-isis-af-srv6-locator)# level 1 

Step 8

Use the end command to save the configuration and exit the privileged EXEC mode.

Example:

Router(config-isis-srv6-locator)# end

Verify SRv6

Follow this procedure to verify SRv6 configuration.

Procedure


Step 1

Use the show segment-routing srv6 locator command to verify SRv6 configuration on the router.

Example:

router# show segment-routing srv6 locator 
Name            Algo     Prefix                      Format               Status
----            ----     ------                      ------               ------
locapoke3       0        2001:0:5::/48             usid-f3216             Up 

Step 2

Use the show segment-routing srv6 sid command to display the SRv6 segment identifiers on the router.

Example:

router# show segment-routing srv6 sid
SID                                  Locator         Behavior             Context                                  Owner
---                                  -------         --------             -------                                  -----
2001:0:5::                           locapoke3       uN (PSP/USD)                                                  SID-MGR                                
2001:0:5:E001::                      locapoke3       uA (PSP/USD)         Tu2 FE80::6A79:9FF:FEA9:A800             router isis core