Segment Routing Primer
An RSVP-TE/LDP Revolution
Just for Fun: Gary Jan
Content
▪ Introduction
▪ Architecture
▪ LDP & RSVP-TE
▪ Segment Routing- IGP Walkthrough
▪ Segment Routing- Explicit Path Walkthrough
Introduction
▪ Segment Routing
▪ Source-based routing solution
▪ Embedding instructions as “Segments” in the packet
▪ Formless, Shapeless, Stateless
▪ Removes complexity (signaling, session, etc) in the network
▪ History
▪ Cisco driven. First introduced in IETF in 2013. IETF accepted in 2014
▪ Vendor specific commercial solutions since 2015
▪ https://tools.ietf.org/html/draft-ietf-spring-segment-routing-11
Segment Routing- Architecture
Forwarding Plane
Control Plane
Service Plane
MPLS IPv6
OSPF/ISIS BGP PCC
TE FRR ECMP PCE Service Plane
▪ Keeping all service diversity
Control Plane
▪ OSPF/ISIS/BGP extension to advertise
Segment information
Forwarding Plane
▪ Reuse MPLS and IPv6
Keep the good stuff; Remove the tedious stuff
LDP & RSVP-TE
A
B D
C E
F A
B D
C E
F
▪ Label distribution protocol by piggybacking IGP
▪ LDP session between routers to exchange labels
▪ Labels are locally significant
▪ Does not support link characteristics
▪ IGP-based, supports ECMP
▪ Flexible but limited functionality
▪ Reservation protocol used to reserve Path
▪ Reserving: label, ERO, SERO, BW
▪ RSVP Session for every [Dest, Src] pair
▪ n*(n-1) issue
▪ Routers keep track BW usage
▪ Inflexible but Powerful
LDP RSVP-TE
Segment Routing: Powerful and Flexible
LDP
LDP
LDP
PATH Descriptor
RESV Descriptor
Segment Routing- Jargons
▪ Segment ID (SID)
▪ Identifier of instruction
▪ Prefix SID
▪ Shortest path to an IP prefix
▪ Node SID
▪ Shortest path to a node
▪ Adjacency SID
▪ Instruction to use a link
▪ Instruction to apply local services
A
B D
C E
F
IP Subnet
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Route / FIB Development
1. SR routers use OSPF/ISIS/BGP to advertise routers and SIDs
2. Eventually, LSDB in every SR router of the network has full topology info
▪ Distance to every prefix, subnet
▪ Segments IDs of every node, link, and prefix
▪ Bandwidth
▪ FIB, and TED
3. Path computation
▪ Distributed: PCE in routers populate FIB
▪ Centralized: PCE in SDN populates FIB through BGS-LS
Segment Routing: Powerful and Flexible
Example- FIB 1/2
Route Table of A
Destination Segment ID Interface
10.1.0.0/16 6000 A-B / A-C
........ …….. ……..
A
B D
C E
F
IP Subnet
10.1.0.0/16
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Node SID
400
Node SID
600
401
501
502
602
FIB of A
In SID Action Out SID Interface
6000 Swap 6000 A-B / A-C
600 Swap 600 A-B/ A-C
400 Swap 400 A-C
101 Pop - A-C
FIB of B
In SID Action Out SID Interface
6000 Swap 6000 B-D
400 Pop - B-D
Example- FIB 2/2
A
B D
C E
F
IP Subnet
10.1.0.0/16
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Node SID
400
Node SID
600
401
501
502
602
FIB of E
In SID Action Out SID Interface
6000 Swap 6000 E-F
600 Pop - E-F
100 Swap 100 E-C
FIB of D
In SID Action Out SID Interface
6000 Swap 6000 D-F
401 Pop - D-E
600 Pop - D-F
100 Pop - D-B
FIB of F
In SID Action Out SID Interface
6000 Pop - F
Packet Walkthrough- IGP 1/2
A
B D
C E
F
IP Subnet
10.1.0.0/16
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Node SID
400
Node SID
600
401
501
502
602
6000
10.1.1.1/16
Src IP
Payload
10.1.1.1/16
Src IP
Payload
Route Table of A
Destination Segment ID Interface
10.1.0.0/16 6000 A-B / A-C
........ …….. ……..
FIB of A
In SID Action Out SID Interface
6000 Swap 6000 A-B / A-C
600 Swap 600 A-B/ A-C
500 Swap 500 A-C
101 Pop - A-C
Packet Walkthrough- IGP 2/2
A
B D
C E
F
IP Subnet
10.1.0.0/16
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Node SID
400
Node SID
600
401
501
502
602
6000
10.1.1.1/16
Src IP
Payload
FIB of B
In SID Action Out SID Interface
6000 Swap 6000 B-D
........ …….. ……..
6000
10.1.1.1/16
Src IP
Payload
FIB of D
In SID Action Out SID Interface
6000 Swap 6000 D-F
401 Pop - D-E
600 Pop - D-F
100 Pop - D-B
FIB of F
In SID Action Out SID Interface
6000 Pop - F
6000
10.1.1.1/16
Src IP
Payload
10.1.1.1/16
Src IP
Payload
Explicit Path- SR-TE
▪ What if I want to use path ABDEF
▪ Explicit Path- PCE
▪ SR-TE- IGP
▪ SR-TE- PCE
A
B D
C E
F
IP Subnet
10.1.0.0/16
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Node SID
400
Node SID
600
401
501
502
602
Explicit Path- Controller PCE 1/2
▪ Pkt with dest. IP 10.1.1.1/16 ingress A
▪ Router A request SDN controller Segment
instructions through Netconf/Yang
▪ Controller instructs Segments/Labels
▪ Note, Label FIB in the network remain
unchanged
A
B D
C E
F
IP Subnet
10.1.0.0/16
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Node SID
400
Node SID
600
401
501
502
602400
401
500
600
6000
10.1.1.1/16
Src IP
Payload
10.1.1.1/16
Src IP
Payload
FIB of A
In SID Action Out SID Interface
6000 Swap 6000 A-B / A-C
600 Swap 600 A-B/ A-C
400 Swap 400 A-B/ A-C
101 Pop - A-C
OSS
Explicit Path- Controller PCE 2/2
A
B D
C E
F
IP Subnet
10.1.0.0/16
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Node SID
400
Node SID
600
401
501
502
602
400
401
500
600
6000
10.1.1.1/16
Src IP
Payload
FIB of B
In SID Action Out SID Interface
6000 Swap 6000 B-D
400 Pop - B-D
FIB of D
In SID Action Out SID Interface
6000 Swap 6000 D-F
401 Pop - D-E
600 Pop - D-F
100 Pop - D-B
401
500
600
6000
10.1.1.1/16
Src IP
Payload
500
600
6000
10.1.1.1/16
Src IP
Payload
OSS
SR-TE- PCE
A
B D
C E
F
IP Subnet
10.1.0.0/16
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Node SID
400
Node SID
600
401
501
502
602
400
401
500
600
6000
10.1.1.1/16
Src IP
Payload
401
500
600
6000
10.1.1.1/16
Src IP
Payload
500
600
6000
10.1.1.1/16
Src IP
Payload
600
6000
10.1.1.1/16
Src IP
Payload
6000
10.1.1.1/16
Src IP
Payload
OSS
Controller distribute segment instructions to every node on the path
SR-TE- IGP
A
B D
C E
F
IP Subnet
10.1.0.0/16
Node SID
200
Node SID
500
Node SID
100
101
301
Adjacency
SID
Prefix SID
6000Node SID
300
Node SID
400
Node SID
600
401
501
502
602
400
401
500
600
6000
10.1.1.1/16
Src IP
Payload
401
500
600
6000
10.1.1.1/16
Src IP
Payload
500
600
6000
10.1.1.1/16
Src IP
Payload
600
6000
10.1.1.1/16
Src IP
Payload
6000
10.1.1.1/16
Src IP
Payload
OSS
Controller distribute segment instructions to Head of Path. Head reserve
path by using IGP extension.
IGP
My few cents
▪ MPLS transition to SR will be an issue since non-duplication of label space
▪ Segment routing reduces the complexity of label distribution
▪ However, it doesn’t solve the complexity of the network
▪ Segment routing still heavily relying on IGP or BGP to flood the network
topology
▪ Inherently the drawbacks of IGP
Questions?

Segment Routing for Dummies

  • 1.
    Segment Routing Primer AnRSVP-TE/LDP Revolution Just for Fun: Gary Jan
  • 2.
    Content ▪ Introduction ▪ Architecture ▪LDP & RSVP-TE ▪ Segment Routing- IGP Walkthrough ▪ Segment Routing- Explicit Path Walkthrough
  • 3.
    Introduction ▪ Segment Routing ▪Source-based routing solution ▪ Embedding instructions as “Segments” in the packet ▪ Formless, Shapeless, Stateless ▪ Removes complexity (signaling, session, etc) in the network ▪ History ▪ Cisco driven. First introduced in IETF in 2013. IETF accepted in 2014 ▪ Vendor specific commercial solutions since 2015 ▪ https://tools.ietf.org/html/draft-ietf-spring-segment-routing-11
  • 4.
    Segment Routing- Architecture ForwardingPlane Control Plane Service Plane MPLS IPv6 OSPF/ISIS BGP PCC TE FRR ECMP PCE Service Plane ▪ Keeping all service diversity Control Plane ▪ OSPF/ISIS/BGP extension to advertise Segment information Forwarding Plane ▪ Reuse MPLS and IPv6 Keep the good stuff; Remove the tedious stuff
  • 5.
    LDP & RSVP-TE A BD C E F A B D C E F ▪ Label distribution protocol by piggybacking IGP ▪ LDP session between routers to exchange labels ▪ Labels are locally significant ▪ Does not support link characteristics ▪ IGP-based, supports ECMP ▪ Flexible but limited functionality ▪ Reservation protocol used to reserve Path ▪ Reserving: label, ERO, SERO, BW ▪ RSVP Session for every [Dest, Src] pair ▪ n*(n-1) issue ▪ Routers keep track BW usage ▪ Inflexible but Powerful LDP RSVP-TE Segment Routing: Powerful and Flexible LDP LDP LDP PATH Descriptor RESV Descriptor
  • 6.
    Segment Routing- Jargons ▪Segment ID (SID) ▪ Identifier of instruction ▪ Prefix SID ▪ Shortest path to an IP prefix ▪ Node SID ▪ Shortest path to a node ▪ Adjacency SID ▪ Instruction to use a link ▪ Instruction to apply local services A B D C E F IP Subnet Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300
  • 7.
    Route / FIBDevelopment 1. SR routers use OSPF/ISIS/BGP to advertise routers and SIDs 2. Eventually, LSDB in every SR router of the network has full topology info ▪ Distance to every prefix, subnet ▪ Segments IDs of every node, link, and prefix ▪ Bandwidth ▪ FIB, and TED 3. Path computation ▪ Distributed: PCE in routers populate FIB ▪ Centralized: PCE in SDN populates FIB through BGS-LS Segment Routing: Powerful and Flexible
  • 8.
    Example- FIB 1/2 RouteTable of A Destination Segment ID Interface 10.1.0.0/16 6000 A-B / A-C ........ …….. …….. A B D C E F IP Subnet 10.1.0.0/16 Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300 Node SID 400 Node SID 600 401 501 502 602 FIB of A In SID Action Out SID Interface 6000 Swap 6000 A-B / A-C 600 Swap 600 A-B/ A-C 400 Swap 400 A-C 101 Pop - A-C FIB of B In SID Action Out SID Interface 6000 Swap 6000 B-D 400 Pop - B-D
  • 9.
    Example- FIB 2/2 A BD C E F IP Subnet 10.1.0.0/16 Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300 Node SID 400 Node SID 600 401 501 502 602 FIB of E In SID Action Out SID Interface 6000 Swap 6000 E-F 600 Pop - E-F 100 Swap 100 E-C FIB of D In SID Action Out SID Interface 6000 Swap 6000 D-F 401 Pop - D-E 600 Pop - D-F 100 Pop - D-B FIB of F In SID Action Out SID Interface 6000 Pop - F
  • 10.
    Packet Walkthrough- IGP1/2 A B D C E F IP Subnet 10.1.0.0/16 Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300 Node SID 400 Node SID 600 401 501 502 602 6000 10.1.1.1/16 Src IP Payload 10.1.1.1/16 Src IP Payload Route Table of A Destination Segment ID Interface 10.1.0.0/16 6000 A-B / A-C ........ …….. …….. FIB of A In SID Action Out SID Interface 6000 Swap 6000 A-B / A-C 600 Swap 600 A-B/ A-C 500 Swap 500 A-C 101 Pop - A-C
  • 11.
    Packet Walkthrough- IGP2/2 A B D C E F IP Subnet 10.1.0.0/16 Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300 Node SID 400 Node SID 600 401 501 502 602 6000 10.1.1.1/16 Src IP Payload FIB of B In SID Action Out SID Interface 6000 Swap 6000 B-D ........ …….. …….. 6000 10.1.1.1/16 Src IP Payload FIB of D In SID Action Out SID Interface 6000 Swap 6000 D-F 401 Pop - D-E 600 Pop - D-F 100 Pop - D-B FIB of F In SID Action Out SID Interface 6000 Pop - F 6000 10.1.1.1/16 Src IP Payload 10.1.1.1/16 Src IP Payload
  • 12.
    Explicit Path- SR-TE ▪What if I want to use path ABDEF ▪ Explicit Path- PCE ▪ SR-TE- IGP ▪ SR-TE- PCE A B D C E F IP Subnet 10.1.0.0/16 Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300 Node SID 400 Node SID 600 401 501 502 602
  • 13.
    Explicit Path- ControllerPCE 1/2 ▪ Pkt with dest. IP 10.1.1.1/16 ingress A ▪ Router A request SDN controller Segment instructions through Netconf/Yang ▪ Controller instructs Segments/Labels ▪ Note, Label FIB in the network remain unchanged A B D C E F IP Subnet 10.1.0.0/16 Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300 Node SID 400 Node SID 600 401 501 502 602400 401 500 600 6000 10.1.1.1/16 Src IP Payload 10.1.1.1/16 Src IP Payload FIB of A In SID Action Out SID Interface 6000 Swap 6000 A-B / A-C 600 Swap 600 A-B/ A-C 400 Swap 400 A-B/ A-C 101 Pop - A-C OSS
  • 14.
    Explicit Path- ControllerPCE 2/2 A B D C E F IP Subnet 10.1.0.0/16 Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300 Node SID 400 Node SID 600 401 501 502 602 400 401 500 600 6000 10.1.1.1/16 Src IP Payload FIB of B In SID Action Out SID Interface 6000 Swap 6000 B-D 400 Pop - B-D FIB of D In SID Action Out SID Interface 6000 Swap 6000 D-F 401 Pop - D-E 600 Pop - D-F 100 Pop - D-B 401 500 600 6000 10.1.1.1/16 Src IP Payload 500 600 6000 10.1.1.1/16 Src IP Payload OSS
  • 15.
    SR-TE- PCE A B D CE F IP Subnet 10.1.0.0/16 Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300 Node SID 400 Node SID 600 401 501 502 602 400 401 500 600 6000 10.1.1.1/16 Src IP Payload 401 500 600 6000 10.1.1.1/16 Src IP Payload 500 600 6000 10.1.1.1/16 Src IP Payload 600 6000 10.1.1.1/16 Src IP Payload 6000 10.1.1.1/16 Src IP Payload OSS Controller distribute segment instructions to every node on the path
  • 16.
    SR-TE- IGP A B D CE F IP Subnet 10.1.0.0/16 Node SID 200 Node SID 500 Node SID 100 101 301 Adjacency SID Prefix SID 6000Node SID 300 Node SID 400 Node SID 600 401 501 502 602 400 401 500 600 6000 10.1.1.1/16 Src IP Payload 401 500 600 6000 10.1.1.1/16 Src IP Payload 500 600 6000 10.1.1.1/16 Src IP Payload 600 6000 10.1.1.1/16 Src IP Payload 6000 10.1.1.1/16 Src IP Payload OSS Controller distribute segment instructions to Head of Path. Head reserve path by using IGP extension. IGP
  • 17.
    My few cents ▪MPLS transition to SR will be an issue since non-duplication of label space ▪ Segment routing reduces the complexity of label distribution ▪ However, it doesn’t solve the complexity of the network ▪ Segment routing still heavily relying on IGP or BGP to flood the network topology ▪ Inherently the drawbacks of IGP
  • 18.