SRv6¶
SRv6 introduction¶
SRv6 is a technology that uses IPv6 to carry traffic over the network. It is a form of SR in modern networks that takes advantage of IPv6 capabilities by encoding instructions in the IPv6 packet header.
Network instructions represent a network programming capability, where the network encodes a network program into individual instructions, carried natively in the IPv6 extension headers. These instructions are called the SRv6 segment identifiers SIDs.
SRv6 terminology¶
- SRH
Segment Routing Header (SRH) - is an extension header added to IPv6 packets to implement Segment Routing IPv6 (SRv6) based on the IPv6 forwarding plane. It stores IPv6 segment lists and specifies an IPv6 explicit path.
- SID
Segment Identifier. A term that represents a particular segment in a segment routing domain. Also called SRv6 segment, this segment is a 128-bit IPv6 address.
An SRv6 address is made up of multiple parts.
locator
The SID most significant bits part is the
locator
and represents the address of an SRv6 node, similar to the network address.function
The
function
part is chosen by the local node to identify the behavior, performed locally on this node.
An SRv6 locator is made up of the following blocks: Network Block
and
Node ID Block
. The below drawing illustrates the SRv6 locator blocks.
As mentioned before, each SID has a specific behavior, based on
the function
part. Among the SRv6 behaviors one may distinguish:
End.DT4
An endpoint function for SRv6 instantiation of VPN IPv4 services. It is an endpoint decapsulation function associated with a L3VRF instance to transport IPv4 services over SRv6 data plane.
End.DT6
An endpoint function for SRv6 instantiation of VPN IPv6 services. It is an endpoint decapsulation function associated with a L3VRF instance to transport IPv6 services over SRv6 data plane.
SRv6 locator configuration¶
An SRv6 locator needs to be configured on every device where SRv6 is used.
The below example shows how to configure the srv6-locator1
locator.
vsr running config# vrf main
vsr running vrf main# routing segment-routing ipv6 locator srv6-locator1
vsr running locator srv6-locator1#! prefix 2001:db8:1:2::/64
vsr running locator srv6-locator1# block-length 40
vsr running locator srv6-locator1# node-length 24
vsr running locator srv6-locator1# function-length 16
The chosen prefix length value must be equal to the sum of the block-length
and
node-length
values.
To use the locator, the routing service needs to reference it in its configuration. The below configuration illustrates IS-IS using the locator.
vsr running config# vrf main
vsr running vrf main# routing isis instance 1
vsr running instance 1# segment-routing ipv6 locator srv6-locator1
vsr running instance 1#
The show segment-routing ipv6 locator
command displays the SRv6 locator
configuration. The last line clarifies which service owns the locator.
vsr> show segment-routing ipv6 locator srv6-locator1
name srv6-locator1
status up
prefix 2001:db8:1:2::/64
block-length 40
node-length 24
function-length 16
chunks:
- prefix 2001:db8:1:2::/64, protocol isis
It is not possible to share a locator between two routing services.
See also
IPv6 Segment Routing header, RFC 8754.
Segment Routing over IPv6 (SRv6) Network Programming, RFC 8986.
BGP VPN service using SRv6, BGP srv6 overview.
IS-IS service using SRv6, ISIS srv6 overview.