Static Adjacency Segment Identifier for ISIS
Adjacency segment is a strict forwarded single-hop tunnel that carries packets over a specific link between two nodes, irrespective of the link cost. You can configure static adjacency segment identifier (SID) labels for an interface or an interface group.
Configuring a static adjacency SID on an interface causes the existing dynamically allocated adjacency SID to be removed along with the transit route for the same.
For static adjacency SIDs, the labels are picked from either a static reserved label pool or from an ISIS segment routing global block (SRGB).
You can reserve a label range to be used for static allocation of labels using the following configuration:
user@host# set protocols mpls label-range static-label-range start-value end-value
The static pool can be used by any protocol to allocate a label
in this range. You need to ensure that no two protocols use the same
static label. ISIS adjacency SIDs can be allocated from this label
block through the configuration using keyword label
. The label
value for the specific adjacency SIDs need to be explicitly
configured. The specific label is advertised as the adjacency SIDs
for that interface for the specific level and address family. The
following is a sample configuration:
user@host# set protocols mpls label-range static-label-range 700000 799999;
user@host# set protocols isis source-packet-routing srgb start-label 800000 index-range 4000;
user@host# set protocols isis interface ge-0/0/0.1 level 1 ipv4-adjacency-segment unprotected label 700001;
SRGB is a global label space that is allocated for the protocol based on configuration. The labels in the entire SRGB is available for ISIS to use and are not allocated to other applications/protocols. Prefix SIDs (and Node SIDs) are indexed from this SRGB.
ISIS Adj-SIDs can be allocated from ISIS SRGB using keyword ‘index’ in the configuration. In such cases, it should be ensured that the Adj-SID index does not conflict with any other prefix SID in the domain. Like Prefix-SIDs, Adj-SIDs will also be configured by mentioning the index with respect to the SRGB. However, the Adj-SID subtlv will still have the SID as a value and the L and V flags are set. The following is a sample configuration:
user@host# set protocols isis source-packet-routing srgb start-label 800000 index-range 4000;
user@host# set protocols isis interface ge-0/0/0.1 level 1 ipv4-adjacency-segment unprotected index 1;
Static adjacency SIDs can be configured per address family and
also based on whether the protection is required or not. Adjacency
SIDs should be configured per level per interface at the [edit
protocols isis interface interface-name level level-num
] hierarchy level.
Protected—Ensures adjacency SID is eligible to have a backup path and a B-flag is set in an adjacency SID advertisement.
Unprotected—Ensures no backup path is calculated for a specific adjacency SID and a B-flag is not set in an adjacency SID advertisement.
The following is a sample configuration:
user@host# set protocols isis interface ge-0/0/0.1 level 1 ipv4-adjacency-segment unprotected index 1;
user@host# set protocols isis interface ge-0/0/1.1 level 1 ipv4-adjacency-segment protected index 2;
You can use the same adjacent SID for multiple interfaces by
grouping a set of interfaces under an interface group and configuring
the adjacency SID for that interface group and traffic can be load
balanced among the interfaces under the interface group using weight.
This can be configured under the [edit protocols isis interface-group interface_group_name
] hierarchy level.
When segment routing is used in LAN subnetworks, each router
in the LAN may advertise the adjacency SID of each of its neighbors.
To configure adjacency SID for a LAN interface to a specific neighbor,
you should configure the adjacency SIDs under the lan-neighbor configuration
at the [edit protocols isis interface interface_name level level_num lan-neighbor neighbor-sysid
] hierarchy level. The following is a sample configuration:
user@host# set protocols mpls label-range static-label-range 700000 799999;
user@host# set protocols isis source-packet-routing srgb start-label 800000 index-range 4000;
user@host# set protocols isis interface ge-0/0/0.1 level 1 lan-neighbor 1234.1234.1234 ipv4-adjacency-segment unprotected label 700001;
An adjacency set can be configured by declaring a set of interfaces
under an interface group and configuring the adjacency segment for
that interface group. The adjacency SID can be picked from the reserved
static label pool or ISIS SRGB. Unlike normal interfaces, dynamic
adjacency SID is not allocated by default under interface group, in
which case the dynamic
CLI statement is configured. Interfaces
configured under an interface group can also be configured separately
as independent interfaces as long as the link-group-protection is
not configured. The following is a sample configuration:
user@host# set protocols mpls label-range static-label-range 700000 799999;
user@host# set protocols isis source-packet-routing srgb start-label 800000 index-range 4000;
user@host# set protocols isis interface-group group1 interface ge-0/0/0.1 weight 1;
user@host# set protocols isis interface-group group1 interface ge-0/0/1.1 weight 2;
user@host# set protocols isis interface-group group1 ipv4-adjacency-segment unprotected label 700001;
Use the following CLI hierarchy for configuring adjacency SID:
[edit ] protocols { isis { interface <interface_name> { level <level_num> { ipv4-adjacency-segment { protected { dynamic; label <value> index <index> } unprotected { dynamic; label <value> index <index> } } ipv6-adjacency-segment { protected { dynamic; label <value> index <index> } unprotected { dynamic; label <value> index <index> } } } } interface <interface_name> { level <level_num> { lan-neighbor <neighbor-sysid>{ ipv4-adjacency-segment { protected { dynamic; label <value> index <index> } unprotected { dynamic; label <value> index <index> } } ipv6-adjacency-segment { protected { dynamic; label <value> index <index> } unprotected { dynamic; label <value> index <index> } } } } } interface-group <interface_group_name> { interface <interface_1> weight <weight> ... interface <interface_n> weight <weight> level <level_num> { ipv4-adjacency-segment { protected { dynamic; label <value> index <index> } unprotected { dynamic; label <value> index <index> } } ipv6-adjacency-segment { protected { dynamic; label <value> index <index> } unprotected { dynamic; label <value> index <index> } } } } } }
Use the following operational CLI commands to verify the configuration:
show isis adjacency detail
The following sample output displays the details of configured and dynamic adjacency SID.
user@host> show isis adjacency r1 detail r1 Interface: ge-0/0/2.1, Level: 1, State: Up, Expires in 19 secs Priority: 64, Up/Down transitions: 1, Last transition: 01:23:38 ago Circuit type: 3, Speaks: IP, IPv6, MAC address: 0:5:86:48:49:0 Topologies: Unicast Restart capable: Yes, Adjacency advertisement: Advertise LAN id: r0.03, IP addresses: 11.1.1.2 IPv6 addresses: fe80::205:8600:148:4900 Level 1 IPv4 protected Adj-SID: 4138, Flags: BVL Level 1 IPv6 unprotected Adj-SID: 4139, Flags: FVL
show isis database extensive
The following sample output displays the details of LAN/PTP adjacency SID.
user@host> show isis database extensive r0.00-00 Sequence: 0x16, Checksum: 0xf156, Lifetime: 960 secs IPV4 Index: 1000, IPV6 Index: 2000 Node Segment Blocks Advertised: Start Index : 0, Size : 4096, Label-Range: [ 16, 4111 ] IS neighbor: r4.00 Metric: 10 Two-way fragment: r4.00-00, Two-way first fragment: r4.00-00 IS neighbor: r0.03 Metric: 10 Two-way fragment: r0.03-00, Two-way first fragment: r0.03-00 IP prefix: 10.10.10.10/32 Metric: 0 Internal Up IP prefix: 11.1.1.0/24 Metric: 10 Internal Up IP prefix: 21.1.1.0/24 Metric: 10 Internal Up V6 prefix: 1001::/64 Metric: 10 Internal Up V6 prefix: 2001::/64 Metric: 10 Internal Up V6 prefix: abcd::10:10:10:10/128 Metric: 0 Internal Up … TLVs: Area address: 49.00 (2) LSP Buffer Size: 1492 Speaks: IP Speaks: IPV6 IP router id: 10.10.10.10 IP address: 10.10.10.10 Hostname: r0 IS neighbor: r0.03, Internal, Metric: default 10 IS neighbor: r4.00, Internal, Metric: default 10 IS extended neighbor: r0.03, Metric: default 10 IP address: 11.1.1.1 Local interface index: 342, Remote interface index: 0 Current reservable bandwidth: Priority 0 : 1000Mbps Priority 1 : 1000Mbps Priority 2 : 1000Mbps Priority 3 : 1000Mbps Priority 4 : 1000Mbps Priority 5 : 1000Mbps Priority 6 : 1000Mbps Priority 7 : 1000Mbps Maximum reservable bandwidth: 1000Mbps Maximum bandwidth: 1000Mbps Administrative groups: 0 <none> LAN IPV4 Adj-SID: 4138, Weight:0, Neighbor:r1, Flags: BVL LAN IPV6 Adj-SID: 4139, Weight:0, Neighbor:r1, Flags: FBVL IS extended neighbor: r4.00, Metric: default 10 IP address: 21.1.1.1 Neighbor's IP address: 21.1.1.2 Local interface index: 334, Remote interface index: 335 Current reservable bandwidth: Priority 0 : 1000Mbps Priority 1 : 1000Mbps Priority 2 : 1000Mbps Priority 3 : 1000Mbps Priority 4 : 1000Mbps Priority 5 : 1000Mbps Priority 6 : 1000Mbps Priority 7 : 1000Mbps Maximum reservable bandwidth: 1000Mbps Maximum bandwidth: 1000Mbps Administrative groups: 0 <none> P2P IPV4 Adj-SID - Flags: BVL, Weight:0, Label: 4125 P2P IPV6 Adj-SID - Flags: FBVL, Weight:0, Label: 4126
show isis interface-group
The following sample output displays the status information about the specified interface group.
user@host> show isis interface-group Interface-group: r1r2ig ge-0/0/1.1, 1000Mbps, Up, Non-Degraded, Weight: 1 ge-0/0/1.3, 1000Mbps, Up, Non-Degraded, Weight: 1 ge-0/0/1.5, 1000Mbps, Up, Non-Degraded, Weight: 1 Total Nominal Bandwidth: 3Gbps, Total Actual Bandwidth: 3Gbps Level 1 IPv4 protected Adj-SID: Label 4138 Level 1 IPv6 unprotected Adj-SID: Label 4139