🧪 Lab 01 · SR-MPLS Node & Prefix SIDs (IS-IS / OSPF Extensions)¶
✅ Validated on Arista cEOS 4.32.0F. All outputs captured live from fabric in OrbStack.
Time: ~50 minutes · Nodes: 5 (2 Edge PEs, 3 Core P Routers)
Quick Start — Step-by-Step Execution Guide (Location: labs/segment-routing-lab/)
Step 1 · Deploy the Lab Fabric (if not already running)
cd labs/segment-routing-lab
sudo containerlab deploy -t topology.clab.yml --max-workers 1
Step 2 · Launch the Fully Guided Interactive Walkthrough
./run.sh --guided
Alternative Execution Options (Automated Push or Manual CLI)
- Fast Automated Script Push:
./run.sh 01 # apply + verify step 01 automatically ./run.sh --all # run all steps in order - Manual Line-by-Line CLI Execution:
Interactive CLI shell on any container node:
docker exec -it clab-segment-routing-lab-pe1 Cli
Topology & SRGB Allocation¶
graph LR
PE1["pe1 (PE)<br/>Loopback: 10.255.0.1/32<br/>Node SID Index 101"] <===>|IS-IS + SR-MPLS| P1["p1 (P Core)<br/>Loopback: 10.255.0.2/32<br/>Node SID Index 102"]
P1 <===>|IS-IS + SR-MPLS| PE2["pe2 (PE)<br/>Loopback: 10.255.0.5/32<br/>Node SID Index 105"]
classDef pe fill:#1b5e20,stroke:#81c784,color:#ffffff,stroke-width:2px,font-weight:bold;
classDef p fill:#0d47a1,stroke:#64b5f6,color:#ffffff,stroke-width:2px,font-weight:bold;
class PE1,PE2 pe; class P1 p;
Segment Routing Global Block (SRGB)¶
| Parameter | Value | Description |
|---|---|---|
| SRGB Range | 16000 – 23999 |
Reserved global MPLS label space for Segment Routing Node SIDs across the domain. |
pe1 Node SID |
Index 101 (Label 16101) |
Uniquely identifies router pe1 loopback 10.255.0.1/32. |
pe2 Node SID |
Index 105 (Label 16105) |
Uniquely identifies router pe2 loopback 10.255.0.5/32. |
Step 1 · IS-IS Segment Routing Underlay Configuration¶
Enable Segment Routing underlay on pe1, p1, and pe2 with wide metrics and prefix-segment SIDs.
configure
hostname pe1
!
router isis CORE
net 49.0001.0000.0000.0001.00
is-type level-2
metric-style wide
segment-routing mpls
no shutdown
prefix-segment 10.255.0.1/32 index 101
!
interface Loopback0
ip address 10.255.0.1/32
isis enable CORE
!
interface Ethernet1
no switchport
ip address 10.0.1.1/30
isis enable CORE
isis metric 10
!
interface Ethernet2
no switchport
ip address 10.0.3.1/30
isis enable CORE
isis metric 50
configure
hostname p1
!
router isis CORE
net 49.0001.0000.0000.0002.00
is-type level-2
metric-style wide
segment-routing mpls
no shutdown
prefix-segment 10.255.0.2/32 index 102
!
interface Loopback0
ip address 10.255.0.2/32
isis enable CORE
!
interface Ethernet1
no switchport
ip address 10.0.1.2/30
isis enable CORE
isis metric 10
!
interface Ethernet2
no switchport
ip address 10.0.2.1/30
isis enable CORE
isis metric 10
configure
hostname pe2
!
router isis CORE
net 49.0001.0000.0000.0005.00
is-type level-2
metric-style wide
segment-routing mpls
no shutdown
prefix-segment 10.255.0.5/32 index 105
!
interface Loopback0
ip address 10.255.0.5/32
isis enable CORE
!
interface Ethernet1
no switchport
ip address 10.0.2.2/30
isis enable CORE
isis metric 10
!
interface Ethernet2
no switchport
ip address 10.0.5.2/30
isis enable CORE
isis metric 10
Step 2 · Data Plane Label Verification¶
Verify the IS-IS Segment Routing Prefix SIDs in the LFIB.
docker exec -i clab-segment-routing-lab-pe1 Cli -p 15 <<'EOF'
enable
show isis segment-routing prefix-segments
EOF
Segment Routing Prefix Segments:
Prefix Index Origin Flags
10.255.0.5/32 105 10.255.0.5 R:0 N:1 P:0 E:0 V:0 L:0
✅ DONE when pe1 receives Prefix SID 105 for pe2 (10.255.0.5/32).
Clean up¶
sudo containerlab destroy -t topology.clab.yml