06-03-2025 07:48 AM
Hi everyone,
I'm trying to steer traffic into a SR Policy using a flex-algo alorithm the uses only green links and follows the TE metric.
This is how I've done it.
segment-routing traffic-eng policy FLEX1 color 1104 end-point ipv4 10.10.10.5 autoroute include ipv4 192.168.1.50/32 <<<< anything to this prefix is steered into the policy ! candidate-paths preference 100 dynamic metric type te ! ! constraints segments sid-algorithm 117 ! router isis ISIS1 apply-group GROUP1 net 49.0001.0010.0010.0010.0001.00 distribute link-state affinity-map GREEN bit-position 100 address-family ipv4 unicast router-id Loopback0 segment-routing mpls sr-prefer ! address-family ipv6 unicast router-id Loopback0 segment-routing mpls sr-prefer ! flex-algo 117 metric-type te advertise-definition affinity include-all GREEN ! interface Loopback0 address-family ipv4 unicast prefix-sid index 1 prefix-sid algorithm 117 index 21 ! address-family ipv6 unicast prefix-sid index 1001 ! ! interface GigabitEthernet0/0/0/0 address-family ipv4 unicast ! address-family ipv6 unicast ! ! interface GigabitEthernet0/0/0/1 affinity flex-algo GREEN address-family ipv4 unicast ! address-family ipv6 unicast ! ! !
All other devices have this configured:
router isis ISIS1 affinity-map GREEN bit-position 100 flex-algo 117
They are they are receiving the flex-algo definition okay.
But the police comes out as having no path found.
RP/0/RP0/CPU0:R1#sh segment-routing traffic-eng policy color 1104 detail Tue Jun 3 14:37:31.789 UTC SR-TE policy database --------------------- Color: 1104, End-point: 10.10.10.5 Name: srte_c_1104_ep_10.10.10.5 Status: Admin: up Operational: down for 01:29:55 (since Jun 3 13:07:36.025) Candidate-paths: Preference: 100 (configuration) (inactive) Name: FLEX1 Requested BSID: dynamic Constraints: Prefix-SID Algorithm: 117 Protection Type: protected-preferred Maximum SID Depth: 10 Dynamic (inactive) Last error: No path found Metric Type: TE, Path Accumulated Metric: 0 Attributes: Forward Class: 0 Steering labeled-services disabled: no Steering BGP disabled: no IPv6 caps enable: no Invalidation drop enabled: no Max Install Standby Candidate Paths: 0 RP/0/RP0/CPU0:R1#
I have two questions:
1) Why is no path being found?
2) How exactly do I make it follow the TE metric as the path? Should I get the flex-algo to use the metric TE or set the policy to use the metric TE?
If I remove the configuration of the Flex Algo under ISIS to use TE as the metric the tnunel comes up but it seems to use IGP as the metric.
RP/0/RP0/CPU0:R1(config)#router isis ISIS1 RP/0/RP0/CPU0:R1(config-isis)# flex-algo 117 RP/0/RP0/CPU0:R1(config-isis-flex-algo)# priority 255 RP/0/RP0/CPU0:R1(config-isis-flex-algo)#no metric-type te RP/0/RP0/CPU0:R1(config-isis-flex-algo)#commit Tue Jun 3 14:39:48.096 UTC RP/0/RP0/CPU0:R1(config-isis-flex-algo)# RP/0/RP0/CPU0:R1#sh runRP/0/RP0/CPU0:Jun 3 14:39:50.287 UTC: isis[1011]: %ROUTING-ISIS-3-FLEX_ALGO_DEF_CHANGED : ISIS (CORE): Flex-Algo 117, Level-2 definition changed, priority 255, source System-ID 0010.0010.0001 sh segment-routing traffic-eng policy color 1104 detail Tue Jun 3 14:39:53.379 UTC SR-TE policy database --------------------- Color: 1104, End-point: 10.10.10.5 Name: srte_c_1104_ep_10.10.10.5 Status: Admin: up Operational: up for 00:00:02 (since Jun 3 14:39:51.305) <<< Comes up Candidate-paths: Preference: 100 (configuration) (active) Name: FLEX1 Requested BSID: dynamic Constraints: Prefix-SID Algorithm: 117 Protection Type: protected-preferred Maximum SID Depth: 10 Dynamic (valid) Metric Type: IGP, Path Accumulated Metric: 400 <<<<<<<<<<<<<<<<< But IGP Metric is used! SID[0]: 16021 [Prefix-SID: 10.10.10.5, Algorithm: 117 LSPs: LSP[0]: LSP-ID: 4 policy ID: 1 (active) Local label: 24009 State: Programmed Binding SID: 24010 Attributes: Binding SID: 24010 Forward Class: Not Configured Steering labeled-services disabled: no Steering BGP disabled: no IPv6 caps enable: yes Invalidation drop enabled: no Max Install Standby Candidate Paths: 0 RP/0/RP0/CPU0:R1#
Can anyone assist?
Solved! Go to Solution.
06-03-2025 12:24 PM - edited 06-03-2025 01:09 PM
Well, I was typing a reply when you answered it yourself hehe, but here it goes: Yes, the behavior is expected, since the metric configured in your flex-algo in isis stands out. If you indicate in your tunnel the use of flex-algo, the metric type will be chosen based on the metric configured in flex-algo (in the ISIS instance). The metric-type set in the policy will be ignored. About the metric-type delay, I believe you need to use the "performance measurement" feature together to be successful.
Edit: When you associate a tunnel with a flex-algo, you are using a different path created for your IGP (alternative), based on other constraints, which is precisely why your tunnel will ignore your metric-type (if it is dynamic), if you have a flex-algo associated with the tunnel.
Joéster Brondani
CCIE EI/SP
06-03-2025 08:44 AM
Hello friend. Have you enabled mpls traffic-eng and mpls traffic-eng router-id loo0 under your isis instance (in all core devices)?
Hugs!
Joéster Brondani
CCIE EI/SP
06-03-2025 11:44 AM
Oh wow. That's fixed it! I thought I only needed to do router-id. Thanks.
Now to the second question...
I've noticed from testing that the metric type that is used seems to be the Flex-Algos metric (as configured under ISIS) rather than any metric I configure under the segment routing policy. If I set the policy to be IGP under the segment-routing policy (see below), the metric still goes to TE (which is under ISIS). Is that expected?
RP/0/RP0/CPU0:R1#sh run segment-routing
Tue Jun 3 18:30:51.474 UTC
segment-routing
global-block 16000 23999
local-block 25000 26000
traffic-eng
policy FLEX1
color 1104 end-point ipv4 10.10.10.5
autoroute
include ipv4 192.168.1.50/32
!
candidate-paths
preference 100
dynamic
metric <<<<<<<<<<<<<<<<<<<<<<<<<<<<< THESE TWO LINES DON'T...
type igp <<<<<<<<<<<<<<<<<<<<<<<<<<<<< ... SEEM TO NEED TO BE HERE
!
!
constraints
segments
sid-algorithm 117
!
!
!
!
!
!
!
RP/0/RP0/CPU0:R1#show segment-routing traffic-eng policy color 1104
Tue Jun 3 18:30:58.462 UTC
SR-TE policy database
---------------------
Color: 1104, End-point: 10.10.10.5
Name: srte_c_1104_ep_10.10.10.5
Status:
Admin: up Operational: up for 00:00:18 (since Jun 3 18:30:39.805)
Candidate-paths:
Preference: 100 (configuration) (active)
Name: FLEX1
Requested BSID: dynamic
Constraints:
Prefix-SID Algorithm: 117
Protection Type: protected-preferred
Maximum SID Depth: 10
Dynamic (valid)
Metric Type: TE, Path Accumulated Metric: 400 <<<<<<<<<< TE METRIC FROM FLEX-ALGO
SID[0]: 16021 [Prefix-SID: 10.10.10.5, Algorithm: 235]
Attributes:
Binding SID: 24013
Forward Class: Not Configured
Steering labeled-services disabled: no
Steering BGP disabled: no
IPv6 caps enable: yes
Invalidation drop enabled: no
Max Install Standby Candidate Paths: 0
RP/0/RP0/CPU0:R1#
06-03-2025 11:56 AM
I also can't configure metric type be be delay
router isis ISIS1
flex-algo 117
metric-type delay <<<<<< Tunnel fails with "No path" error if I configure this.
Not sure if this is expected either.
06-03-2025 12:17 PM
Ok so.
If I'm using metric delay the SR tunnel uses LATENCY. But I need performance monitoring configured on all interfaces. For example
performance-measurement
interface GigabitEthernet0/0/0/0
delay-measurement
advertise-delay 1000000
!
!
interface GigabitEthernet0/0/0/1
delay-measurement
advertise-delay 1000000
!
!
And when I configure the SR policy, the metric type I use after the keyword `dynamic` appears to be ignored in favour of what is configured on under the flex-algo under ISIS.
06-03-2025 12:24 PM - edited 06-03-2025 01:09 PM
Well, I was typing a reply when you answered it yourself hehe, but here it goes: Yes, the behavior is expected, since the metric configured in your flex-algo in isis stands out. If you indicate in your tunnel the use of flex-algo, the metric type will be chosen based on the metric configured in flex-algo (in the ISIS instance). The metric-type set in the policy will be ignored. About the metric-type delay, I believe you need to use the "performance measurement" feature together to be successful.
Edit: When you associate a tunnel with a flex-algo, you are using a different path created for your IGP (alternative), based on other constraints, which is precisely why your tunnel will ignore your metric-type (if it is dynamic), if you have a flex-algo associated with the tunnel.
Joéster Brondani
CCIE EI/SP
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide