- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 04:17 AM
Hello,
I am trying to verify in my lab that I can configure a L3VPN on my IOS-XE device (ASR1k), which can utilize a specific flex-algo topology. For this reason, VPNv4 routes are propagated via extended-community color, however BGP NH resolution is still using the Flex-Algo 0, which I can confirm by looking at the transport label value.
After digging into many documents, I couldn't find any configuration command that is missing in my lab. IOS-XR, JunOS, and SROS have those features where I can configure the desired BGP NH resolution method, but I couldn't find something similar for IOS-XE. Can you please help me if this is supported?
Regards,
Fatih
Solved! Go to Solution.
- Labels:
-
Other Service Provider
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 01:29 PM - edited 08-13-2024 01:45 PM
Hi @Fatih K ,
The issue is that the segment routing traffic engineering (SRTE) topology is not populated by default. This is the reason why you get the message "Source not in topology". You need to populate the local SRTE topology with the following command:
router isis ipls
distribute link-state
It should fix the issue.
Regards,
Harold Ritter, CCIE #4168 (EI, SP)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 08:43 AM - edited 08-13-2024 09:32 AM
Hi @Fatih K ,
SRTE policies with Flex Algo are supported on IOS-XE. Can you please provide a snapshot of your configuration?
Regards,
Harold Ritter, CCIE #4168 (EI, SP)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 11:09 AM
Thank you for your response. I also tried SR-TE ODN policy, but it didn't help. ISIS RIB Flex-Algo 128 is properly installed, VPNv4 routes have ext color community as well. But L3VPN is still using the label for Flex-Algo 0
router isis ipls
net 49.0001.0300.0800.8014.00
is-type level-2-only
metric-style wide
ignore-attached-bit
set-overload-bit
max-lsp-lifetime 65535
lsp-refresh-interval 65000
no hello padding point-to-point
log-adjacency-changes
metric 10000001 level-2
segment-routing mpls
flex-algo 128
!
!
passive-interface Loopback0
mpls ldp sync
!
segment-routing mpls
!
set-attributes
address-family ipv4
sr-label-preferred
exit-address-family
!
global-block 100000 135999
!
connected-prefix-sid-map
address-family ipv4
80.156.126.134/32 index 20422 range 1
exit-address-family
address-family ipv4 algorithm 128
80.156.126.134/32 index 27606 range 1
exit-address-family
!
segment-routing traffic-eng
!
on-demand color 128
authorize
candidate-paths
preference 100
constraints
segments
dataplane mpls
algorithm 128
!
!
dynamic
metric
type delay
!
!
!
!
!
performance-measurement
interface GigabitEthernet0/0/2
delay-measurement
advertise-delay 1000
!
!
interface GigabitEthernet0/0/3
delay-measurement
advertise-delay 1000
!
!
I was expecting a different label value; 127524 instead of 110580:
show isis rib flex-algo 128 80.156.126.52 255.255.255.255
Flex-algo 128
80.156.126.52/32 prefix attr X:0 R:0 N:1 SID index 27524 - Bound
[115/L2/6000] via 30.88.88.178(GigabitEthernet0/0/2) IPLS-PE4.00-00, from 80.156.126.52, tag 0
prefix attr: X:0 R:0 N:1
Prefix-SID index: 27524, R:0 N:1 P:0 E:0 V:0 L:0
label: 127524
[115/L2/6000] via 30.88.88.180(GigabitEthernet0/0/3) IPLS-PE5.00-00, from 80.156.126.52, tag 0
prefix attr: X:0 R:0 N:1
Prefix-SID index: 27524, R:0 N:1 P:0 E:0 V:0 L:0
label: 127524
sho ip cef vrf nmc-21139 80.156.126.52/32 detail
80.156.126.52/32, epoch 0, flags [rib defined all labels]
recursive via 80.156.126.52 label 4056
nexthop 30.88.88.178 GigabitEthernet0/0/2 label 110580-(local:110580)
show bgp vpnv4 unicast vrf nmc-21139 80.156.126.52/32 bestpath
BGP routing table entry for 20570:21139:80.156.126.52/32, version 1605165845
BGP Bestpath: deterministic-med
Paths: (4 available, best #1, table nmc-21139)
Not advertised to any peer
Refresh Epoch 1
Local
80.156.126.52 (metric 25857394) (via default) from 80.156.126.7 (80.156.126.7)
Origin incomplete, metric 0, localpref 100, valid, internal, best
Extended Community: RT:20570:21139 Color:128
Originator: 80.156.126.52, Cluster list: 80.156.126.7
mpls labels in/out nolabel/4056
binding SID: 4512 (color - 128) (state - DOWN)
rx pathid: 0, tx pathid: 0x0
Updated on Aug 12 2024 09:27:02 MET
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 01:06 PM - edited 08-13-2024 01:14 PM
Hi @Fatih K ,
From the provided output, something seems to be wrong with the policy.
show bgp vpnv4 unicast vrf nmc-21139 80.156.126.52/32 bestpath
…
binding SID: 4512 (color - 128) (state - DOWN)
Can you please provide the "show segment-routing traffic-eng policy name *80.156.126.52|128 detail" output.
Regards,
Harold Ritter, CCIE #4168 (EI, SP)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 01:14 PM
Hi @Harold Ritter ,
Here it is, I looked for the "Invalid reason.." but couldn't found any explanation:
show segment-routing traffic-eng policy name *80.156.126.52|128 detail
Name: *80.156.126.52|128 (Color: 128 End-point: 80.156.126.52)
Owners : BGP
Status:
Admin: up, Operational: down for 02:30:22 (since 08-13 19:42:41.726)
Candidate-paths:
Preference 100 (BGP):
Constraints:
Algorithm: 128
Dynamic (inactive)
Inactive Reason: Source node not in topology
Attributes:
Binding SID: 4512
Allocation mode: dynamic
State: Programmed
IPv6 caps enabled
Tunnel ID: 65537 (Interface Handle: 0x2AE)
Per owner configs:
BGP
Binding SID: dynamic
Stats:
5 minute output rate 0 bits/sec, 0 packets/sec
Packets: 0 Bytes: 0
Event history:
Timestamp Client Event type Context: Value
--------- ------ ---------- -------: -----
08-13 19:42:41.726 BGP Policy created Name: BGP
08-13 19:42:41.726 BGP Set colour Colour: 128
08-13 19:42:41.727 BGP Set end point End-point: 80.156.126.52
08-13 19:42:41.727 BGP Set dynamic Path option: dynamic
08-13 19:42:41.774 BGP BSID allocated FWD: label 4512
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 01:29 PM - edited 08-13-2024 01:45 PM
Hi @Fatih K ,
The issue is that the segment routing traffic engineering (SRTE) topology is not populated by default. This is the reason why you get the message "Source not in topology". You need to populate the local SRTE topology with the following command:
router isis ipls
distribute link-state
It should fix the issue.
Regards,
Harold Ritter, CCIE #4168 (EI, SP)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 01:58 PM
It worked. Thank you very much!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 02:05 PM
You are very welcome @Fatih K and thanks for the feedback
Harold Ritter, CCIE #4168 (EI, SP)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-14-2024 06:36 AM - edited 08-14-2024 06:39 AM
Hi @Harold Ritter ,
When both head- and tail-end routers are in the same domain (IS-IS Level-2), it is working fine, But, if the head-end router is in IS-IS Level-1, even though Flex-Algo Prefix Metric is propagated by the Level-1-2 (ABR = IOS-XR) router in the middle, head-end router (IOS-XE) does not follow the Flex-Algo path, but regular IGP SPF.
Instead of using the ODN policy, it would be great to have a way to dictate the router, so that it can resolve the BGP NH according to my configuration.
Headend router shows the label for Flex-Algo 0, instead of the label for FA 128:
sho ip cef vrf nmc-21139 80.156.126.52/32 detail
80.156.126.52/32, epoch 0, flags [rib defined all labels]
recursive via 80.156.126.52 label 4056
nexthop 30.88.88.122 TenGigabitEthernet0/0/1 label 110580-(local:110580)
However, it actually receives the FAPM:
sho isis database ISIS-GW1 verbose | begin 80.156.126.52/32
Metric: 8080180 IP-Interarea 80.156.126.52/32
Route Admin Tag: 128
Prefix-SID Index: 10580, Algorithm: SPF, R:1 N:1 P:1 E:0 V:0 L:0
Prefix-SID Index: 27524, Algorithm: Flex-algo 128, R:1 N:1 P:1 E:0 V:0 L:0
Prefix-metric: 4000, Algorithm: Flex-algo 128 <<< FAPM is received in IS-IS LSDB but not used
Prefix-attr: X:0 R:1 N:1
Finally, it declares that destination node is not in the topology, even though the ABR device is configured with "distribute link-state level-1"
show segment-routing traffic-eng policy name *80.156.126.52|128 detail
Name: *80.156.126.52|128 (Color: 128 End-point: 80.156.126.52)
Owners : BGP
Status:
Admin: up, Operational: down for 15:11:21 (since 08-13 22:58:57.657)
Candidate-paths:
Preference 100 (BGP):
Constraints:
Algorithm: 128
Dynamic (inactive)
Inactive Reason: destination node not in topology
Attributes:
Binding SID: 42
Allocation mode: dynamic
State: Programmed
IPv6 caps enabled
Tunnel ID: 65541 (Interface Handle: 0x2AE)
Per owner configs:
BGP
Binding SID: dynamic
Stats:
5 minute output rate 0 bits/sec, 0 packets/sec
Packets: 0 Bytes: 0
Event history:
Timestamp Client Event type Context: Value
--------- ------ ---------- -------: -----
08-13 22:58:57.657 BGP Policy created Name: BGP
08-13 22:58:57.658 BGP Set colour Colour: 128
08-13 22:58:57.658 BGP Set end point End-point: 80.156.126.52
08-13 22:58:57.658 BGP Set dynamic Path option: dynamic
08-13 22:58:57.688 BGP BSID allocated FWD: label 42
Thanks for you support so far on this matter!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-14-2024 03:46 PM - edited 08-14-2024 03:48 PM
Hi @Fatih K ,
You have a couple of options with IOS-XE, in such a case where the end to end path can't be calculated on the head end.
1. Use a PCE that has a full network view to calculate the end to end path.
2. Use a policy with an explicit path towards the remote node as follow:
segment-routing traffic-eng
segment-list name toRemoteNode
index 10 mpls label 27524 <+++++++++ FA 128 Label
!
policy toRemoteNode
color 128 end-point 80.156.126.52
candidate-paths
preference 100
explicit segment-list toRemoteNode
BGP NH + color will map to this policy and use the FA 128 to get to remote node, instead of IGP label.
Regards,
Harold Ritter, CCIE #4168 (EI, SP)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-15-2024 03:55 AM
Hi @Harold Ritter ,
Thank you once again.
I suppose that using a PCE is contradicting with a controllerless solution, like flex-algo
Unfortunately using a manual policy to a specific Remote-end also didn't solve the problem, it still shows that "destination node not in topology"
sho seg traffic-eng policy name to_IPLS-PE10 detail
Name: to_IPLS-PE10 (Color: 128 End-point: 80.156.126.52)
Owners : CLI BGP
Status:
Admin: up, Operational: down for 21:46:14 (since 08-14 15:01:02.813)
Candidate-paths:
Preference 100 (CLI):
Explicit: segment-list to_IPLS-PE10 (inactive)
Inactive Reason: Path cannot be resolved
Weight: 1, Metric Type: TE
Preference 100 (BGP):
Constraints:
Algorithm: 128
Dynamic (inactive)
Inactive Reason: destination node not in topology
Attributes:
Binding SID: 4557
Allocation mode: dynamic
State: Programmed
IPv6 caps enabled
Tunnel ID: 65541 (Interface Handle: 0x2AD)
Per owner configs:
CLI
Binding SID: dynamic
BGP
Binding SID: dynamic
Stats:
5 minute output rate 0 bits/sec, 0 packets/sec
Packets: 0 Bytes: 0
Event history:
Timestamp Client Event type Context: Value
--------- ------ ---------- -------: -----
08-14 15:01:02.813 BGP Policy created Name: BGP
08-14 15:01:02.813 BGP Set colour Colour: 128
08-14 15:01:02.813 BGP Set end point End-point: 80.156.126.52
08-14 15:01:02.814 BGP Set dynamic Path option: dynamic
08-14 15:01:02.854 BGP BSID allocated FWD: label 4557
08-15 12:34:30.119 CLI Client merged Owner: Added in
08-15 12:34:46.539 CLI Set explicit path Path option: to_IPLS-PE10
sho ip cef vrf nmc-21139 80.156.126.52/32 detail
80.156.126.52/32, epoch 0, flags [rib defined all labels]
recursive via 80.156.126.52 label 4056
nexthop 30.88.88.178 GigabitEthernet0/0/2 label 110580-(local:110580)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-15-2024 06:49 AM
Hi @Fatih K ,
What IOS-XE version are you running? Can I see the config for the policy and the segment-list.
Regards,
Harold Ritter, CCIE #4168 (EI, SP)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-15-2024 07:13 AM
I am running 17.09.04 on an ASR1002-X.
show run | section segment-routing traffic-eng
segment-routing traffic-eng
segment-list name to_IPLS-PE10
index 10 mpls label 127524
!
policy to_IPLS-PE10
color 128 end-point 80.156.126.52
candidate-paths
preference 100
explicit segment-list to_IPLS-PE10
!
!
!
!
on-demand color 128
authorize
candidate-paths
preference 100
constraints
segments
dataplane mpls
algorithm 128
!
!
dynamic
metric
type delay
!
!
!
!
!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-15-2024 08:05 AM
Thanks @Fatih K ,
Can you provide the "router isis" config.
Regards,
Harold Ritter, CCIE #4168 (EI, SP)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-15-2024 08:08 AM
router isis ipls
net 49.0001.0300.0800.8014.00
is-type level-1
metric-style wide
ignore-attached-bit
max-lsp-lifetime 65535
lsp-refresh-interval 65000
no hello padding point-to-point
log-adjacency-changes
metric 10000001 level-1
metric 10000001 level-2
distribute link-state
segment-routing mpls
flex-algo 128
!
!
passive-interface Loopback0
mpls ldp sync
mpls traffic-eng router-id Loopback0
mpls traffic-eng level-2
