SR-MPLS configuration on the IS-IS instance

SR-MPLS is configurable on one IS-IS instance only (on the default network-instance). Before you can enable SR-MPLS you must configure IS-IS as the IGP on the segment routing nodes in your network. See the SR Linux Routing Protocols Guide.

SR Linux supports a static or dynamic SRLB, or a combination of both. With dynamic SRLB, SR Linux automatically assigns the dynamic adjacency SIDs for the associated interfaces. With static SRLB, you must manually define static adjacency SIDs for the associated interfaces.

To configure SR-MPLS on an IS-IS instance:
  1. Specify the node SID (IS-IS node SID or a protocol-independent prefix SID):
  2. Define the Segment Routing Label Block (SRLB) and configure the adjacency SID mode:
  3. (Optional) Set interface-specific adjacency SID modes:
  4. Enable SR-MPLS:

Configuring an IS-IS node SID

  • Configure the primary address of a loopback (loN.n) or system0.0 subinterface with the prefix to associate with the node SID, and set the subinterface as an IS-IS interface.

Unlike protocol-independent prefix SIDs, IS-IS node SIDs are specific to the IS-IS IGP. Also, you cannot disable the node SID flag for IS-IS node SIDs.

Note: The IS-IS node SID configuration is optional if you have already defined a protocol-independent prefix SID. If both are applied to the same interface, the IS-IS IGP node SID configuration overrides the protocol-independent prefix SID configuration.

To define the node SID in the IS-IS interface configuration, you must specify an index value that is relative to the SRGB. In this case, the MPLS label value is calculated as follows:

Local Label (Prefix/Node SID) = SRGB start-label + {SID index}

For example, if the SRGB range starts at 16000, and the index value is 1, the resulting MPLS label value for the SID is 16001.

To configure the node SID corresponding to an IPv4 or IPv6 prefix, assign an index value to the loopback (or system) subinterface in the IS-IS instance.

Configure node SID

The following example adds IPv4 node SID index 1 to loopback subinterface lo0.1.

--{ * candidate shared default }--[  ]--
# info network-instance default protocols isis instance sr-isis-1 interface lo0.1
    network-instance default {
        protocols {
            isis {
                instance sr-isis-1 {
                    interface lo0.1 {
                        segment-routing {
                            mpls {
                                ipv4-node-sid {
                                    index 1
                                }
                            }
                        }
                    }
                }
            }
        }
    }

Dynamic adjacency SIDs configuration

To enable allocation of dynamic adjacency SIDs for all interfaces in the IS-IS instance, perform the following tasks:

  1. Defining the dynamic SRLB
  2. Enabling dynamic adjacency SID assignment for the IS-IS instance
Note: You can optionally override the dynamic adjacency SID setting for the IS-IS instance by configuring individual interfaces to use static adjacency SIDs, or to use no adjacency SID assignment at all. See: Overriding adjacency SID assignment mode on an interface.

Defining the dynamic SRLB

To assign dynamic adjacency SID labels, you must configure a dynamic SRLB that references a dynamic range of MPLS labels. The dynamic SRLB must reference a dedicated (non-shared) label range consisting of one contiguous block of labels.

  1. Define a dynamic MPLS label range.
  2. Assign that MPLS label range to the SRLB.

Define the dynamic MPLS label range for the SRLB

The following example defines a dynamic MPLS label range (srlb-dynamic-1) for use by the SRLB.

--{ * candidate shared default }--[ ]--
# info system mpls label-ranges dynamic srlb-dynamic-1
    system {
        mpls {
            label-ranges {
                dynamic srlb-dynamic-1 {
                    start-label 15001
                    end-label 15999
                }
            }
        }
    }

Assign the dynamic MPLS label range to the SRLB

The following example assigns the defined dynamic MPLS label range (srlb-dynamic-1) to the SRLB.

--{ * candidate shared default }--[ ]--
# info network-instance default protocols isis dynamic-label-block
    network-instance default {
        protocols {
            isis {
                dynamic-label-block srlb-dynamic-1
            }
        }
    }

Enabling dynamic adjacency SID assignment for the IS-IS instance

You can enable dynamic adjacency SID allocation for the network-instance. The default setting is disabled (false). When enabled, IS-IS assigns a dynamic adjacency SID to all IS-IS interfaces in all levels, except for interfaces configured at the interface level with an adjacency SID assignment of none or static. You can also set the hold time that is applied to the dynamically allocated adjacency SIDs.

To enable dynamic adjacency SID assignment, in the IS-IS instance configuration set the segment routing dynamic-adjacency-sids option to: all-interfaces true.

Enable dynamic adjacency SIDs for all interfaces

The following example enables dynamic adjacency SIDs for IS-IS instance sr-isis-1, and sets the hold-time to 20 seconds.

--{ * candidate shared default }--[ ]--
# info network-instance default protocols isis instance sr-isis-1 segment-routing mpls dynamic-adjacency-sids
    network-instance default {
        protocols {
            isis {
                instance sr-isis-1 {
                    segment-routing {
                        mpls {
                            dynamic-adjacency-sids {
                                all-interfaces true
                                hold-time 20
                            }
                        }
                    }
                }
            }
        }
    }

Static adjacency SIDs configuration

To enable assignment of static adjacency SIDs for all interfaces in the IS-IS instance, perform the following tasks:

  1. Defining the static SRLB
  2. Configuring static adjacency SID assignment for the IS-IS instance
  3. Configuring static adjacency SIDs for an interface
Note:

Defining the static SRLB

To assign static adjacency SID labels, you must configure a static SRLB that references a static range of MPLS labels. The static SRLB must reference a dedicated or shared label range consisting of one contiguous block of labels.

  1. Define a static MPLS label range.
  2. Assign that MPLS label range to the static SRLB.

Define the static MPLS label range for the SRLB

The following example defines a static MPLS label range (srlb-static-10) for use by the SRLB.

--{ * candidate shared default }--[ ]--
# info system mpls label-ranges static srlb-static-10
    system {
        mpls {
            label-ranges {
                static srlb-static-10 {
                    shared true
                    start-label 14001
                    end-label 14999
                }
            }
        }
    }

Assign the static MPLS label range to the SRLB

The following example assigns the defined static MPLS label range (srlb-static-10) to the static SRLB label block.

--{ * candidate shared default }--[ ]--
# info network-instance default protocols isis instance sr-isis-1 segment-routing mpls static-label-block
    network-instance default {
        protocols {
            isis {
                instance sr-isis-1 {
                    segment-routing {
                        mpls {
                            static-label-block srlb-static-10
                        }
                    }
                }
            }
        }
    }

Configuring static adjacency SID assignment for the IS-IS instance

You can configure the IS-IS instance to use static adjacency SID assignment. In this case, IS-IS does not assigns any dynamic adjacency SIDs to any interfaces.

To specify static adjacency SID assignment for all interfaces in the IS-IS instance, set the segment routing dynamic-adjacency-sids option to all-interfaces false.

Enable static adjacency SIDs for all interfaces

--{ * candidate shared default }--[ ]--
# info network-instance default protocols isis instance sr-isis-1 segment-routing mpls dynamic-adjacency-sids
    network-instance default {
        protocols {
            isis {
                instance sr-isis-1 {
                    segment-routing {
                        mpls {
                            dynamic-adjacency-sids {
                                all-interfaces false
                            }
                        }
                    }
                }
            }
        }
    }

Configuring static adjacency SIDs for an interface

If you set the adjacency SID mode to static for the ISIS instance or for specific interfaces, you must manually set the value for the adjacency SIDs for the applicable interfaces.

To define the static adjacency SID value for an interface, use the following options:
  • ipv4-adjacency-sid static <adjacency-SID>
  • ipv6-adjacency-sid static <adjacency-SID>

Set static IPv4 and IPv6 adjacency SID values

--{ * candidate shared default }--[ ]--
# info network-instance default protocols isis instance sr-isis-1 interface ethernet-2/1.1 segment-routing mpls
    network-instance default {
        protocols {
            isis {
                instance sr-isis-1 {
                    interface ethernet-2/1.1 {
                        segment-routing {
                            mpls {
                                ipv4-adjacency-sid {
                                    static 13001
                                }
                                ipv6-adjacency-sid {
                                    static 14001
                                }
                            }
                        }
                    }
                }
            }
        }
    }

Overriding adjacency SID assignment mode on an interface

You can override the adjacency SID configuration set on the IS-IS instance by configuring individual interfaces with a different adjacency SID assignment mode. The SID adjacency options available for an interface are:

  • dynamic

    IS-IS dynamically allocates one or more dynamic adjacency SIDs for this interface for each enabled address family. On a broadcast interface the TLV 22/222 corresponding to the adjacency with the Designated IS (DIS) includes a LAN adjacency SID sub-TLV reporting all the adjacent systems on the LAN. In this case, you must also configure a dynamic SRLB to automatically assign the adjacency SIDs to the dynamic interfaces.

  • static

    IS-IS does not assigns dynamic adjacency SIDs. Instead, you must statically configure an adjacency SID for the interface. In this case, you must also configure a static SRLB. This option is not available if the interface type is broadcast (LAN).

  • none

    No adjacency SIDs are allocated. If no SR-MPLS traffic is flowing on a particular interface, set the adjacency SID assignment to none to save resources that the dynamic adjacency SIDs would otherwise consume.

Under the IS-IS interface, set the following segment routing options:
  • ipv4-adjacency-sid assignment [static | none | dynamic]
  • ipv6-adjacency-sid assignment [static | none | dynamic]

Set IPv4 and IPv6 adjacency SID assignments to static

--{ * candidate shared default }--[ ]--
# info network-instance default protocols isis instance sr-isis-1 interface ethernet-1/2.1
    network-instance default {
        protocols {
            isis {
                instance sr-isis-1 {
                    interface ethernet-1/2.1 {
                        segment-routing {
                            mpls {
                                ipv4-adjacency-sid {
                                    assignment static
                                }
                                ipv6-adjacency-sid {
                                    assignment static
                                }
                            }
                        }
                    }
                }
            }
        }
    }

Set IPv4 and IPv6 adjacency SID assignment to dynamic

--{ * candidate shared default }--[ ]--
# info network-instance default protocols isis instance sr-isis-1 interface ethernet-1/2.2
    network-instance default {
        protocols {
            isis {
                instance sr-isis-1 {
                    interface ethernet-1/2.2 { {
                        segment-routing {
                            mpls {
                                ipv4-adjacency-sid {
                                    assignment dynamic
                                }
                                ipv6-adjacency-sid {
                                    assignment dynamic
                                }
                            }
                        }
                    }
                }
            }
        }
    }

Enabling SR-MPLS on the IS-IS instance

To enable the IS-IS extensions for advertisement of segment routing capabilities, you must enable SR‑MPLS on the IS-IS instance.

Enable SR-MPLS

The following example shows the SR-MPLS configuration on IS-IS instance sr-isis-1.

--{ * candidate shared default }--[ ]--
# info network-instance default protocols isis instance sr-isis-1 segment-routing mpls
    network-instance default {
        protocols {
            isis {
                instance sr-isis-1 {
                    segment-routing {
                        mpls {
                        }
                    }
                }
            }
        }
    }