SDN Workshop. Contact: WSDN01_v0.1

Similar documents
SDN Workshop. Contact: WSDN01_v0.1

Introduction to Segment Routing

A Segment Routing (SR) Tutorial. R. Bonica NANOG70 June 6, 2017

Internet Engineering Task Force (IETF) Category: Standards Track. B. Decraene S. Litkowski Orange R. Shakir Google, Inc. July 2018

MENOG 18. Segment Routing. Vahid Tavajjohi. From HAMIM Corporation

Segment Routing Configuration Guide

Segment Routing Configuration Guide, Cisco IOS XE Fuji 16.7.x

Segment Routing. A tutorial Paresh Khatri Nokia Public

Introduction to Segment Routing Santiago Álvarez, Distinguished Technical Marketing Engineer BRKRST-2124

LARGE SCALE IP ROUTING LECTURE BY SEBASTIAN GRAF

Configure Segment Routing for IS-IS Protocol

You cannot configure prefix-sids on transit links at this time. Support for this feature may be introduced in later code versions.

Practice exam questions for the Nokia NRS II Composite Exam

MPLS etc.. MPLS is not alone TEST. 26 April 2016 AN. Multi-Protocol Label Switching MPLS-TP FEC PBB-TE VPLS ISIS-TE MPƛS GMPLS SR RSVP-TE OSPF-TE PCEP

Configure Segment Routing Mapping Server

BrainDumps.4A0-103,230.Questions

2D1490 p MPLS, RSVP, etc. Olof Hagsand KTHNOC/NADA

Multi-Protocol Label Switching

Segment Routing With IS-IS v4 Node SID

MPLS etc.. 9 May 2017 AN

Testking.4A0-103,249.QA 4A Alcatel-Lucent Multi Protocol Label Switching

Segment Routing Commands

Multi Protocol Label Switching (an introduction) Karst Koymans. Thursday, March 12, 2015

internet technologies and standards

Computer Network Architectures and Multimedia. Guy Leduc. Chapter 2 MPLS networks. Chapter 2: MPLS

Vendor: Alcatel-Lucent. Exam Code: 4A Exam Name: Alcatel-Lucent Multiprotocol Label Switching. Version: Demo

Segment Routing. Clarence Filsfils Distinguished Engineer

Segment Routing MPLS data plane. Clarence Filsfils Kris Michielsen

Configuring MPLS, MPLS VPN, MPLS OAM, and EoMPLS

MPLS. 9 March 2018 AN

IS-IS. In This Chapter XRS Routing Protocols Guide Page 449

Configure Segment Routing for BGP

Table of Contents Chapter 1 MPLS Basics Configuration

Implementing MPLS Layer 3 VPNs

HP MSR Router Series. MPLS Configuration Guide(V7) Part number: Software version: CMW710-R0106 Document version: 6PW

Cisco Training - HD Telepresence MPLS: Implementing Cisco MPLS V3.0. Upcoming Dates. Course Description. Course Outline

Segment Routing Configuration Guide for Cisco NCS 5500 Series Routers, IOS XR Release 6.1.x

Segment Routing Configuration Guide for Cisco ASR 9000 Series Routers, IOS XR Release 6.1.x

MPLS Intro. Cosmin Dumitru March 14, University of Amsterdam System and Network Engineering Research Group ...

Next Generation MULTICAST In-band Signaling (VRF MLDP: Profile 6)

HP A-MSR Router Series MPLS. Configuration Guide. Abstract

HP 5920 & 5900 Switch Series

IPv6 Switching: Provider Edge Router over MPLS

IPv6 Switching: Provider Edge Router over MPLS

LARGE SCALE IP ROUTING LECTURE BY SEBASTIAN GRAF

HP MSR Router Series. MPLS Configuration Guide(V5) Part number: Software version: CMW520-R2513 Document version: 6PW

Advertising MPLS LSPs in the IGP

Agenda DUAL STACK DEPLOYMENT. IPv6 Routing Deployment IGP. MP-BGP Deployment. OSPF ISIS Which one?

PrepAwayExam. High-efficient Exam Materials are the best high pass-rate Exam Dumps

Securizarea Calculatoarelor și a Rețelelor 32. Tehnologia MPLS VPN

Segment Routing MPLS OAM Support

Spirent TestCenter Segment Routing AppNote

Configure SR-TE Policies

Introduction to Segment Routing

Introduction to MPLS APNIC

MultiProtocol Label Switching - MPLS ( RFC 3031 )

BGP MPLS VPNs. Introduction

Segment Routing MPLS OAM Support

Multiprotocol Label Switching (MPLS)

Bit Indexed Explicit Replication A Stateless Multicast Architecture. Nagendra Kumar Nainar NANOG72

SDN Workshop. Contact: WSDN01_v0.1

What You Will Learn By the end of this appendix, you should know and be able to explain the following:

OSPFv2 Segment Routing Strict SPF

Configuring Static MPLS

Routing Resiliency Latest Enhancements

MPLS MPLS. Basically: 9 March 2018 AN. Multi-Protocol Label Switching. A bit of history. Multi-Protocol Label Switching.

MPLS VPN--Inter-AS Option AB

SEGMENT ROUTING PRINCIPLES AND APPLICATIONS FOR SDN

Introduction to MPLS. What is MPLS? 1/23/17. APNIC Technical Workshop January 23 to 25, NZNOG2017, Tauranga, New Zealand. [201609] Revision:

Point-to-Point LSPs. In This Chapter SR Advanced Configuration Guide Page 1155

LDP Fast Reroute using LDP Downstream On Demand. 1. Problem: 2. Summary: 3. Description:

Spirent TestCenter EVPN and PBB-EVPN AppNote

HP FlexFabric Switch Series

MPLS Egress Protection Framework draft-shen-mpls-egress-protectionframework-02

High Availability for 2547 VPN Service

MPLS опорни мрежи MPLS core networks

HP Routing Switch Series

CCIE Service Provider Sample Lab. Part 2 of 7

Multiprotocol Label Switching (MPLS)

Preferred Path Routing (PPR) in IGPs

Configure IOS XR Traffic Controller (XTC)

MPLS VPN Inter-AS Option AB

Basic MPLS commands. display mpls forwarding ilm. Syntax. Views. Predefined user roles. Parameters. Usage guidelines. Examples

Segment Routing Policy for Traffic Engineering draft-filsfils-spring-segment-routing-policy-05.txt

Egress Protection (draft-shen-mpls-egress-protection-framework) Presented by Krzysztof G. Szarkowicz NANOG71 October 4, 2017

Alcatel-Lucent 7705 SERVICE AGGREGATION ROUTER OS RELEASE 6.0.R4 MPLS GUIDE MPLS GUIDE

Internet Routing - MPLS. By Richard Harris

6 MPLS Model User Guide

Multicast in a VPN I. In This Chapter SR Advanced Configuration Guide Page 635

MPLS VPN. 5 ian 2010

Implementing MPLS Label Distribution Protocol

This document is not restricted to specific software and hardware versions.

Segment Routing on Cisco Nexus 9500, 9300, 9200, 3200, and 3100 Platform Switches

H3C SR6600 Routers. MPLS Configuration Guide. Hangzhou H3C Technologies Co., Ltd.

Multi Topology Routing Truman Boyes

Segment Routing SR/LDP interworking. Clarence Filsfils Kris Michielsen

Segment Routing for IPv6 Networks Stefano Previdi Distinguished Engineer BRKRST-3123

Multiprotocol Label Switching Virtual Private Network

Deploying MPLS Traffic Engineering

Pass4sure JN q

Transcription:

SDN Workshop Contact: training@apnic.net WSDN01_v0.1 Issue Date: [Date] Revision: [xx]

Segment Routing SDN Workshop WSDN01_v0.1 Issue Date: [Date] Revision: [xx]

Overview In a nutshell Introduction to MPLS Segment Routing Introduction Architecture MPLS data plane IPv6 data plane BGP EPE LDP inter-working 3

In a nutshell 4

SDN architectural framework Application Plane Northbound Interfaces Application Service REST/RESTCONF/NETCONF/XMPP Network Services Abstraction Layer Control Plane (controller) Topology Discovery & Management Route selection & failover Traffic Engineering Resource Management Configuration East/Westbound interfaces BGP Southbound Interfaces BGP-LS i2rs PCE-P ForCES IPFIX SNMP Open Flow Netconf BGP RIBs PCC SNMP MIBs OpenFlow YANG Data Plane Segment Routing RSVP- TE Device & Resource Abstraction Layer (DAL) Network Devices IP/MPLS/Transport Note: designations of north-bound and south-bound are relative to the control plane ( controller ) 5

Segment routing: in a nutshell What? The source determines the path a packet should take How? By encoding the path within the packet as a sequence of segments or instructions. Why? To reduce network state and allow centralised computation of paths 6

MPLS Introduction 7

Introduction MPLS: Multi-Protocol Label Switching Tunneling mechanism that supports a number of types of payloads (hence multi ) Concept of Forwarding Equivalence Class (FEC): groups of packets that need to be forwarded in an identical manner. Each FEC is assigned a label, a 20-bit opaque value Packets are classified into FECs at network ingress and an MPLS label corresponding to the FEC is added to the packet Intermediate hops swap the MPLS label and forward the packet onwards to their next-hops 8

MPLS label stack entry Transport IP MPLS Shim Header Data Link Layer encapsulation LER LSR 9

MPLS label operations PUSH: Adds a new label to the label stack (which may be empty) SWAP: Acts on the top (outer) label Replaces the top label value with another label value POP: Removes the top label, exposing either another label or the payload of the MPLS packet 10

MPLS tables NHLFE (Next Hop Label Forwarding Entry): Used for forwarding labeled packets Contains next-hop, label operation, link-layer encapsulation information ILM (Incoming Label Map): Mapping between incoming labels and NHLFEs FEC to NHLFE map (FTN): Used for forwarding unlabeled packets Maps each FEC to a set of NHLFEs 11

MPLS node types LSR LSR LSR iler Ingress Label Edge Router (iler) MPLS router that pushes MPLS label LSR LSR LSR eler Egress Label Edge Router (eler) MPLS router that pops MPLS label Label Switch Path Path taken by MPLS packets from iler to eler Label Switch Router (LSR) MPLS router that swaps MPLS label 12

MPLS VPN node types P P P PE PE Provider Edge VPN LER Provider Edge VPN LER P P P Label Switch Path Path taken by MPLS packets from PE to PE Provider Router (P) LSR in an MPLS VPN network 13

BGP/MPLS: service (VPN) label exchange 192.168.1.1 192.168.1.2 192.168.1.3 P1 P2 P3 CE1 BGP-MPLS PE1 FEC: VPN-X PE2 CE2 Label: 1234 192.168.1.11 192.168.2.22 P4 P5 Metric: 100 P6 192.168.1.4 192.168.1.5 192.168.1.6 All IGP metrics are equal to 10 unless otherwise indicated 14

LDP: building the ILM ILM Outlabel Inlabel Outlabel Intf 400 300 To-P2 ILM Inlabel 192.168.1.1 192.168.1.2 192.168.1.3 Intf 300 200 To-P3 ILM In-label Out-label Interface 200 100 To-PE2 P1 P2 P3 ILM In-label Out-label Interface CE1 LDP FEC: PE2 Label: 300 LDP FEC: PE2 Label: 200 LDP FEC: PE2 FEC: PE2 Label: 400 LDP Label: 100 192.168.1.11 FEC: PE2 Label: 300 192.168.2.22 100 - Local PE1 LDP PE2 CE2 FTN FEC Outlabel Intf PE-2 400 To-P1 P4 P5 Metric: 100 P6 192.168.1.4 192.168.1.5 192.168.1.6 ILM Inlabel Outlabel Intf All IGP metrics are equal to 10 unless otherwise indicated 500 300 To-P2 15

LDP: traffic forwarding 400 1234 Swap 400 for 300 1234 1234 192.168.1.1 192.168.1.2 192.168.1.3 P1 300 Swap 300 for 200 P2 200 Swap 200 for 100 P3 100 1234 CE1 PE1 PUSH 1234, 400 POP 100, 1234 PE2 CE2 192.168.1.11 192.168.2.22 P4 P5 Metric: 100 P6 Packet destined to PE2 arrives at PE1 192.168.1.4 192.168.1.5 192.168.1.6 All IGP metrics are equal to 10 unless otherwise indicated 16

LDP: building the ILM (with PHP) ILM Intf 400 300 To-P2 ILM 192.168.1.1 192.168.1.2 192.168.1.3 Intf 300 200 To-P3 ILM In-label Out-label Interface 200 - To-PE2 P1 P2 P3 CE1 LDP FEC: PE2 Label: 300 LDP FEC: PE2 Label: 200 LDP FEC: PE2 FEC: PE2 Label: 400 LDP Label: 3 (implicit null) 192.168.1.11 FEC: PE2 192.168.2.22 Label: 300 PE1 LDP PE2 CE2 FTN FEC Outlabel Outlabel Intf PE-2 400 To-P1 P4 P5 P6 192.168.1.4 192.168.1.5 192.168.1.6 ILM Inlabel Outlabel Inlabel Outlabel Inlabel Intf 500 300 To-P2 Metric: 100 PHP: Penultimate Hop Pop All IGP metrics are equal to 10 unless otherwise indicated 17

LDP: traffic forwarding (with PHP) 400 1234 Swap 400 for 300 1234 1234 192.168.1.1 192.168.1.2 192.168.1.3 P1 300 Swap 300 for 200 Pop 200 200 P2 P3 1234 CE1 PE1 PUSH 1234, 400 POP 1234 PE2 CE2 192.168.1.11 192.168.2.22 P4 P5 Metric: 100 P6 Packet destined to PE2 arrives at PE1 192.168.1.4 192.168.1.5 192.168.1.6 All IGP metrics are equal to 10 unless otherwise indicated 18

LDP: observations LDP forwarding follows the IGP shortest paths All nodes install an ILM entry for every LDP destination A single LDP label (associated with the destination) is required to transport packets Labels are assigned by the downstream routers i.e. the label a router uses for ILM lookup is that assigned by the router itself LDP label changes at each hop as labels are locallysignificant 19

RSVP-TE: signaling an LSP (1) RSVP-TE Msg: PATH 192.168.1.1 Dest: PE2 192.168.1.2 192.168.1.3 RSVP-TE Msg: PATH Dest: PE2 P1 P2 P3 CE1 RSVP-TE Msg: PATH RSVP-TE Dest: PE2 Msg: PATH 192.168.1.11 Dest: PE2 192.168.2.22 PE1 PE2 CE2 P4 P5 Metric: 100 P6 192.168.1.4 192.168.1.5 192.168.1.6 RSVP-TE Msg: PATH Dest: PE2 All IGP metrics are equal to 10 unless otherwise indicated 20

RSVP-TE: signaling an LSP (2) ILM Intf 555 666 To-P2 ILM 192.168.1.1 192.168.1.2 192.168.1.3 Intf 666 777 To-P5 P1 P2 P3 ILM In-label Out-label Interface CE1 FTN FEC PE1 RSVP-TE PE2 CE2 P4 RSVP-TE Msg: RESV Label: 666 Intf LSP1 555 To-P1 Msg: RESV Label: 777 P5 ILM P6 192.168.1.4 192.168.1.5 RSVP-TE Msg: RESV 192.168.1.6 Label: 888 Inlabel Outlabel Inlabel Outlabel Outlabel In- Msg: RESV label label Label: 555 RSVP-TE 888 999 To-PE2 192.168.1.11 192.168.2.22 Out- Metric: 100 Intf RSVP-TE Msg: RESV Label: 999 999 POP Local ILM Inlabel Outlabel Intf All IGP metrics are equal to 10 unless otherwise indicated 777 888 To-P6 21

RSVP-TE: traffic forwarding 555 1234 Swap 555 for 666 1234 192.168.1.1 192.168.1.2 192.168.1.3 P1 666 Swap 666 for 777 P2 P3 CE1 Packet mapped to LSP1 PUSH 1234, PE1 1234 POP PE2 CE2 555 888 999,1234 1234 192.168.1.11 192.168.2.22 999 P4 777 P5 P6 192.168.1.4 192.168.1.5 192.168.1.6 Swap 777 for 888 Metric: 100 Swap 888 for 999 1234 All IGP metrics are equal to 10 unless otherwise indicated 22

RSVP-TE: observations RSVP-TE allows the construction of arbitrary paths based on traffic-engineering requirements i.e. longer IGP paths may end up being preferred For two nodes to communicate, RSVP-TE LSPs need to be signaled in both directions. RSVP-TE maintains soft-state which needs to be refreshed periodically RSVP-TE label changes at each hop as labels are locallysignificant 23

MPLS label distribution protocols Attribute LDP RSVP-TE BGP Relative Complexity Low High Medium Application Shortest-path routing Traffic engineering Scaling (seamless MPLS) Label allocation (unicast) Multipoint-to-point Point-to-point Point-to-point Label significance Local Local Local Multicast mldp extensions p2mp LSPs N/A Traffic-engineering No Yes No Fast Reroute (FRR) Yes (xlfa extensions) Yes Yes (BGP PIC) FRR coverage Scaling Usually <100% via xlfa but not guaranteed O(n) One LSP per destination 100% via link and node protection O(n^2) Full-mesh required for complete coverage IGP interaction Dependent Required for TE extensions Limited to BGP PIC O(n) One LSP per destination N/A 24

Challenges How do we achieved fine-grained traffic-engineering at scale? RSVP-TE faces scaling challenges due to it s connected-oriented meshing requirement LDP does not have traffic-engineering capabilities We need a mechanism that marries the best of RSVP-TE with the best of LDP 25

Segment Routing introduction 26

Standardisation Defined by the SPRING (Source Packet Routing in Networking) in working group of the IETF The ability for a node to specify a forwarding path, other than the normal shortest path, that a particular packet will traverse, benefits a number of network functions: Some types of network virtualization, including multi-topology networks and the partitioning of network resources for VPNs Network, link, path, and node protection such as fast reroute Network programmability OAM techniques Simplification and reduction of network signaling components Load balancing and traffic engineering 27

Requirements MUST allow incremental and selective deployment without requiring a flag day or massive upgrade of all network elements MUST allow putting policy state in the packet header and not in the intermediate nodes along the path i.e. there should be no policy state in mid-points and tail-ends. 28

Source Routing Segment Routing leverages the concept of Source Routing, where the source of the packet includes routing information within the data packet itself. Contrast this with hop-by-hop destination-based routing, where each intermediate point makes a determination of how a packet needs to be forwarded Supported data planes: MPLS without any modification (this section focusses chiefly on the MPLS data plane) IPv6 with the use of a new IPv6 Routing Header type 29

How it works The source determines the path a packet should take and encodes it within the packet as a sequence of segments or instructions. For routing purposes, segments are topological instructions: node: take shortest path to the node adjacency: send packet over the specified adjacency regardless of IGP metric Intermediate hops inspect the segment list and route as per the instructions implied by it; no per-path state is kept 30

Use case: IGP-based MPLS tunneling PE1 installs prefix Z in VRF for VPN-X and resolves nexthop to PE2 via an IGP-based P1 P2 MPLS tunnel to PE2 Route to Z MP-BGP: VPN-X, route to Z, A CE1 PE1 label LZ, next-hop PE2 PE2 CE2 Z VPN-X P3 P4 VPN-X 31

Use case: Fast Reroute (FRR) Support of FRR on any topology Precomputation and setup of backup path without any additional signaling (other than the regular IGP/BGP protocols) Support of shared risk constraints Support of node and link protection Support of micro-loop avoidance 32

Use case: traffic engineering Loose or strict options Bandwidth admission control Distributed vs. centralized model Disjointness in dual-plane networks Egress peer engineering Load balancing among non-parallel links (i.e., links connected to different adjacent neighbors). Limiting (scalable, preferably zero) per-service state and signaling on midpoint and tail-end routers. ECMP-awareness 33

Sneak preview: SR-TE example Routing: Traffic-engineered. The link from PE5 to PE6 has a link-metric of 100. How do we force traffic over this link? Segments Identifiers: Node and Adjacency segments 34

Objectives Objectives: All traffic from PE1 to PE2 should traverse P2 but avoid the P2- P3 link P1 P2 P3 CE1 PE1 PE2 CE2 P4 P5 Metric: 100 P6 All IGP metrics are equal to 10 unless otherwise indicated 35

Traffic forwarding Node P2 CE1 Node P2 Node P5 P5-P6 link Node PE2 VPN X Node P5 P5-P6 link Node PE2 VPN X P1 P2 P3 Node P5 P5-P6 link PE2 PE1 VPN X VPN X PE2 CE2 PE2 VPN X PE2 P4 P5 Metric: 100 P6 All IGP metrics are equal to 10 unless otherwise indicated 36

Architecture 37

Introduction Segment Routing (SR) allows a node to steer a packet through an ordered list of instructions, called segments. Segments can represent any type of instruction: Topological Service Application Etc. Semantics of a segment can be local to an SR node or global within the SR domain Allows steering of flows without requiring per-flow state at intermediate points in the network 38

Terminology (1) Segment an instruction a node executes on an incoming packet. For example: forward packet according to shortest path to destination, or forward packet through a specific interface, or deliver the packet to a given application/service instance Global Segment The related instruction is supported by all SR-capable routers in the domain 39

Terminology (2) Local Segment The related instruction is only supported by the router originating it Segment Identifier (SID) identifier for a segment. Current options include: An absolute MPLS label value An index value in an MPLS label space An IPv6 address 40

Terminology (3) Segment List an ordered list of SIDs encoding the ordered set of instructions to be applied to a packet as it traverses an SR domain. In an MPLS data plane, the Segment List is instantiated as a stack of labels. In an IPv6 data plane, it is instantiated as an ordered list of IPv6 addresses. Segment Routing Domain (SR Domain) the set of nodes participating in the source-based routing model 41

Terminology (4) SR Global Block (SRGB) set of local MPLS labels reserved for global segments. Segment List Depth The number of segments in a segment list 42

Segment list (1) An ordered list of SIDs encoding the ordered set of instructions to be applied to a packet as it traverses an SR domain. In an MPLS data plane, the Segment List is instantiated as a stack of labels. In an IPv6 data plane, it is instantiated as an ordered list of IPv6 addresses. The Active Segment that must be used by the receiving router to process the packet is: The top label in the MPLS dataplane The destination address of a packet with a Segment Routing Header (SRH) in the IPv6 dataplane 43

Segment list (2) The segment list imposed by the SR node at the edge of the SR domain can be computed either: locally by an operator provisioned via NETCONF provisioned via PCE-P 44

IGP segments IGP Segments Segments identifying information advertised by an IGP IGP-Prefix Segments Global (Prefix-SID) Segment representing an IGP prefix IGP-Adjacency Segments Local (Adjacency-SID) Segment representing an IGP adjacency Semantics: SR header operation: NEXT Next-hop: related egress interface IGP-Anycast Segments Global (Anycast-SID) Segment representing an anycast prefix IGP-Node Segments Global (Node-SID) Segment identifying a specific router Remote-Binding Segment Global (Binding-SID) Advertised by a Mapping Server for prefixes attached to non-sr routers 45

Node SIDs Node SIDs are used to identify nodes as destinations Globally significant, by default Nodes-SIDs are essentially instructions to forward a packet via the shortest ECMP-aware IGP path to the destination node Advertised by the link-state IGP (OSPF, IS-IS) Need to be manually configured 46

Anycast SIDs A SID that is advertised by all the members of an Anycast set All routers in the set advertise the same Anycast prefix and SID value Globally significant, by default Anycast-SIDs are essentially instructions to forward a packet via the shortest ECMP-aware IGP path to the topologically closest member of the Anycast set Advertised by the link-state IGP (OSPF, IS-IS) 47

Adjacency SIDs Nodes allocate one Adj-SID for each of its adjacencies Nodes may allocate multiple Adj-SIDs to the same adjacency A node may allocate the same Adj-SID to multiple adjacencies: Packets containing such an Adj-SID are then hashed across the different adjacencies Locally significant, by default, and is installed only in the FIB of the originating router Adj-SIDs are essentially instructions to forward a packet out a specific interface regardless of IGP link metric Advertised by the link-state IGP (OSPF, IS-IS) 48

BGP peering segments An ingress border router of an AS can steer a flow along a selected AS, towards a selected egress border router of the AS and through a specific peer by using BGP Egress Peer Engineering capabilities BGP Peering Segments Segments identifying by a BGP EPE (Egress Peer Engineering)-enabled node. Enable the expression of source-routed interdomain paths Peer Node Segments Local (PeerNode-SID) Segment representing a BGP peering node Semantics: SR header operation: NEXT Next-hop: connected peering node to which the segment is related Peer Adjacency Segments Local (PeerAdj-SID) Segment representing an adjacency to a BGP peering node Semantics: SR header operation: NEXT Next-hop: peer connected through the interface to which the segment is related Peer Set Segments Local (PeerSet-SID) Segment representing a set of BGP peering nodes Semantics: SR header operation: NEXT Next-hop: load-balance across any connected interface to any peer in the related group 49

Segment operations Operation Segment Routing semantic MPLS data plane IPv6 data plane PUSH Insertion of a segment at the top of the segment list PUSHing a new label on to the label stack Setting of the first segment in the IPv6 Segment Routing Header NEXT Signals completion of active segment and activation of the next segment in the segment list POPping of the top label in the label stack Activation of the next segment in the IPv6 Segment Routing Header segment list CONTINUE Signals that the currently active segment is not yet complete and needs to remain active SWAP of the top label Standard IPv6 forwarding based on destination address 50

MPLS data plane 51

MPLS data plane A segment is encoded as an MPLS label An ordered list of segments is encoded as a stack of labels The active segment is the one on the top of the label stack i.e. top MPLS label There is zero change to the operation of the standard MPLS data plane 52

SR Global Block (SRGB) Set of local MPLS labels reserved for global segments. Network operation is greatly simplified if all nodes in the SR domain are configured with the same SRGB. In this example, SRGB range is 16483-32767 1048575 32767 16384 0 SRGB MPLS Label Space 53

Label advertisement with common SRGB Segment Identifiers: Node-SIDs Allocated as absolute globallysignificant MPLS label values SRGB: Identical SRGB configured on all nodes 54

SID advertisements (1) Association of SID to prefix advertised by IGP 192.168.1.1 SID: 101 SRGB: 100-199 192.168.1.2 SID: 102 SRGB: 100-199 192.168.1.3 SID: 103 SRGB: 100-199 P1 P2 P3 ILM In-label Out-label Interface 103 103 To-P2 ILM (no-php) In-label Out-label Interface 103 103 To-P3 ILM (with PHP) In-label Out-label Interface 103 - To-P3 ILM In-label Out-label Interface 103 - Local Identical SRGB on all nodes 55

SID advertisements (2) Association of SID to prefix advertised by IGP 192.168.1.1 SID: 101 SRGB: 100-199 192.168.1.2 SID: 102 SRGB: 100-199 192.168.1.3 SID: 103 SRGB: 100-199 P1 P2 P3 ILM (no-php) In-label Out-label Interface 102 102 To-P2 ILM (with PHP) In-label Out-label Interface 102 - To-P2 ILM In-label Out-label Interface 102 - Local ILM (no-php) In-label Out-label Interface 102 102 To-P2 ILM (with PHP) In-label Out-label Interface 102 - To-P2 Identical SRGB on all nodes 56

SID advertisements (3) Association of SID to prefix advertised by IGP 192.168.1.1 SID: 101 SRGB: 100-199 192.168.1.2 SID: 102 SRGB: 100-199 192.168.1.3 SID: 103 SRGB: 100-199 P1 P2 P3 ILM In-label Out-label Interface 101 - Local ILM (no-php) In-label Out-label Interface 101 101 To-P1 ILM (with PHP) In-label Out-label Interface 101 - To-P1 ILM In-label Out-label Interface 101 101 To-P2 Identical SRGB on all nodes 57

Dealing with different SRGBs If nodes in the same SR domain have different SRGBs, absolute label values can not be used 1048575 In such a case, a globally unique index is used instead. The local label at a given node is found by adding the globally-unique index to the node s SRGB. 32767 16384 0 SRGB MPLS Label Space Index used as offset 58

Using index values Example: index value of 100 1048575 Node A 1048575 Node B 131071 SRGB 32767 65536 SRGB 16384 0 MPLS Label Space 0 MPLS Label Space Absolute label value = 16384+100 = 16484 Absolute label value = 65536+100 = 65636 59

Label index advertisement with SRGB Segment Identifiers: Node-SIDs Allocated as globally-unique index values SRGB: Different SRGB configured on all nodes 60

SID advertisements (1) Association of SID to prefix advertised by IGP 192.168.1.1 Label index: 1 SRGB: 100-199 192.168.1.2 Label index: 2 SRGB: 200-299 192.168.1.3 Label index: 3 SRGB: 300-399 P1 P2 P3 ILM In-label Out-label Interface 103 203 To-P2 ILM (no-php) In-label Out-label Interface 203 303 To-P3 ILM (with PHP) In-label Out-label Interface 203 - To-P3 ILM In-label Out-label Interface 303 - Local Identical SRGB on all nodes 61

SID advertisements (2) Association of SID to prefix advertised by IGP 192.168.1.1 Label index: 1 SRGB: 100-199 192.168.1.2 Label index: 2 SRGB: 200-299 192.168.1.3 Label index: 3 SRGB: 300-399 P1 P2 P3 ILM (no-php) In-label Out-label Interface 102 202 To-P2 ILM (with PHP) In-label Out-label Interface 102 - To-P2 ILM In-label Out-label Interface 202 - Local ILM (no-php) In-label Out-label Interface 302 202 To-P2 ILM (with PHP) In-label Out-label Interface 302 - To-P2 Identical SRGB on all nodes 62

SID advertisements (3) Association of SID to prefix advertised by IGP 192.168.1.1 Label index: 1 SRGB: 100-199 192.168.1.2 Label index: 2 SRGB: 200-299 192.168.1.3 Label index: 3 SRGB: 300-399 P1 P2 P3 ILM In-label Out-label Interface 101 - Local ILM (no-php) In-label Out-label Interface 201 101 To-P1 ILM (with PHP) In-label Out-label Interface 201 - To-P1 ILM In-label Out-label Interface 301 201 To-P2 Identical SRGB on all nodes 63

BGP/MPLS VPN (common to all subsequent use cases) Routing: BGP/MPLS VPN label advertisement 64

Example: service label exchange All subsequent examples use the service label value of 1234 192.168.1.1 192.168.1.2 192.168.1.3 P1 P2 P3 CE1 BGP-MPLS PE1 FEC: VPN-X PE2 CE2 Label: 1234 192.168.1.11 192.168.2.22 P4 P5 Metric: 100 P6 192.168.1.4 192.168.1.5 192.168.1.6 All IGP metrics are equal to 10 unless otherwise indicated 65

Use case 1: ECMP-aware shortest path routing Routing: ECMP-aware shortest path routing Segment Identifiers: Node-SIDs only Allocated as absolute globallysignificant MPLS label values SRGB: Identical SRGB configured on all nodes 66

Objectives Objectives: 192.168.1.1 SID: 101 SRGB: 100-499 192.168.1.2 SID: 102 SRGB: 100-499 192.168.1.3 SID: 103 SRGB: 100-499 Deliver traffic between PE1 and PE2 via the shortest IGP path P1 P2 P3 CE1 PE1 PE2 CE2 192.168.1.11 SID: 111 SRGB: 100-499 192.168.2.22 SID: 222 SRGB: 100-499 Use case 1 P4 P5 Metric: 100 P6 Routing SIDs Shortest-path Node 192.168.1.4 SID: 104 SRGB: 100-499 192.168.1.5 SID: 105 SRGB: 100-499 192.168.1.6 SID: 106 SRGB: 100-499 Label Value SRGB Absolute Common 67

Building the ILM ILM ILM Outlabel Inlabel Outlabel Intf 222 222 To-P2 192.168.1.1 SID: 101 SRGB: 100-499 ILM Inlabel Intf 222 222 To-P3 192.168.1.2 SID: 102 SRGB: 100-499 192.168.1.3 SID: 103 SRGB: 100-499 ILM In-label Out-label Interface 222 222 To-PE2 Inlabel Outlabel Intf 222 222 To-P1 P1 P2 P3 CE1 ILM PE1 PE2 CE2 Inlabel Outlabel Intf 192.168.1.11 SID: 111 SRGB: 100-499 222 222 To-PE2 192.168.2.22 SID: 222 SRGB: 100-499 Routing SIDs Label Value SRGB Use case 1 Shortest-path Node Absolute Common ILM P4 192.168.1.4 SID: 104 SRGB: 100-499 Inlabel Outlabel Intf ILM P5 192.168.1.5 SID: 105 SRGB: 100-499 Inlabel Outlabel Intf Metric: 100 P6 192.168.1.6 SID: 106 SRGB: 100-499 Association of SID to prefix advertised by IGP All IGP metrics are equal to 10 unless otherwise indicated 222 222 To-P5 222 222 To-P2 Identical SRGB on all nodes 68

Traffic forwarding 222 1234 Swap 222 for 222 192.168.1.1 SID: 101 P1 222 1234 Swap 222 for 222 192.168.1.2 SID: 102 P2 222 1234 Swap 222 for 222 192.168.1.3 SID: 103 P3 222 1234 CE1 PE1 PUSH 1234, POP 222, PE2 CE2 222 1234 192.168.1.11 SID: 111 192.168.2.22 SID: 222 Use case 1 P4 P5 Metric: 100 P6 Routing SIDs Shortest-path Node 192.168.1.4 SID: 104 192.168.1.5 SID: 105 192.168.1.6 SID: 106 Label Value SRGB Absolute Common All IGP metrics are equal to 10 unless otherwise indicated 69

Use case 2: ECMP-aware shortest path routing Routing: ECMP-aware shortest path routing Segment Identifiers: Node-SIDs only Allocated as index values SRGB: Different SRGB configured on different nodes 70

Objectives Objectives: 192.168.1.1 SID index: 1 SRGB: 200-299 192.168.1.2 SID index: 2 SRGB: 300-399 192.168.1.3 SID index: 3 SRGB: 400-499 Deliver traffic between PE1 and PE2 via the shortest IGP path P1 P2 P3 CE1 PE1 PE2 CE2 192.168.1.11 SID index: 11 SRGB: 100-199 Use case 2 P4 P5 Metric: 100 P6 Routing SIDs Shortest-path Node 192.168.1.4 SID index: 4 SRGB: 500-599 192.168.1.5 SID index: 5 SRGB: 600-699 192.168.1.6 SID index: 6 SRGB: 700-799 Label Value SRGB Index Different All IGP metrics are equal to 10 unless otherwise indicated 71

Building the ILM ILM ILM Outlabel Inlabel Outlabel Intf 222 322 To-P2 192.168.1.1 SID index: 1 SRGB: 200-299 ILM Inlabel Intf 322 422 To-P3 192.168.1.2 SID index: 2 SRGB: 300-399 192.168.1.3 SID index: 3 SRGB: 400-499 ILM In-label Out-label Interface 422 822 To-PE2 Inlabel Outlabel Intf 122 222 To-P1 P1 P2 P3 CE1 ILM PE1 PE2 CE2 Inlabel Outlabel Intf 192.168.1.11 SID index: 11 SRGB: 100-199 722 822 To-PE2 192.168.2.22 SID index: 22 SRGB: 800-899 Routing SIDs Label Value SRGB Use case 2 Shortest-path Node Index Different ILM P4 192.168.1.4 SID index: 4 SRGB: 500-599 Inlabel Outlabel Intf ILM P5 192.168.1.5 SID index: 5 SRGB: 600-699 Inlabel Outlabel Intf Metric: 100 P6 192.168.1.6 SID index: 6 SRGB: 700-799 Association of SID to prefix advertised by IGP All IGP metrics are equal to 10 unless otherwise indicated 522 622 To-P5 622 322 To-P2 72

Traffic forwarding 222 1234 Swap 222 for 322 192.168.1.1 SID index: 1 P1 322 1234 Swap 322 for 422 192.168.1.2 SID index: 2 P2 422 1234 Swap 422 for 822 192.168.1.3 SID index: 3 P3 822 1234 CE1 PE1 PUSH 1234, POP 822, PE2 CE2 222 1234 192.168.1.11 SID index: 11 192.168.2.22 SID index: 22 Use case 2 P4 P5 Metric: 100 P6 Routing SIDs Shortest-path Node 192.168.1.4 SID index: 4 192.168.1.5 SID index: 5 192.168.1.6 SID index: 6 Label Value SRGB Index Different All IGP metrics are equal to 10 unless otherwise indicated 73

Routing: Traffic-engineered Use case 3: SR-TE Segment Identifiers: Node-SIDs only Allocated as absolute globallysignificant MPLS label values SRGB: Identical SRGB configured on all nodes 74

Objectives Objectives: 192.168.1.1 SID: 101 SRGB: 100-499 192.168.1.2 SID: 102 SRGB: 100-499 192.168.1.3 SID: 103 SRGB: 100-499 All traffic from PE1 to PE2 should traverse P2 but avoid the P2- P3 link P1 P2 P3 CE1 PE1 PE2 CE2 192.168.1.11 SID: 111 SRGB: 100-499 192.168.2.22 SID: 222 SRGB: 100-499 Use case 3 P4 P5 P6 Routing SIDs Traffic-engineered Node 192.168.1.4 SID: 104 SRGB: 100-499 192.168.1.5 SID: 105 SRGB: 100-499 192.168.1.6 SID: 106 SRGB: 100-499 Label Value SRGB Absolute Common All IGP metrics are equal to 10 unless otherwise indicated 75

Building the ILM ILM Outlabel Inlabel Outlabel Intf 102 102 To-P2 192.168.1.1 SID: 101 SRGB: 100-499 ILM Inlabel Intf 105 105 To-P5 192.168.1.2 SID: 102 SRGB: 100-499 192.168.1.3 SID: 103 SRGB: 100-499 ILM In-label Out-label Interface 222 222 To-PE2 111 111 To-P2 101 101 To-P2 102 102 To-P2 103 - Local P1 P2 P3 104 104 To-P2 105 105 To-P2 106 106 To-PE2 Routing SIDs Label Value SRGB CE1 Use case 3 192.168.1.11 SID: 111 SRGB: 100-499 Traffic-engineered Node Absolute Common P4 192.168.1.4 SID: 104 SRGB: 100-499 ILM P5 ILM Inlabel Outlabel PE1 Association of Inlabelabel Out- SID to prefix Intf PE2 CE2 advertised by IGP 192.168.1.5 SID: 105 SRGB: 100-499 Intf 222 222 To-P6 222 222 To-PE2 P6 192.168.1.6 SID: 106 SRGB: 100-499 192.168.2.22 SID: 222 SRGB: 100-499 Association of SID to prefix advertised by IGP All IGP metrics are equal to 10 unless otherwise indicated 76

Traffic forwarding CE1 Use case 3 102 105 222 1234 192.168.1.11 SID: 111 Swap 102 102 for 102 105 Pop 102 192.168.1.1 SID: 101 P1 PUSH 1234, 222, 105, 102 PE1 1234 1234 PE2 CE2 P4 222 1234 105 222 Pop 105 192.168.1.2 SID: 102 P2 P5 222 1234 192.168.1.3 SID: 103 P3 222 P6 Swap 222 for 222 POP 222, 1234 192.168.2.22 SID: 222 Routing SIDs Traffic-engineered Node 192.168.1.4 SID: 104 192.168.1.5 SID: 105 192.168.1.6 SID: 106 Label Value SRGB Absolute Common All IGP metrics are equal to 10 unless otherwise indicated 77

Routing: Traffic-engineered. Difference from use case 3 is the link-metric of 100 from PE5 to PE6. How do we force traffic over this link? Use case 4: SR-TE Segment Identifiers: Node-SIDs and Adj-SIDs Node-SIDs allocated as absolute globallysignificant MPLS label values SRGB: Identical SRGB configured on all nodes 78

Objectives Objectives: 192.168.1.1 SID: 101 SRGB: 100-499 192.168.1.2 SID: 102 SRGB: 100-499 192.168.1.3 SID: 103 SRGB: 100-499 All traffic from PE1 to PE2 should traverse P2 but avoid the P2- P3 link P1 P2 P3 CE1 PE1 PE2 CE2 192.168.1.11 SID: 111 SRGB: 100-499 Use case 4 P4 P5 Metric: 100 P6 Routing SIDs Traffic-engineered Node, Adjacency 192.168.1.4 SID: 104 SRGB: 100-499 192.168.1.5 SID: 105 SRGB: 100-499 192.168.1.6 SID: 106 SRGB: 100-499 Label Value SRGB Absolute Common All IGP metrics are equal to 10 unless otherwise indicated 79

Building the ILM ILM Outlabel Inlabel Outlabel Intf 102 102 To-P2 192.168.1.1 SID: 101 SRGB: 100-499 ILM Inlabel Intf 105 105 To-P5 192.168.1.2 SID: 102 SRGB: 100-499 192.168.1.3 SID: 103 SRGB: 100-499 ILM In-label Out-label Interface 222 222 To-PE2 111 111 To-P2 101 101 To-P2 102 102 To-P2 103 - Local P1 P2 P3 104 104 To-P2 105 105 To-P2 106 106 To-PE2 Routing SIDs Label Value SRGB CE1 Use case 4 192.168.1.11 SID: 111 SRGB: 100-499 Traffic-engineered Node, Adjacency Absolute Common P4 192.168.1.4 SID: 104 SRGB: 100-499 ILM P5 ILM Outlabel PE1 Association of Inlabelabel Out- SID to prefix Intf PE2 CE2 advertised by IGP 192.168.1.5 SID: 105 SRGB: 100-499 Inlabel 222 222 To-PE2 Metric: 100 Intf 222 222 To-P2 106 106 To-P2 1001 - To-P6 P6 192.168.1.6 SID: 106 SRGB: 100-499 192.168.2.22 SID: 222 SRGB: 100-499 Association of SID to prefix advertised by IGP All IGP metrics are equal to 10 unless otherwise indicated 80

Traffic forwarding Routing SIDs Label Value SRGB CE1 Use case 4 Swap 102 105 for 1022 1001 Pop 102 102 222 105 192.168.1.1 1234 192.168.1.2 SID: 101 SID: 102 1001 222 1234 192.168.1.11 SID: 111 Traffic-engineered Node, Adjacency Absolute Common P1 PUSH 1234, 222, 1001, 105, 102 PE1 1234 1234 PE2 CE2 P4 192.168.1.4 SID: 104 102 105 1001 222 Pop 105, 1001 P2 P5 192.168.1.5 SID: 105 222 1234 Metric: 100 192.168.1.3 SID: 103 P3 222 P6 192.168.1.6 SID: 106 Swap 222 for 222 POP 222, 1234 192.168.2.22 SID: 222 All IGP metrics are equal to 10 unless otherwise indicated 81

Routing: Traffic-engineered Use case 5: SR-TE Segment Identifiers: Node-SIDs and Anycast-SIDs Allocated as absolute globallysignificant MPLS label values SRGB: Identical SRGB configured on all nodes 82

Anycast segments Anycast-SID allows ECMPaware shortest-path forwarding to the closest node of the anycast set A1 Anycast Group A 192.168.2.1 SID: 100 A3 All routers in the anycast set advertise the same anycast prefix with the same SID value 192.168.1.11 SID: 111 SRGB: 100-499 R1 R3 192.168.1.13 SID: 113 SRGB: 100-499 PE1 A2 A4 PE3 PE2 B1 B3 PE4 192.168.1.12 SID: 112 SRGB: 100-499 R2 R4 192.168.1.14 SID: 114 SRGB: 100-499 Use case 5 Routing Traffic-engineered SIDs Node, Anycast Label Value Absolute SRGB Common B2 Anycast Group B 192.168.2.2 SID: 200 B4 All IGP metrics are equal to 10 unless otherwise indicated Identical SRGB on all nodes 83

Objectives Objectives: A1 Anycast Group A 192.168.2.1 SID: 100 A3 All traffic from PE1 to PE3 should traverse the top plane 192.168.1.11 SID: 111 SRGB: 100-499 R1 R3 192.168.1.13 SID: 113 SRGB: 100-499 PE1 A2 A4 PE3 PE2 B1 B3 PE4 192.168.1.12 SID: 112 SRGB: 100-499 R2 R4 192.168.1.14 SID: 114 SRGB: 100-499 Use case 5 Routing Traffic-engineered SIDs Node, Anycast Label Value Absolute SRGB Common B2 Anycast Group B 192.168.2.2 SID: 200 B4 All IGP metrics are equal to 10 unless otherwise indicated Identical SRGB on all nodes 84

Traffic forwarding 100 113 1234 Swap 100 for 100 100 113 1234 Pop 100 A1 113 1234 A3 Swap 113 for 113 113 1234 Swap 113 for 113 PE1 forces packets destined for PE3 to go via Anycast Group A 113 1234 192.168.1.11 SID: 111 SRGB: 100-499 R1 R3 192.168.1.13 SID: 113 SRGB: 100-499 PUSH 1234, 113, 100 PE1 A2 A4 PE3 POP 113, 1234 PE2 B1 B3 PE4 192.168.1.12 SID: 112 SRGB: 100-499 R2 R4 192.168.1.14 SID: 114 SRGB: 100-499 Use case 5 B2 B4 Routing Traffic-engineered SIDs Label Value Node, Anycast Absolute Anycast Group B 192.168.2.2 SID: 200 All IGP metrics are equal to 10 unless otherwise indicated SRGB Common Identical SRGB on all nodes 85

IPv6 data plane 86

IPv6 data plane Requires a new type of Routing Header A segment is encoded as an IPv6 address (prefix-sid is the prefix itself). SRv6 Segment (abbreviated as SRv6-SID) is an 128-bit value An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header The active segment is indicated by the Destination Address (DA) of the packet. The DA of the packet changes at each segment completion. The final DA of the packet is encoded as the last segment of the path The next active segment is indicated by a pointer in the new routing header 87

Segment Routing Header (SRH) 32 bits next header hdr ext len routing type segments left last entry flags tag segment list[0] (128 bits IPv6 address) next header: - Header immediately following the SRH segments left: - index of the next segment to inspect last entry: - index of last element of the segment list segment list[n] (128 bits IPv6 address) optional TLVs flags: - P: protected, set when packet has been rerouted through an FRR mechanism - O: set for OAM packets - A: alert for presence of TLV objects - H: HMAC is present if set 88

Segment Routing Header (SRH) The SRH is added to the packet at its source, either: At the node originating the packet (host, server) At the ingress mode of an SR domain where the ingress node receives an IPv6 packet and encapsulates it into an outer IPv6 header followed by a Segment Routing Header The source address of the packet is the ingress node The destination address is set as the first segment of the path The last segment of the path is the egress node of the SR domain 89

Creating the SRH The source SR node does the following: Set SA = address of source SR node/sr-domain ingress node Set DA = value of the first segment Set first element of segment list = last segment Set second element of segment list = penultimate segment <and so on segment list is encoded in the reverse order of the path> Set Segments Left = n-1 where n = number of elements in the Segment List Set Last Entry field = n-1 where n = number of elements in the Segment List 90

Handling the SRH At each segment of the SRH, the following operations take place: IF SegmentsLeft > 0 THEN decrement SL update the IPv6 DA with SRH[SL] FIB lookup on updated DA forward according to the matched entry ELSE drop the packet 91

BGP Egress Peer Engineering (EPE) 92

BGP Egress Peer Engineering Problem statement (RFC7855): A centralised controller should be able to instruct an ingress PE router or a content source within the domain to use a specific egress PE and a specific interface/neighbor to reach a particular destination 93

SR BGP-EPE Segment Routing enables a centralised (SDN) controller to program any egress peer selection policy at ingress border routers or at hosts within the domain: Solution is called BGP Egress Peer Engineering (BGP-EPE) Centralised controller is called the BGP-EPE controller Egress border router where the BGP-EPE traffic steering functionality is implemented is called a BGP-EPE-enabled border router The policy programmed at an ingress border router is called a BGP- EPE policy 94

BGP peering segments An ingress border router of an AS can steer a flow along a selected AS, towards a selected egress border router of the AS and through a specific peer by using BGP Egress Peer Engineering capabilities BGP Peering Segments Segments identifying by a BGP EPE (Egress Peer Engineering)-enabled node. Enable the expression of source-routed interdomain paths Peer Node Segments Local (PeerNode-SID) Segment representing a BGP peering node Semantics: SR header operation: NEXT Next-hop: connected peering node to which the segment is related Peer Adjacency Segments Local (PeerAdj-SID) Segment representing an adjacency to a BGP peering node Semantics: SR header operation: NEXT Next-hop: peer connected through the interface to which the segment is related Peer Set Segments Local (PeerSet-SID) Segment representing a set of BGP peering nodes Semantics: SR header operation: NEXT Next-hop: load-balance across any connected interface to any peer in the related group 95

Routing: Traffic-engineered Use case: BGP-EPE Segment Identifiers: BGP-Peering segments SRGB: Identical SRGB configured on all nodes 96

BGP-EPE network BGP EPE Controller Node- SID: 32 B D G A Node- SID: 16 AS1 Node- SID: 64 C E AS2 AS4 L/8 K/8 AS3 K F 97

BGP-EPE Segments BGP-LS NLRIs corresponding to the BGP-EPE segments BGP EPE Controller Node- SID: 32 B D G A Node- SID: 16 AS1 Node- SID: 64 C E AS2 AS4 L/8 K/8 F AS3 K C s ILM In Label Op Out intf 1012 Pop Link to D 1022 Pop Link to E 1032 Pop Upper link to F BGP Peering segments allocated by PE C Peer Node Segments D 1012 E 1022 F 1052 Peer Adj Segments Upper link to F 1032 Lower link to F 1042 Peer Set Segments E, F 1060 1042 Pop Lower link to F 1052 Pop Load balance on any link to F 1060 Pop Load balance on any link to E or F 98

BGP-LS advertisements BGP-LS NLRIs corresponding to the BGP-EPE segments BGP EPE Controller Peer Node SID to D Descriptors: Node: BGP-router-ID(C), AS1 Peer: BGP-router-ID(D), AS2 Link: IP address of C s link to D, IP address of D s link to C Attributes: PeerNode SID: 1012 C s ILM In Label Op Out intf 1012 Pop Link to D 1022 Pop Link to E 1032 Pop Upper link to F BGP Peering segments allocated by PE C Peer Node Segments D 1012 E 1022 F 1052 Peer Adj Segments Upper link to F 1032 Lower link to F 1042 Peer Set Segments E, F 1060 1042 Pop Lower link to F 1052 Pop Load balance on any link to F 1060 Pop Load balance on any link to E or F 99

SR BGP-EPE input policy The BGP-EPE policy can be usually expressed at the ingress border router via a two-entry segment list where: The first elements is the IGP prefix SID of the selected egress border router AND The second element is a BGP Peering SID at the selected egress border router Note that BGP-EPE functionality is only required on the BGP-EPE-enabled egress border router; the ingress border router simply needs to support SR-TE 100

Input policy programming Input policy configured with SR-TE tunnel +steering policy via PCE-P/Netconf BGP EPE Controller Node- SID: 32 B D G A Node- SID: 16 AS1 Node- SID: 64 C E F AS2 AS3 Example input policy: route all traffic to L/8 via egress border router C s lower link to peer F SR-TE tunnel TE1: push {1042, 64} ip route L/8 next-hop TE1 K AS4 C s ILM In Label Op L/8 K/8 Out intf 1012 Pop Link to D 1022 Pop Link to E 1032 Pop Upper link to F 1042 Pop Lower link to F 1052 Pop Load balance on any link to F 1060 Pop Load balance on any link to E or F 101

Traffic flow BGP EPE Controller PUSH 1042, 64 64 1042 Node- SID: 32 B D AS2 G L/8 A Node- SID: 16 AS1 Node- SID: 64 C E AS4 K/8 Pop 64, 1042 F AS3 K 102

Interworking with LDP 103

Distributing SR labels in LDP A node that has both Segment Routing and LDP capability and active LDP neighbors is required to: create LDP bindings for each Prefix-SID and Node-SID learned in the SR domain Stitch the incoming LDP label to the outgoing SR label 104

Segment Routing Mapping Server (1) Segment Routing Mapping Server (SRMS): SR-capable router that advertises mappings between prefixes and labels for prefixes that it does now own itself. That is, the SRMS advertises prefix-to-sid mappings on behalf of non-sr-capable routers. Control-plane function only; the SRMS is not in the data path and can be located anywhere Multiple SRMSs can be used for redundancy Requires the use of SR IGP extensions 105

Segment Routing Mapping Server (2) A node that has both Segment Routing and LDP capability and active LDP neighbors is required to: create LDP bindings for each Prefix-SID and Node-SID learned in the SR domain Stitch the incoming SR label to the outgoing LDP label 106

Routing: Traffic-engineered Use case: SR-TE Segment Identifiers: Node-SIDs Allocated as absolute globallysignificant MPLS label values SRGB: Identical SRGB configured on all nodes 107

Mixed-LDP/SR network SID: 102 SRGB: 100-200 PE2 PE4 SR-only PE1 P5 P6 P7 P8 PE3 SR & LDP SID: 101 SRGB: 100-200 SID: 105 SRGB: 100-200 SID: 106 SRGB: 100-200 LDP-only SR domain LDP domain Requirement: Contiguous MPLS tunnels must be built: from PE1 to PE3 from PE3 to PE1 108

LDP to SR direction: label distribution ILM SID: 102 SRGB: 100-200 In-label Out-Label Intf 801 701 To-P7 Association of SID to prefix advertised by IGP PE2 LDP FECs advertised PE4 PE1 P5 P6 P7 P8 PE3 SID: 101 SRGB: 100-200 SID: 105 SRGB: 100-200 SID: 106 SRGB: 100-200 LDP FECs advertised SR-only SR domain LDP domain SR & LDP LDP labels allocated by P7 ILM LDP-only P7 creates LDP bindings for all SR Prefix-SIDs and Node-SIDs FEC Label PE1 701 PE2 702 P5 705 In-label Out-Label Intf 701 101 To-P6 702 102 To-P6 705 105 To-P6 P6 706 706 106 To-P6 109

LDP to SR direction: traffic flow SID: 102 SRGB: 100-200 PE2 Swap 101 for 101 Swap 101 for 101 101 1234 Swap 701 for 101 Swap 801 for 701 PE4 PUSH 1234, 801 POP 101, 1234 PE1 P5 P6 P7 P8 PE3 SID: 101 SRGB: 100-200 101 1234 SID: 105 SRGB: 100-200 101 1234 SID: 106 SRGB: 100-200 701 1234 801 1234 SR-only SR domain LDP domain SR & LDP LDP-only 110

SR to LDP direction: label distribution ILM ILM SID: 102 SRGB: 100-200 In-label Out-Label Intf 103 103 To-P7 In-label Out-Label Intf 803 303 To-PE3 PE2 Configured as SR Mapping Server (SRMS) PE4 PE1 P5 P6 P7 P8 PE3 SID: 101 SRGB: 100-200 SID: 105 SRGB: 100-200 SID: 106 SRGB: 100-200 LDP FEC: PE3 Label: 803 LDP FEC: PE3 Label: 303 SR-only SR domain LDP domain SR & LDP Local policy is configured on P5 to advertise SIDs for LDP-only nodes SIDs advertised by P5 FEC Label P8 108 PE3 103 PE4 104 ILM In-label Out-Label Intf 103 803 To-P8 LDP-only 111

SR to LDP direction: traffic flow SID: 102 SRGB: 100-200 PE2 Swap 103 for 103 Swap 103 for 103 103 1234 Swap 103 for 803 Swap 803 for 303 PE4 POP 803, 1234 PUSH 1234, 103 PE1 P5 P6 P7 P8 PE3 SID: 101 SRGB: 100-200 103 1234 SID: 105 SRGB: 100-200 103 1234 SID: 106 SRGB: 100-200 803 1234 303 1234 SR-only SR domain LDP domain SR & LDP LDP-only 112

IGP extensions 113

OSPFv2: SR capabilities An OSPFv2 router s SR capabilities are advertised in the Router Information Opaque LSA (RFC7770) SR-Algorithm TLV Used within the Router Information Opaque LSA to advertise the supported algorithms type 32 bits Algorithm 1 Algorithm Algorithm n algorithm: - 0: SPF - 1: Strict SPF length SID/Label Range TLV Used within the Router Information Opaque LSA to advertise the SRGB type range size 32 bits Sub-TLVs (variable) length reserved range size: size of SRGB sub-tlv: SID/Label sub-tlv indicating first SID/Label in the range SID/Label Sub-TLV Used to advertise the SID or label value type 32 bits SID/Label length 114

OSPFv2: Extended Prefix Opaque LSA Extended Prefix Opaque LSA used to advertise additional prefix attributes beyond what is possible with the fixed-format LSAs defined in RFC2328. LS age Options LS type opaque type opaque ID Advertising router LS sequence number LS checksum length TLVs Opaque type: - 7 (OSPFv2 Extended Prefix Opaque LSA) LS Type: - 10: area-local scope - 11: AS-wide scope TLV: - E.g. OSPF2 Extended Prefix TLV 115

OSPFv2: Extended Prefix TLV Extended Prefix TLV TLV of the OSPF Extended Prefix Opaque LSA (RFC7684) Used to advertise various additional attributes of the prefix 32 bits type length route type Prefix Length AF flags address prefix (variable) sub-tlvs (variable) route type: - 1: intra-area - 2: inter-area - 5: AS-external - 7: NSSA-external AF: - Address-family: only 1Pv4 unicast is supported algorithm: - 0: SPF - 1: Strict SPF sub-tlvs: - E.g. OSPF2 Prefix-SID sub-tlv 116

OSPFv2: Prefix SID sub-tlv Prefix-SID sub-tlv Sub-TLV of the OSPF Extended Prefix TLV (RFC7684) Flags NP M E V L 32 bits type length flags reserved MT-ID algorithm SID/Index/Label (variable) flags: - NP: No-PHP - M: Mapping Server - E-Flag: Explicit-Null - V: if set, SID is an absolute value - L: set for local significance MT: - Multi-Topology ID algorithm: - 0: SPF - 1: Strict SPF 117

OSPFv2: Extended Prefix Range TLV Extended Prefix Range TLV TLV of the OSPF Extended Prefix Opaque LSA (RFC7684) Used to advertise prefixes to SID/Label mappings as part of Segment Routing Mapping Server (SRMS) function 32 bits type length Prefix Length AF range size flags reserved address prefix (variable) sub-tlvs (variable) flags: - IA: set for inter-area type Range size: - Size of advertised range sub-tlvs: - e.g. Prefix-SID sub-tlv signifying start of the SID range Flags IA 118

OSPFv2: Extended Link Opaque LSA Extended Link Opaque LSA used to advertise additional link attributes beyond what is possible with the fixed-format LSAs defined in RFC2328. 32 bits LS age Options LS type opaque type opaque ID Advertising router LS sequence number LS checksum length TLVs Opaque type: - 8 (OSPFv2 Extended Link Opaque LSA) LS Type: - 10: area-local scope - 11: AS-wide scope TLV: - E.g. OSPF2 Extended Link TLV 119

OSPFv2: Extended Link TLV Extended Link TLV TLV of the OSPF Extended Link Opaque LSA (RFC7684) Used to advertise various additional attributes of the link 32 bits type length link type reserved link ID link data sub-tlvs (variable) link type, link ID, link data: - Identical to LSA type-1 values sub-tlvs: - E.g. OSPF2 Prefix-SID sub-tlv 120

OSPFv2: Adjacency SID sub-tlv Adjacency-SID sub-tlv Sub-TLV of the OSPF Extended Link TLV (RFC7684) Flags 32 bits type length flags reserved MT-ID weight SID/Index/Label (variable) B V L G P flags: - B: Adjacency is eligible for protection - V: if set, SID is an absolute value - L: set for local significance - G: refers to a group of adjacencies - P: Adj-SID is persistently allocated MT: - Multi-Topology ID weight: - used for load-balancing purposes 121

ISIS: SR capabilities An ISIS router s SR capabilities are advertised in the IS-IS Router Capability TLV-242 SR-Algorithm sub-tlv Used to advertise the supported algorithms SR-capabilities sub-tlv Used to advertise the SRGB 32 bits 32 bits type length Algorithm 1 Algorithm 2 Algorithm Algorithm n type length range flags SID/Label Sub-TLV algorithm: - 0: SPF - 1: Strict SPF range size: size of SRGB sub-tlv: SID/Label sub-tlv indicating first SID/Label in the range type SID/Label Sub-TLV Used to advertise the SID or label value 32 bits length SID/Label 122

IS-IS: Prefix SID sub-tlv Prefix-SID sub-tlv Carries an IGP-Prefix-SID Can be present in TLV-135,235,236,237,Binding- TLV Flags R N P E V L 32 bits type length flags algorithm SID/Index/Label (variable) flags: - R: Re-advertisement flag, prefix has been propagated from another level - N: set for Node-SID - P: no PHP if set - E-Flag: Explicit-Null - V: if set, SID is an absolute value - L: set for local significance algorithm: - 0: SPF - 1: Strict SPF TLV-135 (Extended IPv4 reachability) defined in [RFC5305 ]. TLV-235 (Multitopology IPv4 Reachability) defined in [RFC5120 ]. TLV-236 (IPv6 IP Reachability) defined in [RFC5308 ]. TLV-237 (Multitopology IPv6 IP Reachability) defined in [RFC5120 ]. 123

IS-IS: SID/Label Binding TLV Prefix-SID sub-tlv Used to advertise prefixes to SID/Label mappings as part of Segment Routing Mapping Server (SRMS) function Flags F M S D A 32 bits type length flags reserved range prefix length prefix prefix (continued, variable) sub-tlvs(variable) flags: - F: if set, IPv6 encap. Else, IPv4 - M: set for a mirrored context - S: set to allow flooding across entire domain - D: set when TLV is leaked from L2 to L1 - A: attached flag range: - allows advertising a range of prefixes and their labels sub-tlvs: - e.g. Prefix-SID sub-tlv signifying start of the SID range 124

IS-IS: Adjacency SID sub-tlv Adjacency-SID sub-tlv Carries an IGP-Adj-SID Can be present in TLV-22, 23, 222, 223, 141 Flags F B V L S P 32 bits type length flags weight SID/Index/Label (variable) flags: - F: if set, IPv6 encap. Else, IPv4 - B: Adjacency is eligible for protection - V: if set, SID is an absolute value - L: set for local significance - S: refers to a set of adjacencies - P: Adj-SID is persistently allocated weight: - used for load-balancing purposes TLV-22 (Extended IS reachability)[rfc5305] TLV-222 (Multitopology IS)[RFC5120] TLV-23 (IS Neighbor Attribute)[RFC5311] TLV-223 (Multitopology IS Neighbor Attribute)[RFC5311] TLV-141 (inter-as reachability information)[rfc5316] 125

References 126

References RFC7855 - Source Packet Routing in Networking (SPRING) Problem Statement and Requirements draft-ietf-spring-segment-routing-12 draft-ietf-spring-segment-routing-mpls-10 draft-ietf-spring-segment-routing-central-epe-06 draft-ietf-6man-segment-routing-header-06 draft-ietf-ospf-segment-routing-extensions-17 draft-ietf-isis-segment-routing-extensions-13 draft-ietf-spring-segment-routing-ldp-interop-08 127

Thank You! End of session WSDN01_v0.1 Issue Date: [Date] Revision: [xx]