Static Adjacency Segment Identifier for IS-IS and OSPF
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 the 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.
The
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 for IS-IS:
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;
The following is a sample configuration for OSPF:
user@host# set protocols mpls label-range static-label-range 700000 799999;user@host# set protocols ospf source-packet-routing srgb start-label 800000 index-range 4000;user@host# set protocols ospf area 0.0.0.0 interface ge-0/0/0.1 ipv4-adjacency-segment unprotected label 700001;
When you use ipv4-adjacency-segment command, the underlying
interface must be point-to-point.
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.
The Adj-SIDs can be allocated from the 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 for IS-IS:
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.
The following is a sample configuration for OSPF:
user@host# set protocols ospf source-packet-routing srgb start-label 800000 index-range 4000;user@host# set protocols ospf area 0.0.0.0 interface ge-0/0/0.1 ipv4-adjacency-segment unprotected index 1;
Static adjacency SIDs can be configured per area and also based on whether the protection
is required or not. Adjacency SIDs should be configured per interface at the
[edit protocols ospf area area interface
interface-name] 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 for IS-IS:
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;
The following is a sample configuration for OSPF:
user@host# set protocols ospf area 0.0.0.0 interface ge-0/0/0.1 ipv4-adjacency-segment unprotected index 1;user@host# set protocols ospf area 0.0.0.0 interface ge-0/0/1.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,
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 for IS-IS
and [[edit protocols ospf area 0.0.0.0 interface
interface_name lan-neighbor
neighbor-routerid]] hierarchy level for
OSPF. The following is a sample
configuration for
IS-IS:
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;
The following is a sample configuration for OSPF:
user@host# set protocols mpls label-range static-label-range 700000 799999;user@host# set protocols ospf source-packet-routing srgb start-label 800000 index-range 4000;user@host# set protocols ospf area 0.0.0.0 interface ge-1/0/0.1 lan-neighbor 11.12.1.2 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 for IS-IS:
[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 CLI hierarchy for configuring adjacency SID for OSPF:
[edit ]
protocols {
ospf {
area 0.0.0.0 {
interface <interface_name> {
ipv4-adjacency-segment {
protected {
dynamic;
label <value>
index <index>
}
unprotected {
dynamic;
label <value>
index <index>
}
}
}
interface <interface_name> {
lan-neighbor <neighbor-routerid>{
ipv4-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 ospf neighbor detail
The following sample output displays the details of configured and dynamic adjacency SID.
user@host> show ospf neighbor detail
Address Interface State ID Pri Dead
11.12.1.2 ge-1/0/0.0 Full 12.1.1.1 128 34
Area 0.0.0.0, opt 0x52, DR 0.0.0.0, BDR 0.0.0.0
Up 00:06:27, adjacent 00:06:27
SPRING Adjacency Labels:
Label Flags Adj-Sid-Type
90010 BVLP Protected
1212 VLP UnProtected
regress@10.49.129.231# run show route label 90010
mpls.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
90010 *[L-OSPF/10/5] 00:00:21, metric 0
> to 11.12.1.2 via ge-1/0/0.0, Pop
to 11.12.2.2 via ge-1/0/2.0, Swap 16021
to 11.12.3.2 via ge-1/0/3.0, Swap 16021 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