SRv6 Policy Support for Layer 2 and Layer 3 Services
This chapter provides information about SRv6 policy support for Layer 2 and Layer 3 services.
Topics in this chapter include:
Applicability
SRv6 policies for Layer 2 and Layer 3 services are supported in SR OS Release 22.7.R1 and later. The information and configuration in this chapter are based on SR OS Release 24.3.R2.
MPLS Segment Routing (SR) policies are described in the BGP Signaled Segment Routing Policy chapter.
Overview
SRv6 policies are Segment Routing (SR) policies with an IPv6 data plane. SRv6 policies consist of one or more lists of SRv6 segments, where each segment list represents a source route that can be used to enable traffic engineering through SRv6 networks. Each segment list contains a list of SRv6 SIDs comprising the top Segment Identifier (SID) and the further SIDs. Both 128-bit classic SIDs and 16-bit micro-segment SIDs can be used and it is possible to combine SRv6 segments derived from classic SRv6 and micro-segment SRv6 locators. The combination of classic and micro-segment SIDs can happen at the policy level and at the segment list level. A policy can have a segment list with only classic SIDs and another segment list with only micro-segment SIDs. A segment list can itself contain both classic and micro-segment SIDs. Different types of SIDs can be used, such as node SIDs (for classic SIDs: End SIDs; for micro-segment SIDs: uN SIDs) or adjacency SIDs (End.X SIDs; uA SIDs).
-
The head-end is the node where the SRv6 policy is instantiated. The head-end steers the traffic into the policy with the SID stack. From the perspective of the head-end, the SRv6 policy can be identified using the { color, endpoint } tuple.
-
The endpoint is the IPv6 destination of the SRv6 policy.
-
The color is a numerical value that is used by the head-end to associate the SRv6 policy with a characteristic, such as low-latency or high-throughput. The color is a 32-bit transitive extended community that forms part of the BGP NLRI which is exported by the endpoint, and the head-end resolves the next hop to that endpoint via an SR policy with the corresponding color.
Static SRv6 policies are configured through CLI, using the configure router segment-routing sr-policies static-policy <..> command with the type srv6 option. Static SRv6 policies can be configured on the head-end (head-end local) and it is also possible to configure static SRv6 policies on a remote node and signal these SRv6 policies using BGP to the head-end (head-end <non-local IPv4 system address>).
- EVPN VPWS
- EVPN VPLS
- EVPN IFL
- VPN IPv4
- VPN IPv6
Similar to SR policies with an MPLS data plane, the next-hop resolution is based on the color and on the comparison of the next hop with the SR policy endpoint. The head-end, endpoint, and color define a matching policy, but a matching policy can be an SR MPLS policy or an SRv6 policy. Therefore, the service also uses the data plane technology of the policy to select the tunnel type to resolve over. SRv6 services can only resolve over SRv6 tunnels and MPLS services cannot resolve over SRv6 tunnels. An SRv6 service cannot fall back to an MPLS tunnel type.
-
tunnel-table
The tunnel-table command option resolves the route directly to a tunnel in TTMv6. The system tries to find an SRv6 policy with the same endpoint and color for BGP routes received with an SRv6 TLV and that contain an SRv6 service SID in the TTMv6. If no such SRv6 policy is found in the TTMv6, the resolution fails.
-
route-table
The route-table command option is the default behavior which resolves the route to a shortest path SRv6 tunnel in the route table.
-
fallback-tunnel-to-route-table
This fallback command option first tries to resolve the route directly to a tunnel in the TTMv6. If none is found, the system falls back to the shortest path SRv6 resolution in the route table.
Configuration
Example topology with system IP addresses shows the example topology with six PEs, one route reflector (RR), and an external controller. In this example topology, the controller is an SR OS node that advertises non-local SRv6 policies using BGP. The controller is only used in two of the following examples; in the other examples, static SRv6 policies are configured on PE-1. The CEs are connected to PE-1 and PE-6 when Layer 2 services are configured.
- cards, MDAs, ports
- router interfaces with IPv6 addresses – only the system interface is configured with both IPv4 and IPv6 addresses
- IS-IS on all router interfaces between the PEs and between PE-3, PE-4, and RR-7
- static routes between RR-7 and the controller
- SRv6 between the PEs, but not toward RR-7
SRv6 locators and BGP configuration
Classic SRv6 locators
Example topology with classic locator prefixes shows the classic SRv6 locators that are configured on the PEs.
As an example, on PE-2, the classic locator "PE2-loc" is configured as follows:
# on PE-2:
configure {
router "Base" {
mpls-labels {
reserved-label-block "sr-policy" {
start-label 20000
end-label 22999
}
}
isis 0 {
---snip---
segment-routing-v6 {
admin-state enable
locator "PE2-loc" {
}
}
}
segment-routing {
segment-routing-v6 {
origination-fpe [1]
source-address 2001:db8::2:2
locator "PE2-loc" {
admin-state enable
block-length 48
termination-fpe [2]
prefix {
ip-prefix 2001:db8:aaaa:102::/64
}
static-function {
max-entries 16
label-block "sr-policy"
}
}
base-routing-instance {
locator "PE2-loc" {
function {
end 1 {
srh-mode usp
}
end-x 2 { # static function value for adj with PE-1
protection unprotected
interface-name "int-PE-2-PE-1"
}
end-x 3 { # static function value for adj with PE-3
protection unprotected
interface-name "int-PE-2-PE-3"
}
end-x-auto-allocate psp protection unprotected { }
}
}
}
The configuration on the other PEs is similar.
Micro-segment SRv6 locators
Besides the classic SRv6 locators, the PEs are also configured with micro-segment SRv6 locators. Example topology with micro-segment node SIDs shows the micro-segment node SIDs configured on the PEs.
On PE-2, the micro-segment locator "PE2-mloc" is configured as follows:
# on PE-2:
configure {
router "Base" {
mpls-labels {
reserved-label-block "res-block1" {
start-label 19000
end-label 19999
}
}
isis 0 {
segment-routing-v6 {
admin-state enable
micro-segment-locator "PE2-mloc" {
}
}
}
segment-routing {
segment-routing-v6 {
origination-fpe [1]
source-address 2001:db8::2:2
micro-segment {
argument-length 16
block "ms-block1" {
admin-state enable
termination-fpe [2]
label-block "res-block1"
prefix {
ip-prefix 2001:bbbb::/32
}
static-function {
max-entries 16
}
}
}
micro-segment-locator "PE2-mloc" {
admin-state enable
block "ms-block1"
un {
srh-mode usp
value 2
}
}
base-routing-instance {
micro-segment-locator "PE2-mloc" {
function {
ua 1 {
protection unprotected
interface-name "int-PE-2-PE-1"
}
ua 2 {
protection unprotected
interface-name "int-PE-2-PE-3"
}
ua 3 {
protection unprotected
interface-name "int-PE-2-PE-5"
}
ua-auto-allocate psp protection unprotected { }
}
}
}
}
The configuration on the other PEs is similar.
BGP configuration
For the examples where EVPN VPWS and EVPN VPLS services are configured and static SRv6 policies are used, it is sufficient to configure BGP for the EVPN address family only, as follows:
# on PE-1, PE-2, PE-3, PE-4, PE-5, PE-6:
configure {
router "Base" {
autonomous-system 64500
bgp {
vpn-apply-export true
vpn-apply-import true
rapid-withdrawal true
peer-ip-tracking true
split-horizon true
rapid-update {
evpn true
}
group "internal" {
peer-as 64500
family {
evpn true
}
}
neighbor "2001:db8::2:7" {
group "internal"
}
}
For the EVPN VPWS and EVPN VPLS services where BGP-signaled SRv6 policies are used, BGP must also be enabled for the SRv6 policy address family, as follows:
# on PE-6:
configure {
router "Base" {
autonomous-system 64500
bgp {
vpn-apply-export true
vpn-apply-import true
rapid-withdrawal true
peer-ip-tracking true
split-horizon true
rapid-update {
evpn true
}
group "internal" {
peer-as 64500
family {
evpn true
sr-policy-ipv6 true
}
}
neighbor "2001:db8::2:7" {
group "internal"
}
}
RR-7 also has a BGP session with the controller. The BGP configuration on RR-7 is as follows:
# on RR-7:
configure {
router "Base" {
autonomous-system 64500
bgp {
vpn-apply-export true
vpn-apply-import true
rapid-withdrawal true
peer-ip-tracking true
split-horizon true
rapid-update {
evpn true
}
group "IBGP clients" {
peer-as 64500
family {
evpn true
sr-policy-ipv6 true
}
cluster {
cluster-id 192.0.2.7
}
}
group "SRv6-policies" {
peer-as 64500
family {
ipv6 true
sr-policy-ipv6 true
}
}
neighbor "2001:db8::2:1" {
group "IBGP clients"
}
neighbor "2001:db8::2:2" {
group "IBGP clients"
}
neighbor "2001:db8::2:3" {
group "IBGP clients"
}
neighbor "2001:db8::2:4" {
group "IBGP clients"
}
neighbor "2001:db8::2:5" {
group "IBGP clients"
}
neighbor "2001:db8::2:6" {
group "IBGP clients"
}
neighbor "2001:db8::2:8" {
group "SRv6-policies"
}
}
The controller signals SRv6 policies using BGP. The sr-policy-import true command instructs BGP to import statically-configured non-local segment routing policies from the segment routing database into the BGP RIB so that they can be advertised, as originated routes, toward BGP peers that support the sr-policy-ipv6 address family. The BGP configuration on the controller is as follows:
# on controller:
configure {
router "Base" {
autonomous-system 64500
bgp {
rapid-withdrawal true
sr-policy-import true # import static non-local SR policies into BGP RIB
group "SR-policy" {
peer-as 64500
family {
ipv6 true
sr-policy-ipv6 true
}
}
neighbor "2001:db8::2:7" {
group "SR-policy"
}
}
For the EVPN IFL services, the EVPN address family must be enabled and the IPv6 next hops must be advertised for the EVPN address family. In the case that an external controller is used, the SRv6 policy address family must also be enabled, as follows:
# on PE-1, PE-6:
configure {
router "Base" {
autonomous-system 64500
bgp {
vpn-apply-export true
vpn-apply-import true
rapid-withdrawal true
peer-ip-tracking true
split-horizon true
rapid-update {
evpn true
}
group "internal" {
peer-as 64500
family {
evpn true
sr-policy-ipv6 true
}
advertise-ipv6-next-hops {
evpn true
}
}
neighbor "2001:db8::2:7" {
group "internal"
}
}
For the IP VPN services, BGP must be configured for the VPN IPv4 and VPN IPv6 address families. If an external controller is used, the SRv6 policy address family must also be enabled. Extended next hop encoding is enabled for IPv4 and VPN IPv4; IPv6 next hops must be advertised for IPv4, VPN IPv4, and VPN IPv6. The BGP configuration on PE-1 and PE-6 is as follows:
# on PE-1, PE-6:
configure {
router "Base" {
bgp {
vpn-apply-export true
vpn-apply-import true
rapid-withdrawal true
peer-ip-tracking true
split-horizon true
rapid-update {
}
group "internal" {
peer-as 64500
family {
vpn-ipv4 true
vpn-ipv6 true
sr-policy-ipv6 true
}
extended-nh-encoding {
vpn-ipv4 true
ipv4 true
}
advertise-ipv6-next-hops {
vpn-ipv6 true
vpn-ipv4 true
ipv4 true
}
}
neighbor "2001:db8::2:7" {
group "internal"
}
}
EVPN VPWS
EVPN VPWS with static SRv6 policy on head-end PE-1
EVPN VPWS using SRv6 policy with color 100 from PE-1 to PE-6 shows the segments in the segment list of the static SRv6 policy on head-end PE-1. The SIDs are the End.X SID for the interface "int-PE-2-PE-3" on PE-2, the End.X SID for the interface "int-PE-3-PE-4" on PE-3, and the End.X SID for the interface "int-PE-4-PE-5" on PE-4.
Static SRv6 policy on PE-1
SRv6 policies are configured with the following command:
[ex:/configure router "Base" segment-routing sr-policies static-policy "color-100-PE-1-PE-6"]
A:admin@PE-1# ?
admin-state - Administrative state of segment routing static policy
apply-groups - Apply a configuration group at this level
apply-groups-exclude - Exclude a configuration group at this level
binding-sid - Segment ID that opaquely represents an SR policy to upstream routers
color - Traffic flows to be steered by this policy
distinguisher - Unique value for a policy
endpoint - Destination of the source-routed path
head-end - Head end address for this static policy
maintenance-policy - Policy name
preference - Preference value of this static policy
segment-list + Enter the segment-list list instance
segment-routing-v6 + Enable the segment-routing-v6 context
type - Static policy type
[ex:/configure router "Base" segment-routing sr-policies static-policy "color-100-PE-1-PE-6"]
A:admin@PE-1# type ?
type <keyword>
<keyword> - (sr-mpls|srv6)
Default - sr-mpls
Static policy type
The type of SR policy is SRv6 and the endpoint must be an IPv6 address. In the following example, the static SRv6 policy is configured on head-end PE-1 itself; therefore, the head-end is set to local and the binding SID cannot be configured as an IPv6 address for a local SRv6 policy:
*[ex:/configure router "Base" segment-routing sr-policies static-policy "color-150-PE-1-PE-6" segment-routing-v6 binding-sid 1]
A:admin@PE-1# ip-address 2001:db8:aaaa:101:0:5000::
*[ex:/configure router "Base" segment-routing sr-policies static-policy "color-150-PE-1-PE-6" segment-routing-v6 binding-sid 1]
A:admin@PE-1# commit
MINOR: SRDB #12: configure router "Base" segment-routing sr-policies static-policy "color-150-PE-1-PE-6" segment-routing-v6 binding-sid 1 ip-address - Inconsistent Value error - head-end must be remote ip-address when ip-address is configured - configure router "Base" segment-routing sr-policies static-policy "color-150-PE-1-PE-6" head-end
The only way to configure this binding SID 2001:db8:aaaa:101:0:5000:: in the static SRv6 policy on the local head-end is by specifying a function value from the static range, in this example function-value 5, as follows:
# on PE-1:
configure {
router "Base" {
segment-routing {
sr-policies {
static-policy "color-150-PE-1-PE-6" {
---snip---
segment-routing-v6 {
binding-sid 1 {
locator {
locator-name "PE1-loc"
function end-b6-encaps-red
function-value 5 # SID 2001:db8:aaaa:101:0:5000::
}
---snip---
When no function value is specified, the binding SID is automatically allocated from the dynamic range using the SRv6 locator prefix "PE1-loc" associated with the Base router.
When a classic SRv6 locator is used, the only supported binding SID behavior is End.B6.Encaps.Red, which is End.B6.Encaps with reduced Segment Routing Header (SRH). The reduced SRH does not contain the first SID. This first SID is only placed in the destination address of the pushed IPv6 header. The End.B6.Encaps endpoint behavior is bound to an SRv6 policy with encapsulation and the binding SID is instantiated by SRv6, as follows:
[ex:/configure router "Base" segment-routing sr-policies static-policy "color-100-PE-1-PE-6" segment-routing-v6 binding-sid 1 locator]
A:admin@PE-1# function ?
function <keyword>
<keyword> - end-b6-encaps-red
'function' is: mandatory
Behavior of the local SRv6 regular binding SID
In a similar way, when micro-segment SRv6 locators are used, the keyword to configure reduced encapsulation for the micro-binding SID is end-b6-encaps-red-next-csid; see further.
The following static SRv6 policy is configured on head-end PE-1:
# on head-end PE-1:
configure exclusive
router "Base" {
segment-routing {
sr-policies {
admin-state enable # Enable SR policies context
static-policy "color-100-PE-1-PE-6" {
admin-state enable # Enable static policy
color 100
endpoint 2001:db8::2:6
head-end local
type srv6
segment-routing-v6 {
binding-sid 1 {
locator {
locator-name "PE1-loc"
function end-b6-encaps-red
}
}
}
segment-list 1 {
admin-state enable # Enable segment list 1
segment 1 {
srv6-sid 2001:db8:aaaa:102:0:3000:: # End.X int-PE-2-PE-3
}
segment 2 {
srv6-sid 2001:db8:aaaa:103:0:3000:: # End.X int-PE-3-PE-4
}
segment 3 {
srv6-sid 2001:db8:aaaa:104:0:3000:: # End.X int-PE-4-PE-5
}
}
}
- 2001:db8:aaaa:102:0:3000:: for the End.X of interface "int-PE-2-PE-3" on PE-2
- 2001:db8:aaaa:103:0:3000:: for the End.X of interface "int-PE-3-PE-4" on PE-3
- 2001:db8:aaaa:104:0:3000:: for the End.X of interface "int-PE-4-PE-5" on PE-4
The following list of adjacency SIDs on PE-2 shows that SID 2001:db8:aaaa:102:0:3000:: corresponds to the End.X SID of "int-PE-2-PE-3":
[/]
A:admin@PE-2# show router segment-routing-v6 base-routing-instance end-x
===============================================================================
Segment Routing v6 Base Routing Instance
===============================================================================
Locator
Type Function SID Status/InstId
SRH-mode Oper Func Interface Protection
-------------------------------------------------------------------------------
PE2-loc
End.X 2 2001:db8:aaaa:102:0:2000:: ok
PSP 2 int-PE-2-PE-1 Unprotected
End.X 3 2001:db8:aaaa:102:0:3000:: ok
PSP 3 int-PE-2-PE-3 Unprotected
-------------------------------------------------------------------------------
Auto-allocated End.X:
-------------------------------------------------------------------------------
End.X 17 2001:db8:aaaa:102:1:1000:: 0
PSP int-PE-2-PE-5 Unprotected
ISIS Level: L2 Mac Address: 02:1e:01:01:00:15 Nbr Sys Id: 1920.0000.2005
-------------------------------------------------------------------------------
===============================================================================
Legend: * - System allocated
The following shows the summary of the SR policies with only one static SRv6 policy configured and active on PE-1:
[/]
A:admin@PE-1# show router segment-routing sr-policies summary
===============================================================================
SR-Policies Summary
===============================================================================
Admin Status : Up
Ingress Stats : N/A
Egress Stats : N/A
Resv Label Blk Name:
TTM Preference : 14
SR-MPLS BSID Allocated: 0 SRV6 BSID Allocated : 1
Static Local Policies : 1 Active Static Lcl Pol : 1
Static Non Local Pol : 0
BGP Policies : 0 Active BGP Policies : 0
===============================================================================
The following command on PE-1 shows the static SR policy with color 100, head-end 0.0.0.0 for local, and endpoint 2001:db8::2:6. The binding SID 2001:db8:aaaa:101:1:2000:: is automatically allocated using the locator prefix "PE1-loc" associated with the Base router.
[/]
A:admin@PE-1# show router segment-routing sr-policies static
===============================================================================
SR-Policies Path
===============================================================================
-------------------------------------------------------------------------------
Type : srv6
Active : Yes Owner : static
Operational : Yes
Color : 100
Head : 0.0.0.0 Endpoint Addr : 2001:db8::2:6
RD : 0 Preference : 100
SRv6 BSID 1 : 2001:db8:aaaa:101:1:2000::
TunnelId : 917506 Age : 1084
Origin ASN : 0 Origin : 0.0.0.0
NumReEval : 0 LastReEvalReason: none
NumActPathChange: 0 Last Change : 06/13/2024 13:08:24
Maintenance Plcy:
Ret Path BFD SID:
Path Segment Lists:
Segment-List : 1 Weight : 1
Num Segments : 3 Last Change : 06/13/2024 12:57:02
1 SRv6 SID : 2001:db8:aaaa:102:0:3000:: State : resolved-up
2 SRv6 SID : 2001:db8:aaaa:103:0:3000:: State : N/A
3 SRv6 SID : 2001:db8:aaaa:104:0:3000:: State : N/A
===============================================================================
The SRv6 policy tunnel on PE-1 with tunnel ID 917506 and preference 14 has color 100 and the SRv6 SIDs are 2001:db8:aaaa:102:0:3000::, 2001:db8:aaaa:103:0:3000::, and 2001:db8:aaaa:104:0:3000::, as follows:
[/]
A:admin@PE-1# show router tunnel-table ipv6 protocol srv6-policy detail
===============================================================================
Tunnel Table (Router: Base)
===============================================================================
Destination : 2001:db8::2:6/128
NextHop : fpe_1.a
NextHop Weight : 1
Tunnel Flags : has-color
Age : 00h18m04s Color : 100
CBF Classes : (Not Specified)
Owner : srv6-pol Encap : SRV6
Tunnel ID : 917506 Preference : 14
Tunnel SRV6 SID : 2001:db8:aaaa:102:0: Tunnel Metric : 0
3000::
: 2001:db8:aaaa:103:0:3000::
: 2001:db8:aaaa:104:0:3000::
Tunnel MTU : - Max Label Stack : 3
-------------------------------------------------------------------------------
Number of tunnel-table entries : 1
Number of tunnel-table entries with LFA : 0
===============================================================================
The FP tunnel table on PE-1 shows the SRv6 policy, including the SID list, as follows:
[/]
A:admin@PE-1# show router fp-tunnel-table 1 ipv6 protocol srv6-policy
===============================================================================
IPv6 Tunnel Table Display
Legend:
label stack is ordered from bottom-most to top-most
B - FRR Backup
===============================================================================
Destination Protocol Tunnel-ID
Lbl/SID
NextHop Intf/Tunnel
Lbl/SID (backup)
NextHop (backup)
-------------------------------------------------------------------------------
2001:db8::2:6/128 SRV6-Policy -
2001:db8:aaaa:104:0:3000::
2001:db8:aaaa:103:0:3000::
2001:db8:aaaa:102:0:3000::
0.140.1.1 pxc-1.b:1
-------------------------------------------------------------------------------
Total Entries : 1
-------------------------------------------------------------------------------
===============================================================================
EVPN VPWS Epipe-1 on PE-1 and PE-6
On PE-1, EVPN VPWS "Epipe-1" uses SRv6 transport and is configured with resolution fallback-tunnel-to-route-table, as follows:
# on PE-1:
configure {
service {
epipe "Epipe-1" {
admin-state enable
service-id 1
customer "1"
segment-routing-v6 1 {
locator "PE1-loc" {
function {
end-dx2 {
}
}
}
}
bgp 1 {
route-target {
export "target:64500:1"
import "target:64500:1"
}
}
sap 1/1/c10/1:1 {
description "SAP to CE-11"
}
bgp-evpn {
evi 1
local-attachment-circuit "PE1" {
eth-tag 1
}
remote-attachment-circuit "PE6" {
eth-tag 6
}
segment-routing-v6 1 {
admin-state enable
source-address 2001:db8::2:1
resolution fallback-tunnel-to-route-table
srv6 {
instance 1
default-locator "PE1-loc"
}
route-next-hop {
ip-address 2001:db8::2:1
}
}
}
}
The following command shows the BGP EVPN SRv6 information for Epipe-1 on PE-1:
[/]
A:admin@PE-1# show service id "Epipe-1" bgp-evpn segment-routing-v6
===============================================================================
BGP EVPN Segment Routing v6 Information
===============================================================================
Admin State : Enabled Bgp Instance : 1
Srv6 Instance : 1
Default Locator : PE1-loc
Oper Group : (none)
Default Route Tag : 0x0
Source Address : 2001:db8::2:1
ECMP : 1
Force Vlan VC Fwd : Disabled
Next Hop Type : explicit
Next Hop Address : 2001:db8::2:1
Evi 3-byte Auto-RT : disabled
Route Resolution : fallback-tunnel-to-route-table
Force QinQ VC Fwd : none
MH Mode : network
Domain-Id : None
===============================================================================
The static SRv6 policy is identified by the color 100 (color:00:100), head-end 192.0.2.1 (system IPv4 address of PE-1), and endpoint 2001:db8::2:6 (system IPv6 address of PE-6). PE-6 exports color 100 in an export policy to match the color in the SRv6 policy on PE-1, as follows:
# on PE-6
configure exclusive
policy-options {
community "color-100" {
member "color:00:100" { }
}
community "vsi-1" {
member "target:64500:1" { }
}
policy-statement "epipe-1-export-c100" {
default-action {
action-type accept
community {
add ["vsi-1" "color-100"]
}
}
}
}
service {
epipe "Epipe-1" {
admin-state enable
service-id 1
customer "1"
segment-routing-v6 1 {
locator "PE6-loc" {
function {
end-dx2 {
}
}
}
}
bgp 1 {
vsi-export ["epipe-1-export-c100"]
route-target {
import "target:64500:1"
}
}
sap 1/1/c10/1:1 {
description "SAP to CE-16"
}
bgp-evpn {
evi 1
local-attachment-circuit "PE6" {
eth-tag 6
}
remote-attachment-circuit "PE1" {
eth-tag 1
}
segment-routing-v6 1 {
admin-state enable
source-address 2001:db8::2:6
srv6 {
instance 1
default-locator "PE6-loc"
}
route-next-hop {
ip-address 2001:db8::2:6
}
}
}
}
The following EVPN auto-discovery route received on PE-1 includes the community color:00:100 (color 100):
[/]
A:admin@PE-1# show router bgp routes evpn auto-disc rd 192.0.2.6:1 detail
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
===============================================================================
BGP EVPN Auto-Disc Routes
===============================================================================
Original Attributes
Network : n/a
Nexthop : 2001:db8::2:6
Path Id : None
From : 2001:db8::2:7
Res. Nexthop : fe80::24:1ff:fe01:1
Local Pref. : 100 Interface Name : int-PE-1-PE-6
Aggregator AS : None Aggregator : None
Atomic Aggr. : Not Atomic MED : None
AIGP Metric : None IGP Cost : 10
Connector : None
Community : target:64500:1 color:00:100
l2-attribute:MTU: 1514 F: 0 C: 0 P: 0 B: 0
Cluster : 192.0.2.7
Originator Id : 192.0.2.6 Peer Router Id : 192.0.2.7
Origin : IGP
Flags : Used Valid Best
Route Source : Internal
AS-Path : No As-Path
EVPN type : AUTO-DISC
ESI : ESI-0
Tag : 6
Route Dist. : 192.0.2.6:1
MPLS Label : 504288
Route Tag : 0
Neighbor-AS : n/a
DB Orig Val : N/A Final Orig Val : N/A
Source Class : 0 Dest Class : 0
Add Paths Send : Default
Last Modified : 00h00m47s
SRv6 TLV Type : SRv6 L2 Service TLV (6)
SRv6 SubTLV : SRv6 SID Information (1)
Sid : 2001:db8:aaaa:106::
Full Sid : 2001:db8:aaaa:106:7b1e::
Behavior : End.DX2 (21)
SRv6 SubSubTLV : SRv6 SID Structure (1)
Loc-Block-Len : 48 Loc-Node-Len : 16
Func-Len : 20 Arg-Len : 0
Tpose-Len : 20 Tpose-offset : 64
---snip---
On PE-1, the BGP next hop for EVPN routes to 2001:db8::2:6 is resolved using the SRv6 policy with tunnel ID 917506, as follows:
[/]
A:admin@PE-1# show router bgp next-hop evpn 2001:db8::2:6 detail
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
===============================================================================
BGP VPN Next Hop
===============================================================================
-------------------------------------------------------------------------------
VPN Next Hop : 2001:db8::2:6
Autobind : gre/rtm srv6-policy
Labels : --
User-labels : 1
Admin-tag-policy : --
Strict-tunnel-tagging : N
Color : 100
UPA Trigger Next Hop : --
Locator : 2001:db8:aaaa:106::/64
Created : 00h01m16s
Last-modified : 00h01m16s
-------------------------------------------------------------------------------
Resolving Prefix : 2001:db8::2:6/128
Preference : 14 Metric : 0
Reference Count : 1 Owner : SRV6-POLICY
Fib Programmed : Y
Resolved Next Hop: 0.140.1.1
Egress Label : n/a TunnelId : 917506
Locator State : Resolved
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Next Hops : 1
===============================================================================
Resolution fallback
While PE-6 exports color 100, the corresponding SRv6 policy tunnel on PE-1 is available, as follows:
[/]
A:admin@PE-1# show router tunnel-table ipv6 protocol srv6-policy
===============================================================================
IPv6 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref
Nexthop Color Metric
-------------------------------------------------------------------------------
2001:db8::2:6/128 srv6-pol SRV6 917506 14
fpe_1.a 100 0
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
[/]
A:admin@PE-1# show router route-table ipv6 protocol srv6-policy
===============================================================================
IPv6 Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
2001:db8:aaaa:101:1:2000::/128 Local SRV6-Pol* 00h17m06s 14
2001:db8::2:6 (tunneled:SRV6-Policy:917506) 1
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
* indicates that the corresponding row element may have been truncated.
When PE-6 does not export color 100, there is no match with the SRv6 policy on PE-1, and PE-1 uses the route table instead of the tunnel table. The export policy on PE-6 is removed in Epipe-1, as follows:
# on PE-6:
configure {
service {
epipe "Epipe-1" {
bgp 1 {
delete vsi-export "epipe-1-export-c100"
route-target {
export "target:64500:1"
import "target:64500:1"
}
}
On PE-1, the BGP next hop for the EVPN routes to 2001:db8::2:6 is not resolved to an SRv6 policy tunnel anymore; the route table is used instead, as follows:
[/]
A:admin@PE-1# show router bgp next-hop 2001:db8::2:6 evpn service-id 1
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
===============================================================================
BGP VPN Next Hop
===============================================================================
VPN Next Hop Owner
Autobind FibProg Reason
Labels (User-labels) FlexAlgo Metric
Admin-tag-policy (strict-tunnel-tagging) Last Mod.
-------------------------------------------------------------------------------
2001:db8::2:6 GRE/RTM
gre/rtm srv6-policy Y
-- (1) -- 10
-- (N) 00h00m24s
-------------------------------------------------------------------------------
Next Hops : 1
===============================================================================
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
When the SRv6 resolution is reconfigured to the tunnel table only instead of the fallback, the next hop cannot be resolved anymore, as follows:
# on PE-1:
configure exclusive
service {
epipe "Epipe-1" {
bgp-evpn {
segment-routing-v6 1 {
resolution tunnel-table
The BGP next hop cannot be resolved and the reason is a color mismatch, as follows:
*[/]
A:admin@PE-1# show router bgp next-hop 2001:db8::2:6 evpn service-id 1
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
===============================================================================
BGP VPN Next Hop
===============================================================================
VPN Next Hop Owner
Autobind FibProg Reason
Labels (User-labels) FlexAlgo Metric
Admin-tag-policy (strict-tunnel-tagging) Last Mod.
-------------------------------------------------------------------------------
2001:db8::2:6 --
srv6-policy N ColorMismatch
-- (1) --
-- (N) 00h00m05s
-------------------------------------------------------------------------------
Next Hops : 1
===============================================================================
When PE-6 exports color 100 again, the BGP next hop can be resolved using the SRv6 policy.
EVPN VPWS with BGP-signaled SRv6 policy on head-end PE-6
EVPN VPWS using SRv6 policy with color 200 from PE-6 to PE-1 shows the segments in the segment list of the BGP-signaled SRv6 policy on head-end PE-6. This SRv6 policy is configured on the controller, imported in the BGP RIB, and advertised using BGP. The SIDs in the segment list of the SRv6 policy are the micro-segment adjacency SID (uA SID) for the interface "int-PE-5-PE-4" on PE-5, the uA SID for the interface "int-PE-4-PE-3" on PE-4, and the uA SID for the interface "int-PE-3-PE-2" on PE-3. These micro-SIDs are configured with behavior and structure information. This information must only be configured when the SRv6 SID is a micro-SID. In fact, the allowed behaviors which describe the SRv6 SID are only micro-segment behaviors. By configuring this information, the user indirectly provides the head-end with necessary information to apply a compression algorithm to the received micro-SIDs. The algorithm is designed to reduce the Segment Routing Header (SRH) size. Details on what behavior and structure values to configure based on the SRv6 SID, and on how the algorithm processes these are described in the 7750 SR and 7950 XRS Segment Routing and PCE User Guide.
Static SRv6 policy on the controller
The following SRv6 policy with micro-segment SIDs is configured on the controller:
# on controller:
configure {
router "Base" {
segment-routing {
sr-policies {
admin-state enable
static-policy "color-200-PE-6-PE-1-u" {
admin-state enable
color 200
endpoint 2001:db8::2:1 # IPv6 system address of PE-1
head-end 192.0.2.6 # IPv4 system address of PE-6
distinguisher 200006001 # unique value
type srv6
segment-routing-v6 {
binding-sid 1 {
ip-address 2001:bbbb:6:4005:: # available address
}
}
segment-list 1 {
admin-state enable
segment 1 {
srv6-sid 2001:bbbb:5:4000:: # uA for "int-PE-5-PE-4"
behavior-and-structure {
behavior end-x-next-csid
block-length 32
node-length 16
function-length 16
}
}
segment 2 {
srv6-sid 2001:bbbb:4:4000:: # uA for "int-PE-4-PE-3"
behavior-and-structure {
behavior end-x-next-csid
block-length 32
node-length 16
function-length 16
}
}
segment 3 {
srv6-sid 2001:bbbb:3:4000:: # uA for "int-PE-3-PE-2"
behavior-and-structure {
behavior end-x-next-csid
block-length 32
node-length 16
function-length 16
}
}
}
}
The distinguisher must be unique and is used as a differentiator. If the head-end PE receives two policies with the same color and endpoint, the path with the lowest distinguisher value is chosen.
The head-end is the IPv4 system address of PE-6; the endpoint is the IPv6 system address of PE-1.
The binding SID is an available IPv6 address from the static function entries on head-end PE-6.
At the configuration point, the micro-binding SID must be configured in the <block><uN><uB6> format, because the head-end only accepts this format. The head-end then programs two route entries for each local SID: <block><uN><uB6>::/block-length+32 and <block><uB6>::/block-length+16, both pointing to the SRv6 policy.
The controller advertises this SRv6 policy using BGP. The head-end PE-6 must have the SR policies context enabled, as follows:
# on head-end PE-6:
configure {
router "Base" {
segment-routing {
sr-policies {
admin-state enable # enable context for (BGP-signaled) SRv6 policies
}
EVPN VPWS Epipe-2 on PE-1 and PE-6
PE-1 exports color 200 (color:00:200) in Epipe-2, as follows:
# on PE-1:
configure {
policy-options {
community "color-200" {
member "color:00:200" { }
}
community "vsi-2" {
member "target:64500:2" { }
}
policy-statement "epipe-2-export-c200" {
default-action {
action-type accept
community {
add ["vsi-2" "color-200"]
}
}
}
}
service {
epipe "Epipe-2" {
admin-state enable
service-id 2
customer "1"
segment-routing-v6 1 {
micro-segment-locator "PE1-mloc" {
function {
udx2 {
value 5
}
}
}
}
bgp 1 {
vsi-export ["epipe-2-export-c200"]
route-target {
import "target:64500:2"
}
}
sap 1/1/c10/1:2 {
description "SAP to CE-21"
}
bgp-evpn {
evi 2
local-attachment-circuit "PE1" {
eth-tag 1
}
remote-attachment-circuit "PE6" {
eth-tag 6
}
segment-routing-v6 1 {
admin-state enable
source-address 2001:db8::2:1
srv6 {
instance 1
default-locator "PE1-mloc"
}
route-next-hop {
ip-address 2001:db8::2:1
}
}
}
}
On PE-6, Epipe-2 is configured as follows:
# on head-end PE-6:
configure {
service {
epipe "Epipe-2" {
admin-state enable
service-id 2
customer "1"
segment-routing-v6 1 {
micro-segment-locator "PE6-mloc" {
function {
udx2 {
value 5 # static value
}
}
}
}
bgp 1 {
route-target {
export "target:64500:2"
import "target:64500:2"
}
}
sap 1/1/c10/1:2 {
description "SAP to CE-26"
}
bgp-evpn {
evi 2
local-attachment-circuit "PE6" {
eth-tag 6
}
remote-attachment-circuit "PE1" {
eth-tag 1
}
segment-routing-v6 1 {
admin-state enable
source-address 2001:db8::2:6
resolution fallback-tunnel-to-route-table
srv6 {
instance 1
default-locator "PE6-mloc"
}
route-next-hop {
ip-address 2001:db8::2:6
}
}
}
}
Verification
Head-end PE-6 receives one BGP-signaled SRv6 policy:
[/]
A:admin@PE-6# show router bgp summary all
===============================================================================
BGP Summary
===============================================================================
Legend : D - Dynamic Neighbor
===============================================================================
Neighbor
Description
ServiceId AS PktRcvd InQ Up/Down State|Rcv/Act/Sent (Addr Family)
PktSent OutQ
-------------------------------------------------------------------------------
2001:db8::2:7
Def. Inst 64500 22 0 00h07m10s 2/2/2 (Evpn)
22 0 1/1/0 (SrPolicyIPv6)
-------------------------------------------------------------------------------
The following command shows the BGP-signaled SRv6 policy on head-end PE-6. The binding SID value is 2001:bbbb:4005:: and is derived from the binding SID 2001:bbbb:6:4005:: that was configured in the static SRv6 policy on the controller.
[/]
A:admin@PE-6# show router segment-routing sr-policies bgp
===============================================================================
SR-Policies Path
===============================================================================
-------------------------------------------------------------------------------
Type : srv6
Active : Yes Owner : bgp
Operational : Yes
Color : 200
Head : 0.0.0.0 Endpoint Addr : 2001:db8::2:1
RD : 200006001 Preference : 100
SRv6 BSID 1 : 2001:bbbb:4005::
TunnelId : 917506 Age : 99
Origin ASN : 64500 Origin : 2001:db8::2:8
NumReEval : 0 LastReEvalReason: none
NumActPathChange: 0 Last Change : 06/13/2024 13:37:00
Maintenance Plcy:
Ret Path BFD SID:
Path Segment Lists:
Segment-List : 1 Weight : 1
Num Segments : 3 Last Change : 06/13/2024 12:58:00
1 SRv6 SID : 2001:bbbb:5:4000:: State : resolved-up
Behavior & Structure
Behavior : 52 Block Length : 32
Node Length: 16 Function Length : 16
2 SRv6 SID : 2001:bbbb:4:4000:: State : N/A
Behavior & Structure
Behavior : 52 Block Length : 32
Node Length: 16 Function Length : 16
3 SRv6 SID : 2001:bbbb:3:4000:: State : N/A
Behavior & Structure
Behavior : 52 Block Length : 32
Node Length: 16 Function Length : 16
===============================================================================
On PE-6, the SID 2001:bbbb:6:4005:: has the value of the binding SID that was configured in the static SRv6 policy on the controller, as follows:
[/]
A:admin@PE-6# show router segment-routing-v6 micro-segment-local-sid
===============================================================================
Micro Segment Routing v6 Local SIDs
===============================================================================
SID Type Function
Micro Segment Locator
Context
-------------------------------------------------------------------------------
2001:bbbb:6:: uN 6
PE6-mloc
None
2001:bbbb:6:4000:: uA 16384
PE6-mloc
Base
2001:bbbb:6:4004:: uDX2 16388
PE6-mloc
SvcId: 2 Name: Epipe-2
2001:bbbb:6:4005:: End.b6.encaps* 16389
PE6-mloc
None
2001:bbbb:6:4010:: uA 16400
PE6-mloc
None
-------------------------------------------------------------------------------
SIDs : 5
-------------------------------------------------------------------------------
===============================================================================
* indicates that the corresponding row element may have been truncated.
The following command shows the details of the SRv6 policy tunnel on head-end PE-6:
[/]
A:admin@PE-6# show router tunnel-table ipv6 protocol srv6-policy detail
===============================================================================
Tunnel Table (Router: Base)
===============================================================================
Destination : 2001:db8::2:1/128
NextHop : fpe_1.a
NextHop Weight : 1
Tunnel Flags : has-color
Age : 00h01m40s Color : 200
CBF Classes : (Not Specified)
Owner : srv6-pol Encap : SRV6
Tunnel ID : 917506 Preference : 14
Tunnel SRV6 SID : 2001:bbbb:5:4000:4:4 Tunnel Metric : 0
000:3:4000
Tunnel MTU : - Max Label Stack : 3
-------------------------------------------------------------------------------
Number of tunnel-table entries : 1
Number of tunnel-table entries with LFA : 0
===============================================================================
The tunnel SRv6 SID in the preceding output shows that the micro-segment SIDs were compressed. The three micro-SIDs (2001:bbbb:5:4000::, 2001:bbbb:4:4000::, and 2001:bbbb:3:4000::) were compressed by the head-end to form a single container: 2001:bbbb:5:4000:4:4000:3:4000. This compression was, in part, possible because the three micro-SIDs belong to the same SID block.
The SRv6 policy tunnel to 2001:db8::2:1 with color 200 has tunnel ID 917506 on head-end PE-6. The following IPv6 routes use the SRv6 policy tunnel with ID 917506:
[/]
A:admin@PE-6# show router route-table ipv6 protocol srv6-policy
===============================================================================
IPv6 Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
2001:bbbb:6:4005::/64 Local SRV6-Pol* 00h02m22s 14
2001:db8::2:1 (tunneled:SRV6-Policy:917506) 1
2001:bbbb:4005::/48 Local SRV6-Pol* 00h02m22s 14
2001:db8::2:1 (tunneled:SRV6-Policy:917506) 1
-------------------------------------------------------------------------------
No. of Routes: 2
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
* indicates that the corresponding row element may have been truncated.
The following command shows that the BGP next hop 2001:db8::2:1 is resolved to an SRv6 policy with color 200:
[/]
A:admin@PE-6# show router bgp next-hop evpn 2001:db8::2:1 detail
===============================================================================
BGP Router ID:192.0.2.6 AS:64500 Local AS:64500
===============================================================================
===============================================================================
BGP VPN Next Hop
===============================================================================
-------------------------------------------------------------------------------
---snip--- ## VPN next hop for Epipe-1 (no SRv6 policy; only GRE/RTM)
-------------------------------------------------------------------------------
VPN Next Hop : 2001:db8::2:1
Autobind : gre/rtm srv6-policy
Labels : --
User-labels : 1
Admin-tag-policy : --
Strict-tunnel-tagging : N
Color : 200
UPA Trigger Next Hop : --
Locator : 2001:bbbb:1::/48
Created : 00h03m50s
Last-modified : 00h03m17s
-------------------------------------------------------------------------------
Resolving Prefix : 2001:db8::2:1/128
Preference : 14 Metric : 0
Reference Count : 1 Owner : SRV6-POLICY
Fib Programmed : Y
Resolved Next Hop: 0.140.1.1
Egress Label : n/a TunnelId : 917506
Locator State : Resolved
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Next Hops : 2
===============================================================================
The following command on PE-6 shows the SRv6 destinations in Epipe-2, where 2001:bbbb:1:4004:: is the uDX2 SID on endpoint PE-1:
[/]
A:admin@PE-6# show service id 2 segment-routing-v6 destinations
===============================================================================
TEP, SID (Instance 1)
===============================================================================
TEP Address Segment Id
-------------------------------------------------------------------------------
2001:db8::2:1 2001:bbbb:1:4004::
-------------------------------------------------------------------------------
Number of TEP, SID: 1
-------------------------------------------------------------------------------
===============================================================================
===============================================================================
Segment Routing v6 Ethernet Segment Dest (Instance 1)
===============================================================================
Eth SegId Num. Macs Last Update
-------------------------------------------------------------------------------
No Matching Entries
===============================================================================
EVPN VPLS
EVPN VPLS with static SRv6 policy on head-end PE-1
EVPN VPLS using SRv6 policy with color 300 from PE-1 to PE-6 shows the uA SIDs in the segment list of a static SRv6 with color 300 on head-end PE-1.
Static SRv6 policy
On head-end PE-1, a static SRv6 policy is configured with color 300 and endpoint 2001:db8::2:6, as follows:
# on head-end PE-1:
configure {
router "Base" {
segment-routing {
sr-policies {
static-policy "color-300-PE-1-PE-6-u" {
admin-state enable
color 300
endpoint 2001:db8::2:6
head-end local
type srv6
segment-routing-v6 {
binding-sid 1 {
micro-segment-locator {
locator-name "PE1-mloc"
function end-b6-encaps-red-next-csid
}
}
}
segment-list 1 {
admin-state enable
segment 1 {
srv6-sid 2001:bbbb:2:4001:: # int-PE-2-PE-3
behavior-and-structure {
behavior end-x-next-csid
block-length 32
node-length 16
function-length 16
}
}
segment 2 {
srv6-sid 2001:bbbb:3:4001:: # int-PE-3-PE-4
behavior-and-structure {
behavior end-x-next-csid
block-length 32
node-length 16
function-length 16
}
}
segment 3 {
srv6-sid 2001:bbbb:4:4001:: # int-PE-4-PE-5
behavior-and-structure {
behavior end-x-next-csid
block-length 32
node-length 16
function-length 16
}
}
}
}
EVPN VPLS
On PE-1, EVPN VPLS "VPLS-3" is configured as follows:
# on PE-1:
configure {
service {
vpls "VPLS-3" {
admin-state enable
service-id 3
customer "1"
segment-routing-v6 1 {
micro-segment-locator "PE1-mloc" {
function {
udt2m {
}
udt2u {
}
}
}
}
bgp 1 {
route-target {
export "target:64500:3"
import "target:64500:3"
}
}
bgp-evpn {
evi 3
segment-routing-v6 1 {
admin-state enable
source-address 2001:db8::2:1
resolution fallback-tunnel-to-route-table
srv6 {
instance 1
default-locator "PE1-mloc"
}
route-next-hop {
ip-address 2001:db8::2:1
}
}
}
sap 1/1/c10/1:3 {
description "SAP to CE-31"
}
}
PE-6 exports color 300 which matches the color in the static SRv6 policy "color-300-PE-1-PE-6-u" on PE-1, as follows:
# on PE-6:
configure exclusive
policy-options {
community "color-300" {
member "color:00:300" { }
}
community "vsi-3" {
member "target:64500:3" { }
}
policy-statement "vpls-3-export-c300" {
default-action {
action-type accept
community {
add ["vsi-3" "color-300"]
}
}
}
}
service {
vpls "VPLS-3" {
admin-state enable
service-id 3
customer "1"
segment-routing-v6 1 {
micro-segment-locator "PE6-mloc" {
function {
udt2m {
}
udt2u {
}
}
}
}
bgp 1 {
vsi-export ["vpls-3-export-c300"]
route-target {
import "target:64500:3"
}
}
bgp-evpn {
evi 3
segment-routing-v6 1 {
admin-state enable
source-address 2001:db8::2:6
srv6 {
instance 1
default-locator "PE6-mloc"
}
route-next-hop {
ip-address 2001:db8::2:6
}
}
}
sap 1/1/c10/1:3 {
description "SAP to CE-36"
}
}
Verification
PE-1 receives the following IMET route from PE-6. The color:00:300 community matches the color 300 in the static SRv6 policy.
[/]
A:admin@PE-1# show router bgp routes evpn incl-mcast rd 192.0.2.6:3 detail
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
===============================================================================
BGP EVPN Inclusive-Mcast Routes
===============================================================================
Original Attributes
Network : n/a
Nexthop : 2001:db8::2:6
Path Id : None
From : 2001:db8::2:7
Res. Nexthop : fe80::24:1ff:fe01:1
Local Pref. : 100 Interface Name : int-PE-1-PE-6
Aggregator AS : None Aggregator : None
Atomic Aggr. : Not Atomic MED : None
AIGP Metric : None IGP Cost : 10
Connector : None
Community : target:64500:3 color:00:300
Cluster : 192.0.2.7
Originator Id : 192.0.2.6 Peer Router Id : 192.0.2.7
Origin : IGP
Flags : Used Valid Best
Route Source : Internal
AS-Path : No As-Path
EVPN type : INCL-MCAST
Tag : 0
Originator IP : 2001:db8::2:6
Route Dist. : 192.0.2.6:3
Route Tag : 0
Neighbor-AS : n/a
DB Orig Val : N/A Final Orig Val : N/A
Source Class : 0 Dest Class : 0
Add Paths Send : Default
Last Modified : 00h00m27s
SRv6 TLV Type : SRv6 L2 Service TLV (6)
SRv6 SubTLV : SRv6 SID Information (1)
Sid : 2001:bbbb:6::
Full Sid : 2001:bbbb:6:4012::
Behavior : End.uDT2M (68)
SRv6 SubSubTLV : SRv6 SID Structure (1)
Loc-Block-Len : 32 Loc-Node-Len : 16
Func-Len : 16 Arg-Len : 16
Tpose-Len : 16 Tpose-offset : 48
-------------------------------------------------------------------------------
PMSI Tunnel Attributes :
Tunnel-type : Ingress Replication
Flags : Type: RNVE(0) BM: 0 U: 0 Leaf: not required
MPLS Label : 4198912
Tunnel-Endpoint: 2001:db8::2:6
-------------------------------------------------------------------------------
---snip---
When traffic has been sent between CE-31 and CE-36, the forwarding database (FDB) on PE-1 is as follows:
[/]
A:admin@PE-1# show service id "VPLS-3" fdb detail
===============================================================================
Forwarding Database, Service 3
===============================================================================
ServId MAC Source-Identifier Type Last Change
Transport:Tnl-Id Age
-------------------------------------------------------------------------------
3 00:00:5e:00:53:31 sap:1/1/c10/1:3 L/0 06/13/24 13:42:27
3 00:00:5e:00:53:36 srv6-1: Evpn 06/13/24 13:42:34
2001:db8::2:6
2001:bbbb:6:4011::
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================
MAC address 00:00:5e:00:53:36 from CE-36 can be reached through an SRv6 policy tunnel. The following IPv6 tunnel table shows that the SRv6 policy tunnel to 2001:db8::2:6/128 with color 300 has ID 917508:
[/]
A:admin@PE-1# show router tunnel-table ipv6 protocol srv6-policy
===============================================================================
IPv6 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref
Nexthop Color Metric
-------------------------------------------------------------------------------
2001:db8::2:6/128 srv6-pol SRV6 917506 14
fpe_1.a 100 0
2001:db8::2:6/128 srv6-pol SRV6 917508 14
fpe_1.a 300 0
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
The following command shows the micro-segment local SIDs. Besides the node SID uN and the adjacency SID uA, SIDs for different services are listed. SID 2001:bbbb:1:4004:: with uDX2 function applies to EVPN VPWS Epipe-2; SID 2001:bbbb:1:4011:: with uDT2U function and SID 2001:bbbb:1:4012:: with uDT2M function apply to EVPN VPLS-3. The End.B6.Encaps.Red SID 2001:bbbb:1:43e8:: is the binding SID for the SRv6 policy "color-300-PE-1-PE-6-u" which is used in VPLS-3.
[/]
A:admin@PE-1# show router segment-routing-v6 micro-segment-local-sid
===============================================================================
Micro Segment Routing v6 Local SIDs
===============================================================================
SID Type Function
Micro Segment Locator
Context
-------------------------------------------------------------------------------
2001:bbbb:1:: uN 1
PE1-mloc
None
2001:bbbb:1:4000:: uA 16384
PE1-mloc
Base
2001:bbbb:1:4004:: uDX2 16388
PE1-mloc
SvcId: 2 Name: Epipe-2
2001:bbbb:1:4010:: uA 16400
PE1-mloc
None
2001:bbbb:1:4011:: uDT2U 16401
PE1-mloc
SvcId: 3 Name: VPLS-3
2001:bbbb:1:4012:: uDT2M 16402
PE1-mloc
SvcId: 3 Name: VPLS-3
2001:bbbb:1:43e8:: End.b6.encaps* 17384
PE1-mloc
None
-------------------------------------------------------------------------------
SIDs : 7
-------------------------------------------------------------------------------
===============================================================================
* indicates that the corresponding row element may have been truncated.
The IPv6 route table shows two routes that use the SRv6 policy tunnel with tunnel ID 917508:
[/]
A:admin@PE-1# show router route-table ipv6 protocol srv6-policy
===============================================================================
IPv6 Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
2001:db8:aaaa:101:1:2000::/128 Local SRV6-Pol* 00h37m48s 14
2001:db8::2:6 (tunneled:SRV6-Policy:917506) 1
2001:bbbb:1:43e8::/64 Local SRV6-Pol* 00h03m45s 14
2001:db8::2:6 (tunneled:SRV6-Policy:917508) 1
2001:bbbb:43e8::/48 Local SRV6-Pol* 00h03m45s 14
2001:db8::2:6 (tunneled:SRV6-Policy:917508) 1
-------------------------------------------------------------------------------
No. of Routes: 3
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
* indicates that the corresponding row element may have been truncated.
EVPN VPLS with BGP-signaled SRv6 policy on head-end PE-6
EVPN VPLS using SRv6 policy with color 400 from PE-6 to PE-1 shows the End.X SIDs in the segment list of a BGP-signaled SRv6 policy on head-end PE-6. This SRv6 policy is configured on the controller, imported in the BGP RIB, and advertised as an SRv6 policy route in BGP.
BGP-signaled SRv6 policy
The following SRv6 policy with head-end 192.0.2.6 is configured on the controller and is advertised as an SRv6 policy:
# on controller:
configure exclusive
router "Base" {
segment-routing {
sr-policies {
admin-state enable
static-policy "color-400-PE-6-PE-1" {
admin-state enable
color 400
endpoint 2001:db8::2:1
head-end 192.0.2.6
distinguisher 400006001
type srv6
segment-routing-v6 {
binding-sid 1 {
ip-address 2001:db8:aaaa:106:0:9000::
}
}
segment-list 1 {
admin-state enable
segment 1 {
srv6-sid 2001:db8:aaaa:105:0:2000:: # "int-PE-5-PE-4"
}
segment 2 {
srv6-sid 2001:db8:aaaa:104:0:2000:: # "int-PE-4-PE-3"
}
segment 3 {
srv6-sid 2001:db8:aaaa:103:0:2000:: # "int-PE-3-PE-2"
}
}
}
EVPN VPLS on PE-1 and PE-6
The EVPN VPLS "VPLS-4" is configured as follows. PE-1 exports color 400 which matches the color in the policy "color-400-PE-6-PE-1" on head-end PE-6:
# on PE-1:
configure {
policy-options {
community "color-400" {
member "color:00:400" { }
}
community "vsi-4" {
member "target:64500:4" { }
}
policy-statement "vpls-4-export-c400" {
default-action {
action-type accept
community {
add ["vsi-4" "color-400"]
}
}
}
}
service {
vpls "VPLS-4" {
admin-state enable
service-id 4
customer "1"
segment-routing-v6 1 {
locator "PE1-loc" {
function {
end-dt2u {
}
end-dt2m {
}
}
}
}
bgp 1 {
vsi-export ["vpls-4-export-c400"]
route-target {
import "target:64500:4"
}
}
bgp-evpn {
evi 4
segment-routing-v6 1 {
admin-state enable
source-address 2001:db8::2:1
srv6 {
instance 1
default-locator "PE1-loc"
}
route-next-hop {
ip-address 2001:db8::2:1
}
}
}
sap 1/1/c10/1:4 {
description "SAP to CE-41"
}
}
On head-end PE-6, only the route target is exported, not the color. The EVPN VPLS "VPLS-4" is configured with SRv6 resolution fallback from the tunnel table to the route table, as follows:
# on PE-6:
configure {
service {
vpls "VPLS-4" {
admin-state enable
service-id 4
customer "1"
segment-routing-v6 1 {
locator "PE6-loc" {
function {
end-dt2u {
}
end-dt2m {
}
}
}
}
bgp 1 {
route-target {
export "target:64500:4"
import "target:64500:4"
}
}
bgp-evpn {
evi 4
segment-routing-v6 1 {
admin-state enable
source-address 2001:db8::2:6
resolution fallback-tunnel-to-route-table
srv6 {
instance 1
default-locator "PE6-loc"
}
route-next-hop {
ip-address 2001:db8::2:6
}
}
}
sap 1/1/c10/1:4 {
description "SAP to CE-46"
}
}
Verification
On head-end PE-6, the BGP-signaled SRv6 with color 400 is as follows:
[/]
A:admin@PE-6# show router segment-routing sr-policies bgp color 400
===============================================================================
SR-Policies Path
===============================================================================
-------------------------------------------------------------------------------
Type : srv6
Active : Yes Owner : bgp
Operational : Yes
Color : 400
Head : 0.0.0.0 Endpoint Addr : 2001:db8::2:1
RD : 400006001 Preference : 100
SRv6 BSID 1 : 2001:db8:aaaa:106:0:9000::
TunnelId : 917507 Age : 42
Origin ASN : 64500 Origin : 2001:db8::2:8
NumReEval : 0 LastReEvalReason: none
NumActPathChange: 0 Last Change : 06/13/2024 13:47:57
Maintenance Plcy:
Ret Path BFD SID:
Path Segment Lists:
Segment-List : 1 Weight : 1
Num Segments : 3 Last Change : 06/13/2024 12:58:00
1 SRv6 SID : 2001:db8:aaaa:105:0:2000:: State : resolved-up
2 SRv6 SID : 2001:db8:aaaa:104:0:2000:: State : N/A
3 SRv6 SID : 2001:db8:aaaa:103:0:2000:: State : N/A
===============================================================================
The second SRv6 policy tunnel in the IPv6 tunnel table has color 400:
[/]
A:admin@PE-6# show router tunnel-table ipv6 protocol srv6-policy
===============================================================================
IPv6 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref
Nexthop Color Metric
-------------------------------------------------------------------------------
2001:db8::2:1/128 srv6-pol SRV6 917506 14
fpe_1.a 200 0
2001:db8::2:1/128 srv6-pol SRV6 917507 14
fpe_1.a 400 0
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
The BGP next hop for EVPN routes to endpoint 2001:db8::2:1 is resolved using the SRv6 policy tunnel with color 400:
[/]
A:admin@PE-6# show router bgp next-hop evpn 2001:db8::2:1 detail
===============================================================================
BGP Router ID:192.0.2.6 AS:64500 Local AS:64500
===============================================================================
===============================================================================
BGP VPN Next Hop
===============================================================================
-------------------------------------------------------------------------------
---snip---
-------------------------------------------------------------------------------
VPN Next Hop : 2001:db8::2:1
Autobind : gre/rtm srv6-policy
Labels : --
User-labels : 1
Admin-tag-policy : --
Strict-tunnel-tagging : N
Color : 400
UPA Trigger Next Hop : --
Locator : 2001:db8:aaaa:101::/64
Created : 00h03m48s
Last-modified : 00h02m54s
-------------------------------------------------------------------------------
Resolving Prefix : 2001:db8::2:1/128
Preference : 14 Metric : 0
Reference Count : 2 Owner : SRV6-POLICY
Fib Programmed : Y
Resolved Next Hop: 0.140.1.1
Egress Label : n/a TunnelId : 917507
Locator State : Resolved
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Next Hops : 4
===============================================================================
EVPN IFL
EVPN IFL using SRv6 policy with color 500 from PE-1 to PE-6 shows the micro-segment adjacency SID (uA) for the interface "int-PE-2-PE-5" on PE-2, which is the only segment in the segment list of a static SRv6 policy that is configured on head-end PE-1.
Static SRv6 policy on PE-1
On head-end PE-1, the SRv6 policy with color 500 is configured as follows:
# on PE-1:
configure {
router "Base" {
segment-routing {
sr-policies {
admin-state enable
static-policy "color-500-PE-1-PE-6-u" {
admin-state enable
color 500
endpoint 2001:db8::2:6
head-end local
type srv6
segment-routing-v6 {
binding-sid 1 {
micro-segment-locator {
locator-name "PE1-mloc"
function end-b6-encaps-red-next-csid
}
}
}
segment-list 1 {
admin-state enable
segment 1 {
srv6-sid 2001:bbbb:2:4002:: # uA "int-PE-2-PE-5"
behavior-and-structure {
behavior end-x-next-csid
block-length 32
node-length 16
function-length 16
}
}
}
}
VPRN-5 with EVPN IFL
VPRN-5 is configured with BGP EVPN, as follows:
# on PE-1:
configure {
service {
vprn "VPRN-5" {
admin-state enable
service-id 5
customer "1"
autonomous-system 64496
segment-routing-v6 1 {
micro-segment-locator "PE1-mloc" {
function {
udt46 {
}
}
}
}
bgp-evpn {
segment-routing-v6 1 {
admin-state enable
route-distinguisher "192.0.2.1:5"
source-address 2001:db8::2:1
resolution fallback-tunnel-to-route-table
vrf-target {
community "target:64500:5"
}
srv6 {
instance 1
default-locator "PE1-mloc"
}
}
}
interface "lo1" {
loopback true
ipv4 {
primary {
address 172.16.105.1
prefix-length 24
}
}
ipv6 {
address 2001:db8::105:1 {
prefix-length 120
}
}
}
Endpoint PE-6 exports color 500. The configuration on PE-6 is as follows:
# on PE-6:
configure {
policy-options {
community "color-500" {
member "color:00:500" { }
}
community "vrf-5" {
member "target:64500:5" { }
}
policy-statement "vrf-5-export-c500" {
default-action {
action-type accept
community {
add ["vrf-5" "color-500"]
}
}
}
policy-statement "vrf-5-import" {
entry 10 {
from {
community {
name "vrf-5"
}
}
action {
action-type accept
}
}
}
}
service {
vprn "VPRN-5" {
admin-state enable
service-id 5
customer "1"
autonomous-system 64497
segment-routing-v6 1 {
micro-segment-locator "PE6-mloc" {
function {
udt46 {
}
}
}
}
bgp-evpn {
segment-routing-v6 1 {
admin-state enable
route-distinguisher "192.0.2.1:5"
source-address 2001:db8::2:6
vrf-import {
policy ["vrf-5-import"]
}
vrf-export {
policy ["vrf-5-export-c500"]
}
srv6 {
instance 1
default-locator "PE6-mloc"
}
}
}
interface "lo1" {
loopback true
ipv4 {
primary {
address 172.16.155.6
prefix-length 24
}
}
ipv6 {
address 2001:db8::155:6 {
prefix-length 120
}
}
}
}
The BGP configuration in the Base router is modified to ensure that IPv6 next hops are advertised for EVPN routes, as described in the BGP configuration section.
Verification
PE-1 receives the EVPN IP prefix 172.16.155.0/24 and the EVPN IPv6 prefix 2001:db8::155:0/120 from PE-6, as follows:
[/]
A:admin@PE-1# show router bgp routes evpn ip-prefix
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
===============================================================================
BGP EVPN IP-Prefix Routes
===============================================================================
Flag Route Dist. Prefix
Tag Gw Address
NextHop
Label
ESI
-------------------------------------------------------------------------------
u*>i 192.0.2.1:5 172.16.155.0/24
0 00:00:00:00:00:00
2001:db8::2:6
16403
ESI-0
-------------------------------------------------------------------------------
Routes : 1
===============================================================================
[/]
A:admin@PE-1# show router bgp routes evpn ipv6-prefix
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
===============================================================================
BGP EVPN IPv6-Prefix Routes
===============================================================================
Flag Route Dist. Prefix
Tag Gw Address
NextHop
Label
ESI
-------------------------------------------------------------------------------
u*>i 192.0.2.1:5 2001:db8::155:0/120
0 00:00:00:00:00:00
2001:db8::2:6
16403
ESI-0
-------------------------------------------------------------------------------
Routes : 1
===============================================================================
In this example, multiple services use different SRv6 policies and the list of micro-segment local SIDs for VPRN-5 shows multiple SRv6 SIDs for the services. On head-end PE-1, the list of micro-segment local SIDs shows the uDT46 function and the End.B6.Encaps.Red function for two different SRv6 policy tunnels: SID 2001:bbbb:1:43e9:: corresponds to the SRv6 policy tunnel for color 500; SID 2001:bbbb:1:43e8:: corresponds to the SRv6 policy tunnel for color 300 and is not used for VPRN-5.
[/]
A:admin@PE-1# show router segment-routing-v6 micro-segment-local-sid context "VPRN-5"
===============================================================================
Micro Segment Routing v6 Local SIDs
===============================================================================
SID Type Function
Micro Segment Locator
Context
-------------------------------------------------------------------------------
2001:bbbb:1:4013:: uDT46 16403
PE1-mloc
SvcId: 5 Name: VPRN-5
2001:bbbb:1:43e8:: End.b6.encaps* 17384
PE1-mloc
None
2001:bbbb:1:43e9:: End.b6.encaps* 17385
PE1-mloc
None
-------------------------------------------------------------------------------
SIDs : 3
-------------------------------------------------------------------------------
===============================================================================
* indicates that the corresponding row element may have been truncated.
If services use different SRv6 policies, the next hop command for the service shows multiple SRv6 policies for the services, but the traffic flow uses the right SRv6 policy with the corresponding color.
[/]
A:admin@PE-1# show router bgp next-hop 2001:db8::2:6 evpn detail
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
===============================================================================
BGP VPN Next Hop
===============================================================================
-------------------------------------------------------------------------------
---snip--- # GRE tunnels for Epipe-2 and VPLS-4 are not shown
-------------------------------------------------------------------------------
VPN Next Hop : 2001:db8::2:6
Autobind : gre/rtm srv6-policy
Labels : --
User-labels : 1
Admin-tag-policy : --
Strict-tunnel-tagging : N
Color : 100
UPA Trigger Next Hop : --
Locator : 2001:db8:aaaa:106::/64
Created : 00h02m45s
Last-modified : 00h02m45s
-------------------------------------------------------------------------------
Resolving Prefix : 2001:db8::2:6/128
Preference : 14 Metric : 0
Reference Count : 1 Owner : SRV6-POLICY
Fib Programmed : Y
Resolved Next Hop: 0.140.1.1
Egress Label : n/a TunnelId : 917506
Locator State : Resolved
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
VPN Next Hop : 2001:db8::2:6
Autobind : gre/rtm srv6-policy
Labels : --
User-labels : 1
Admin-tag-policy : --
Strict-tunnel-tagging : N
Color : 300
UPA Trigger Next Hop : --
Locator : 2001:bbbb:6::/48
Created : 00h02m45s
Last-modified : 00h02m45s
-------------------------------------------------------------------------------
Resolving Prefix : 2001:db8::2:6/128
Preference : 14 Metric : 0
Reference Count : 1 Owner : SRV6-POLICY
Fib Programmed : Y
Resolved Next Hop: 0.140.1.1
Egress Label : n/a TunnelId : 917508
Locator State : Resolved
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
VPN Next Hop : 2001:db8::2:6
Autobind : gre srv6-policy
Labels : --
User-labels : 2
Admin-tag-policy : --
Strict-tunnel-tagging : N
Color : 500
UPA Trigger Next Hop : --
Locator : 2001:bbbb:6::/48
Created : 00h02m45s
Last-modified : 00h02m45s
-------------------------------------------------------------------------------
Resolving Prefix : 2001:db8::2:6/128
Preference : 14 Metric : 0
Reference Count : 2 Owner : SRV6-POLICY
Fib Programmed : Y
Resolved Next Hop: 0.140.1.1
Egress Label : n/a TunnelId : 917509
Locator State : Resolved
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Next Hops : 5
===============================================================================
IP VPN
IP VPN using SRv6 policy with color 600 from PE-1 to PE-6 shows a combination of classic adjacency SIDs (End.X) and micro-segment adjacency SIDs (uA) in the segment list of a static SRv6 policy that is configured on head-end PE-1.
The BGP configuration for IP VPN is described in the BGP configuration section.
Static SRv6 policy
On head-end 1, the following SRv6 policy is configured with color 600 and a segment list containing two micro-segment SRv6 SIDs and one classic SRv6 SID.
# on PE-1:
configure {
router "Base" {
segment-routing {
sr-policies {
admin-state enable
static-policy "color-600-PE-1-PE-6-mixed" {
admin-state enable
color 600
endpoint 2001:db8::2:6
head-end local
type srv6
segment-routing-v6 {
binding-sid 1 {
micro-segment-locator {
locator-name "PE1-mloc"
function end-b6-encaps-red-next-csid
}
}
}
segment-list 1 {
admin-state enable
segment 1 {
srv6-sid 2001:bbbb:2:4001::
behavior-and-structure {
behavior end-x-next-csid
block-length 32
node-length 16
function-length 16
}
}
segment 2 {
srv6-sid 2001:db8:aaaa:103:0:3000::
}
segment 3 {
srv6-sid 2001:bbbb:4:4001::
behavior-and-structure {
behavior end-x-next-csid
block-length 32
node-length 16
function-length 16
}
}
}
}
VPRN-6 with VPN IP
On head-end PE-1, VPRN-6 is configured as follows:
# on PE-1:
configure {
service {
vprn "VPRN-6" {
admin-state enable
service-id 6
customer "1"
autonomous-system 64496
segment-routing-v6 1 {
micro-segment-locator "PE1-mloc" {
function {
udt4 {
}
udt6 {
}
}
}
}
bgp-ipvpn {
segment-routing-v6 1 {
admin-state enable
route-distinguisher "192.0.2.1:6"
source-address 2001:db8::2:1
resolution fallback-tunnel-to-route-table
vrf-target {
community "target:64500:6"
}
srv6 {
instance 1
default-locator "PE1-mloc"
}
}
}
interface "lo1" {
loopback true
ipv4 {
primary {
address 172.16.106.1
prefix-length 24
}
}
ipv6 {
address 2001:db8::106:1 {
prefix-length 120
}
}
}
On endpoint PE-6, the configuration is as follows:
# on PE-6:
configure {
policy-options {
community "color-600" {
member "color:00:600" { }
}
community "vrf-6" {
member "target:64500:6" { }
}
policy-statement "vrf-6-export-c600" {
default-action {
action-type accept
community {
add ["vrf-6" "color-600"]
}
}
}
policy-statement "vrf-6-import" {
entry 10 {
from {
community {
name "vrf-6"
}
}
action {
action-type accept
}
}
}
}
service {
vprn "VPRN-6" {
admin-state enable
service-id 6
customer "1"
autonomous-system 64497
segment-routing-v6 1 {
micro-segment-locator "PE6-mloc" {
function {
udt4 {
}
udt6 {
}
}
}
}
bgp-ipvpn {
segment-routing-v6 1 {
admin-state enable
route-distinguisher "192.0.2.1:6"
source-address 2001:db8::2:6
vrf-import {
policy ["vrf-6-import"]
}
vrf-export {
policy ["vrf-6-export-c600"]
}
srv6 {
instance 1
default-locator "PE6-mloc"
}
}
}
interface "lo1" {
loopback true
ipv4 {
primary {
address 172.16.166.6
prefix-length 24
}
}
ipv6 {
address 2001:db8::166:6 {
prefix-length 120
}
}
}
Verification
On head-end PE-1, the list of micro-segment local SIDs includes SID 2001:bbbb:1:43e8:: for VPLS-3 and SID 2001:bbbb:1:43e9:: for VPRN-5, but only SID 2001:bbbb:1:43ea:: is used for VPRN-6.
[/]
A:admin@PE-1# show router segment-routing-v6 micro-segment-local-sid context "VPRN-6"
===============================================================================
Micro Segment Routing v6 Local SIDs
===============================================================================
SID Type Function
Micro Segment Locator
Context
-------------------------------------------------------------------------------
2001:bbbb:1:4014:: uDT4 16404
PE1-mloc
SvcId: 6 Name: VPRN-6
2001:bbbb:1:4015:: uDT6 16405
PE1-mloc
SvcId: 6 Name: VPRN-6
2001:bbbb:1:43e8:: End.b6.encaps* 17384
PE1-mloc
None
2001:bbbb:1:43e9:: End.b6.encaps* 17385
PE1-mloc
None
2001:bbbb:1:43ea:: End.b6.encaps* 17386
PE1-mloc
None
-------------------------------------------------------------------------------
SIDs : 5
-------------------------------------------------------------------------------
===============================================================================
* indicates that the corresponding row element may have been truncated.
The tunnel with color 600 is the SRv6 policy tunnel to be used for VPRN-6:
[/]
A:admin@PE-1# show router tunnel-table ipv6 protocol srv6-policy
===============================================================================
IPv6 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref
Nexthop Color Metric
-------------------------------------------------------------------------------
2001:db8::2:6/128 srv6-pol SRV6 917506 14
fpe_1.a 100 0
2001:db8::2:6/128 srv6-pol SRV6 917508 14
fpe_1.a 300 0
2001:db8::2:6/128 srv6-pol SRV6 917509 14
fpe_1.a 500 0
2001:db8::2:6/128 srv6-pol SRV6 917511 14
fpe_1.a 600 0
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
The BGP next hop for VPN-IPv4 routes is resolved using an SRv6 policy:
[/]
A:admin@PE-1# show router bgp next-hop vpn-ipv4
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
===============================================================================
BGP VPN Next Hop
===============================================================================
VPN Next Hop Owner
Autobind FibProg Reason
Labels (User-labels) FlexAlgo Metric
Admin-tag-policy (strict-tunnel-tagging) Last Mod.
-------------------------------------------------------------------------------
2001:db8::2:6 SRV6-POLICY
gre srv6-policy Y
-- (2) -- 0
-- (N) 00h02m33s
-------------------------------------------------------------------------------
Next Hops : 1
===============================================================================
In a similar way, the BGP next hop for VPN-IPv6 routes is resolved using an SRv6 policy, as follows:
[/]
A:admin@PE-1# show router bgp next-hop vpn-ipv6
===============================================================================
BGP Router ID:192.0.2.1 AS:64500 Local AS:64500
===============================================================================
===============================================================================
BGP VPN Next Hop
===============================================================================
VPN Next Hop Owner
Autobind FibProg Reason
Labels (User-labels) FlexAlgo Metric
Admin-tag-policy (strict-tunnel-tagging) Last Mod.
-------------------------------------------------------------------------------
2001:db8::2:6 SRV6-POLICY
gre srv6-policy Y
-- (2) -- 0
-- (N) 00h02m33s
-------------------------------------------------------------------------------
Next Hops : 1
===============================================================================
Conclusion
EVPN VPWS, EVPN VPLS, EVPN IFL, and VPN IP services can resolve their BGP next hops over an SRv6 policy in TTMv6.