Segment Routing With IS-IS v4 Node SID

This chapter describes how Segment Routing (SR) works with IS-IS.

Restrictions for Segment Routing With IS-IS v4 Node SID

  • Segment routing must be configured at the top level before any routing protocol configuration is allowed under its router configuration sub mode.
  • IS-IS protocol SR command is based on per topology (IPv4 address family).
  • Effective Cisco IOS-XE Release 3.16, ISIS supports segment routing for IPv4 only.

Information About Segment Routing IS-IS v4 Node SID

Segment Routing IS-IS v4 Node SID

Segment Routing relies on a small number of extensions to Cisco Intermediate System-to-Intermediate System (IS-IS) and Open Shortest Path First (OSPF) protocols. There are two levels of configuration required to enable segment routing for a routing protocol instance. The top level segment routing configuration which is managed by segment routing infrastructure component enables segment routing, whereas, segment routing configuration at the router level enables segment routing for a specific address-family of a routing protocol instance. There are three segment routing states:

  • SR_NOT_CONFIGURED
  • SR_DISABLED
  • SR_ENABLED

Segment routing configuration under the IGPs is allowed only if the SR state is either SR_DISABLED or SR_ENABLED. The SR_ENABLED state indicates that there is at least a valid SRGB range reserved through the MFI successfully. You can enable segment routing for IGPs under the router configuration sub mode, through commands. However, IGP segment routing are enabled only after the global SR is configured.


Note


IS-IS protocol SR command is based on per topology (IPv4 address family).

The SR_ENABLED is a necessary state for any protocol to enable SR, however, it is not a sufficient for enabling SR for a protocol instance. The reason being that the IS-IS still does not have any information about segment routing global block (SRGB) information. When the request to receive information about the SRGB is processed successfully, the IS-IS SR operational state is enabled.

Segment Routing requires each router to advertise its segment routing data-plane capability and the range of MPLS label values that are used for segment routing in the case where global SIDs are allocated. Data-plane capabilities and label ranges are advertised using the SR-capabilities sub-TLV inserted into the IS-IS Router Capability TLV-242 that is defined in RFC4971.

ISIS SR-capabilities sub TLV includes all reserved SRGB ranges. However, the Cisco implementation supports only one SRGB range. The supported IPv4 prefix-SID sub TLV are TLV-135 and TLV-235.

Prefix-SID Received in Label Switched Path from Remote Routers

Prefix SIDs received in a label switched path (LSP) with a reachability TLV (TLV 135 and 235) are downloaded to the routing information base (RIB) in the same way as BGP downloads per prefix VPN labels, only if the following conditions are met:

  • Segment routing is enabled for the topology and address-family.
  • Prefix-SID is valid.
  • The local label binding to MFI is successful.

Note


  • For SIDs that do not fit in the specified SID range, labels are not used when updating the RIB. For the cases, where SID fits in the SID range, but does not fit the next-hop neighbor SID range, remote label associated with that path is not installed.
  • Node SIDs received in an LSP with reachability TLVs (TLV 135 and 235) are downloaded to RIB only if segment routing is enabled under the corresponding address-family.
  • In case of multiple best next hops, if all the next hops do not support segment routing, ISIS treats the instance similar to mismatched labels assigned to the same prefix. That means, IS-IS ignores the labels and installs unlabeled paths for all ECMP paths into the global RIB.

Segment Routing Adjacency SID Advertisement

Effective with Cisco IOS-XE Release 3.17, IS-IS supports the advertisement of segment routing adjacency SID. An Adjacency Segment Identifier (Adj-SID) represents a router adjacency in Segment Routing.

A segment routing-capable router may allocate an Adj-SID for each of its adjacencies and an Adj-SID sub-TLV is defined to carry this SID in the Adjacency TLVs. IS-IS adjacencies are advertised using one of the IS-Neighbor TLVs below:

  • TLV-22 [RFC5305]
  • TLV-23 [RFC5311]

IS-IS allocates the adjacency SID for each IS-IS neighbor only if the IS-IS adjacency state is up and IS-IS segment routing internal operational state is enabled. If an adjacency SID allocation failure is due to out-of-label resource, IS-IS retries to allocate the Adj-SID periodically in a default interval (30 seconds).

Multiple Adjacency-SIDs

Effective with Cisco IOS-XE Release 3.18, multiple adjacency-SIDs are supported. For each protected P2P/LAN adjacency, IS-IS allocates two Adj-SIDs. The backup Adj-SID is only allocated and advertised when FRR (local LFA) is enabled on the interface. If FRR is disabled, then the backup adjacency-SID is released. The persistence of protected adj-SID in forwarding plane is supported. When the primary link is down, IS-IS delays the release of its backup Adj-SID until the delay timer expires. This allows the forwarding plane to continue to forward the traffic through the backup path until the router is converged.

Cisco IOS-XE Release 3.18, IS-IS Adj-SID is changed to be per level based since the forwarding plane is unaware of protocol-specific levels. The allocated and advertised backup Adj-SIDs can be displayed in the output of show isis neighbor detail and show isis data verbose commands.

Segment Routing Mapping Server (SRMS)

Segment Routing Mapping Server (SRMS) allows configuration and maintenance of the Prefix-SID mapping policy entries. Effective with Cisco IOS-XE Release 3.17, the IGPs use the active policy of the SRMS to determine the SID values when programming the forwarding plane.

The SRMS provides prefixes to SID/Label mapping policy for the network. IGPs, on the other hand, are responsible for advertising prefixes to SID/Label mapping policy through the Prefix-SID/Label Binding TLV. Active policy information and changes are notified to the IGPs, which use active policy information to update forwarding information.

Connected Prefix SIDs

Sometimes, a router may install a prefix with a SID that is different than what it advertises to the LSP. For example, if more than one protocol or more than one IGP instance is announcing the same prefix with different SIDs to the SRMS, the SRMS resolves the conflict and announces the winning prefix and SID that may not be the same as the local instance. In that case, the IGP always advertises what it learns from its source LSP although it still tries to install the SID which may be different than what it learns in its LSP. This is done to prevent the IGP from redistributing the SIDs from another protocol or another protocol instance.

SRGB Range Changes

When IS-IS segment routing is configured, IS-IS must request an interaction with the SRGB before IS-IS SR operational state can be enabled. If no SRGB range is created, IS-IS will not be enabled.

When an SRGB change event occurs, IS-IS makes the corresponding changes in its sub-block entries. IS-IS also advertises the newly created or extended SRGB range in SR-capabilities sub-TLV and updates the prefix-sid sub TLV advertisement.


Note


In Cisco IOS-XE Release 3.16 only one SRGB range and SRGB extension for the modification are supported.

SRGB Deletion

When IS-IS receives an SRGB deletion event, it looks for an SRGB entry in the IS-IS SRGB queue list. If an SRGB entry does not exist, IS-IS makes sure that there is no pending SRGB created event. If a pending SRGB creation event is found, then IS-IS removes the SRGB creation event, and completes the SRGB delete processing,

If an SRGB entry is found in the IS-IS SRGB queue, IS-IS locks the SRGB, redistributes the RIBs and un-advertises all prefixed-SIDs that have SID value within the pending delete SRGB range, and un-advertises the SRGB range from SR-capabilities sub TLV. Once IS-IS has completed the SRGB deletion processing, it unlocks the SRGB and deletes the SRGB from its SR sub-block entry.

If there is no valid SRGB after the deletion of the SRGB, IS-IS SR operational state becomes disabled.

MPLS Forwarding on an Interface

MPLS forwarding must be enabled before segment routing can use an interface. IS-IS is responsible for enabling MPLS forwarding on an interface.

When segment routing is enabled for a IS-IS topology, or IS-IS segment routing operational state is enabled, IS-IS enables MPLS for any interface on which the IS-IS topology is active. Similarly, when segment routing is disabled for a IS-IS topology, IS-IS disables the MPLS forwarding on all interfaces for that topology.

Segment Routing and LDP Preference

The command sr-label-preferred allows the forwarding interface to prefer the segment routing labels over LDP labels for all prefixes in a topology.

Segment Routing -Traffic Engineering Announcements

IS-IS announces the SR information to TE when it detects that both, IS-IS SR and TE are enabled for at least one level. IS-IS announce only the information that is obtained from the level for which TE is configured.

Similarly, IS-IS instructs TE to delete all announcements when it detects that SR is not enabled or TE is no longer configured on any level.

How to Configure Segment Routing —IS-IS v4 Node SID

Configuring Segment Routing

Before You Begin

Before configuring IS-IS to support segment routing you must first configure the segment routing feature in global configuration mode.

SUMMARY STEPS

    1.    enable

    2.    configure terminal

    3.    segment-routing mpls

    4.    connected-prefix-sid-map

    5.    address-family ipv4

    6.    1.1.1.1/32 index 100 range 1

    7.    exit-address-family


DETAILED STEPS
     Command or ActionPurpose
    Step 1enable


    Example:
    Device# enable
     

    Enables privileged EXEC mode.

    • Enter your password if prompted.
     
    Step 2configure terminal


    Example:
    Device# configure terminal
     

    Enters global configuration mode.

     
    Step 3 segment-routing mpls

    Example:
    Device(config-sr)# segment-routing mpls
     

    Enables the segment feature using the mpls data plane.

     
    Step 4 connected-prefix-sid-map

    Example:
    Device(config-srmpls)# connected-prefix-sid-map
     

    Enters a sub-mode where you can configure address-family specific mappings for local prefixes and SIDs.

     
    Step 5 address-family ipv4

    Example:
    Device(config-srmpls-conn)# address-family ipv4
     

    Specifies IPv4 address prefixes.

     
    Step 61.1.1.1/32 index 100 range 1

    Example:
    Device(config-srmpls-conn-af)# 1.1.1.1/32 100 range 1
     

    Associates SID 100 with the address 1.1.1.1/32.

     
    Step 7exit-address-family

    Example:
    Device(config-srmpls-conn-af)# exit-address-family
     

    Exits the address family.

     

    Configuring Segment Routing on IS-IS Network

    Before You Begin

    Before you configure segment routing on IS-IS network, IS-IS must be enabled on your network.

    SUMMARY STEPS

      1.    router isis

      2.    net network-entity-title

      3.    metric-style wide

      4.    segment-routing mpls

      5.    exit

      6.    show isis segment-routing


    DETAILED STEPS
       Command or ActionPurpose
      Step 1 router isis

      Example:
      Device(config-router)# router isis
       

      Enables the IS-IS routing protocol and enters router configuration mode.

       
      Step 2 net network-entity-title

      Example:
      Device(config-router)# net 49.0000.0000.0003.00
       

      Configures network entity titles (NETs) for the routing instance.

       
      Step 3 metric-style wide

      Example:
      Device(config-router)# metric-style wide
       

      Configures the device to generate and accept only wide link

      metrics.

       
      Step 4segment-routing mpls

      Example:
      Device(config-router)# segment-routing mpls
       

      Configures segment routing operation state.

       
      Step 5 exit

      Example:
      Device(config-router)# exit
       

      Exits segment routing mode and returns to the configuration terminal mode.

       
      Step 6 show isis segment-routing

      Example:
      Device# show is-is segment-routing
       

      Displays the current state of the IS-IS segment routing.

       

      The following example displays output from the show isis segment-routing state command for the segment routing under IS-IS:

      Device# show isis segment-routing
      
      ISIS protocol is registered with MFI
      ISIS MFI Client ID:0x63
      Tag 1 - Segment-Routing:
         SR State:SR_ENABLED
         Number of SRGB:1
         SRGB Start:16000, Range:8000, srgb_handle:0x4500AED0, srgb_state: created
         Address-family IPv4 unicast SR is configured
           Operational state:Enabled

      Configuring Prefix-SID for IS-IS

      This task explains how to configure prefix segment identifier (SID) index under each interface.

      Before You Begin

      Segment routing must be enabled on the corresponding address family.

      SUMMARY STEPS

        1.    enable

        2.    configure terminal

        3.    segment-routing mpls

        4.    connected-prefix-sid-map

        5.    address-family ipv4

        6.    1.1.1.1/32 index 100 range 1

        7.    exit


      DETAILED STEPS
         Command or ActionPurpose
        Step 1 enable

        Example:
        Device# enable
         

        Enables privileged EXEC mode.

         
        Step 2 configure terminal

        Example:
        Device# configure terminal
         

        Enters global configuration mode.

         
        Step 3segment-routing mpls


        Example:
        Device(config)# segment-routing mpls
         

        Configures segment routing mpls mode.

         
        Step 4connected-prefix-sid-map


        Example:
        Device(config-srmpls)# connected-prefix-sid-map
         

        Enters a sub-mode where you can configure address-family specific mappings for local prefixes and SIDs.

         
        Step 5address-family ipv4


        Example:
        Device(config-srmpls-conn)# address-family ipv4
         

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

         
        Step 61.1.1.1/32 index 100 range 1

        Example:
        Device(config-srmpls-conn-af)# 1.1.1.1/32 100 range 1
         

        Associates SID 100 with the address 1.1.1.1/32.

         
        Step 7 exit

        Example:
        Device(config-router)# exit
         

        Exits segment routing mode and returns to the configuration terminal mode.

         

        Configuring Prefix Attribute N-flag-clear

        By default, a flag called N-flag is set by IS-IS when advertising a SID which is associated with a loopback address. If you wish to clear this flag add explicit configuration.

        SUMMARY STEPS

          1.    enable

          2.    configure terminal

          3.    interface loopback3

          4.    isis prefix n-flag-clear


        DETAILED STEPS
           Command or ActionPurpose
          Step 1enable


          Example:
          Device# enable
           

          Enables privileged EXEC mode.

          • Enter your password if prompted.
           
          Step 2configure terminal


          Example:
          Device# configure terminal
           

          Enters global configuration mode.

           
          Step 3 interface loopback3

          Example:
          Device(config)# interface loopback3
           

          Specifies the interface loopback.

           
          Step 4isis prefix n-flag-clear

          Example:
          Device(config-if)# isis prefix n-flag-clear
           

          Clears the prefix N-flag.

           

          Configuring Explicit Null Attribute

          To disable penultimate-hop-popping (PHP) and add explicit-Null label, explicit-null option needs to be specified. Once the option is given, IS-IS sets the E flag in the prefix-SID sub TLV.

          By default, a flag called E-flag (Explicit-Null flag) is set to 0 by ISIS when advertising a Prefix SID which is associated with a loopback address. If you wish to set this flag add explicit configuration.

          SUMMARY STEPS

            1.    enable

            2.    configure terminal

            3.    segment-routing mpls

            4.    set-attributes

            5.    address-family ipv4

            6.    explicit-null

            7.    exit-address-family


          DETAILED STEPS
             Command or ActionPurpose
            Step 1enable


            Example:
            Device# enable
             

            Enables privileged EXEC mode.

            • Enter your password if prompted.
             
            Step 2configure terminal


            Example:
            Device# configure terminal
             

            Enters global configuration mode.

             
            Step 3segment-routing mpls

            Example:
            Device(config)# segment-routing mpls
             

            Configures segment routing mpls mode.

             
            Step 4set-attributes

            Example:
            Device(config-srmpls)# set-attributes
             

            Sets the attribute.

             
            Step 5address-family ipv4


            Example:
            Device(config-srmpls-attr)# address-family ipv4
             

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

             
            Step 6explicit-null


            Example:
            Device(config-srmpls-attr-af)# explicit-null
             

            Specifies the explicit-null.

             
            Step 7exit-address-family


            Example:
            Device(config-srmpls-attr-af)# exit-address-family
             

            Exits the address family.

             

            Configuring Segment Routing Label Distribution Protocol Preference

            SUMMARY STEPS

              1.    enable

              2.    configure terminal

              3.    segment-routing mpls

              4.    set-attributes

              5.    address-family ipv4

              6.    sr-label-preferred

              7.    exit-address-family


            DETAILED STEPS
               Command or ActionPurpose
              Step 1enable


              Example:
              Device# enable
               

              Enables privileged EXEC mode.

              • Enter your password if prompted.
               
              Step 2configure terminal


              Example:
              Device# configure terminal
               

              Enters global configuration mode.

               
              Step 3segment-routing mpls

              Example:
              Device(config)# segment-routing mpls
               

              Configures segment routing mpls mode.

               
              Step 4set-attributes

              Example:
              Device(config-srmpls)# set-attributes
               

              Sets the attribute.

               
              Step 5address-family ipv4


              Example:
              Device(config-srmpls-attr)# address-family ipv4
               

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

               
              Step 6sr-label-preferred


              Example:
              Device(config-srmpls-attr-af)# sr-label-preferred
               

              Specifies SR label to be preferred over the LDP.

               
              Step 7exit-address-family


              Example:
              Device(config-srmpls-attr-af)# exit-address-family
               

              Exits the address family.

               

              Configuring IS-IS SRMS

              The following command enables the IS-IS SRMS and allows IS-IS to advertise local mapping entries. IS-IS does not send remote entries to the SRMS library. However, IS-IS uses the SRMS active policy, which is computed based only on the locally configured mapping entries.

              [no] segment-routing prefix-sid-map advertise-local 
              

              Configuring IS-IS SRMS Client

              By default, the IS-IS SRMS client mode is enabled. IS-IS always sends remote prefix-sid-mapping entries received through LSP to SRMS. The SRMS active policy is calculated based on local and remote mapping entries.

              The following command disables the prefix-sid-mapping client functionality and it is configured on the receiver side.

              segment-routing prefix-sid-map receive [disable] 
              

              Configuring IS-IS SID Binding TLV Domain Flooding

              By default, the IS-IS SRMS server does not flood SID binding entries within the routing domain. From Cisco IOS-XE Release 3.18, the optional keyword domain-wide is added in the IS-IS SRMS server mode command to enable the SID and Label binding TLV flooding functionality.

              segment-routing prefix-sid-map advertise-local [domain-wide]
              

              The domain-wide keyword enables the IS-IS SRMS server to advertise SID binding TLV across the entire routing domain.


              Note


              The option is valid only if IS-IS SRMS performs in the SRMS server mode.


              Configuration Examples for Segment Routing —IS-IS v4 Node SID

              Example: Configuring Segment Routing on IS-IS Network

              The following example shows how to configure prefix segment identifier (SID) index under each interface:

              Device(config)#segment-routing mpls
               Device(config-srmpls)#connected-prefix-sid-map
                Device(config-srmpls-conn)#address-family ipv4
                 Device(config-srmpls-conn-af)#10.1.2.2/32 index 2 range 1
                Device(config-srmpls-conn-af)#exit-address-family
               Device(config-srmpls-conn-af)#end
              

              Example: Configuring Explicit Null Attribute

              The following is an example for configuring explicit null attribute:

              Device(config)# segment-routing mpls
              Device(config-srmpls)# set-attributes
               Device(config-srmpls-attr)# address-family ipv4
                Device(config-srmpls-attr-af)# explicit-null
               Device (config-srmpls-attr-af)# exit-address-family

              Additional References for Segment Routing With IS-IS v4 Node SID

              Related Documents

              Related Topic

              Document Title

              Cisco IOS commands

              Cisco IOS Master Command List, All Releases http:/​/​www.cisco.com/​c/​en/​us/​td/​docs/​ios-xml/​ios/​mcl/​allreleasemcl/​all-book.html

              IP Routing ISIS commands

              Cisco IOS IP Routing ISIS commands http:/​/​www.cisco.com/​c/​en/​us/​td/​docs/​ios-xml/​ios/​mcl/​allreleasemcl/​all-book.html

              RFCs

              RFC

              Title

              RFC4971

              Intermediate System to Intermediate System (IS-IS) Extensions for Advertising Router Information

              RFC5305

              IS-IS Extensions for Traffic Engineering. Defines the advertisement of router IDs for IPv4.

              RFC6119

              IPv6 Traffic Engineering in IS-IS. Defines the advertisement of router IDs for IPv6.

              Feature Information for Segment Routing—IS-IS v4 Node SID

              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.
              Table 1 Feature Information for Segment Routing—IS-IS v4 Node SID

              Feature Name

              Releases

              Feature Information

              Segment Routing—IS-IS v4 Node SID

              Cisco IOS XE Release 3.16S

              Cisco IOS XE Fuji 16.7.1

              The Segment Routing—ISIS v4 node SID feature provides support for segment routing on IS-IS networks.

              The following commands were introduced or modified: connected-prefix-sid-map, show isis segment-routing, isis prefix n-flag-clear, explicit-null

              In Cisco IOS XE Fuji 16.7.1, this feature is supported on Cisco 4000 Series Integrated Service Routers.