Introduction To SRv6
Introduction To SRv6
Introduction to SRv6
Network Simplicity
DGTL-BRKSPG-3001
#CiscoLive
Agenda
• Introduction
• SRv6 Packet Format
• SRv6 MicroSID
• IGP Protocol
• Overlay Services
• TI-LFA
• Conclusion
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 3
“Simplicity is prerequisite for
reliability.”
Edsger W. Dijkstra
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
Segment Routing
• Source Routing
• the topological and service (NFV) path is encoded in packet header
• Scalability
• the network fabric does not hold any per-flow state for TE or NFV
• Simplicity
• automation: TILFA sub-50msec FRR
• protocol elimination: LDP, RSVP-TE, VxLAN, NSH, GTP, ...
• End-to-End
• DC, Metro, WAN
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 5
Two dataplane instantiations
MPLS
• leverage the mature MPLS HW with only SW upgrade
• 1 segment = 1 label
• a segment list = a label stack
Segment Routing
IPv6
• leverages RFC8200 provision for source routing extension header
• 1 segment = 1 address
• a segment list = an address list in the SRH
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 6
IPv4 limitations & work-arounds
× Limited address space → NAT
× No engineered Load Balancing → MPLS Entropy Label, VxLAN UDP
× No VPN → MPLS VPN’s, VxLAN
× No Traffic Engineering → RSVP-TE, SR-TE MPLS
× No Service Chaining → NSH
IPv6 SR Header
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next 17
Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
• IPv6 header | |
| |
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 SR Header
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next 4Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
• IPv6 header | |
| |
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 9
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 SR Header
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next 43
Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
• IPv6 header | |
| |
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 10
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 SR Header
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next 43
Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
• IPv6 header | |
| |
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 11
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 SR Header
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next 43
Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
• IPv6 header | |
| |
IPv6 SR Header
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next 43 Header | Hop Limit |
• IPv6 header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
RFC 2460
| Source Address |
• Next header field: 43 → Routing |
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Next Header: IPv4, TCP, UDP, … | Next Header | Hdr Ext Len | Routing 4 Type | Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Hdr Ext Len: Any IPv6 device can skip this header | First Segment | Flags | Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Segments Left: Ignore extension header if equal to |
| Segment List[0] (128 bits IPv6 address)
|
|
0 | |
| |
• Specific data depends on Routing Type field: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
SR specific
. .
• 0 Source Route (deprecated since 2007) . ... .
. .
• 1 Nimrod (deprecated since 2009) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• 2 Mobility (RFC 6275) |
| Segment List[n-1] (128 bits IPv6 address)
|
|
| |
• 3 RPL Source Route (RFC 6554) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• 4 Segment Routing (tentative) // //
// Optional Type Length Value objects (variable) //
// //
#CiscoLive © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 13
DGTL-BRKSPG-3001 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 SR Header
| Payload Length | Next 43 Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
| |
| |
| Destination Address |
• Segments are encoded in reverse order | |
| |
• Last segment index is 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing 4 Type | Segments Left |
• First segment index is First Segment +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| First Segment | Flags | Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Active segment index is Segments Left | |
| Segment List[0] (128 bits IPv6 address) |
| |
• Active Segment is copied in the |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
IPv6 SR Header
| Payload Length | Next 43 Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
| |
| |
| Destination Address |
• Segments are encoded in reverse order | |
| |
• Last segment index is 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing 4 Type | Segments Left |
• First segment index is First Segment +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| First Segment | Flags | Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Active segment index is Segments Left | |
| Last Segment
Segment List[0] (128 / Final
bits Destination
IPv6 address) |
| @Segment List [0] |
• Active Segment is copied in the |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
IPv6 SR Header
| Payload Length | Next 43 Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
| |
| |
| Destination Address |
• Segments are encoded in reverse order | |
| |
• Last segment index is 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing 4 Type | Segments Left |
• First segment index is First Segment +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| First Segment | Flags | Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Active segment index is Segments Left | |
| Last Segment
Segment List[0] (128 / Final
bits Destination
IPv6 address) |
| @Segment List [0] |
• Active Segment is copied in the |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
IPv6 SR Header
| Payload Length | Next 43 Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
| |
| |
| Destination Address |
• Segments are encoded in reverse order |
Active Segment |
| |
• Last segment index is 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing 4 Type | Segments Left |
• First segment index is First Segment +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| First Segment | Flags | Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Active segment index is Segments Left | |
| Last Segment
Segment List[0] (128 / Final
bits Destination
IPv6 address) |
| @Segment List [0] |
• Active Segment is copied in the |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
IPv6 Hdr
• Segments Left is set to 𝑛 − 1 Payload Length Next = 43 Hop Limit
Source Address = A::
• First Segment is set to 𝑛 − 1 Destination Address = B::
Next
Len= 6 Type = 4 SL = 2
• IP DA is set to the first segment Header
First = 2 Flags RESERVED
SR Hdr
• Packet is send according to the IP DA Segment List [ 0 ] = D::
Segment List [ 1 ] = C::
• Normal IPv6 forwarding Segment List [ 2 ] = B::
Payload
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 18
Non-SR Transit Node
A B C D
A:: B:: C:: D::
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 19
SR Segment Endpoints
A B C D
A:: B:: C:: D::
• SR Endpoints: SR-capable nodes
whose address is in the IP DA IPv6 Hdr SA = A::, DA = C::
SR Hdr ( D::, C::, B:: ) SL=1
Payload
• SR Endpoints inspect the SRH and do:
• IF Segments Left > 0, THEN
• Decrement Segments Left ( -1 )
• Update DA with Segment List [ Segments Left Version Traffic Class Flow
FlowLabel
Label
IPv6 Hdr
] Payload Length Next = 43 Hop Limit
Source Address = A::
• Forward according to the new IP DA
Destination Address = C::
Next
Len= 6 Type = 4 SL = 1
Header
First = 2 Flags RESERVED
SR Hdr
Segment List [ 0 ] = D::
Segment List [ 1 ] = C::
Segment List [ 2 ] = B::
Payload
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 20
SR Segment Endpoints
A B C D
A:: B:: C:: D::
• SR Endpoints: SR-capable nodes
whose address is in the IP DA IPv6 Hdr SA = A::, DA = D::
SR Hdr ( D::, C::, B:: ) SL=0
Payload
• SR Endpoints inspect the SRH and do:
• IF Segments Left > 0, THEN
• Decrement Segments Left ( -1 )
• Update DA with Segment List [ Segments Left Version Traffic Class Flow
FlowLabel
Label
IPv6 Hdr
] Payload Length Next = 43 Hop Limit
Source Address = A::
• Forward according to the new IP DA
Destination Address = D::
• ELSE (Segments Left = 0) Next
Len= 6 Type = 4 SL = 0
Standard IPv6 processing
Header
• Remove the IP and SR header First = 2 Flags RESERVED
SR Hdr
The final destination does
• Process the payload: not have to be SR-capable. Segment List [ 0 ] = D::
Segment List [ 1 ] = C::
• Inner IP: Lookup DA and forward
Segment List [ 2 ] = B::
• TCP / UDP: Send to socket Payload
• …
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 21
Segment format
Locator Function
1111 : 2222 : 3333 : 4444 : 5555 : 6666 : 7777 : 8888
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 22
Segment format
Locator Function
1111 : 2222 : 3333 : 4444 : 5555 : 6666 : 7777 : 8888
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 23
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
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 25
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 IPv6 Hdr SA = A::, DA = D::
SR Hdr (…,D::,C::C1,…)SL=k-1
Payload
1
IPv6 Hdr SA = A::, DA = C::C1
C D
SR Hdr (…,D::, C::C1,…) SL=k
C:: /64
Payload
2
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 26
END.DX4 – Endpoint with Decapsulation and
Xconnect (END.DX6, END.DX2)
• Endpoint xconnect behavior (adjacency segment)
• Segments Left must be 0
• NH must be IPv4 (or IPv6 or L2)
• Decapsulate inner packet
• Forward on the interface associated with the Xconnect
• Node D advertises prefix C::/64
• Packets are forwarded to D along the default routes (shortest path)
• On C, the endpoint xconnect behavior for link (D, E) is associated with ID DE
• It is like L3 VPN with per CE label allocation
IPv4 packet
1
IPv6 Hdr SA = A::, DA = D::C1
D
SR Hdr (…, D::C1) SL=0
D:: /64
IPv4 packet
2
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 27
END.DT4 – Endpoint with Decapsulation and
Table lookup(END.DT6)
• Endpoint xconnect behavior (adjacency segment)
• Segments Left must be 0
• NH must be IPv4 (or IPv6)
• Decapsulate inner packet
• Do the lookup for IPv4 destination of inner packet and forward accordingly
• Node D advertises prefix D::/64
• Packets are forwarded to D along the default routes (shortest path)
• On C, the endpoint behavior for link (D, E) is associated with ID CE
• It is like L3 VPN with per VRF label allocation
IPv4 packet
1
IPv6 Hdr SA = A::, DA = D::1
D
SR Hdr (…, D::1) SL=0
D:: /64
IPv4 packet
2
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 28
•
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
Locator 2 Function 2
Locator 3 Function 3
Locator 2 Function 2
Locator 1 Function 1
Locator 3 Function 3
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 30
Network Program
Locator 1 Function 1
Locator 3 Function 3
Locator 2 Function 2
Locator 1 Function 1
Locator 3 Function 3
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 31
Network Program
Locator 1 Function 1
Locator 2 Function 2
Locator 2 Function 2
Locator 1 Function 1
Locator 3 Function 3
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 32
Segment format SA:2001::1
DA:2001:db8:0:4:1:0:0:0
NH:RH
Locator Function
Type:4(SRH)
1111 : 2222 : 3333 : 4444 : 5555 : 6666 : 7777 : 8888 NH:IPv4|SL:1
Segment List:
[0]: 2001:db8:0:5:45:0:0:0
Design
[1]: 2001:db8:0:4:1:0:0:0
[2]: 2001:db8:0:3:48:0:0:0
[3]: 2001:db8:0:2:1:0:0:0
[4]: 2001:db8:0:1:45:0:0:0
UDP Header/Data
Prefix Function
Router ID
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 33
SRV6 Encapsulation
Srv6 uSID format SA:2001::1
DA:2001:db8:0:4:1:0:0:0
NH:RH
SA:7.5.4.3
DA:11.6.19.71
UDP Header/Data
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 34
SRv6 uSID Locator Advertisement
2001:db8:0100::/48 2001:db8:0300::/48
S R R1 R2 R3 R4
2001:db8:0200::/48 2001:db8:0400::/48
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 35
SRv6 uSID Locator Advertisement
2001:db8:0100::/48 2001:db8:0300::/48
S R R1 R2 R3 R4
2001:db8:0200::/48 2001:db8:0400::/48
SA:2001::1
DA:2001:db8:100::
NH:RH
Type:4(SRH)
NH:IPv4|SL:3 If locator is : 2001:db8:0100::/48
Segment List:
[0]: 2001:db8:400:: uN function is: 2001:db8:0100::
[1]: 2001:db8:300::
[2]: 2001:db8:200::
[3]: 2001:db8:100::
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 36
SRv6 uSID Forwarding
2001:db8:0100::/48 2001:db8:0300::/48
S R R1 R2 R3 R4
2001:db8:0200::/48
SA:2001::1 SA:2001::1 SA:2001::1 SA:2001::1
DA:2001:db8:100:200:300:400:0:0 DA:2001:db8:200:300:400:0:0:0 DA:2001:db8:300:400:0:0:0:0 DA:2001:db8:400:0:0:0:0:
NH:Ipv6 NH:Ipv6 NH:Ipv6 NH:Ipv6
2001:db8:0400::/48
Shift & Forward
Incomming DA 2001:db8:100:200:300:400::
Shift 2001:db8:200:300:400::
Forward Lookup result for- 2001:db8:200::/48
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 37
SRv6 uSID More Than 6 SIDs? 1
2
100->200->300->400->500->600->700->800->900->a00->b00
3
Carrier 1 2001 : 0db8 : 0100 : 0200 : 0300 : 0400 : 0500 : 0600
4
Carrier 2 2001 : 0db8 : 0700 : 0800 : 0900 : 0a00 : 0b00 : 0000
5
SA:2001::1
DA:2001:db8:b00::
DA:2001:db8:a00:b00::
DA:2001:db8:900:a00:b00::
DA:2001:db8:800:900:a00:b00::
DA:2001:db8:700:800:900:a00:b00::
DA:2001:db8:600:0::
DA:2001:db8:500:600:0::
DA:2001:db8:400:500:600:0::
DA:2001:db8:300:400:500:600:0::
DA:2001:db8:200:300:400:500:600:0
DA:2001:db8:100:200:300:400:500:600 6
NH:RH
Type:4(SRH)
Shift & Forward 7
NH:IPv4|SL:1
SL:0 END of Carrier
8
Segment List: -> is there SRH?
[0]: 2001:db8:700:800:900:a00:b00::
Decrement SL 9
SA:7.5.4.3 Copy New SID (Carrier)
a
DA:11.6.19.71 PSP
Port:UDP
b
UDP Header/Data
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 38
Srv6 uSID is SRv6
SA:2001::1
DA:2001:db8:100:200:300:400:500:600
Any combination is allowed
NH:RH
Type:4(SRH)
NH:IPv4|SL:1 SRv6 uSID Carrier
Segment List:
[0]: 2001:1:0:1:44::
[1]: 2001:db8:100:200:300:400:500:600
[2]: 2001:1:0:2:1:: SRv6 SID
[3]: 2001:db8:700:f111::
[4]: 2001:db9:500:800:900::
SA:7.5.4.3
DA:11.6.19.71
Port:UDP
UDP Header/Data
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 39
Configuration SRv6 locator
segment-routing
srv6
locators
locator MAIN
micro-segment behavior unode psp-usd
prefix fcbb:bb00:100::/48
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 40
IGP
5 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 41
ISIS easily extensible
• Uses TLVs
• For Srv6:
• Locator – for Reachability (twice for backward
compatibility)
END: B::1
• END function - TI-LFA and TE END.X: B::41
Ten0/0/0/0 2001::12/64
• END.X function for each interface in routing protocol TI-
LFA and TE Lo0 Router 1
A::1/128
• Capabilities: Ten0/0/0/1
END.X: B::42
fe80::dead/64
• Max SID depth for different functions
Locator : B::/64
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 42
IGP for uSID
• No Changes Required!
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 43
Configuration SRv6 ISIS
router isis 1
address-family ipv6 unicast
segment-routing srv6
locator MAIN
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 44
Basic SRv6 VPN –Control Plane
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
VPNv4 :10.10.22.0/24
NH:2001::3
BGP RD-1:1
RT -1:1
uDT – febb:bb00:300:f000::
eBGP 2 eBGP
2001::3
2001::1
CE 1 SRv6 3 CE
10.1.21.21
10.1.21.1
10.3.22.3
10.3.22.22
uDT : febb:bb00:300:f000::
5 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 46
SA:2001::1
Dataplane
DA:febb:bb00:300:f000
NH:IPv4
SA:10.10.21.10
DA:10.10.22.10
NH:UDP
UDP Header/Data
2
SA:10.10.21.10 SA:10.10.21.10
DA:10.10.22.10 DA:10.10.22.10
NH:UDP NH:UDP
CE 1 SRv6 3 CE
5 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 47
Configuration SRv6 BGP
router bgp 1
vrf 1
address-family ipv4 unicast
segment-routing srv6
locator MAIN
alloc mode per-vrf
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 48
Flexible Algorithm
• We call “Flex-Algo”
• The algorithm is defined by the operator, on a per-deployment basis
• Flex-Algo K is defined as
• The minimization of a specified metric: IGP, delay, …
• The exclusion of certain link properties: link-affinity, SRLG, …
• Example
• Operator1 defines Flex-Algo 128 as “minimize IGP metric and avoid link-affinity
“green”
• Operator2 defines Flex-Algo 128 as “minimize delay metric and avoid link-affinity
“blue”
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 49
Network Topology - IGP and Delay metric
IGP Delay
20 10
IGP
2 4 6
20
CE 1 20 1 IGP Delay
10 1 8 CE
IGP IGP
100 10
Delay Delay
1 10
IGP Delay
IGP 10 20
3 10
Delay
10
5 7
IGP Delay
100 10
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 50
VPN over Flex-ALG iBGP
IPv4 :1.1.1.0/24 – uDX fcbb:bb00:800:e000::
IPv4 :2.2.2.0/24 – uDX fcbb:bb01:800:e010::
IGP Delay
20 10
IPv4 :1.1.1.0/24 IGP IPv4 :1.1.1.0/24
2 4 6
20
IPv4 :2.2.2.0/24 IPv4 :2.2.2.0/24
IGP Delay Delay
eBGP 100 5 1 eBGP
IGP IGP
10 100
Locator ALG 0 Locator ALG 0
fcbb:bb00:100::/48 Delay Delay fcbb:bb00:800/48
10 1
IGP Delay
10 1 IGP Delay
CE 1 20 1 IGP Delay
10 1 8 CE
IGP IGP
100 10 Locator ALG 128
Locator ALG 128
fcbb:bb01:800::/48
fcbb:bb01:100::/48
Delay Delay
1 10
IGP Delay
IGP 10 20
3 10
Delay
10
5 7
IGP Delay
100 10
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 51
SA:2001::1
DA:fcbb:bb00:800:e000:
Packet Forwarding
NH:IPv4
SA:7.5.4.3
DA:1.1.1.1
IGP Delay
NH:UDP
20 10
UDP Header/Data IGP
2 4 6
20
SA:7.5.4.3 Delay
IGP Delay
DA:1.1.1.1 1
NH:UDP 100 5
IGP IGP
10 100
UDP Header/Data
Delay Delay
10 1
IGP Delay
10 1 IGP Delay
CE 1 20 1 IGP Delay
10 1 8 CE
IGP IGP
100 10
SA:7.5.4.3
Delay Delay
DA:2.2.2.2 1 10
NH:TCP IGP Delay
IGP 10 20
3 10
5 7
TCP Header/Data
Delay
SA:2001::1 10
DA: fcbb:bb01:800:e010:: IGP Delay
NH:IPv4 100 10
SA:7.5.4.3
DA:2.2.2.2
NH:TCP
TCP Header/Data #CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 52
Configuration - Flexible Algorithm
segment-routing
srv6
locators
locator LOWLATENCY
micro-segment behavior unode psp-usd
prefix fcbb:bb01:100::/48
algorithm 128
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 54
NO TI-LFA -Before Failure
Destination is END.DX4 – 2001:0:0:3:45
Whole network knows how to reach 2001:0:0:3::/64
20
01
2 :0:
0:3
::/6
4
/64
0:3::
:0:
01
20
CE 1 SRv6 3 CE
20
64
01
:0
::/
:0
:3
:3
:0
::/
:0
64
01
20
5 Metric 100 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 55
NO-TI-LFA
Failure –Fiber CUT between R2-R3 time T0
Failure Detection T1 (LOS or BFD) (1-100ms)
Propagation of Failure to IGP T2 (2ms-20ms) 20
01
IGP Creates new LSP
IGP sends new LSP to R1- T3 (~4ms)
IGP Runs SPF and creates new RIB-FIB entry (1-3000 ms)
2 :0:
0:3
::/6
4
HW programming on R2 (1-3ms)
0:3::
/64 Discarding
:0:
01
20
CE 1 SRv6 3 CE
20
64
01
:0
::/
:0
:3
:3
:0
::/
:0
64
01
20
5 Metric 100 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 56
NO-TI-LFA R2 Convergence
R1 Received new LSP -T4 (5us/km)
R1 IGP Takes LSP and propagates it to R5 -T5 (~1-20ms)
R1 IGP Runs SPF and creates new RIB-FIB entry 4
:/6
:3:
HW programming on R1
20
01
:0:0
2
/64
0:3::
:0:
01
20
uLoop
CE 1 SRv6 3 CE
20
64
01
:0
::/
:0
:3
:3
:0
::/
:0
64
01
20
5 Metric 100 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 57
NO-TI-LFA R2 Convergence
R5 Received new LSP –T6 (5us/km)
R5 IGP Takes LSP and propagates it to R5 (~1-20ms)
R5 IGP Runs SPF and creates new RIB-FIB entry 4
:/6
:3:
HW programming on R5 T7
20
01
:0:0
2
CE 1 20
01
:0
:0
uLoop SRv6 3 CE
20 :3::/
01 64
64
:0
::/
:0
:3
:3
:0
::/
:0
64
01
20
5 Metric 100 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 58
NO-TI-LFA R5 Convergence
R5 Received new LSP T6 (5us/km)
R5 Takes LSP and propagates it to R4
R5 IGP Runs SPF and creates new RIB-FIB entry (1-3000ms) 4
:/6
:3:
HW programming on R5 T7 (1-5ms)
1:0
20
:
0
0
2
CE 1 20
01
SRv6 3 CE
:0
:0
:3
64
::/
::/
64
:3
:0
:0
01
20
2001:0:0:3::/64
5 Metric 100 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 59
TI-LFA before Failure - Calculating Backup Path )
Router 2 1::
p 0:5:4
Link to Router 3 cku :0:
Ba (2001 20
Prefix 2001:0:0:3::/64 01
2
4
:/6 :0:
:0:3: 0:3
:0 ::/6
01 4
20
/64
0:3::
:0:
01
20
CE 1 SRv6 3 CE
20
64
01
::/
:0
:3
:0
:0
:3
:0
::/
01
64
20
P -Space 5 Metric 100 4
All Routers R1 can reach
without crossing the link 2-3 Q -Space
All Routers that can reach destination
without crossing the link 2-3
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 61
Failure –Fiber CUT between R2-R3 time T0
Failure SA:2001::1
DA:2001:0:0:3:45::
NH:IPv4
Failure Detection T1 (LOS or BFD) (1-100ms)
Single HW Interrupt to switch to preprogrammed backups (1-15ms)
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data 2
SA:6.6.6.6
DA:7.7.7.7 SA:2001::1
NH:UDP DA:2001:0:0:5:41::
NH:RH
UDP Header/Data
Type:4(SRH)
1 3
NH:IPv4|SL:1
CE Segment List:
[0]: 2001:0:0:3:45::
CE
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
5 SA:2001::1
4
DA:2001:0:0:3:45::
NH:IPv4
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
DGTL-BRKSPG-3001 #CiscoLive
UDP Header/Data © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 62
Converged
2
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
CE 1 SA:2001::1
DA:2001:0:0:3:45::
NH:IPv4
3 CE
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
5 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 63
What About Microloop
IGP Creates new LSP
IGP sends new LSP to R1- T3
IGP Runs SPF and creates new RIB-FIB entry
HW programming on R2 (1-3ms)
2
SA:6.6.6.6
DA:7.7.7.7 SA:2001::1
NH:UDP DA:2001:0:0:3:45::
NH:IPv4
UDP Header/Data
SA:6.6.6.6
1 3
DA:7.7.7.7
CE NH:UDP CE
UDP Header/Data
5 SA:2001::1
4
DA:2001:0:0:3:45::
NH:IPv6
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
#CiscoLive
UDP Header/Data © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 64
Microloop Avoidance- Local IGP Creates new LSP
IGP sends new LSP to R1- T3
IGP Runs SPF and creates new RIB-FIB entry
WAIT WAIT WAIT give some time to R1 to do his job
2 HW programming on R2
SA:2001::1
DA:2001:0:0:5:41::
NH:RH
Type:4(SRH)
1 3
NH:IPv4|SL:1
CE Segment List:
[0]: 2001:0:0:3:45::
CE
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
5 SA:2001::1
4
DA:2001:0:0:3:45::
NH:IPv4
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
DGTL-BRKSPG-3001 #CiscoLive
UDP Header/Data © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 65
R1 Converged
But R5 still have old information……
Maybe still doing SPF….
2
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
CE 1 3 CE
SA:2001::1
DA:2001:0:0:3:45::
5 4
NH:IPv6
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 66
R1 Converged R1 does not install postconvergence FIB entry immediately
He gives some more time to R5
2
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
CE 1 3 CE
SA:2001::1
DA:2001:0:0:5:41::
NH:IPv6
Type:4(SRH)
NH:IPv4|SL:1
5 4
Segment List:
[0]: 2001:0:0:3:45::
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 67
Converged
2
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
CE 1 SA:2001::1
DA:2001:0:0:3:45::
NH:IPv6
3 CE
SA:6.6.6.6
DA:7.7.7.7
NH:UDP
UDP Header/Data
5 4
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 68
Configuration SRv6 TI-LFA
router isis 1
address-family ipv6 unicast
microloop avoidance segment-routing
interface TenGigE0/0/0/0
address-family ipv6 unicast
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 69
SRv6 Ecosystem Open-Source Networking Stacks
Merchant Silicon
Smart NIC
Open-Source Applications
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 70
SRv6 Standardization
• RFC 8754 Proposed Standard
• SRv6 DataPlane: SRH and SRv6 SID
• With IESG for RFC publication
• Network Programming (END, END.X, END.DX/DT, H.Encaps)
• Last-Call
• Control Plane (ISIS, BGP-LS)
• Policy
• OAM
• One IETF away to Last-Call
• BGP
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 71
At record speed
• 9 large-scale commercial deployments
• Softbank, Iliad, China Telecom, LINE corporation,
China Unicom, CERNET2, China Bank, MTN Uganda, and NOIA Network
• 25 HW linerate implementations
• Cisco Systems, Huawei
• Arrcus, Broadcom, Barefoot, Intel, Marvell, Mellanox, Kaloom
• Spirent, Ixia
• Multiple Interop Reports
• 11 open-source platforms/ Applications
• Linux, FD.io VPP, P4, Wireshark, tcpdump, iptables, nftables, snort, SERA, ExaBGP, Contiv-VPP
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 72
“Everything should be made as
simple as possible, but not
simpler.”
Albert Einstein
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 73
Thank you
#CiscoLive
#CiscoLive