1. Introduction
Segment Routing (SR) allows for a flexible definition of end-to-end paths within IGP topologies by encoding paths as sequences of topological sub-paths, called "segments". These “segments” need to be advertised by a routing protocol such as IS-IS. Prefix segments represent a shortest-path to a prefix (or a node), as per the state of the IGP topology. Adjacency segments represent a hop over a specific adjacency between two nodes in the IGP.
1.1. Supported Hardware
-
Edgecore AS5916-XKS
-
RBFS Virtual Service Router
1.2. Guidelines and Limitations
-
Support only Prefix SID with Node Flag, that is, SID can be configured only on Loopback interfaces.
-
Support only for configuration of single SRGB block.
1.3. Prerequisites
-
All the nodes in the network are SR enabled. So, if the intermediate router has no SR enabled, the previous SR-enabled router will not install SID for that node. So, the path can be incomplete.
1.4. System Overview
This section shows the interaction of this ISIS-SR feature with various daemons in RBFS. The figure below shows the interaction on with respect to this feature.
CONFD |
Confd is RBFS configuration daemon. It stores ISIS SR configurations. ISIS IOD and ISIS APPD daemons subscribes for the following configuration:
|
HALD |
ISIS IOD interacts with HALD to send and receive ISIS packets. All ISIS SR related information is sent and received from other routers through HALD. |
FWDD |
ISIS APPD interacts with FWDD to download the SR routes. FWDD subscribes labeled unicast table with ISIS APPD. |
2. Configuring Segment Routing for IS-IS Protocol
Segment routing on the IS-IS control plane supports the following:
-
IPv4 control plane
-
Level 1 and level 2 routing
-
Prefix SIDs for host prefixes on loopback interfaces
To configure segment routing for the IS-IS protocol, perform the following steps:
-
Enter into the IS-IS default instance mode, and enable IS-IS routing for the specified routing instance.
root@is-is-router:confd> edit instance red [ instance red ] root@is-is-router:confd> edit protocol isis [ instance red protocol isis ]
-
Enter into the IS-IS configuration mode.
root@rtbrick:confd> edit instance protocol isis [ instance protocol isis ]
-
Configure SRGB (base label and range).
[ instance protocol isis ] set segment-routing srgb start-label <base-value> index-range <range-value>
-
Configure index (either ipv4 or ipv6) on an interface.
[ instance protocol isis ] set interface <ifl-name> segment-routing <ipv4 | ipv6> index <sid-value>
For more information about the configuration and show commands, see the chapters below.
3. Configuration Commands
3.1. Instance Level Commands
-
srgb start-label
3.1.1. srgb start-label
This command assigns a segment routing SRGB global block.
Syntax
set instance protocol isis segment-routing srgb start-label <base-value> index-range <range-value>
Command arguments
<base-value> |
SRGB Start Label |
<index-range> |
SRGB range value |
Command modes
[instance protocol isis]
Example
The following example shows how to configure SRGB with start-label 5000 and index-range 100. The start label of the label block is 5000 and the end of the label block is 5099.
The SRGB label values 0 to 15 are reserved. |
[ ] root@rtbrick:confd> edit instance protocol isis [ instance protocol isis ] root@rtbrick:confd> set segment-routing start-label 5000 index-range 100
To delete the operation that you performed, enter the following command:
delete instance isisvrf protocol isis segment-routing srgb
3.2. Interface Level Commands
-
segment-routing index
3.2.1. segment-routing index
This command assigns a label from the configured global SRGB range for address assigned to this interface.
Syntax
set instance protocol isis interface <ifl-name> segment-routing <ipv4 | ipv6> index <sid-value>
Command arguments
<ifl-name> |
Interface name |
<ipv4 | ipv6> |
Specifies ipv4 or ipv6 address family |
<sid-value> |
Segment routing index from the SRGB range assigned to this interface |
Command modes
[instance protocol isis] [instance protocol isis interface <ifl-name>]
Example
[ ] root@rtbrick:confd> edit instance protocol isis [ instance protocol isis ] root@rtbrick:confd> edit interface lo-0/0/0/1/0 [ instance protocol isis interface lo-0/0/0/1/0] root@rtbrick:confd> set segment-routing ipv4 index 100
To delete the operation that you performed, enter the following command:
delete instance protocol isis interface <ifl-name> segment-routing <ipv4 | ipv6> index
4. Show Commands
-
show isis overview
-
show isis route
4.1. show isis overview
You can use this command to view the IS-IS SRGB-related information.
Syntax
show isis overview
Example
ubuntu@blr:~$ rtb isis.iod.1 show isis overview Instance: default System-ID: 1921.6800.1002, Areas: 49.0001/24 SRGB start-label: 100, index-range: 100 Neighbor Hold Time: 30000ms, LSP Lifetime Interval: 65535ms System OverLoad: false, System OverLoad Timeout: 60000ms Current Up Neighbors Count : 2, Neighbors Flap Count : 0 ubuntu@blr:~$
4.2. show isis route
This command displays all the labelled unicast (SR) prefixes for the IPv4 Address Family Identifiers (AFI).
Syntax
show isis route instance <instance-name> <afi> <safi>
Command arguments
<instance-name> |
Name of the instance |
<afi> |
IPv4 Address Family Identifier (AFI) |
<safi> |
Subsequent address family identifier (unicast | labeled-unicast | multicast) |
Command modes
rtb isis.appd
Example
ubuntu@blr:~/development/libisis$ rtb isis.appd.1 show isis route instance default ipv4 unicast Table: default.isis.fib-local.ipv4.unicast Prefix Metric Nexthop 12.1.1.0/24 10 via local 23.1.1.0/24 10 via local 2.2.2.2/32 10 via local ubuntu@blr:~/development/libisis$
4.3. show isis database
This command displays the entries in the IS-IS link-state database.
Syntax
show isis database <level 1|2> detail
show isis database instance <instance name>
Command arguments
<level 1|2> |
Displays the IS-IS link-state database entries for the specified IS-IS level |
<instance name> |
Displays the IS-IS link-state database entries for the specified instance |
Example
ubuntu@blr:~/development/libisis$ rtb isis.iod.1 show isis database detail 1921.6800.1001.00-00, Instance: default, Level: 1 Sequence no: 0x3, Checksum: 0x8, Remaining Lifetime: 65534ms Attached bit: 0, Overload bit: 0 Last received time: 2019-12-10T14:45:15.610799+0530 Expiry time: expires in 17h 58m 4s 672416us Supported Protocols: Protocol supported: IPv6 Protocol supported: IPv4 Neighbor List: Node ID: 1921.6800.1002.00, Metric: 10 IPv4 Prefix List: Prefix: 12.1.1.0/24, Metric: 10 Prefix: 1.1.1.1/32, Metric: 10 IPv6 Prefix List: SRGB List: 1921.6800.1003.00-00, Instance: default, Level: 1 Sequence no: 0x3, Checksum: 0xd, Remaining Lifetime: 65534ms Attached bit: 0, Overload bit: 0 Last received time: 2019-12-10T14:45:15.610884+0530 Expiry time: expires in 17h 58m 4s 671564us Supported Protocols: Protocol supported: IPv6 Protocol supported: IPv4 Neighbor List: Node ID: 1921.6800.1002.00, Metric: 10 IPv4 Prefix List: Prefix: 23.1.1.0/24, Metric: 10 Prefix: 3.3.3.3/32, Metric: 10 IPv6 Prefix List: SRGB List: 1921.6800.1002.00-00, Instance: default, Level: 1 Sequence no: 0x5, Checksum: 0xb, Remaining Lifetime: 65535ms Attached bit: 0, Overload bit: 0 Last received time: 2019-12-10T14:47:07.340859+0530 Expiry time: expires in 17h 59m 57s 400741us Supported Protocols: Protocol supported: IPv6 Protocol supported: IPv4 Neighbor List: Node ID: 1921.6800.1001.00, Metric: 10 Node ID: 1921.6800.1003.00, Metric: 10 IPv4 Prefix List: Prefix: 12.1.1.0/24, Metric: 10 Prefix: 23.1.1.0/24, Metric: 10 Prefix: 2.2.2.2/32, Metric: 10, Segment-Index: 10, Flags: Node IPv6 Prefix List: SRGB List: SRGB start-label: 100, index-range: 100
©Copyright 2020 RtBrick, Inc. All rights reserved. The information contained herein is subject to change without notice. The trademarks, logos and service marks ("Marks") displayed in this documentation are the property of RtBrick in the United States and other countries. Use of the Marks are subject to RtBrick’s Term of Use Policy, available at https://www.rtbrick.com/privacy. Use of marks belonging to other parties is for informational purposes only.