Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
22 views73 pages

Introduction To SRv6

Uploaded by

trungvieta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views73 pages

Introduction To SRv6

Uploaded by

trungvieta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 73

#CiscoLive

Introduction to SRv6
Network Simplicity

Jakub Horn, Technical Marketing Engineer

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

Data (L5,L6 & L7)


Socket header (L4)
Data (L5,L6 & L7) IPv4 header (L3)
Socket header (L4) NSH
IPv4 header (L3) Simplicity VxLAN (+ IP and UDP)
Ethernet (L2) (back to the MPLS
OSI model)
Ethernet (L2)
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

IPv6 SR Header
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next 17
Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Source Address |
• IPv6 header | |
| |

• Next header field: 17 → UDP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


| |
| Destination Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

#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 | |
| |

• Next header field: 4 → IPv4 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


| |
| Destination Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

#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 | |
| |

• Next header field: 43 → Routing +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


| |
| Destination Address |

• IPv6 Routing extension header


| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type | Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. type-specific data .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

#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 | |
| |

• Next header field: 43 → Routing +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


| |
| Destination Address |

• IPv6 Routing extension header


| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Generic header format defined in RFC 2460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type | Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Next Header: IPv4, TCP, UDP, … | |
. .
• Hdr Ext Len: Any IPv6 device can skip this header .
.
type-specific data .
.

• Segments Left: Ignore extension header if equal to 0 | |


+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

#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 | |
| |

• Next header field: 43 → Routing +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


| |
| Destination Address |

• IPv6 Routing extension header


| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Generic header format defined in RFC 2460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type | Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• Next Header: IPv4, TCP, UDP, … | |
. .
• Hdr Ext Len: Any IPv6 device can skip this header .
.
type-specific data .
.

• 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)
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
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 |

• IPv6 header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |

RFC 2460
| Source Address |
• Next header field: 43 → Routing |
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

• IPv6 Routing extension header |


| Destination Address
|
|
| |
• Generic header format defined in RFC 2460 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
• 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 |
| |

• Each segment is an IPv6 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|

Destination Address field of the IP |


.
|
.
header .
.
... .
.
| |

• Additional data can be stored in TLVs +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


| |
| Segment List[n-1] First (128 Segment bits IPv6 address) |
• Security (HMAC), NFV metadata, … |
|
@Segment List [First Segment] |
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// //
// Optional Type Length Value objects (variable) //
// //
#CiscoLive © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 14
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 |
| |

• Each segment is an IPv6 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|

Destination Address field of the IP |


.
|
.
header .
.
... .
.
| |

• Additional data can be stored in TLVs +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


| |
| Segment List[n-1] First (128 Segment bits IPv6 address) |
• Security (HMAC), NFV metadata, … |
|
@Segment List [First Segment] |
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// //
// Optional Type Length Value objects (variable) //
// //
#CiscoLive © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 15
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 |
| |

• Each segment is an IPv6 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|

Destination Address field of the IP |


.
|
.
Active Segment
header .
. @Segment List [Segments Left]
... .
.
| |

• Additional data can be stored in TLVs +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


| |
| Segment List[n-1] First (128 Segment bits IPv6 address) |
• Security (HMAC), NFV metadata, … |
|
@Segment List [First Segment] |
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// //
// Optional Type Length Value objects (variable) //
// //
#CiscoLive © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 16
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 |
| |

• Each segment is an IPv6 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|

Destination Address field of the IP |


.
|
.
Active Segment
header .
. @Segment List [Segments Left]
... .
.
| |

• Additional data can be stored in TLVs +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


| |
| Segment List[n-1] First (128 Segment bits IPv6 address) |
• Security (HMAC), NFV metadata, … |
|
@Segment List [First Segment] |
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// //
// Optional Type Length Value objects (variable) //
// //
#CiscoLive © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 17
DGTL-BRKSPG-3001 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Source Node
A B C D
A:: B:: C:: D::

• Source node is SR-capable IPv6 Hdr SA = A::, DA = B::


SR Hdr ( D::, C::, B:: ) SL=2

• SR Header (SRH) is created with


Payload

• Segment list in reversed order of the path


• Segment List [ 0 ] is the LAST segment
• Segment List [ 𝑛 − 1 ] is the FIRST segment Version Traffic Class Flow
FlowLabel
Label

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::

IPv6 Hdr SA = A::, DA = B::


SR Hdr ( D::, C::, B:: ) SL=2
Payload

• Plain IPv6 forwarding

• Solely based on IPv6 DA


• No SRH inspection or update

#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

• SRv6 SIDs are 128-bits


• 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

• 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

#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

• SRv6 SIDs are 128-bits


• 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

#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

IPv6 Hdr SA = A::, DA = B::0


B
SR Hdr (…,C::,B::1,…) SL=k
B:: /64
Payload C

IPv6 Hdr SA = A::, DA = C::


SR Hdr (…,C::,B::1,…) SL=k-1
Payload

#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

• 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
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 29
Network Program
Next Segment Locator 1 Function 1

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

Next Segment 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 31
Network Program
Locator 1 Function 1

Locator 2 Function 2

Next Segment 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 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

2001 : 0db8 : 0000: 0001 : 0042 : 0000:0000:0000 SA:7.5.4.3


DA:11.6.19.71
Port:UDP

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

: 0100 : =SRV6 uSID Type:4(SRH)


NH:IPv4|SL:1
Segment List:
[0]: 2001:db8:0:5:45:0:0:0
16 bits here, but can be anything [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:42:0:0:0

SA:7.5.4.3
DA:11.6.19.71

SRV6 uSID Carrier Port:UDP

UDP Header/Data

2001 :0db8 : 0100 : 0200 : 0300 : 0400 : 0500 : 0000


SRV6 uSID Encapsulation
SA:2001::1
SRv6 uSID uSID uSID uSID uSID uSID EoC DA:2001:db8:100:200:300:400:500::
NH:Ipv4
Block 1 2 3 4 5 6 SA:7.5.4.3
DA:11.6.19.71
32 bits here, Port:UDP

but can be anything 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

Locator fcbb:bb00:100::/48 Locator fcbb:bb00:300::/48


uN fcbb:bb00:100:: uN fcbb:bb00:300::
uA
uA
fcbb:bb00:100:e000::
fcbb:bb00:100:e001::
1 IPv6 only 3 uA
uA
fcbb:bb00:300:e000::
fcbb:bb00:300:e001::

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!

uN: fcbb:bb00:0200 uA: fcbb:bb00:F2a1


Ten0/0/0/0 2001::12/64

A::1/128 Lo0 Router 2


uA: fcbb:bb00:F2a3
Ten0/0/0/1 fe80::dead/64
Locator :
fcbb:bb00:0200::/48

#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

• BGP needs to allocate function for each local prefix


• Two possibilities
• Per VRF allocation –one END.DT function allocated
• Per CE allocation – END.DX function is allocated for each BGP peer in
VRF
• END.DT is allocated by default and advertised with local prefixes, and
static routes

#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::

IPv4 :10.10.22.0/24 IPv4 :10.10.22.0/24


NH:10.1.21.1 NH:10.3.22.22

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

UDP Header/Data UDP Header/Data

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

IGP Delay Delay


100 5 1
IGP IGP
10 100
Delay Delay
10 1
IGP Delay
10 1 IGP Delay

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

router isis 1 router bgp 1


flex-algo 128 vrf Latency
metric-type delay address-family ipv4 unicast
advertise-definition segment-routing srv6
address-family ipv6 unicast locator LOWLATENCY
segment-routing srv6 alloc mode per-vrf
locator MAIN
locator LOWLATENCY
#CiscoLive DGTL-BRKSPG-3001 © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 53
SRv6 with TI-LFA
• Topology Independent Loop Free Alternate
• Fast convergence mechanism
• 50ms in any topology any failure
• Needs Segment Routing

#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

Network Equipment Manufacturers

Merchant Silicon
Smart NIC

Open-Source Applications

Pyroute2 SERA NFV Partners

#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

You might also like