cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
303
Views
2
Helpful
5
Replies

Steering traffic down Flex-Algo tunnel with TE metric

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? 

 

 

1 Accepted Solution

Accepted Solutions

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

View solution in original post

5 Replies 5

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

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# 

 

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.

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. 

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