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.
- Specify the node SID (IS-IS node SID or a protocol-independent prefix SID):
- Define the Segment Routing Label Block (SRLB) and configure the adjacency SID mode:
- (Optional) Set interface-specific adjacency SID modes:
- 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.
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.
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:
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.
- Define a dynamic MPLS label range.
- 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.
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:
- Defining the static SRLB
- Configuring static adjacency SID assignment for the IS-IS instance
- Configuring static adjacency SIDs for an interface
- Static adjacency SID configuration is not supported for broadcast interfaces.
- You can optionally override the static adjacency SID setting by configuring individual interfaces to use dynamic adjacency SIDs. See Overriding adjacency SID assignment mode on an interface.
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.
- Define a static MPLS label range.
- 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.
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.
- 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.
- 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 {
}
}
}
}
}
}