. Segment for IPv6 Networks (SRv6)

Stefano Previdi Distinguished Engineer

BRKRST-3123 Agenda

• Introduction to Segment Routing

• Segment Routing and the IPv6 Source Routing Model

• IPv6 Segment Routing Header (SRH)

• SRH Procedures

• SR-IPv6 Examples

• Use Cases

• Standardization

• Conclusion

3 Introduction to Segment Routing

4 What is Segment Routing ?

• An architecture that seeks the right balance between distributed intelligence and centralized optimization and programming. • simplifies operation (lower opex) • enables application-based service creation (new revenue) • allows for better utilization of the installed infrastructure (lower capex)

• Applies to both IPv6 and MPLS dataplanes with wide application • (SP, OTT/Web, GET) across (WAN, Metro/Agg, DC) • SDN controller

• An architecture designed with SDN in mind

• Segment Routing technology is extensively explained in • http://www.segment-routing.net (includes all published IETF drafts)

5 Segment Routing • Source Routing • the source chooses a path and encodes it in the packet header as an ordered list of segments • the rest of the network executes the encoded instructions without any further per-flow state • SR-IPv6: the list of segment is encoded into a new (and secure) Routing Header called the “Segment Routing Header”

• Segment: an identifier for any type of instruction • forwarding or service

• Segment Routing leverages the benefit of IPv6 • Source routing capability through the use of extension headers • Full interoperability with non-source routing nodes (with no signaling)

6 Segment Routing – Scalability and Virtualization

• Each engineered application flow is mapped on a path Millions of Application • millions of paths flow paths

• A path is expressed as an ordered list of segments A path is mapped on a • The network maintains segments list of segments • thousands of segments • completely independent of application size/frequency The network only maintains • Excellent scaling and virtualization segments No per-flow • the application state is no longer within the router but application within the packet state

7 Segment Routing - Strong Operator Partnership

• Fundamental to the velocity and success

• Significant commitment • technical transparency • multi-vendor commitment

• Many more operators now involved • Segment Routing MPLS now standardized and (almost) deployed… • Segment Routing IPv6 is getting up to speed

• Open and standardized technology • More than 25 drafts under standardization process in IETF WGs: • SPRING, 6MAN, IS-IS, IDR, OSPF, PCE • For both MPLS and IPv6 dataplanes

8 Segment Routing and the IPv6 Source Routing model

9 Segment Routing and the Source Based Routing Model

• By combining type of segments (i.e.: instructions) Segment Routing allows to address a variety of use cases from edge to edge

Controller

AS W Ap SR DC SR WAN BR AS p Z AS Fwrdr TOR Leaf Spine DCI BR core X

Ap p BR AS Y

Top Segment provides Next segments implement WAN Policy: Last segment Classify flow and ECMP-path to selected . Cost vs Latency Disjointness selects egress push SR segment list DCI . Select egress BR peer

10 Segment Routing and the Source Based Routing Model Wait a Moment !!

• There are two ways of using Segment Routing on v6 networks • IPv6 control plane with a MPLS dataplane • IPv6 control plane with a IPv6 dataplane

• This presentation covers Segment Routing for IPv6 control & data planes i.e.: no MPLS dataplane is involved… but interop is granted

11 Segment Routing and the Source Based Routing Model

• SR-IPv6 allows IPv6 dataplane networks to benefit from all features deployed over the years on MPLS network: • Traffic Engineering • VPNs • Fast Reroute • …

• As well as new features such as • Conduit • Service Chaining • BGP Traffic Engineering • BGP Peer Engineering • Application Engineered Routing

12 Segment Routing IPv6 and the Source Based Routing Model

• In the source based routing model the source chooses a path and encodes it in the packet header as an ordered list of segments

• A new type of the existing IPv6 Routing Extension Header is used for Segment Routing: SRH

• The Segment Routing Header (SRH) contains the list of segments • Path state in the packet, not in the network

• The segment identifier (SID) is a 128-bit IPv6 address • The Segment List expressing the source routed path is a list of IPv6 addresses

13 Segment Routing IPv6 and the Source Based Routing Model

• A segment is an instruction applied to the packet: • IGP-based forwarding construct • BGP-based forwarding construct • local adjacency • service/application • location, • context, …

14 Segment Routing and the IPv6 Dataplane

• Segment Routing applies to both IPv6 and MPLS dataplanes

• Difference is in the bits encoded in the packet not in the architecture

• Enabling SR-IPv6, means that ONLY the nodes that have to process the packet header must have SR-IPv6 dataplane support • All other nodes in the infrastructure are just plain IPv6 nodes

IPv6 Hdr Label(C) Label(F) SR Header B C D Label(H) Segments: C,F,H A H IPv4 or IPv6 hdr E F G PAYLOAD PAYLOAD

SR-IPv6 SR-MPLS

15 Example of Segments Service Segment to S1 S1

Node segment to C Node segment to C Peer Segment

A B C D 1

Adj Segment Z

M N O P 2

Peer Segment Node segment to Z • Examples: • Go to this node using shortest path (Node-SID) • Go to this prefix using shortest path (Prefix-SID) • Go through this specific link (no matter what SPT says, Adj-SID) • Go through this egress interface / peering AS (Adj-SID, Peer-SID) • Etc.

• Simple protocol extensions allowing advertisement of segments • IGP, BGP, BGPLS, PCEP, … 16 Segment Routing and the Source Based Routing Model

• Segment Routing IPv6: • The notion of a “segment” is not new in IPv6 • Routing Extension Header has been defined in RFC 2460 and defines the “segment” • In both RFC 2460 and Segment Routing a segment is identified by an IPv6 address • Segment Routing leverages RFC 2460 Routing Header by defining a new type • Improves Routing Header • Enhance the source routing model • Introduces security • Segment Routing does NOT require a forklift upgrade of the network • SR and non-SR nodes can co-exist • Gradual deployment • Full interoperability • Backward compatibility

17 The Segment Routing Header Insertion Vs. Encapsulation

18 Segment Routing Header and encapsulation

• While not explicitly mentioned, RFC2460 assumes only the source is allowed to insert a routing header – Remember: the SRH is a type of routing header • Segment Routing for IPv6 allows multiple operational modes – All compliant to base IPv6 specification

19 Insertion Vs. Encapsulation

• Header Insertion at the Source: – Source originates the packet with the SRH – SRH is kept and used along the path – Packet is delivered to destination with the SRH (plain IPv6 operations) > Optionally, the SRH may be removed prior to deliver the packet to destination – Use case: source is SRv6 capable

Source C D IPv6 Hdr: SA=A, DA=D A IPv6 Hdr: SA=A, DA=G IPv6 Hdr: SA=A, DA=B SR Hdr: SL= B, D, G, Z Destination SR Hdr: SL= B, D, G, Z SR Hdr: SL= B, D, G, Z B PAYLOAD PAYLOAD Z PAYLOAD Ingress

E F G IPv6 Hdr: SA=A, DA=Z Egress SR Hdr: SL= B, D, G, Z PAYLOAD

SR domain 20 Insertion Vs. Encapsulation

• Header Insertion at Ingress: – Source originates the packet without any SRH – SRH is inserted at ingress – SRH is removed prior to deliver the packet to the destination – Use case: source is not SRv6 capable

Source C D IPv6 Hdr: SA=A, DA=D A IPv6 Hdr: SA=A, DA=G SR Hdr: SL= D, G, Z Destination IPv6 Hdr: SA=A, DA=Z B SR Hdr: SL= D, G, Z PAYLOAD PAYLOAD Z Ingress PAYLOAD

E F G IPv6 Hdr: SA=A, DA=Z PAYLOAD Egress

SR domain 21 Insertion Vs. Encapsulation

• Encapsulation at Ingress : – Source originates the packet without any SRH – Ingress encapsulates the incoming packet into a new outer IPv6 header followed by the SRH – Packet is decapsulated at egress (both outer IPv6 header and SRH are removed) – Use Case:

Source B C IPv6 Hdr: SA=A, DA=C A IPv6 Hdr: SA=A, DA=E IPv6 Hdr: SA=A, DA=Z SR Hdr: SL= C, E Destination A SR Hdr: SL= C, E PAYLOAD IPv6 Hdr: SA=A, DA=Z IPv6 Hdr: SA=A, DA=Z Z Ingress PAYLOAD PAYLOAD

B D IPv6 Hdr: SA=A, DA=Z E PAYLOAD Egress

SR domain 22 Segment Routing Example

23 Example of Explicit Path

• How to express an explicit (source routed) path knowing that: • Nodes may represent routers, hosts, servers, application instances, services, chains of services, etc. • A path is encoded into the packet by the originator (or ingress) node using a list of IPv6 addresses • The network may have plurality of nodes not all supporting Segment Routing • A path can be “loose” or “strict” • Likely to be loose…

• A single mechanism, a single placeholder where the “path” of the packet is expressed

24 SR-IPv6 Explicit Path Example

• In following topology: B C D – Q: How to best express path: [A, B, C, F, G, H] A H • Note well: node A has two shortest E F G paths to C (ECMP)

• A: Source rooted path with segments: [C,F,H] First segment: set of shortest paths from A to C (ECMP aware) Second segment: adjacency/link from C to F Third segment: shortest path from F to H • Loose Source Routing B C D A H E F G

25 SR-IPv6 Explicit Path Example Interoperability

B C D

A H

E F G • Not all nodes needs to be SR capable • Example: – Traffic Engineering from A to H through path ABCFGH – Nodes A, C and F are SR capable – Nodes B, D, E, G and H are plain ipv6 forwarders

26 SR-IPv6 Explicit Path Example B C IPv6 Hdr: SA=A, DA=C SR Hdr: SL= C, F, H A PAYLOAD

• At node A: – Path is computed or received by a controller (e.g.: SDN Controller) – Path is instantiated through a list of segments – A SRH is created with the segment list representing the path – Packet is sent to the first segment > ECMP fully leveraged !

27 SR-IPv6 Explicit Path Example B C D IPv6 Hdr: SA=X, DA=C, SR Hdr: SL= C, F, H A PAYLOAD H

E F G

• At A, the Segment Routing Header (SRH) contains – Segment List: C,F,H (the real destination of the packet is encoded as last segment) – Segments Left: points to the next segment of the path (F) – DA is set as the address of the first segment: C

• Packet is sent towards its DA (C, representing the first segment) – Packet can travel across non SR nodes who will just ignore the SRH (e.g.: node B) – RFC2460 mandates only the node in the DA must examine the SRH

28 SR-IPv6 Explicit Path Example B C D IPv6 Hdr: SA=X, DA=C SR Hdr: SL= C, F, H IPv6 Hdr: SA=X, DA=F A PAYLOAD SR Hdr: SL= C, F, H H PAYLOAD

E F G

• When packet reaches the segment endpoint C – Segments Left is inspected and used in order to update the DA with the next segment address: F – Segments Left pointer is decremented: now points to H (note: Segments Left is now set to 0) – Packet is sent towards its DA

29 SR-IPv6 Explicit Path Example B C D IPv6 Hdr: SA=X, DA=C SR Hdr: SL= C, F, H IPv6 Hdr: SA=X, DA=F A PAYLOAD SR Hdr: SL= C, F, H H PAYLOAD IPv6 Hdr: SA=X, DA=H E F G SR Hdr: SL= C, F, H PAYLOAD

• When packet reaches the segment endpoint F the same process is executed: – Segments Left is inspected and used in order to update the DA with the next segment address: H – Segments Left pointer being 0, it is left unchanged – Packet is sent towards its DA

30 SR-IPv6 Explicit Path Example B C D IPv6 Hdr: SA=X, DA=C SR Hdr: SL= C, F, H IPv6 Hdr: SA=X, DA=F A PAYLOAD SR Hdr: SL= C, F, H H PAYLOAD IPv6 Hdr: SA=X, DA=H E F G SR Hdr: SL= C, F, H PAYLOAD

• When packet reaches the segment endpoint H: – Segments Left == 0 – RFC2462 mandate that the entire Routing Header is ignored – Therefore, H [processes the packet without taking into account the Segment Routing Header – Node H is a RFC2460 (IPv6) capable node and needs not to support segment routing

31 Segment Routing Header (SRH)

32 Segment Identifiers: IPv6 addresses

• A segment is identified by an IPv6 address – SID is an IPv6 address • Any IPv6 address may be used as segment identifier

33 SRH (RH Type 4) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Routing Type | Segments Left | • Next Header: 8-bit selector. Identifies the type of header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ immediately following the SRH | First Segment | Flags | HMAC Key ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Hdr Ext Len: 8-bit unsigned integer. Defines the length of the | | SRH header in 8-octet units, not including the first 8 octets | Segment List[0] (128 bits ipv6 address) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Type: 4 | | // ... // • Segments Left: index, in the Segment List, of the current active | | segment in the SRH. Decremented at each segment endpoint. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Segment List[n] (128 bits ipv6 address) | • First Segment: offset in the SRH, not including the first 8 octets | | and expressed in 16-octet units, pointing to the last element of +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ the Segment List (i.e.: that contains the first segment of the | | path). | Policy List[0] (optional, 128 bits ipv6 address) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Flags: 16 bits of flags. Following flags are defined: | | – bit-0: cleanup // ... // | | – bit-1: rerouted packet +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Policy List[3] (optional, 128 bits ipv6 address) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // HMAC // | (optional, 256 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 34 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SRH | Next Header | Hdr Ext Len | Routing Type | Segments Left | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First Segment | Flags | HMAC Key ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Segment List[n]: 128 bit IPv6 addresses representing | | each segment of the path. The segment list is | Segment List[0] (128 bits ipv6 address) | encoded in the reverse order of the path: the last | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ segment is in the first position of the list and the first | | segment is in the last position. // ... // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • HMAC: SRH authentication (optional) | | | Segment List[n] (128 bits ipv6 address) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Policy List[0] (optional, 128 bits ipv6 address) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // ... // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Policy List[3] (optional, 128 bits ipv6 address) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // HMAC // | (optional, 256 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 35 Segment Routing IPv6

• SRH is a new type of the existing routing header. Therefore, it inherits routing header properties: – Can only appear once – If “Segments Left” is 0, the SRH is silently ignored and packet is NOT dropped

• SRH format is almost identical to RH0 that has been deprecated – Carry ipv6 addresses – Segments (SL and PL) – Security: HMAC

• Deprecation has been motivated by security concerns – SRH address them through HMAC and restricted domain of application

36 Segment Routing Security • Routing Type 0 (RH0) extension header has been deprecated by RFC5095 • Reason: vulnerability (amplification attack) of RH0 • SRH defines an HMAC field to be used at ingress of a SR domain in order to validate the SRH • Avoid malicious attempts to steer a packet out of its intended path • Amplification attack with RH-0 • Addresses concerns of RFC5095

37 Segment Routing Security • When used within the boundaries of a controlled domain, the HMAC is not necessary • Similarly, IETF has standardized the Routing Extension Header type 3 (RPL) without any security mechanism • RH3 is assumed to be used within the boundaries of a private/controlled domain

38 SRH Procedures

39 SRH Processing: Source Node B

IPv6 Hdr: SA=X, DA=C A SR Hdr: SL= C, F, H • Source node may be a SR capable host PAYLOAD

• At source: E – SRH is created (or received by an SDN controller) with: > Segment List encoded in the reverse order of the path: • Segment List[0]: LAST segment • Segment List[n]: FIRST segment > “Segments Left” field set to n-1 where n is the number of segments in the SL > “First Segment” field is set to n-1 – The DA of the packet is set as the first segment of the path > DA = Segment_List[Segments_Left] – The packet is sent out to the first segment

40 SRH Processing: Transit Node

• Different types of Transit Nodes – NON-SR Transit nodes – SR Intra-segment Transit nodes – SR Segment Endpoint nodes

41 SRH Processing: Non-SR Transit Node

• NON-SR Transit nodes – Plain IPv6 forwarding – Solely based on IPv6 DA – No SRH inspection or update – Transparent / interoperable

B C D IPv6 Hdr: SA=X, DA=C SR Hdr: SL= C, F, H IPv6 Hdr: SA=X, DA=F A PAYLOAD SR Hdr: SL= C, F, H H PAYLOAD IPv6 Hdr: SA=X, DA=H E F G SR Hdr: SL= C, F, H PAYLOAD 42 SRH Processing: SR Segment Endpoint nodes

• SR Endpoints: SR Capable nodes whose address is in DA.

• Endpoints inspects SHR and do: 1. IF DA = myself (segment endpoint) 2. IF Segments Left > 0 THEN decrement Segments Left update DA with Segment List[Segments Left] 3. IF Segments Left == 0 THEN IF Clean-up bit is set THEN remove the SRH 4. ELSE continue IPv6 processing of the packet End of processing. 5. Forward the packet out B C D IPv6 Hdr: SA=X, DA=C SR Hdr: SL= C, F, H IPv6 Hdr: SA=X, DA=F A PAYLOAD SR Hdr: SL= C, F, H H PAYLOAD IPv6 Hdr: SA=X, DA=H E F G SR Hdr: SL= C, F, H PAYLOAD 43 Segment Routing Use Cases

44 Disjoint TE Service – Example with encapsulation

PE A 1

2 • A to Z any plane • Set of IGP shortest paths to Z Z • A to Z via blue plane • Traffic Engineering policy: • Set of shortest paths to BLUE (anycast IPv6 address/segment) • Set of shortest paths to Z IPv6: BLUE IPv6: BLUE • Benefits PE A 1 • ECMP 2 • Traffic Engineering with no signaling IPv6: BLUE • Traffic Engineering with no midpoint IPv6: BLUE state Z Disjoint TE Service – Example with encapsulation IPv6 Hdr: SA=X, DA=Y PAYLOAD PE A 1

2 • A to Z any plane • Set of IGP shortest paths to Z Z • A to Z via blue plane • Traffic Engineering policy: • Set of shortest paths to BLUE (anycast IPv6 address/segment) • Set of shortest paths to Z IPv6: BLUE IPv6: BLUE • Benefits PE A 1 • ECMP 2 • Traffic Engineering with no signaling IPv6: BLUE • Traffic Engineering with no midpoint IPv6: BLUE state Z Disjoint TE Service – Example with encapsulation IPv6 Hdr: SA=X, DA=Y PAYLOAD PE A 1 IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Y 2 • A to Z any plane PAYLOAD • Set of IGP shortest paths to Z Z • A to Z via blue plane • Traffic Engineering policy: • Set of shortest paths to BLUE (anycast IPv6 address/segment) • Set of shortest paths to Z IPv6: BLUE IPv6: BLUE • Benefits PE A 1 • ECMP 2 • Traffic Engineering with no signaling IPv6: BLUE • Traffic Engineering with no midpoint IPv6: BLUE state Z Disjoint TE Service – Example with encapsulation IPv6 Hdr: SA=X, DA=Y PAYLOAD PE A 1 IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Y 2 IPv6 Hdr: SA=X, DA=Y • A to Z any plane PAYLOAD PAYLOAD • Set of IGP shortest paths to Z Z • A to Z via blue plane • Traffic Engineering policy: • Set of shortest paths to BLUE (anycast IPv6 address/segment) • Set of shortest paths to Z IPv6: BLUE IPv6: BLUE • Benefits PE A 1 • ECMP 2 • Traffic Engineering with no signaling IPv6: BLUE • Traffic Engineering with no midpoint IPv6: BLUE state Z Disjoint TE Service – Example with encapsulation IPv6 Hdr: SA=X, DA=Y PAYLOAD PE A 1 IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Y 2 IPv6 Hdr: SA=X, DA=Y • A to Z any plane PAYLOAD PAYLOAD • Set of IGP shortest paths to Z Z IPv6 Hdr: SA=X, DA=Y • A to Z via blue plane PAYLOAD • Traffic Engineering policy: • Set of shortest paths to BLUE (anycast IPv6 address/segment) • Set of shortest paths to Z IPv6: BLUE IPv6: BLUE • Benefits PE A 1 • ECMP 2 • Traffic Engineering with no signaling IPv6: BLUE • Traffic Engineering with no midpoint IPv6: BLUE state Z Disjoint TE Service – Example with encapsulation IPv6 Hdr: SA=X, DA=Y PAYLOAD PE A 1 IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Y 2 IPv6 Hdr: SA=X, DA=Y • A to Z any plane PAYLOAD PAYLOAD • Set of IGP shortest paths to Z Z IPv6 Hdr: SA=X, DA=Y • A to Z via blue plane PAYLOAD • Traffic Engineering policy: • Set of shortest paths to BLUE (anycast IPv6 address/segment) • Set of shortest paths to Z

IPv6 Hdr: SA=X, DA=Y IPv6: BLUE IPv6: BLUE • Benefits PAYLOAD PE A 1 • ECMP 2 • Traffic Engineering with no signaling IPv6: BLUE • Traffic Engineering with no midpoint IPv6: BLUE state Z Disjoint TE Service – Example with encapsulation IPv6 Hdr: SA=X, DA=Y PAYLOAD PE A 1 IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Y 2 IPv6 Hdr: SA=X, DA=Y • A to Z any plane PAYLOAD PAYLOAD • Set of IGP shortest paths to Z Z IPv6 Hdr: SA=X, DA=Y • A to Z via blue plane PAYLOAD • Traffic Engineering policy: • Set of shortest paths to BLUE (anycast IPv6 address/segment) • Set of shortest paths to Z

IPv6 Hdr: SA=X, DA=Y IPv6: BLUE IPv6: BLUE • Benefits PAYLOAD PE A 1 • ECMP IPv6 Hdr: SA=X, DA=BLUE 2 • IPv6: BLUE Traffic Engineering with no signaling SR Hdr: SL= BLUE, Z, Y • Traffic Engineering with no midpoint PAYLOAD IPv6: BLUE state Z Disjoint TE Service – Example with encapsulation IPv6 Hdr: SA=X, DA=Y PAYLOAD PE A 1 IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Y 2 IPv6 Hdr: SA=X, DA=Y • A to Z any plane PAYLOAD PAYLOAD • Set of IGP shortest paths to Z Z IPv6 Hdr: SA=X, DA=Y • A to Z via blue plane PAYLOAD • Traffic Engineering policy: • Set of shortest paths to BLUE (anycast IPv6 address/segment) • Set of shortest paths to Z

IPv6 Hdr: SA=X, DA=Y IPv6: BLUEIPv6 Hdr: SA=X, DA=Z IPv6: BLUE • Benefits PAYLOAD PE A 1 SR Hdr: SL= BLUE, Z, Y • ECMP PAYLOAD IPv6 Hdr: SA=X, DA=BLUE 2 • IPv6: BLUE Traffic Engineering with no signaling SR Hdr: SL= BLUE, Z, Y • Traffic Engineering with no midpoint PAYLOAD IPv6: BLUE state Z Disjoint TE Service – Example with encapsulation IPv6 Hdr: SA=X, DA=Y PAYLOAD PE A 1 IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Z IPv6 Hdr: SA=X, DA=Y 2 IPv6 Hdr: SA=X, DA=Y • A to Z any plane PAYLOAD PAYLOAD • Set of IGP shortest paths to Z Z IPv6 Hdr: SA=X, DA=Y • A to Z via blue plane PAYLOAD • Traffic Engineering policy: • Set of shortest paths to BLUE (anycast IPv6 address/segment) • Set of shortest paths to Z

IPv6 Hdr: SA=X, DA=Y IPv6: BLUEIPv6 Hdr: SA=X, DA=Z IPv6: BLUE • Benefits PAYLOAD PE A 1 SR Hdr: SL= BLUE, Z, Y • ECMP PAYLOAD IPv6 Hdr: SA=X, DA=BLUE 2 • IPv6: BLUE Traffic Engineering with no signaling SR Hdr: SL= BLUE, Z, Y • Traffic Engineering with no midpoint PAYLOAD IPv6: BLUE state Z

IPv6 Hdr: SA=X, DA=Y PAYLOAD SRv6 Conduit – Service Routing • Define a segment as a conduit service – Example: reach remote VPN site according to a given SLA • The ingress node of the VPN provider acts as the conduit head-end • The source VPN site (CE) sends traffic using a single segment identifier. Such segment identifiers point to a remot VPN site through a given SLA • When reaching the operator network, the segment is “translated” into the segment list corresponding to the remote VPN site reachability and SLA • Allow to mix IPv6 and MPLS transports

54 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Remove SRH and 8888::8/128 INSERT SRH {1111::3001/128} PUSH {16003, 16005}

3 VPN Site 2

10.3/16 7 1 5 8

4

47 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Remove SRH and 8888::8/128 INSERT SRH {1111::3001/128} PUSH {16003, 16005}

3 VPN Site 2

10.3/16 DA: 10.3.0.1 7 1 5 8

4

47 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Remove SRH and 8888::8/128 INSERT SRH {1111::3001/128} PUSH {16003, 16005}

3 VPN Site 2

10.3/16 DA: 10.3.0.1 7 1 5 8

DA: 1111::3001 4 SRH {1111::3001, 8888::8}

DA: 10.3.0.1

47 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Remove SRH and 8888::8/128 INSERT SRH {1111::3001/128} PUSH {16003, 16005}

3 VPN Site 2

10.3/16 DA: 10.3.0.1 7 1 16003 5 8 16005 DA: 1111::3001 DA: 8888::8 4 SRH {1111::3001, 8888::8} DA: 10.3.0.1 DA: 10.3.0.1

47 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Remove SRH and 8888::8/128 INSERT SRH {1111::3001/128} PUSH {16003, 16005}

3 VPN Site 2

16005 10.3/16 7 1 16003 5 8 DA: 10.3.0.1 DA: 8888::8 16005 DA: 1111::3001 DA: 10.3.0.1 DA: 8888::8 4 SRH {1111::3001, 8888::8} DA: 10.3.0.1 DA: 10.3.0.1

47 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Remove SRH and 8888::8/128 INSERT SRH {1111::3001/128} PUSH {16003, 16005}

3 VPN Site 2

16005 10.3/16 7 1 16003 5 8 DA: 10.3.0.1 DA: 8888::8 16005 DA: 1111::3001 DA: 10.3.0.1 DA: 8888::8 4 DA: 8888::8 SRH {1111::3001, 8888::8} DA: 10.3.0.1 DA: 10.3.0.1 DA: 10.3.0.1

47 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Remove SRH and 8888::8/128 INSERT SRH {1111::3001/128} PUSH {16003, 16005}

3 VPN Site 2

16005 10.3/16 7 1 16003 5 8 DA: 10.3.0.1 DA: 8888::8 DA: 10.3.0.1 16005 DA: 1111::3001 DA: 10.3.0.1 DA: 8888::8 4 DA: 8888::8 SRH {1111::3001, 8888::8} DA: 10.3.0.1 DA: 10.3.0.1 DA: 10.3.0.1

47 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Insert segments {3333::3, 5555::5} 8888::8/128 INSERT SRH {1111::3001/128}

3 VPN Site 2

10.3/16 7 1 5 8

4

48 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Insert segments {3333::3, 5555::5} 8888::8/128 INSERT SRH {1111::3001/128}

3 VPN Site 2

10.3/16 DA: 10.3.0.1 7 1 5 8

4

48 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Insert segments {3333::3, 5555::5} 8888::8/128 INSERT SRH {1111::3001/128}

3 VPN Site 2

10.3/16 DA: 10.3.0.1 7 1 5 8

DA: 1111::3001 4 SRH {1111::3001, 8888::8}

DA: 10.3.0.1

48 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Insert segments {3333::3, 5555::5} 8888::8/128 INSERT SRH {1111::3001/128}

3 VPN Site 2

10.3/16 DA: 10.3.0.1 7 1 DA: 3333::3 5 8 SRH {1111::3001, 3333:3, DA: 1111::3001 5555::5, 8888:8} 4 SRH {1111::3001, 8888::8} DA: 10.3.0.1

DA: 10.3.0.1

48 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Insert segments {3333::3, 5555::5} 8888::8/128 INSERT SRH {1111::3001/128}

3 VPN Site 2

10.3/16 DA: 10.3.0.1 7 1 DA: 3333::3 5 8 SRH {1111::3001, 3333:3, DA: 1111::3001 5555::5, 8888:8} 4 SRH {1111::3001, 8888::8} DA: 10.3.0.1 DA: 5555::5

DA: 10.3.0.1 SRH {1111::3001, 3333:3, 5555::5, 8888:8}

DA: 10.3.0.1 48 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Insert segments {3333::3, 5555::5} 8888::8/128 INSERT SRH {1111::3001/128}

3 VPN Site 2

10.3/16 DA: 10.3.0.1 7 1 DA: 3333::3 5 8 SRH {1111::3001, 3333:3, DA: 1111::3001 5555::5, 8888:8} DA: 8888::8 4 SRH {1111::3001, 8888::8} DA: 10.3.0.1 DA: 5555::5 DA: 10.3.0.1

DA: 10.3.0.1 SRH {1111::3001, 3333:3, 5555::5, 8888:8}

DA: 10.3.0.1 48 SRv6 Conduit – SRv6 as a Routing Service

Overlay VPN: 10.3/16 via 1111::3001/128 RLOC 8888::8/128 Insert segments {3333::3, 5555::5} 8888::8/128 INSERT SRH {1111::3001/128}

3 VPN Site 2

10.3/16 7 1 DA: 3333::3 5 8 DA: 10.3.0.1 DA: 10.3.0.1 SRH {1111::3001, 3333:3, DA: 1111::3001 5555::5, 8888:8} DA: 8888::8 4 SRH {1111::3001, 8888::8} DA: 10.3.0.1 DA: 5555::5 DA: 10.3.0.1

DA: 10.3.0.1 SRH {1111::3001, 3333:3, 5555::5, 8888:8}

DA: 10.3.0.1 48 TI-LFA: Automated 50-msec Protection for IGP Segments • Guaranteed Link/Node FRR in any topology

• 50msec protection

• Simplicity • Entirely automated • No signaling • No intermediate state

• Incremental deployment • Applicable to all traffic

• Optimal backup path along post-convergence path • Prevents transient congestion and suboptimal routing

• Repair path expressed as a list of segment and pre-installed in FIB

69 Content producer engineers its WAN traffic to egress peers

AS1

Best BGP AS2D and IGP B IGP SR-based Path AS4

A Z E C AS3

50 Content producer engineers its WAN traffic to egress peers

AS1

Best BGP AS2D and IGP B IGP SR-based Path AS4

A Z

TE Policy E installed by C Controller AS3

50 Content producer engineers its WAN traffic to egress peers

AS1

IPv6 Hdr: SA:X, DA:B SR Hdr: SL= B,Z AS2 Best BGP PAYLOAD D and IGP B IGP SR-based Path AS4

A Z

TE Policy E installed by C Controller AS3

50 Content producer engineers its WAN traffic to egress peers

IPv6 Hdr: SA:X, DA:Z AS1 PAYLOAD

IPv6 Hdr: SA:X, DA:B SR Hdr: SL= B,Z AS2 Best BGP PAYLOAD D and IGP B IGP SR-based Path AS4

A Z

TE Policy E installed by C Controller AS3

50 Content producer engineers its WAN traffic to egress peers

IPv6 Hdr: SA:X, DA:Z AS1 PAYLOAD

IPv6 Hdr: SA:X, DA:B SR Hdr: SL= B,Z AS2 Best BGP PAYLOAD D and IGP B IGP SR-based Path AS4

A Z

TE Policy E installed by IPv6 Hdr: SA:X, DA:CE C Controller SR Hdr: SL= CE, Z PAYLOAD AS3

50 Content producer engineers its WAN traffic to egress peers

IPv6 Hdr: SA:X, DA:Z AS1 PAYLOAD

IPv6 Hdr: SA:X, DA:B SR Hdr: SL= B,Z AS2 Best BGP PAYLOAD D and IGP B IGP SR-based Path AS4

A Z

TE Policy E installed by IPv6 Hdr: SA:X, DA:CE C Controller SR Hdr: SL= CE, Z IPv6 Hdr: SA:X, DA:Z PAYLOAD PAYLOAD AS3

50 Content producer engineers its WAN traffic to egress peers

AS1

Best BGP AS2 and IGP B D IGP SR-based Path AS4

A Z

C E AS3

51 Content producer engineers its WAN traffic to egress peers

AS1

Best BGP AS2 and IGP B D IGP SR-based Path AS4

A Z

C E AS3

51 Content producer engineers its WAN traffic to egress peers

IPv6 Hdr: SA:X, DA:Z AS1 PAYLOAD

IPv6 Hdr: SA:X, DA:B SR Hdr: SL= B,Z AS2 Best BGP PAYLOAD and IGP B D IGP SR-based Path AS4

A Z

C E AS3

51 Content producer engineers its WAN traffic to egress peers

IPv6 Hdr: SA:X, DA:Z AS1 PAYLOAD

IPv6 Hdr: SA:X, DA:B SR Hdr: SL= B,Z AS2 Best BGP PAYLOAD and IGP B D IGP SR-based Path AS4

A Z

TE Policy installed by C E Controller AS3

51 Content producer engineers its WAN traffic to egress peers

IPv6 Hdr: SA:X, DA:Z AS1 PAYLOAD

IPv6 Hdr: SA:X, DA:B SR Hdr: SL= B,Z AS2 Best BGP PAYLOAD and IGP B D IGP SR-based Path AS4

A IPv6 Hdr: SA:X, DA:Z Z PAYLOAD

TE Policy installed by IPv6 Hdr: SA:X, DA:CD C E Controller SR Hdr: SL= CD, Z PAYLOAD AS3

51 SR-IPv6 Peer Engineer Intra-AS EPE Inter-AS EPE Remote-AS EPE

AS1 AS2 G Best BGP and B D IGP SR-based IGP Path AS4 A AS6 IPv6 Hdr: DA=Z PayloadTE Policy Z installed by C E F Controller AS3 AS5

52 SR-IPv6 Peer Engineer Intra-AS EPE Inter-AS EPE Remote-AS EPE

AS1 AS2 G Best BGP and B D IGP SR-based IGP Path AS4 A AS6 IPv6 Hdr: DA=Z PayloadTE Policy Z installed by C E F Controller AS3 AS5

52 SR-IPv6 Peer Engineer Intra-AS EPE Inter-AS EPE Remote-AS EPE

AS1 IPv6 Hdr: DA=BD IPv6 Hdr: DA=ZAS2 Payload Payload G Best BGP and B D IGP SR-based IGP Path AS4 A AS6 IPv6 Hdr: DA=Z PayloadTE Policy Z installed by C E F Controller AS3 AS5

52 SR-IPv6 Peer Engineer Intra-AS EPE Inter-AS EPE Remote-AS EPE

AS1 IPv6 Hdr: DA=BD IPv6 Hdr: DA=ZAS2 Payload Payload G Best BGP and B D IGP SR-based IGP Path AS4 A AS6 IPv6 Hdr: DA=Z PayloadTE Policy Z installed by C E F Controller AS3 AS5

52 SR-IPv6 Peer Engineer Intra-AS EPE Inter-AS EPE Remote-AS EPE

AS1 IPv6 Hdr: DA=BD IPv6 Hdr: DA=ZAS2 Payload Payload G IPv6 Hdr: DA=Z Best BGP and B D IGP Path IGP SR-based Payload IPv6 Hdr: DA=ZAS4 SRH: CE, EG, Z A Payload AS6 IPv6 Hdr: DA=Z IPv6 Hdr: DA=CE PayloadTE Policy Z installed by SRH: CE, EG, Z C E F Controller Payload IPv6 Hdr: DA=EG SRH: CE, EG, ZAS3 AS5 Payload

52 SR-IPv6 Example of Service Chaining

86 Segment Routing Service Chaining

• Node connecting the service instance originates a Segment Identifier on behalf of the service • Node can be either virtual or physical (router or virtualized instance) S2 • Segment Identifiers to be known in ingress node C and D advertise S1 and S2 as • Multiple APIs available: IGP/BGP protocols, NETCONF, Segment Identifiers for their REST, OF, SNMP, … attached service instances D A Ingress

C

Ingress classifies the flow and • No burden on application apply the chain: S1, S2 S1 • No state per chain, one single state per service instance • Same model applies to MPLS and IPv6 dataplanes • Application remains SR unaware

87 Segment Routing Service Chaining NSH Integration

• Recently, IETF defined a proposal in order to carry Service Chains information within a newly defined header • Network Service Header, work in progress

• Segment Routing and NSH interoperates • SR to define the service path as a list of segments • NSH to identify the chain (path-id) and to carry metadata • Mapping Segments into path-id’s is one option in the DC

88 SR-IPv6 Overlay IPv6 Hdr: SA=X, DA=S1 SR Hdr: SL= S1, S2, Y Service PAYLOAD Instance S1

B IPv6 HdrC: SA=X, DA=S1 D IPv6 Hdr: SA=X, DA=S2 IPv6 Hdr: SA=X, DA=Y SR Hdr: SL= S1, S2, Y SR Hdr: SL= S1, S2, Y PAYLOAD PAYLOAD PAYLOAD X A H E F G

IPv6 Hdr: DA=Y, SA=X IPv6 Hdr: SA=X, DA=S2 • With SR-capable service instances, PAYLOAD SR Hdr: SL= S1, S2, Y, PAYLOAD service chaining leverages the SRH Y • Still interoperable with NSH IPv6 Hdr: SA=X, DA=Y Service SR Hdr: SL= S1, S2, Y Instance S2 • No need to support SR across the network PAYLOAD • Transparent to network infrastructure

• Next Step: allow SR service chaining with non-SR applications… • Work in progress

89 NON-SR-App db96::9 SR-IPv6 Topology IPv6 Hdr: SA=db91::9, DA=db92::9 SR Hdr: db96::9, db95::9, db92::9 PAYLOAD

VPE3 db13::3

IPv6 Hdr: SA=db91::9, DA=db96::9 IPv6 Hdr: SA=db91::9, DA=db95::9 SR Hdr: db96::9, db95::9, db92::9 SR Hdr: db96::9, db95::9, db92::9 PAYLOAD PAYLOAD

VPE1 VPE4 db91::1 db24::4

VPE2 db23::2 IPv6 Hdr: SA=db91::9, DA=db92::9 PAYLOAD IPv6 Hdr: SA=db91::9, DA=db95::9 IPv6 Hdr: SA=db91::9, DA=db92::9 SR Hdr: db96::9, db95::9, db92::9 PAYLOAD Host VM1 PAYLOAD Host db91::9 VM2 SR-App db92::9 db95::9 90 Trace in VPE3 - incoming from NON-SR-app - outgoing to VPE2 (transit)

00:01:11:983942: dpdk-input GigabitEthernet0/b/0 rx queue 0 buffer 0x31180: current data 0, length 174, free-list 4, trace 0x12 NON-SR-App 00:01:11:983949: ip6-input db96::9 IPV6_ROUTE: db91::9 -> db92::9 IPv6 Hdr: SA=db91::9, DA=db92::9 SR Hdr: db96::9, db95::9, db92::9 00:01:11:983950: ip6-local PAYLOAD adjacency: local db96::3/64 flow hash: 0x00000000 00:01:11:983952: sr-local SR-LOCAL: src db91::9 dst db95::9 len 160 next_index 1 next proto 58, len 56, type 4 VPE3 next seg 1, last_seg 1, flags clean db13::3 db95::9 db92::9 IPv6 Hdr: SA=db91::9, DA=db95::9 db96::9 SR Hdr: db96::9, db95::9, db92::9 VPE4 PAYLOAD VPE1 db24::4 db91::1 00:01:11:983956: ip6-rewrite adjacency: GigabitEthernet0/4/0 IPV6_ROUTE: db91::9 -> db95::9 VPE2 db23::2

00:01:11:983957: GigabitEthernet0/4/0-output Host GigabitEthernet0/4/0 Host VM2 IPV6_ROUTE: db91::9 -> db95::9 VM1 db92::9 db91::9 SR-App db95::9 Standardization

92 IETF and Segment Routing • Segment Routing architecture ~(data plane agnostic), use cases and requirements are documented and discussed in SPRING WG – More than 30 drafts have been produced – Strong consensus on Segment Routing architecture and protocol extensions • Segment Routing is endorsed by the industry – Multiple vendors have produced interoperable implementations of SR-MPLS already – Segment Routing IPv6 implementations are available

93 IETF and Segment Routing

Network Working Group S. Previdi, Ed. Internet-Draft C. Filsfils • Protocol extensions Intended status: Standards Track Cisco Systems, Inc. Expires: June 16, 2016 B. Field (OSPF, ISIS, BGP, PCEP) Comcast I. Leung are being standardized in Rogers Communications their respective WGs J. Linkova Google E. Aries • SR-IPv6 draft is discussed Facebook T. Kosugi in 6MAN working group NTT E. Vyncke Cisco Systems, Inc. D. Lebrun Universite Catholique de Louvain December 14, 2015

IPv6 Segment Routing Header (SRH) draft-ietf-6man-segment-routing-header-00

94 Segment Routing Header IETF Drafts

• Segment Routing Header (SRH) – draft-ietf-6man-segment-routing-header-06

• IPv6 SPRING Use Cases – aka: Segment Routing IPv6 Use Cases – draft-ietf-spring-ipv6-use-cases-05

95 Summary

96 Segment Routing and the Source Based Routing Model

• By combining type of segments (i.e.: instructions) Segment Routing allows to address a variety of use cases from edge to edge

Controller

AS W Ap SR DC SR WAN BR AS p Z AS Fwrdr TOR Leaf Spine DCI BR core X

Ap p BR AS Y

Top Segment provides Next segments implement WAN Policy: Last segment Classify flow and ECMP-path to selected . Cost vs Latency Disjointness selects egress push SR segment list DCI . Select egress BR peer

97 Summary

• IPv6/MPLS architecture that seeks the right balance between distributed intelligence and centralized optimization and programming. • simplifies operation (lower opex) • enables application-based service creation (new revenue) • allows for better utilization of the installed infrastructure (lower capex)

• An IPv6/MPLS architecture with wide application • (SP, OTT/Web, GET) across (WAN, Metro/Agg, DC) • MPLS and IPv6 dataplanes • SDN controller

• An architecture designed with SDN in mind

• Segment Routing technology is extensively explained in • http://www.segment-routing.net (includes all published IETF drafts)

98 Summary • Segment Routing IPv6 implements the well known IPv6 Source Routing model • IPv6 source routing model is already integrated in RC2460 and Segment Routing introduces minor changes through a new routing type header • Segment Routing Header (SRH) • Segment Routing is very flexible and interoperable with non-SR nodes • A SR node can be a router, a server, any appliance, an application, … • Segments are identified by IPv6 addresses

99 Call to Action

• Visit the World of Solutions for • Cisco Campus – (speaker to add relevant demos/areas to visit) • Walk in Labs – (speaker to add relevant walk in labs) • Technical Solution Clinics

• Meet the Engineer (Speaker to specify when they will be available for meetings)

• Lunch and Learn Topics

• DevNet zone related sessions

100 Complete Your Online Session Evaluation

• Please complete your online session evaluations after each session. Complete 4 session evaluations & the Overall Conference Evaluation (available from Thursday) to receive your Cisco Live T-shirt.

• All surveys can be completed via the Cisco Live Mobile App or the Communication Stations

101 Thank you

102