[SR-MPLS] LAB Segment Routing with SR-TE and PCE

Nam NguyenNam Nguyen
5 min read

Lab topology and sample configs for testing Segment Routing with SR-TE and PCE on Cisco IOS XE routers.


🖥️ Topology

[ R1 ]---[ R2 ]---[ R3 ]---[ R4 ]
   |                         |
   |-------------------------|
  • R1: PCC (client), Source

  • R4: Destination

  • R2 & R3: Transit

  • Loopbacks:

    • R1 = 1.1.1.1/32, SID 16001

    • R2 = 2.2.2.2/32, SID 16002

    • R3 = 3.3.3.3/32, SID 16003

    • R4 = 4.4.4.4/32, SID 16004


🔧 Common OSPF & SR Config (on all routers)

hostname R1
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Gig0/0
 ip address 10.0.12.1 255.255.255.0
 mpls ip
 ip ospf 1 area 0
!
router ospf 1
 router-id 1.1.1.1
 segment-routing mpls
!
mpls traffic-eng
!
segment-routing
 mpls
  global-block 16000 23999
  connected-prefix-sid-map
   address 1.1.1.1/32 absolute-sid 16001

Change IPs and SIDs accordingly for R2–R4.


🧠 On PCE Node (e.g., R2)

pce
 segment-routing
  peer 1.1.1.1
   source-address 2.2.2.2
   lsr-id 2.2.2.2
   capability pcc
   capability pce
!
pcc-address-family ipv4
 stateful-client
!
pce-address-family ipv4
 source-address 2.2.2.2

🧭 On PCC Node (R1)

pce
 segment-routing
  pcc
   peer 2.2.2.2
    source-address 1.1.1.1

🚀 Tunnel (SR-TE Policy on R1 to R4)

interface Tunnel100
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 4.4.4.4
 tunnel mpls traffic-eng path-option 10 dynamic
 tunnel mpls traffic-eng autoroute announce
 segment-routing mpls

📋 Verification

  • show pce peer

  • show pce lsp

  • show segment-routing traffic-eng policy

  • show mpls forwarding-table

More details

     [R1 - PCC]
        |
     (IGP + SR)
        |
     [R2 - PCE]
      /      \
     /        \
[R3]----(IGP)----[R4]

Roles:

  • R1 (PCC): Requests a path from the PCE.

  • R2 (PCE): Computes the best SR-TE path based on constraints (e.g., low latency, bandwidth).

  • R3 & R4: Intermediate and destination routers.

Traffic Flow:

  1. R1 uses IGP (e.g., OSPF or IS-IS) with Segment Routing enabled to advertise and receive labels (SIDs).

  2. R1, as PCC, sends a path computation request (PCEP) to R2.

  3. R2, as PCE, computes a TE path using available topology and policy constraints.

  4. R1 receives the path and installs it as an SR-TE policy.

  5. Traffic follows the SR policy instead of IGP’s default shortest path.

Benefits of SR-TE with PCE:

  • Centralized path computation (PCE).

  • Dynamic re-optimization when network state changes.

  • SLA-aware routing (e.g., avoid congested links or meet latency targets).

  • Supports automation via NETCONF/YANG or CLI.


🧱 Example Network Setup

R1 -- R2 -- R3 -- R4

R1 = PCC (headend)
R2 = PCE (central controller)
R4 = destination
Links: SR-MPLS enabled, OSPF/ISIS as IGP

Suppose you want traffic to use only "green" links.

interface GigabitEthernet0/0/0/1
 description Link to R3 (green)
 segment-routing
  forwarding
  affinity 0x2

Here:

  • affinity 0x2 marks the link as "green".

  • Affinity is a 32-bit bitmask — you define meanings separately.


2️⃣ Define Affinity Mapping (on PCE or router where policy is configured)

segment-routing
 traffic-eng
  affinity-map green 0x2

3️⃣ Define SR-TE Policy with Constraints (on R1 — PCC)

segment-routing
 traffic-eng
  policy SRTE-R1-R4
   color 100
   end-point ipv4 10.0.0.4
   candidate-paths
    preference 100
     constraints
      affinity include green
      bandwidth 1000000  ! in Kbps (1 Gbps)
     explicit segment-list R1-R2-R3-R4

4️⃣ Define Explicit Segment List (Optional for hard path pinning)

segment-routing
 traffic-eng
  segment-list R1-R2-R3-R4
   index 10
    mpls label 16002  ! R2 SID
   index 20
    mpls label 16003  ! R3 SID
   index 30
    mpls label 16004  ! R4 SID

✅ What This Does:

  • Bandwidth: Allocates bandwidth-aware paths via the PCE.

  • Affinity: Ensures only “green” tagged links are used.

  • Explicit path: You can pin the SR path manually using segment SIDs.

Here is the full configuration for a Cisco SR-TE setup using a PCE-PCC model across four routers (R1 to R4). R1 is the PCC, R2 is the PCE, and R3/R4 are transit/destination nodes.

  • ```plaintext ! ! R1 Configuration (PCC) ! hostname R1 ! interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface GigabitEthernet0/0 ip address 10.0.12.1 255.255.255.0 mpls ip ip ospf 1 area 0 ! interface GigabitEthernet0/1 ip address 10.0.14.1 255.255.255.0 mpls ip ip ospf 1 area 0 ! router ospf 1 router-id 1.1.1.1 network 10.0.12.0 0.0.0.255 area 0 network 10.0.14.0 0.0.0.255 area 0 network 1.1.1.1 0.0.0.0 area 0 segment-routing mpls ! mpls traffic-eng ! segment-routing mpls global-block 16000 23999 connected-prefix-sid-map address 1.1.1.1/32 absolute-sid 16001 ! pce segment-routing pcc peer 2.2.2.2 source-address 1.1.1.1 ! interface Tunnel100 ip unnumbered Loopback0 tunnel mode mpls traffic-eng tunnel destination 4.4.4.4 tunnel mpls traffic-eng path-option 10 dynamic tunnel mpls traffic-eng autoroute announce segment-routing mpls

! ! R2 Configuration (PCE) ! hostname R2 ! interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface GigabitEthernet0/0 ip address 10.0.12.2 255.255.255.0 mpls ip ip ospf 1 area 0 ! interface GigabitEthernet0/1 ip address 10.0.23.1 255.255.255.0 mpls ip ip ospf 1 area 0 ! router ospf 1 router-id 2.2.2.2 network 10.0.12.0 0.0.0.255 area 0 network 10.0.23.0 0.0.0.255 area 0 network 2.2.2.2 0.0.0.0 area 0 segment-routing mpls ! mpls traffic-eng ! segment-routing mpls global-block 16000 23999 connected-prefix-sid-map address 2.2.2.2/32 absolute-sid 16002 ! pce segment-routing peer 1.1.1.1 source-address 2.2.2.2 lsr-id 2.2.2.2 capability pcc capability pce ! pcc-address-family ipv4 stateful-client ! pce-address-family ipv4 source-address 2.2.2.2

! ! R3 Configuration (Transit) ! hostname R3 ! interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface GigabitEthernet0/0 ip address 10.0.23.2 255.255.255.0 mpls ip ip ospf 1 area 0 ! interface GigabitEthernet0/1 ip address 10.0.34.1 255.255.255.0 mpls ip ip ospf 1 area 0 ! router ospf 1 router-id 3.3.3.3 network 10.0.23.0 0.0.0.255 area 0 network 10.0.34.0 0.0.0.255 area 0 network 3.3.3.3 0.0.0.0 area 0 segment-routing mpls ! mpls traffic-eng ! segment-routing mpls global-block 16000 23999 connected-prefix-sid-map address 3.3.3.3/32 absolute-sid 16003

! ! R4 Configuration (Destination) ! hostname R4 ! interface Loopback0 ip address 4.4.4.4 255.255.255.255 ! interface GigabitEthernet0/0 ip address 10.0.34.2 255.255.255.0 mpls ip ip ospf 1 area 0 ! interface GigabitEthernet0/1 ip address 10.0.14.2 255.255.255.0 mpls ip ip ospf 1 area 0 ! router ospf 1 router-id 4.4.4.4 network 10.0.34.0 0.0.0.255 area 0 network 10.0.14.0 0.0.0.255 area 0 network 4.4.4.4 0.0.0.0 area 0 segment-routing mpls ! mpls traffic-eng ! segment-routing mpls global-block 16000 23999 connected-prefix-sid-map address 4.4.4.4/32 absolute-sid 16004 ```

0
Subscribe to my newsletter

Read articles from Nam Nguyen directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Nam Nguyen
Nam Nguyen

Visit to see more: https://linktr.ee/nddnam I am an enthusiastic Network Engineer with 7+ years of experience working on MPLS L3VPN Network projects, Cisco SDWAN Deployment, and Enterprise Networks. I love to automate every daily task and think Dev-Ops as always. Thus, I am entering the DevNet world.