SRv6 TE using Color Path

SRv6 TE using Color Path

Hi everyone, back again with another SRv6 post. In this post I'm tryna show you how to configure a SRv6 TE using Color Path.

So for those of you who are wondering what is Color? Is it like a Color that we learn in Kindergarten like red, green, blue, etc? No, its not actually that kind of Color.

The function of Color in SRv6 is to create a tag/identity for a certain customer/prefix, its similar like Community attribute, and actually it is a Community. Cause when you add Color attribute in your prefix, it will be add in the BGP Community attribute. When we already have that Color attribute in the prefix, we can create a Traffic Engineering (TE) Path based on that Color attribute.

If you still confused about what the hell is Color in SRv6, lets just jump to the Lab configuration, so you can try and watch how this Color works.

IS-IS CONFIGURATIONS

R1

set version 22.3R1.11
set system host-name R1
set interfaces ge-0/0/0 unit 0 description R1_to_CE0
set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.2/24
set interfaces ge-0/0/0 unit 0 family iso
set interfaces ge-0/0/0 unit 0 family inet6 address 2001:db8:10::2/64
set interfaces ge-0/0/3 unit 0 description R1_to_R2
set interfaces ge-0/0/3 unit 0 family iso
set interfaces ge-0/0/3 unit 0 family inet6 address 2001:db8:12::1/64
set interfaces ge-0/0/5 unit 0 description R1_to_R4
set interfaces ge-0/0/5 unit 0 family iso
set interfaces ge-0/0/5 unit 0 family inet6 address 2001:db8:14::1/64
set interfaces lo0 unit 0 family iso address 49.0001.0001.0101.0100
set interfaces lo0 unit 0 family inet6 address 2001:db8:1:255::1/128
set protocols isis interface ge-0/0/3.0 point-to-point
set protocols isis interface ge-0/0/5.0 point-to-point
set protocols isis interface lo0.0
set protocols isis level 2 disable
set routing-options router-id 192.168.255.11
set routing-options autonomous-system 65500
set routing-options ipv6-router-id 2001:db8:1:255::1

R2

set version 22.3R1.11
set system host-name R2
set interfaces ge-0/0/0 unit 0 description R2_To_R1
set interfaces ge-0/0/0 unit 0 family iso
set interfaces ge-0/0/0 unit 0 family inet6 address 2001:db8:12::2/64
set interfaces ge-0/0/2 unit 0 description R2_To_R3
set interfaces ge-0/0/2 unit 0 family iso
set interfaces ge-0/0/2 unit 0 family inet6 address 2001:db8:23::1/64
set interfaces lo0 unit 0 family iso address 49.0001.0002.0202.0200
set interfaces lo0 unit 0 family inet6 address 2001:db8:2:255::2/128
set protocols isis interface ge-0/0/0.0 point-to-point
set protocols isis interface ge-0/0/2.0 point-to-point
set protocols isis interface lo0.0
set protocols isis level 2 disable
set routing-options autonomous-system 65500
set routing-options ipv6-router-id 2001:db8:2:255::2

R3

set version 22.3R1.11
set system host-name R3
set interfaces ge-0/0/0 unit 0 description R3_To_R2
set interfaces ge-0/0/0 unit 0 family iso
set interfaces ge-0/0/0 unit 0 family inet6 address 2001:db8:23::2/64
set interfaces ge-0/0/2 unit 0 description R3_To_R4
set interfaces ge-0/0/2 unit 0 family iso
set interfaces ge-0/0/2 unit 0 family inet6 address 2001:db8:34::1/64
set interfaces ge-0/0/4 unit 0 description R3_To_R5
set interfaces ge-0/0/4 unit 0 family iso
set interfaces ge-0/0/4 unit 0 family inet6 address 2001:db8:35::1/64
set interfaces lo0 unit 0 family iso address 49.0001.0003.0303.0300
set interfaces lo0 unit 0 family inet6 address 2001:db8:3:255::3/128
set protocols isis interface ge-0/0/0.0 point-to-point
set protocols isis interface ge-0/0/2.0 point-to-point
set protocols isis interface ge-0/0/4.0 point-to-point
set protocols isis interface lo0.0
set protocols isis level 2 disable
set routing-options autonomous-system 65500
set routing-options ipv6-router-id 2001:db8:3:255::3/128

R4

set version 22.3R1.11
set system host-name R4
set interfaces ge-0/0/0 unit 0 description R4_To_R1
set interfaces ge-0/0/0 unit 0 family iso
set interfaces ge-0/0/0 unit 0 family inet6 address 2001:db8:14::2/64
set interfaces ge-0/0/2 unit 0 description R4_To_R3
set interfaces ge-0/0/2 unit 0 family iso
set interfaces ge-0/0/2 unit 0 family inet6 address 2001:db8:34::2/64
set interfaces ge-0/0/6 unit 0 description R4_To_R5
set interfaces ge-0/0/6 unit 0 family iso
set interfaces ge-0/0/6 unit 0 family inet6 address 2001:db8:45::1/64
set interfaces lo0 unit 0 family iso address 49.0001.0004.0404.0400
set interfaces lo0 unit 0 family inet6 address 2001:db8:4:255::4/128
set protocols isis interface ge-0/0/0.0 point-to-point
set protocols isis interface ge-0/0/2.0 point-to-point
set protocols isis interface ge-0/0/6.0 point-to-point
set protocols isis interface lo0.0
set protocols isis level 2 disable
set routing-options autonomous-system 65500
set routing-options ipv6-router-id 2001:db8:4:255::4

R5

set version 22.3R1.11
set system host-name R5
set interfaces ge-0/0/0 unit 0 description R5_To_R3
set interfaces ge-0/0/0 unit 0 family iso
set interfaces ge-0/0/0 unit 0 family inet6 address 2001:db8:35::2/64
set interfaces ge-0/0/2 unit 0 description R5_To_R4
set interfaces ge-0/0/2 unit 0 family iso
set interfaces ge-0/0/2 unit 0 family inet6 address 2001:db8:45::2/64
set interfaces ge-0/0/6 unit 0 description R5_To_R6
set interfaces ge-0/0/6 unit 0 family iso
set interfaces ge-0/0/6 unit 0 family inet6 address 2001:db8:56::1/64
set interfaces lo0 unit 0 family iso address 49.0001.0005.0505.0500
set interfaces lo0 unit 0 family inet6 address 2001:db8:5:255::5/128
set protocols isis interface ge-0/0/0.0 point-to-point
set protocols isis interface ge-0/0/2.0 point-to-point
set protocols isis interface ge-0/0/6.0 point-to-point
set protocols isis interface lo0.0
set protocols isis level 2 disable
set routing-options autonomous-system 65500
set routing-options ipv6-router-id 2001:db8:5:255::5

R6

set version 22.3R1.11
set system host-name R6
set interfaces ge-0/0/0 unit 0 description R6_To_CE7
set interfaces ge-0/0/0 unit 0 family inet address 192.168.67.2/24
set interfaces ge-0/0/0 unit 0 family iso
set interfaces ge-0/0/0 unit 0 family inet6 address 2001:db8:67::2/64
set interfaces ge-0/0/2 unit 0 description R6_To_R5
set interfaces ge-0/0/2 unit 0 family iso
set interfaces ge-0/0/2 unit 0 family inet6 address 2001:db8:56::2/64
set interfaces lo0 unit 0 family iso address 49.0001.0006.0606.0600
set interfaces lo0 unit 0 family inet6 address 2001:db8:6:255::6/128
set protocols isis interface ge-0/0/2.0 point-to-point
set protocols isis interface lo0.0
set protocols isis level 2 disable
set routing-options router-id 192.168.255.66
set routing-options autonomous-system 65500
set routing-options ipv6-router-id 2001:db8:6:255::6

After we configure that make sure that all the ISIS adjacencies are established, then we can start to configure the SRv6 Locator for each Router.

SRv6 CONFIGURAITON

R1

set routing-options source-packet-routing srv6 locator loc1 2001:db8:a1::/48
set protocols isis source-packet-routing srv6 locator loc1 end-sid 2001:db8:a1::d01 flavor usd

Let me explain a little bit about the configuration above, the config under routing-options hierarchy, the locator loc1 2001:db8:a1::/48.
loc1 is a variable that you can change whatever you want to name it.
And the IPv6 look alike address there is a Locator.

Locator function is to create a Range for your SRv6 SID on that particular router.
So everytime you want to create SRv6 SID for that router, you will assign the SID using the Locator range that you define under the routing-option.
And the locator config under the protocol isis hierarchy, loc1 end-sid 2001:db8:a1::d01 flavor usd. This one gonna be the SRv6 Node-SID for that router.

The flavor usd config there is an End SID behaviour, we have 3 different flavours:

  • PSP (Penultimate Segment Pop)
    When the last SID is written in the destination address, the End and End.X functions with the PSP flavor pop the top-most SRH. Subsequent stacked SRHs may be present but are not processed as part of the function.
  • USP (Ultimate Segment Pop)
    When the next header is an SRH and there are no more segments left, the IS-IS protocol pops the top SRH, looks up the updated destination address and forwards the packet based on match table entry.
  • USD (Ultimate Segment Decapsulation)
    When the next Header in the packet is 41 or is an SRH and there are no more segments left, then IS-IS pops the outer IPv6 header and its extension headers, looks up the exposed inner IP destination address and forwards the packet to the matched table entry
    Source: Juniper Documentation

R2

set routing-options source-packet-routing srv6 locator loc2 2001:db8:a2::/48
set protocols isis source-packet-routing srv6 locator loc2 end-sid 2001:db8:a2::d02 flavor usd

R3

set routing-options source-packet-routing srv6 locator loc3 2001:db8:a3::/48
set protocols isis source-packet-routing srv6 locator loc3 end-sid 2001:db8:a3::d03 flavor usd

R4

set routing-options source-packet-routing srv6 locator loc4 2001:db8:a4::/48
set protocols isis source-packet-routing srv6 locator loc4 end-sid 2001:db8:a4::d04 flavor usd

R5

set routing-options source-packet-routing srv6 locator loc5 2001:db8:a5::/48
set protocols isis source-packet-routing srv6 locator loc5 end-sid 2001:db8:a5::d05 flavor usd

R6

set routing-options source-packet-routing srv6 locator loc6 2001:db8:a6::/48
set protocols isis source-packet-routing srv6 locator loc6 end-sid 2001:db8:a6::d06 flavor usd

When you're done with this config, you can check your routing table and you will see that you'll get the locator prefix from other router, and you will get the Node SID from other router as well.

MP-BGP CONFIGURAITON

R1

set policy-options policy-statement LBPP term 1 then load-balance per-packet
set routing-options forwarding-table export LBPP
set protocols bgp group ibgp type internal
set protocols bgp group ibgp local-address 2001:db8:1:255::1
set protocols bgp group ibgp family inet unicast extended-nexthop
set protocols bgp group ibgp family inet-vpn unicast extended-nexthop
set protocols bgp group ibgp family inet-vpn unicast advertise-srv6-service
set protocols bgp group ibgp family inet-vpn unicast accept-srv6-service
set protocols bgp group ibgp family inet6 unicast extended-nexthop-color
set protocols bgp group ibgp family inet6-vpn unicast advertise-srv6-service
set protocols bgp group ibgp family inet6-vpn unicast accept-srv6-service
set protocols bgp group ibgp neighbor 2001:db8:6:255::6
set protocols bgp multipath

R6

set policy-options policy-statement LBPP term 1 then load-balance per-packet
set routing-options forwarding-table export LBPP
set protocols bgp group ibgp type internal
set protocols bgp group ibgp local-address 2001:db8:6:255::6
set protocols bgp group ibgp family inet unicast extended-nexthop
set protocols bgp group ibgp family inet-vpn unicast extended-nexthop
set protocols bgp group ibgp family inet-vpn unicast advertise-srv6-service
set protocols bgp group ibgp family inet-vpn unicast accept-srv6-service
set protocols bgp group ibgp family inet6 unicast extended-nexthop-color
set protocols bgp group ibgp family inet6-vpn unicast advertise-srv6-service
set protocols bgp group ibgp family inet6-vpn unicast accept-srv6-service
set protocols bgp group ibgp neighbor 2001:db8:1:255::1
set protocols bgp multipath

The policy-options config is used to enable the load-balancing, then we export that on the forwarting-table. Then we configure the internal BGP and use loopback peering, so R1 gonna peer to R6 and vice versa, also we enable the MP-BGP for inet, inet6, inet-vpn, and inet6-vpn address families.

The extended-nexthop command is used to encoding for BGP groups with IPv6 peers to route IPv4 address families over an IPv6 session. It use to configure dynamic IPv4-over-IPv6 tunnels and define their attributes to forward IPv4 traffic over an IPv6-only network.

The extended-nexthop-color command is used to steer a packet using a Segment Routing Traffic Engineering (SR-TE) policy that we will do later in this lab. Configure this color attribute for a BGP family or group to resolve the color path. This option is disabled by default and prefixes with color community are resolved over the standard BGP tables. However, with this option configured, prefixes with color community are resolved using the inetcolor.0 or inet6color.0 table.

L3VPN CONFIGURAITON

R1

set policy-options policy-statement CE0_export term 0 then community add L3VPN_CE_community
set policy-options policy-statement CE0_export term 0 then next-hop 2001:db8:a1::d01
set policy-options policy-statement CE0_export term 0 then accept
set policy-options policy-statement CE0_import term 0 from community L3VPN_CE_community
set policy-options policy-statement CE0_import term 0 then accept
set policy-options policy-statement NHS then next-hop self
set policy-options community L3VPN_CE_community members target:65500:1
set routing-instances L3VPN_CE0 instance-type vrf
set routing-instances L3VPN_CE0 protocols bgp group to_CE0_v6 type external
set routing-instances L3VPN_CE0 protocols bgp group to_CE0_v6 peer-as 65000
set routing-instances L3VPN_CE0 protocols bgp group to_CE0_v6 as-override
set routing-instances L3VPN_CE0 protocols bgp group to_CE0_v6 neighbor 2001:db8:10::1
set routing-instances L3VPN_CE0 protocols bgp group to_CE0_v4 type external
set routing-instances L3VPN_CE0 protocols bgp group to_CE0_v4 export NHS
set routing-instances L3VPN_CE0 protocols bgp group to_CE0_v4 peer-as 65000
set routing-instances L3VPN_CE0 protocols bgp group to_CE0_v4 neighbor 192.168.10.1
set routing-instances L3VPN_CE0 protocols bgp group to_CE0_v4 as-override
set routing-instances L3VPN_CE0 protocols bgp source-packet-routing srv6 locator loc1 end-dt4-sid 2001:db8:a1:d4::
set routing-instances L3VPN_CE0 protocols bgp source-packet-routing srv6 locator loc1 end-dt6-sid 2001:db8:a1:d6::
set routing-instances L3VPN_CE0 interface ge-0/0/0.0
set routing-instances L3VPN_CE0 route-distinguisher 192.168.255.11:1
set routing-instances L3VPN_CE0 vrf-import CE0_import
set routing-instances L3VPN_CE0 vrf-export CE0_export

R6

set policy-options policy-statement CE7_export term 0 then community add L3VPN_CE_community
set policy-options policy-statement CE7_export term 0 then next-hop 2001:db8:a6::d06
set policy-options policy-statement CE7_export term 0 then accept
set policy-options policy-statement CE7_import term 0 from community L3VPN_CE_community
set policy-options policy-statement CE7_import term 0 then accept
set policy-options policy-statement NHS then next-hop self
set policy-options community L3VPN_CE_community members target:65500:1
set routing-instances L3VPN_CE7 instance-type vrf
set routing-instances L3VPN_CE7 protocols bgp group to_CE7_v6 type external
set routing-instances L3VPN_CE7 protocols bgp group to_CE7_v6 peer-as 65000
set routing-instances L3VPN_CE7 protocols bgp group to_CE7_v6 as-override
set routing-instances L3VPN_CE7 protocols bgp group to_CE7_v6 neighbor 2001:db8:67::1
set routing-instances L3VPN_CE7 protocols bgp group to_CE7_v4 type external
set routing-instances L3VPN_CE7 protocols bgp group to_CE7_v4 export NHS
set routing-instances L3VPN_CE7 protocols bgp group to_CE7_v4 peer-as 65000
set routing-instances L3VPN_CE7 protocols bgp group to_CE7_v4 as-override
set routing-instances L3VPN_CE7 protocols bgp group to_CE7_v4 neighbor 192.168.67.1
set routing-instances L3VPN_CE7 protocols bgp source-packet-routing srv6 locator loc6 end-dt4-sid 2001:db8:a6:d4::
set routing-instances L3VPN_CE7 protocols bgp source-packet-routing srv6 locator loc6 end-dt6-sid 2001:db8:a6:d6::
set routing-instances L3VPN_CE7 interface ge-0/0/0.0
set routing-instances L3VPN_CE7 route-distinguisher 192.168.255.66:6
set routing-instances L3VPN_CE7 vrf-import CE7_import
set routing-instances L3VPN_CE7 vrf-export CE7_export

CE0

set version 22.3R1.11
set system host-name CE0
set interfaces ge-0/0/0 unit 0 description CE0_To_R1
set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.1/24
set interfaces ge-0/0/0 unit 0 family inet6 address 2001:db8:10::1/64
set interfaces lo0 unit 0 family inet address 10.100.10.1/32
set interfaces lo0 unit 0 family inet6 address 2001:db8:10:255::10/128
set policy-options policy-statement BGP_export term 0 from protocol direct
set policy-options policy-statement BGP_export term 0 then accept
set routing-options router-id 10.100.10.1
set routing-options autonomous-system 65000
set protocols bgp group eBGPv6 type external
set protocols bgp group eBGPv6 export BGP_export
set protocols bgp group eBGPv6 peer-as 65500
set protocols bgp group eBGPv6 neighbor 2001:db8:10::2
set protocols bgp group eBGPv4 type external
set protocols bgp group eBGPv4 export BGP_export
set protocols bgp group eBGPv4 peer-as 65500
set protocols bgp group eBGPv4 neighbor 192.168.10.2

CE7

set version 22.3R1.11
set system host-name CE7
set interfaces ge-0/0/0 unit 0 description CE7_To_R6
set interfaces ge-0/0/0 unit 0 family inet address 192.168.67.1/24
set interfaces ge-0/0/0 unit 0 family inet6 address 2001:db8:67::1/64
set interfaces lo0 unit 0 family inet address 10.100.10.7/32
set interfaces lo0 unit 0 family inet6 address 2001:db8:7:255::7/128
set policy-options policy-statement BGP_export term 0 from protocol direct
set policy-options policy-statement BGP_export term 0 then accept
set routing-options router-id 10.100.10.7
set routing-options autonomous-system 65000
set protocols bgp group eBGPv6 type external
set protocols bgp group eBGPv6 export BGP_export
set protocols bgp group eBGPv6 peer-as 65500
set protocols bgp group eBGPv6 neighbor 2001:db8:67::2
set protocols bgp group eBGPv4 type external
set protocols bgp group eBGPv4 export BGP_export
set protocols bgp group eBGPv4 peer-as 65500
set protocols bgp group eBGPv4 neighbor 192.168.67.2

The L3VPN configuration in SRv6 is similar to MPLS-VPN, the difference in the SRv6 we need to add the endpoint behaviour like end-dt4-sid and end-dt6-sid.

End-dt4-sid is used to handle the IPv4 traffic in that VRF. When the router receive a packet with this SID, the router will decapsulate the packet and inspect the inner IPv4 packet. After that it will forwards the IPv4 packet based on the associated VRF's routing table. The same thing will happen for end-dt6-sid, but this one is used to handle IPv6 traffic for that particular VRF.

Ping from CE0 to CE7 loopback (without SR-TE)

At this point, you should be able to test the connectivity from CE0 to CE7, you can try to ping using the IPv4 or IPv6.
Now for the last part, lets configure the SR-TE using Color Path

SR-TE COLOR R1-R6 CONFIGURAITON

We're gonna create a TE path from R1 to R6, the traffic from R1 is gonna travel this spesific path R1-R2-R3-R4-R5-R6, and this path will use color 6.

First, we go to the Egress PE, we need to advertise the prefix from R6 with a Color community. We can do it by creating a Color community, lets say color:1:6 on R6 and add the community on the policy that we applied on the vrf-export.

R6

set policy-options community CE7_color_com members color:1:6
set policy-options policy-statement CE7_export term 0 then community add CE7_color_com

Lets breakdown the Color community, color:1:6
color
- this keyword indicates that this community represents a color value, typically used for traffic engineering purposes. Color are used to identify and classify different SR-TE policies.
1 - this number can represents the administrative domain, instance ID, or color namespace.
6 - this is the color value itself, which is used to associate a specific SR-TE policy with a particular traffic class or path.

After that, go the Ingress PE, we need to add several configuration on this R1.

R1

set routing-options forwarding-table srv6-chain-merge
set routing-options resolution preserve-nexthop-hierarchy

set policy-options policy-statement MPATH-RESOLVE then multipath-resolve
set routing-options resolution rib bgp.l3vpn-inet6.0 inet6color-import MPATH-RESOLVE
set routing-options resolution rib bgp.l3vpn.0 inet6color-import MPATH-RESOLVE

set policy-options resolution-map COLOR-RESOLVE mode ip-color
set policy-options policy-statement v4_VPN_COLOR_RESOLVE term 1 from protocol bgp
set policy-options policy-statement v4_VPN_COLOR_RESOLVE term 1 then accept
set policy-options policy-statement v4_VPN_COLOR_RESOLVE term 1 then resolution-map COLOR-RESOLVE
set policy-options policy-statement v6_VPN_COLOR_RESOLVE term 1 from family inet6-vpn
set policy-options policy-statement v6_VPN_COLOR_RESOLVE term 1 from protocol bgp
set policy-options policy-statement v6_VPN_COLOR_RESOLVE term 1 then accept
set policy-options policy-statement v6_VPN_COLOR_RESOLVE term 1 then resolution-map COLOR-RESOLVE
set protocols bgp group ibgp import v4_VPN_COLOR_RESOLVE
set protocols bgp group ibgp import v6_VPN_COLOR_RESOLVE

set routing-options transport-class auto-create
set protocols source-packet-routing use-transport-class
set routing-options route-distinguisher-id 192.168.255.11

set protocols source-packet-routing segment-list R1-R6_END-SID srv6
set protocols source-packet-routing segment-list R1-R6_END-SID hop1 srv6-sid 2001:db8:a2::d02
set protocols source-packet-routing segment-list R1-R6_END-SID hop2 srv6-sid 2001:db8:a3::d03
set protocols source-packet-routing segment-list R1-R6_END-SID hop3 srv6-sid 2001:db8:a4::d04
set protocols source-packet-routing segment-list R1-R6_END-SID hop4 srv6-sid 2001:db8:a5::d05
set protocols source-packet-routing segment-list R1-R6_END-SID hop5 srv6-sid 2001:db8:a6::d06
set protocols source-packet-routing srv6
set protocols source-packet-routing source-routing-path COLOR_PATH-R1R6 srv6
set protocols source-packet-routing source-routing-path COLOR_PATH-R1R6 to 2001:db8:a6::d06
set protocols source-packet-routing source-routing-path COLOR_PATH-R1R6 color 6
set protocols source-packet-routing source-routing-path COLOR_PATH-R1R6 primary R1-R6_END-SID

We need to configure,
set routing-options forwarding-table srv6-chain-merge.

The command enables the feature that merges SRv6 TE SID stack with the IGP SID stack. This reduces overhead, simplifies forwarding, and ensures efficient utilization of network resources while maintaining interoperability between SRv6 TE and IGP-based routing.

Then we need to enable,
set routing-options resolution preserve-nexthop-hierarchy.

SRv6 TE transport is populated correctly so that service resolution is performed properly. This command is a prerequisite for configuring SR-TE SRv6 tunnels.

Next configure a multipath resolution policy,
set policy-options policy-statement MPATH-RESOLVE then multipath-resolve
set routing-options resolution rib bgp.l3vpn-inet6.0 inet6color-import MPATH-RESOLVE
set routing-options resolution rib bgp.l3vpn.0 inet6color-import MPATH-RESOLVE


The protocol next hop resolution process is enhanced to support colored-IP protocol next hop resolution. For a colored VPN service, the protocol next hop resolution process takes a color and a resolution-map, builds a colored-IP protocol next hop in the form of IP-address:color, and resolves the protocol next hop in the inet6color.0 routing table. We must configure a policy to support multipath resolution of colored Layer 2 VPN, Layer 3 VPN, or EVPN services over colored LSPs. The policy must then be applied with the relevant RIB table as the resolver import policy.

And then we need to configure this policy,
set policy-options resolution-map COLOR-RESOLVE mode ip-color
set policy-options policy-statement v4_VPN_COLOR_RESOLVE term 1 from protocol bgp
set policy-options policy-statement v4_VPN_COLOR_RESOLVE term 1 then accept
set policy-options policy-statement v4_VPN_COLOR_RESOLVE term 1 then resolution-map COLOR-RESOLVE
set policy-options policy-statement v6_VPN_COLOR_RESOLVE term 1 from family inet6-vpn
set policy-options policy-statement v6_VPN_COLOR_RESOLVE term 1 from protocol bgp
set policy-options policy-statement v6_VPN_COLOR_RESOLVE term 1 then accept
set policy-options policy-statement v6_VPN_COLOR_RESOLVE term 1 then resolution-map COLOR-RESOLVE
set protocols bgp group ibgp import v4_VPN_COLOR_RESOLVE
set protocols bgp group ibgp import v6_VPN_COLOR_RESOLVE


This configuration is used for SR-TE and is specifically used to determine how the router resolves next-hops for routes that are bound to color-based SR policies.

Also we need to configure this command,
set routing-options transport-class auto-create
set protocols source-packet-routing use-transport-class
set routing-options route-distinguisher-id 192.168.255.11

The first CLI config is required for the underlying Classful Transport infrastructure to get active and to ensure auto-creation of the transport RIBs. The second command is to enable SRv6 TE routes to be downloaded in auto created transport RIB. The SRv6 TE route also gets downloaded to the inet6color table as well but that inet6color is discouraged and may get discontinued in the Junos future releases. Transport Class is the new future.

Last, we need to configure the SR-TE Path / Segment List, also create the routing path to R6 and attached the color 6, this is the color that R6 advertises to R1.
set protocols source-packet-routing segment-list R1-R6_END-SID srv6
set protocols source-packet-routing segment-list R1-R6_END-SID hop1 srv6-sid 2001:db8:a2::d02
set protocols source-packet-routing segment-list R1-R6_END-SID hop2 srv6-sid 2001:db8:a3::d03
set protocols source-packet-routing segment-list R1-R6_END-SID hop3 srv6-sid 2001:db8:a4::d04
set protocols source-packet-routing segment-list R1-R6_END-SID hop4 srv6-sid 2001:db8:a5::d05
set protocols source-packet-routing segment-list R1-R6_END-SID hop5 srv6-sid 2001:db8:a6::d06
set protocols source-packet-routing srv6
set protocols source-packet-routing source-routing-path COLOR_PATH-R1R6 srv6
set protocols source-packet-routing source-routing-path COLOR_PATH-R1R6 to 2001:db8:a6::d06
set protocols source-packet-routing source-routing-path COLOR_PATH-R1R6 color 6
set protocols source-packet-routing source-routing-path COLOR_PATH-R1R6 primary R1-R6_END-SID

By this point, you already done with the SRv6 TE Color configuration, and lets check the end-to-end connectivity between CE0 and CE7, here I manipulate the latency between R3 and R4 to 100ms, to makesure if the packet is routed through the SR-TE path that I created or not.

Ping from CE0 to CE7 loopback (SR-TE enable)

As you can see the latency have 100+ ms. If compared to the previous ping test before we configure the SR-TE, the latency is around 8ms to 10ms, now after we create the SR-TE the traffic goes to the path that we created.

By the way, I only configure SR-TE from R1 to R6.
If you want to create the SR-TE from R6 to R1, you can just repeat the SR-TE COLOR CONFIGURATION section.
Add the R1 configuration tempate to R6, and also add the R6 configuration template to R1. But dont forget to adjust the parameters, like adjust the color community, and the SR-TE path / segment-list.

I hope this post is helpful for you. Cheerio!