SlideShare a Scribd company logo
1 of 29
Download to read offline
Technical Overview
Segment Routing v6
Jakub Horn
Technical Marketing Engineer
CCIE#7543
• SRH
draft-ietf-6man-segment-routing-header-14
• Network Programmability
draft-filsfils-spring-srv6-network-programming-05
• IGP
draft-bashandy-isis-srv6-extensions-03
• BGP
draft-dawra-idr-srv6-vpn-04
• DEMO
service chaining
•
Content
Segment Routing v6 Header
IPv6 SR Header
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Destination Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• IPv6 header
• Next header field: Indicates what comes next
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Destination Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 SR Header
• IPv6 header
• Next header field: 4 → IPv4
4
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Destination Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. type-specific data .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 SR Header
• IPv6 header
• Next header field: 43 → Routing
• IPv6 Routing extension header
• Generic header format defined in RFC 2460
• Next Header: IPv4, TCP, UDP, …
• Hdr Ext Len: Any IPv6 device can skip this header
• Segments Left: Ignore extension header if equal to 0
• Specific data depends on Routing Type field:
• 0 Source Route (deprecated since 2007)
• 1 Nimrod (deprecated since 2009)
• 2 Mobility (RFC 6275)
• 3 RPL Source Route (RFC 6554)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type | Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
43
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Destination Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| First Segment | Flags | Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Segment List[0] (128 bits IPv6 address) |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. ... .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Segment List[n-1] (128 bits IPv6 address) |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// //
// Optional Type Length Value objects (variable) //
// //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 SR Header
• IPv6 header
• Next header field: 43 → Routing
• IPv6 Routing extension header
• Generic header format defined in RFC 2460
• Next Header: IPv4, TCP, UDP, …
• Hdr Ext Len: Any IPv6 device can skip this header
• Segments Left: Ignore extension header if equal to 0
• Specific data depends on Routing Type field:
• 0 Source Route (deprecated since 2007)
• 1 Nimrod (deprecated since 2009)
• 2 Mobility (RFC 6275)
• 3 RPL Source Route (RFC 6554)
• 4 Segment Routing (tentative)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type | Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4
43
RFC
2460
SR
specific
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Destination Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| First Segment | Flags | Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Segment List[0] (128 bits IPv6 address) |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. ... .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Segment List[n-1] (128 bits IPv6 address) |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// //
// Optional Type Length Value objects (variable) //
// //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 SR Header
• Each segment is an IPv6 address
• Segments are encoded in reverse order
• Last segment index is 0
• First segment index is First Segment
• Active segment index is Segments Left
• Active Segment is copied in the
Destination Address field of the IP header
• Additional data can be stored in TLVs
• Security (HMAC), NFV metadata, …
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type | Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4
43
First Segment
@Segment List [First Segment]
Last Segment / Final Destination
@Segment List [0]
Active Segment
Active Segment
@Segment List [Segments Left]
SR Header Processing
Source Node
• Source node is SR-capable
• SR Header (SRH) is created with
• Segment list in reversed order of the path
• Segment List [ 0 ] is the LAST segment
• Segment List [ " − 1 ] is the FIRST segment
• Segments Left is set to " − 1
• First Segment is set to " − 1
• IP DA is set to the first segment
• Packet is send according to the IP DA
• Normal IPv6 forwarding
Version Traffic Class
Next = 43 Hop Limit
Payload Length
Source Address = A::
Destination Address = B::
Segment List [ 0 ] = D::
Segment List [ 1 ] = C::
Next Header Len= 6 Type = 4 SL = 2
First = 2 Flags RESERVED
IPv6
Hdr
Segment List [ 2 ] = B::
SR
Hdr
Payload
Flow Label
Flow Label
D
D::
A
A::
SR Hdr
IPv6 Hdr SA = A::, DA = B::
( D::, C::, B:: ) SL=2
Payload
B
B::
C
C::
Non-SR Transit Node
• Plain IPv6 forwarding
• Solely based on IPv6 DA
• No SRH inspection or update
D
D::
A
A::
SR Hdr
IPv6 Hdr SA = A::, DA = B::
( D::, C::, B:: ) SL=2
Payload
B
B::
C
C::
SR Segment Endpoints
• SR Endpoints: SR-capable nodes whose
address is in the IP DA
• SR Endpoints inspect the SRH and do:
• IF Segments Left > 0, THEN
• Decrement Segments Left ( -1 )
• Update DA with Segment List [ Segments Left ]
• Forward according to the new IP DA
Version Traffic Class
Next = 43 Hop Limit
Payload Length
Source Address = A::
Destination Address = C::
Segment List [ 0 ] = D::
Segment List [ 1 ] = C::
Next Header Len= 6 Type = 4 SL = 1
First = 2 Flags RESERVED
IPv6
Hdr
Segment List [ 2 ] = B::
SR
Hdr
Payload
Flow Label
Flow Label
D
D::
A
A::
B
B::
C
C::
SR Hdr
IPv6 Hdr SA = A::, DA = C::
( D::, C::, B:: ) SL=1
Payload
SR Segment Endpoints
• SR Endpoints: SR-capable nodes whose
address is in the IP DA
• SR Endpoints inspect the SRH and do:
• IF Segments Left > 0, THEN
• Decrement Segments Left ( -1 )
• Update DA with Segment List [ Segments Left ]
• Forward according to the new IP DA
• ELSE (Segments Left = 0)
• Remove the IP and SR header
• Process the payload:
• Inner IP: Lookup DA and forward
• TCP / UDP: Send to socket
• …
Version Traffic Class
Next = 43 Hop Limit
Payload Length
Source Address = A::
Destination Address = D::
Segment List [ 0 ] = D::
Segment List [ 1 ] = C::
Next Header Len= 6 Type = 4 SL = 0
First = 2 Flags RESERVED
IPv6
Hdr
Segment List [ 2 ] = B::
SR
Hdr
Payload
Flow Label
Flow Label
D
D::
A
A::
B
B::
C
C::
SR Hdr
IPv6 Hdr SA = A::, DA = D::
( D::, C::, B:: ) SL=0
Payload
Standard IPv6 processing
The final destination does
not have to be SR-capable.
Network Programability
Segment format
• SRv6 SIDs are 128-bit addresses
• Locator: most significant bits are used to route the segment to its parent node
• Function: least significant bits identify the action to be performed on the parent node
• Argument [optional]: Last bits can be used as a local function argument
• Flexible bit-length allocation
• Segment format is local knowledge on the parent node
• SIDs have to be specifically enabled as such on their parent node
• A local address is not by default a local SID
• A local SID does not have to be associated with an interface
1111 : 2222 : 3333 : 4444 : 5555 : 6666 : 7777 : 8888
Locator Function
END – Default endpoint
• Default endpoint behavior (node segment)
• Decrement Segments Left, update DA
• Forward according to new DA
• Node B advertises prefix B::/64 (B::/64 is the SID locator)
• Packets are forwarded to B along the default routes (shortest path)
• On B, the default endpoint behavior is associated with ID 0 (0 is the function)
• The SID corresponding to the default endpoint behavior on node B is B::1
SR Hdr
IPv6 Hdr SA = A::, DA = B::0
(…,C::,B::1,…) SL=k
Payload
B
B:: /64
SR Hdr
IPv6 Hdr SA = A::, DA = C::
(…,C::,B::1,…) SL=k-1
Payload
C
END.X – Endpoint then Xconnect
• Endpoint xconnect behavior (adjacency segment)
• Decrement Segments Left, update DA
• Forward on the interface associated with the Xconnect segment
• Node C advertises prefix C::/64
• Packets are forwarded to C along the default routes (shortest path)
• On C, the endpoint xconnect behavior for link (C, E) is associated with ID CE
• The SID corresponding to endpoint xconnect-(C,E) behavior on node C is C::CE
SR Hdr
IPv6 Hdr SA = A::, DA = C::C1
(…,D::, C::C1,…) SL=k
Payload
SR Hdr
IPv6 Hdr SA = A::, DA = D::
(…,D::,C::C1,…)SL=k-1
Payload
C
C:: /64
D
1
2
Functoins Defined in Net Programming
• End Endpoint function The SRv6 instantiation of a prefix SID
• End.X Endpoint function with Layer-3 cross-connect The SRv6 instantiation of a Adj SID
• End.T Endpoint function with specific IPv6 table lookup
• End.DX2 Endpoint with decapsulation and Layer-2 cross-connect L2VPN use-case
• End.DX2V Endpoint with decapsulation and VLAN L2 table lookup EVPN Flexible cross-connect use-cases
• End.DT2U Endpoint with decaps and unicast MAC L2 table lookup EVPN Bridging unicast use-cases
• End.DT2M Endpoint with decapsulation and L2 table flooding EVPN Bridging BUM use-cases with ESI filtering
• End.DX6 Endpoint with decapsulation and IPv6 cross-connect IPv6 L3VPN use (equivalent of a per-CE VPN label)
• End.DX4 Endpoint with decapsulation and IPv4 cross-connect IPv4 L3VPN use (equivalent of a per-CE VPN label)
• End.DT6 Endpoint with decapsulation and IPv6 table lookup IPv6 L3VPN use (equivalent of a per-VRF VPN label)
• End.DT4 Endpoint with decapsulation and IPv4 table lookup IPv4 L3VPN use (equivalent of a per-VRF VPN label)
• End.DT46 Endpoint with decapsulation and IP table lookup IP L3VPN use (equivalent of a per-VRF VPN label)
• End.B6 Endpoint bound to an SRv6 policy SRv6 instantiation of a Binding SID
• End.B6.Encaps Endpoint bound to an SRv6 encapsulation Policy SRv6 instantiation of a Binding SID
• End.BM Endpoint bound to an SR-MPLS Policy SRv6/SR-MPLS instantiation of a Binding SID
• End.S Endpoint in search of a target in table T
• T.Insert Transit behavior with insertion of an SRv6 policy
• T.Insert.Red Transit behavior with reduced insert of an SRv6 policy
• T.Encaps Transit behavior with encapsulation in an SRv6 policy
• T.Encaps.Red Transit behavior with reduced encaps in an SRv6 policy
• T.Encaps.L2 T.Encaps behavior of the received L2 frame
• T.Encaps.L2.Red Transit with reduce encaps of received L2 frame
SRv6 for anything
Optimized for HW processing
e.g. Underlay & Tenant use-cases
Optimized for SW processing
e.g. NFV, Container, Micro-Service
Metadata TLV
Segments Left
Locator 1 Function 1
Locator 2 Function 2
Locator 3 Function 3
TAG
ISIS easily extensible
• Uses TLVs
• For Srv6:
• Locator – for Reachability (twice for backward compatibility)
• END function - TI-LFA and TE
• END.X function for each interface in routing protocol TI-LFA
and TE
• Capabilities:
• Max SID depth for different functions
• OSPF will follow
Ten0/0/0/0
Lo0
A::1/128
2001::12/64
Locator : B::/64
END: B::1
END.X: B::41
Ten0/0/0/1
END.X: B::42
fe80::dead/64
Router 1
VPNv4 – Basic SRv6 VPN –Control Plane
1 2
5
A2::A2
A1::A1
eBGP
AFI:1 -IPv4
SAFI:1
NLRI:4.0.0.0/8
NH:4.4.4.1
eBGP
AFI:1 -IPv4
SAFI:1
NLRI:4.0.0.0/8
NH:.3.3.3.2
A2::C4
end.DX4
A1::C3
end.DX4
3
3.0.0.0/8
3.3.3.1
3.3.3.2
4 4.0.0.0/8
4.4.4.1
4.4.4.2
iBGP
AFI:1 -IPv4
SAFI:128
NLRI:4.0.0.0/8
NH:A2::A2
Label:ImplNull
SID: A2::C4
A2::/64
IGP
A1::/64
IGP
VPNv4 – Basic SRv6 VPN -Data Plane
1 2 4 4.0.0.0/8
3
3.0.0.0/8
5
A2::A2
A1::A1
A2::C4
end.DX4
A1::C3
end.DX4
3.3.3.1
3.3.3.2
4.4.4.1
4.4.4.2
IPv4 ( 3.1.1.1, 4.1.1.1)
payload
IPv6 ( A1::1, A2::C4 )
payload
IPv4 ( 3.1.1.1, 4.1.1.1)
IPv4 ( 3.1.1.1, 4.1.1.1) )
payload
Stay Up-To-Date
http://www.segment-routing.net/
https://www.linkedin.com/groups/8266623
https://twitter.com/SegmentRouting
https://www.facebook.com/SegmentRouting/
Segment Routing, Part I - Textbook
© 2017 Cisco and/or its affiliates. All rights reserved
Demonstration
1
5
2
3
eMBB Service
4
NCS540
NCS540
NCS5500
NCS5500
NCS540
APP
NSO
gNB
UPF
SRv6
DC-NFV
1
5
2
3
URLLC Service
4
NCS540
NCS540
NCS5500
NCS5500
NCS540
APP
NSO
gNB
UPF
SRv6
DC-NFV
Type:4(SRH)
NH:IPv4|SL:1
Segment List:
[0]:2001:0:0:8:89::A
[1]:2001:0:0:4::1
SA:2001::7
DA:2001:0:0:4::1
NH:SRH
SA:10.1.1.1
DA:10.2.2.2
Protocol:TCP
TCP Header/Data
1
5
2
3
Service Chaining
4
NCS540
NCS540
NCS5500
NCS5500
NCS540
APP
NSO
gN
B
UP
F
SRv6
DC-NFV
QOS DPI FW IPS
Thank you
201901-SRv6.pdf

More Related Content

Similar to 201901-SRv6.pdf

SRv6 note from book and some drawing for different srv6 packet format
SRv6 note from book and some drawing for different srv6 packet formatSRv6 note from book and some drawing for different srv6 packet format
SRv6 note from book and some drawing for different srv6 packet formatdutsai0421
 
Data hazards ppt
Data hazards pptData hazards ppt
Data hazards pptMBalaji9
 
L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)Motonori Shindo
 
Internet Routing Registry and RPKI Tutorial, by Nurul Islam Roman [APNIC 38]
Internet Routing Registry and RPKI Tutorial, by Nurul Islam Roman [APNIC 38]Internet Routing Registry and RPKI Tutorial, by Nurul Islam Roman [APNIC 38]
Internet Routing Registry and RPKI Tutorial, by Nurul Islam Roman [APNIC 38]APNIC
 
IPv6 introduction
IPv6 introductionIPv6 introduction
IPv6 introductionGuider Lee
 
RPKI Deployment Status in Bangladesh
RPKI Deployment Status in BangladeshRPKI Deployment Status in Bangladesh
RPKI Deployment Status in BangladeshFakrul Alam
 
Introduction to HTTP/2 and How To Use It
Introduction to HTTP/2 and How To Use ItIntroduction to HTTP/2 and How To Use It
Introduction to HTTP/2 and How To Use ItArcBlock
 
Introduction to sockets tcp ip protocol.ppt
Introduction to sockets tcp ip protocol.pptIntroduction to sockets tcp ip protocol.ppt
Introduction to sockets tcp ip protocol.pptMajedAboubennah
 
Classless inter domain routing
Classless inter domain routingClassless inter domain routing
Classless inter domain routingVikash Gangwar
 
HKNOG 9.0: (the trouble with) Securing Internet Routing
HKNOG 9.0: (the trouble with) Securing Internet RoutingHKNOG 9.0: (the trouble with) Securing Internet Routing
HKNOG 9.0: (the trouble with) Securing Internet RoutingAPNIC
 
An Introduction to Priam
An Introduction to PriamAn Introduction to Priam
An Introduction to PriamJason Brown
 
VNIX-NOG 2020: Securing Internet Routing
VNIX-NOG 2020: Securing Internet RoutingVNIX-NOG 2020: Securing Internet Routing
VNIX-NOG 2020: Securing Internet RoutingAPNIC
 

Similar to 201901-SRv6.pdf (20)

SRv6 note from book and some drawing for different srv6 packet format
SRv6 note from book and some drawing for different srv6 packet formatSRv6 note from book and some drawing for different srv6 packet format
SRv6 note from book and some drawing for different srv6 packet format
 
7. protocols
7. protocols7. protocols
7. protocols
 
Data hazards ppt
Data hazards pptData hazards ppt
Data hazards ppt
 
Dynamic user trace
Dynamic user traceDynamic user trace
Dynamic user trace
 
Networking
NetworkingNetworking
Networking
 
L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)
 
Internet Routing Registry and RPKI Tutorial, by Nurul Islam Roman [APNIC 38]
Internet Routing Registry and RPKI Tutorial, by Nurul Islam Roman [APNIC 38]Internet Routing Registry and RPKI Tutorial, by Nurul Islam Roman [APNIC 38]
Internet Routing Registry and RPKI Tutorial, by Nurul Islam Roman [APNIC 38]
 
IPv6 introduction
IPv6 introductionIPv6 introduction
IPv6 introduction
 
RPKI Deployment Status in Bangladesh
RPKI Deployment Status in BangladeshRPKI Deployment Status in Bangladesh
RPKI Deployment Status in Bangladesh
 
Tracing and awk in ns2
Tracing and awk in ns2Tracing and awk in ns2
Tracing and awk in ns2
 
Introduction to HTTP/2 and How To Use It
Introduction to HTTP/2 and How To Use ItIntroduction to HTTP/2 and How To Use It
Introduction to HTTP/2 and How To Use It
 
L5-Sockets.pptx
L5-Sockets.pptxL5-Sockets.pptx
L5-Sockets.pptx
 
Introduction to sockets tcp ip protocol.ppt
Introduction to sockets tcp ip protocol.pptIntroduction to sockets tcp ip protocol.ppt
Introduction to sockets tcp ip protocol.ppt
 
Classless inter domain routing
Classless inter domain routingClassless inter domain routing
Classless inter domain routing
 
HKNOG 9.0: (the trouble with) Securing Internet Routing
HKNOG 9.0: (the trouble with) Securing Internet RoutingHKNOG 9.0: (the trouble with) Securing Internet Routing
HKNOG 9.0: (the trouble with) Securing Internet Routing
 
An Introduction to Priam
An Introduction to PriamAn Introduction to Priam
An Introduction to Priam
 
What is new in neutron QoS?
What is new in neutron QoS?What is new in neutron QoS?
What is new in neutron QoS?
 
6low pan
6low pan 6low pan
6low pan
 
Ipv6 internetdagen-print
Ipv6 internetdagen-printIpv6 internetdagen-print
Ipv6 internetdagen-print
 
VNIX-NOG 2020: Securing Internet Routing
VNIX-NOG 2020: Securing Internet RoutingVNIX-NOG 2020: Securing Internet Routing
VNIX-NOG 2020: Securing Internet Routing
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 

201901-SRv6.pdf

  • 1. Technical Overview Segment Routing v6 Jakub Horn Technical Marketing Engineer CCIE#7543
  • 2. • SRH draft-ietf-6man-segment-routing-header-14 • Network Programmability draft-filsfils-spring-srv6-network-programming-05 • IGP draft-bashandy-isis-srv6-extensions-03 • BGP draft-dawra-idr-srv6-vpn-04 • DEMO service chaining • Content
  • 4. IPv6 SR Header 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Destination Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • IPv6 header • Next header field: Indicates what comes next
  • 5. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Destination Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPv6 SR Header • IPv6 header • Next header field: 4 → IPv4 4
  • 6. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Destination Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . type-specific data . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPv6 SR Header • IPv6 header • Next header field: 43 → Routing • IPv6 Routing extension header • Generic header format defined in RFC 2460 • Next Header: IPv4, TCP, UDP, … • Hdr Ext Len: Any IPv6 device can skip this header • Segments Left: Ignore extension header if equal to 0 • Specific data depends on Routing Type field: • 0 Source Route (deprecated since 2007) • 1 Nimrod (deprecated since 2009) • 2 Mobility (RFC 6275) • 3 RPL Source Route (RFC 6554) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Routing Type | Segments Left | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 43
  • 7. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Destination Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First Segment | Flags | Tag | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Segment List[0] (128 bits IPv6 address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . ... . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Segment List[n-1] (128 bits IPv6 address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // // // Optional Type Length Value objects (variable) // // // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPv6 SR Header • IPv6 header • Next header field: 43 → Routing • IPv6 Routing extension header • Generic header format defined in RFC 2460 • Next Header: IPv4, TCP, UDP, … • Hdr Ext Len: Any IPv6 device can skip this header • Segments Left: Ignore extension header if equal to 0 • Specific data depends on Routing Type field: • 0 Source Route (deprecated since 2007) • 1 Nimrod (deprecated since 2009) • 2 Mobility (RFC 6275) • 3 RPL Source Route (RFC 6554) • 4 Segment Routing (tentative) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Routing Type | Segments Left | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4 43 RFC 2460 SR specific
  • 8. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Destination Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First Segment | Flags | Tag | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Segment List[0] (128 bits IPv6 address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . ... . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Segment List[n-1] (128 bits IPv6 address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // // // Optional Type Length Value objects (variable) // // // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPv6 SR Header • Each segment is an IPv6 address • Segments are encoded in reverse order • Last segment index is 0 • First segment index is First Segment • Active segment index is Segments Left • Active Segment is copied in the Destination Address field of the IP header • Additional data can be stored in TLVs • Security (HMAC), NFV metadata, … +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Routing Type | Segments Left | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4 43 First Segment @Segment List [First Segment] Last Segment / Final Destination @Segment List [0] Active Segment Active Segment @Segment List [Segments Left]
  • 10. Source Node • Source node is SR-capable • SR Header (SRH) is created with • Segment list in reversed order of the path • Segment List [ 0 ] is the LAST segment • Segment List [ " − 1 ] is the FIRST segment • Segments Left is set to " − 1 • First Segment is set to " − 1 • IP DA is set to the first segment • Packet is send according to the IP DA • Normal IPv6 forwarding Version Traffic Class Next = 43 Hop Limit Payload Length Source Address = A:: Destination Address = B:: Segment List [ 0 ] = D:: Segment List [ 1 ] = C:: Next Header Len= 6 Type = 4 SL = 2 First = 2 Flags RESERVED IPv6 Hdr Segment List [ 2 ] = B:: SR Hdr Payload Flow Label Flow Label D D:: A A:: SR Hdr IPv6 Hdr SA = A::, DA = B:: ( D::, C::, B:: ) SL=2 Payload B B:: C C::
  • 11. Non-SR Transit Node • Plain IPv6 forwarding • Solely based on IPv6 DA • No SRH inspection or update D D:: A A:: SR Hdr IPv6 Hdr SA = A::, DA = B:: ( D::, C::, B:: ) SL=2 Payload B B:: C C::
  • 12. SR Segment Endpoints • SR Endpoints: SR-capable nodes whose address is in the IP DA • SR Endpoints inspect the SRH and do: • IF Segments Left > 0, THEN • Decrement Segments Left ( -1 ) • Update DA with Segment List [ Segments Left ] • Forward according to the new IP DA Version Traffic Class Next = 43 Hop Limit Payload Length Source Address = A:: Destination Address = C:: Segment List [ 0 ] = D:: Segment List [ 1 ] = C:: Next Header Len= 6 Type = 4 SL = 1 First = 2 Flags RESERVED IPv6 Hdr Segment List [ 2 ] = B:: SR Hdr Payload Flow Label Flow Label D D:: A A:: B B:: C C:: SR Hdr IPv6 Hdr SA = A::, DA = C:: ( D::, C::, B:: ) SL=1 Payload
  • 13. SR Segment Endpoints • SR Endpoints: SR-capable nodes whose address is in the IP DA • SR Endpoints inspect the SRH and do: • IF Segments Left > 0, THEN • Decrement Segments Left ( -1 ) • Update DA with Segment List [ Segments Left ] • Forward according to the new IP DA • ELSE (Segments Left = 0) • Remove the IP and SR header • Process the payload: • Inner IP: Lookup DA and forward • TCP / UDP: Send to socket • … Version Traffic Class Next = 43 Hop Limit Payload Length Source Address = A:: Destination Address = D:: Segment List [ 0 ] = D:: Segment List [ 1 ] = C:: Next Header Len= 6 Type = 4 SL = 0 First = 2 Flags RESERVED IPv6 Hdr Segment List [ 2 ] = B:: SR Hdr Payload Flow Label Flow Label D D:: A A:: B B:: C C:: SR Hdr IPv6 Hdr SA = A::, DA = D:: ( D::, C::, B:: ) SL=0 Payload Standard IPv6 processing The final destination does not have to be SR-capable.
  • 15. Segment format • SRv6 SIDs are 128-bit addresses • Locator: most significant bits are used to route the segment to its parent node • Function: least significant bits identify the action to be performed on the parent node • Argument [optional]: Last bits can be used as a local function argument • Flexible bit-length allocation • Segment format is local knowledge on the parent node • SIDs have to be specifically enabled as such on their parent node • A local address is not by default a local SID • A local SID does not have to be associated with an interface 1111 : 2222 : 3333 : 4444 : 5555 : 6666 : 7777 : 8888 Locator Function
  • 16. END – Default endpoint • Default endpoint behavior (node segment) • Decrement Segments Left, update DA • Forward according to new DA • Node B advertises prefix B::/64 (B::/64 is the SID locator) • Packets are forwarded to B along the default routes (shortest path) • On B, the default endpoint behavior is associated with ID 0 (0 is the function) • The SID corresponding to the default endpoint behavior on node B is B::1 SR Hdr IPv6 Hdr SA = A::, DA = B::0 (…,C::,B::1,…) SL=k Payload B B:: /64 SR Hdr IPv6 Hdr SA = A::, DA = C:: (…,C::,B::1,…) SL=k-1 Payload C
  • 17. END.X – Endpoint then Xconnect • Endpoint xconnect behavior (adjacency segment) • Decrement Segments Left, update DA • Forward on the interface associated with the Xconnect segment • Node C advertises prefix C::/64 • Packets are forwarded to C along the default routes (shortest path) • On C, the endpoint xconnect behavior for link (C, E) is associated with ID CE • The SID corresponding to endpoint xconnect-(C,E) behavior on node C is C::CE SR Hdr IPv6 Hdr SA = A::, DA = C::C1 (…,D::, C::C1,…) SL=k Payload SR Hdr IPv6 Hdr SA = A::, DA = D:: (…,D::,C::C1,…)SL=k-1 Payload C C:: /64 D 1 2
  • 18. Functoins Defined in Net Programming • End Endpoint function The SRv6 instantiation of a prefix SID • End.X Endpoint function with Layer-3 cross-connect The SRv6 instantiation of a Adj SID • End.T Endpoint function with specific IPv6 table lookup • End.DX2 Endpoint with decapsulation and Layer-2 cross-connect L2VPN use-case • End.DX2V Endpoint with decapsulation and VLAN L2 table lookup EVPN Flexible cross-connect use-cases • End.DT2U Endpoint with decaps and unicast MAC L2 table lookup EVPN Bridging unicast use-cases • End.DT2M Endpoint with decapsulation and L2 table flooding EVPN Bridging BUM use-cases with ESI filtering • End.DX6 Endpoint with decapsulation and IPv6 cross-connect IPv6 L3VPN use (equivalent of a per-CE VPN label) • End.DX4 Endpoint with decapsulation and IPv4 cross-connect IPv4 L3VPN use (equivalent of a per-CE VPN label) • End.DT6 Endpoint with decapsulation and IPv6 table lookup IPv6 L3VPN use (equivalent of a per-VRF VPN label) • End.DT4 Endpoint with decapsulation and IPv4 table lookup IPv4 L3VPN use (equivalent of a per-VRF VPN label) • End.DT46 Endpoint with decapsulation and IP table lookup IP L3VPN use (equivalent of a per-VRF VPN label) • End.B6 Endpoint bound to an SRv6 policy SRv6 instantiation of a Binding SID • End.B6.Encaps Endpoint bound to an SRv6 encapsulation Policy SRv6 instantiation of a Binding SID • End.BM Endpoint bound to an SR-MPLS Policy SRv6/SR-MPLS instantiation of a Binding SID • End.S Endpoint in search of a target in table T • T.Insert Transit behavior with insertion of an SRv6 policy • T.Insert.Red Transit behavior with reduced insert of an SRv6 policy • T.Encaps Transit behavior with encapsulation in an SRv6 policy • T.Encaps.Red Transit behavior with reduced encaps in an SRv6 policy • T.Encaps.L2 T.Encaps behavior of the received L2 frame • T.Encaps.L2.Red Transit with reduce encaps of received L2 frame
  • 19. SRv6 for anything Optimized for HW processing e.g. Underlay & Tenant use-cases Optimized for SW processing e.g. NFV, Container, Micro-Service Metadata TLV Segments Left Locator 1 Function 1 Locator 2 Function 2 Locator 3 Function 3 TAG
  • 20. ISIS easily extensible • Uses TLVs • For Srv6: • Locator – for Reachability (twice for backward compatibility) • END function - TI-LFA and TE • END.X function for each interface in routing protocol TI-LFA and TE • Capabilities: • Max SID depth for different functions • OSPF will follow Ten0/0/0/0 Lo0 A::1/128 2001::12/64 Locator : B::/64 END: B::1 END.X: B::41 Ten0/0/0/1 END.X: B::42 fe80::dead/64 Router 1
  • 21. VPNv4 – Basic SRv6 VPN –Control Plane 1 2 5 A2::A2 A1::A1 eBGP AFI:1 -IPv4 SAFI:1 NLRI:4.0.0.0/8 NH:4.4.4.1 eBGP AFI:1 -IPv4 SAFI:1 NLRI:4.0.0.0/8 NH:.3.3.3.2 A2::C4 end.DX4 A1::C3 end.DX4 3 3.0.0.0/8 3.3.3.1 3.3.3.2 4 4.0.0.0/8 4.4.4.1 4.4.4.2 iBGP AFI:1 -IPv4 SAFI:128 NLRI:4.0.0.0/8 NH:A2::A2 Label:ImplNull SID: A2::C4 A2::/64 IGP A1::/64 IGP
  • 22. VPNv4 – Basic SRv6 VPN -Data Plane 1 2 4 4.0.0.0/8 3 3.0.0.0/8 5 A2::A2 A1::A1 A2::C4 end.DX4 A1::C3 end.DX4 3.3.3.1 3.3.3.2 4.4.4.1 4.4.4.2 IPv4 ( 3.1.1.1, 4.1.1.1) payload IPv6 ( A1::1, A2::C4 ) payload IPv4 ( 3.1.1.1, 4.1.1.1) IPv4 ( 3.1.1.1, 4.1.1.1) ) payload
  • 24. © 2017 Cisco and/or its affiliates. All rights reserved Demonstration