08-06-2024 09:01 AM - edited 08-06-2024 09:03 AM
I'm having trouble setting up ODN with SRv6. The network looks as follows:
Based on the numbers above the control plane prefix advertisement is like this:
1. 192.168.23.0 is advertised to PE2 in VRF A (via BGP).
2. PE2 has SRv6 enabled and advertises the VPNv4 prefix to RR2 setting the color to 51. Flex-algo 129 is configured on all devices with LAB2 as the SRv6 locator.
Config as follows:
hostname PE2
!
vrf A
address-family ipv4 unicast
import route-target
100:1
!
export route-policy SET-COLOR
export route-target
100:1
!
!
!
route-policy SET-COLOR
set extcommunity color COLOR-51
end-policy
!
extcommunity-set opaque COLOR-51
51
end-set
!
router isis CORE
apply-group LAB-ISIS
distribute link-state
affinity-map RED bit-position 3
affinity-map BLUE bit-position 2
net 49.0100.0000.0000.0102.00
address-family ipv4 unicast
metric-style wide
mpls traffic-eng level-2-only
mpls traffic-eng router-id Loopback0
router-id Loopback0
router-id 10.1.1.102
segment-routing mpls sr-prefer
!
address-family ipv6 unicast
segment-routing srv6
locator LAB1
!
locator LAB2
!
!
!
flex-algo 129
!
router bgp 100
bgp router-id 10.1.1.102
address-family ipv4 unicast
address-family vpnv4 unicast
!
neighbor 2001:1ab::88
remote-as 100
update-source Loopback0
address-family vpnv4 unicast
next-hop-self
encapsulation-type srv6
!
!
vrf A
rd 1000:1
address-family ipv4 unicast
mpls alloc enable
segment-routing srv6
locator LAB1
alloc mode per-vrf
!
!
neighbor 172.16.2.2
remote-as 64589
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
!
!
segment-routing
global-block 16000 19999
traffic-eng
srv6
!
!
srv6
encapsulation
source-address 2001:1ab::102
!
locators
locator LAB1
micro-segment behavior unode psp-usd
prefix 2001:1:aa2::/48
!
locator LAB2
micro-segment behavior unode psp-usd
prefix 2001:1:ab2::/48
algorithm 129
!
!
!
!
3. RR2 will reflect the prefix to PE5. PE5 is configured on match color 51 and restrict it to flex-algo 129. Flex-algo 129 is defined on P2 and advertised throughout the IGP domain.
Config as follows:
hostname PE5
!
segment-routing
global-block 16000 19999
traffic-eng
on-demand color 51
srv6
!
dynamic
!
constraints
segments
sid-algorithm 129
!
!
!
!
srv6
locators
locator LAB1
micro-segment behavior unode psp-usd
prefix 2001:1:aa5::/48
!
locator LAB2
micro-segment behavior unode psp-usd
prefix 2001:1:ab5::/48
algorithm 129
!
!
hostname P2
!
router isis CORE
!
flex-algo 129
priority 210
metric-type te
advertise-definition
!
!
Full config of each device is omitted for brevity but available on request.
At the moment the flex-algo 129 routes are seen everywhere:
RP/0/RP0/CPU0:PE5#show isis ipv6 route flex-algo 129
Tue Aug 6 15:57:40.405 UTC
IS-IS CORE IPv6 Unicast routes Flex-Algo 129
Codes: L1 - level 1, L2 - level 2, ia - interarea (leaked into level 1)
df - level 1 default (closest attached router), su - summary null
C - connected, S - static, R - RIP, B - BGP, O - OSPF
E - EIGRP, A - access/subscriber, M - mobile, a - application
i - IS-IS (redistributed from another instance)
Maximum parallel path count: 8
L2 2001:1:ab1::/48 [21/115]
via fe80::5200:ff:fe08:6, GigabitEthernet0/0/0/0, P1, SRGB Base: 16000, Weight: 0
L2 2001:1:ab2::/48 [31/115]
via fe80::5200:ff:fe08:6, GigabitEthernet0/0/0/0, P1, SRGB Base: 16000, Weight: 0
via fe80::5200:ff:fe04:6, GigabitEthernet0/0/0/3, PE4, SRGB Base: 16000, Weight: 0
L2 2001:1:ab3::/48 [31/115]
via fe80::5200:ff:fe08:6, GigabitEthernet0/0/0/0, P1, SRGB Base: 16000, Weight: 0
via fe80::5200:ff:fe04:6, GigabitEthernet0/0/0/3, PE4, SRGB Base: 16000, Weight: 0
L2 2001:1:ab4::/48 [11/115]
via fe80::5200:ff:fe04:6, GigabitEthernet0/0/0/3, PE4, SRGB Base: 16000, Weight: 0
C 2001:1:ab5::/48
is directly connected, SRv6Locator
RP/0/RP0/CPU0:PE5#
The prefix 192.168.23.0/24 is received with color 51:
RP/0/RP0/CPU0:PE5#show bgp vrf A 192.168.23.0
Tue Aug 6 15:58:33.963 UTC
BGP routing table entry for 192.168.23.0/24, Route Distinguisher: 100:1
Versions:
Process bRIB/RIB SendTblVer
Speaker 154 154
Last Modified: Aug 6 15:27:27.307 for 00:31:06
Paths: (1 available, best #1)
Advertised to CE peers (in unique update groups):
172.16.45.4
Path #1: Received by speaker 0
Advertised to CE peers (in unique update groups):
172.16.45.4
64589
2001:1ab::102 (metric 30) from 2001:1ab::88 (10.1.1.102)
Received Label 0xe0030
Origin incomplete, metric 0, localpref 1000, valid, internal, best, group-best, import-candidate, imported
Received Path ID 0, Local Path ID 1, version 154
Extended community: SoO:100:23 Color:51 LB:100:80 RT:100:1
Originator: 10.1.1.102, Cluster list: 10.1.1.88
PSID-Type:L3, SubTLV Count:1
SubTLV:
T:1(Sid information), Sid:2001:1:aa2::, Behavior:63, SS-TLV Count:1
SubSubTLV:
T:1(Sid structure):
Source AFI: VPNv4 Unicast, Source VRF: default, Source Route Distinguisher: 1000:1
RP/0/RP0/CPU0:PE5#
But the flex-algo ODN tunnel is not coming up with the error message SRv6 Locator name is missing (see "Last Error" in the below output):
RP/0/RP0/CPU0:PE5#show segment-routing traffic-eng policy color 51 detail
Tue Aug 6 15:59:04.499 UTC
SR-TE policy database
---------------------
<snip>
Color: 51, End-point: 2001:1ab::102
Name: srte_c_51_ep_2001:1ab::102
Status:
Admin: up Operational: down for 00:41:39 (since Aug 6 15:17:25.575)
Candidate-paths:
Preference: 200 (BGP ODN) (inactive)
Last error: SRv6 locator name is missing
Constraints:
Prefix-SID Algorithm: 129
Protection Type: protected-preferred
Maximum SID Depth: 13
Dynamic (inactive)
Metric Type: TE, Path Accumulated Metric: 0
SRv6 Information:
Locator: Not configured
Binding SID requested: Not configured
Binding SID behavior: Unknown (0)
Preference: 100 (BGP ODN) (inactive)
Last error: SRv6 locator name is missing
PCC info:
Symbolic name: bgp_c_51_ep_2001:1ab::102_discr_100
PLSP-ID: 2
Constraints:
Prefix-SID Algorithm: 129
Protection Type: protected-preferred
Maximum SID Depth: 13
Dynamic (pce) (inactive)
Metric Type: NONE, Path Accumulated Metric: 0
SRv6 Information:
Locator: Not configured
Binding SID requested: Not configured
Binding SID behavior: Unknown (0)
Attributes:
Forward Class: 0
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:PE5#
I've never seen this before. Can anyone advise what might be causing this?
08-06-2024 09:46 AM
Hi @steven.crutchley ,
Local path calculation on the PE is not yet supported for SRv6. You need to configure a PCE that will do the path calculation on behalf o the PE.
Regards,
08-07-2024 01:04 AM - edited 08-07-2024 04:05 AM
Hi @Harold Ritter ,
Thanks for the quick response
I have tried to configure PCEP but am getting similar results.
The config has been adjusted as follows (again not every BGP session is shown but link-state to applied to all PE to RR sessions. distribute link-state has been applied everywhere):
hostname PE5
!
router bgp 100
address-family link-state link-state
!
neighbor 10.1.1.77
address-family link-state link-state
!
!
!
segment-routing
traffic-eng
on-demand color 51
dynamic
pcep
!
!
!
pcc
source-address ipv4 10.1.1.105
pce address ipv4 10.1.1.77
!
redundancy pcc-centric
!
!
!
router bgp 100
!
address-family link-state link-state
!
neighbor 10.1.1.105
remote-as 100
update-source Loopback0
address-family link-state link-state
!
pce
address ipv4 10.1.1.77
segment-routing
traffic-eng
!
!
!
PCEP comes up:
RP/0/RP0/CPU0:PE5#show segment-routing traffic-eng pcc ipv4 peer
Wed Aug 7 07:59:40.503 UTC
PCC's peer database:
--------------------
Peer address: 10.1.1.77,
Precedence: 255, (best PCE)
State up
Capabilities: Stateful, Update, Segment-Routing, Instantiation, SRv6
RP/0/RP0/CPU0:PE5#
But the policy is still now working with a similar error (although not exactly the same wording):
RP/0/RP0/CPU0:PE5#show seg traff policy color 51
Wed Aug 7 08:00:42.973 UTC
SR-TE policy database
---------------------
<snip>
Color: 51, End-point: 2001:1ab::102
Name: srte_c_51_ep_2001:1ab::102
Status:
Admin: up Operational: down for 16:43:17 (since Aug 6 15:17:25.575)
Candidate-paths:
Preference: 200 (BGP ODN) (inactive) (shutdown)
Constraints:
Prefix-SID Algorithm: 129
Protection Type: protected-preferred
Maximum SID Depth: 13
Dynamic (inactive)
Metric Type: TE, Path Accumulated Metric: 0
SRv6 Information:
Locator: Not configured
Binding SID requested: Not configured
Binding SID behavior: Unknown (0)
Preference: 100 (BGP ODN) (inactive)
Last error: SRv6 locator name is missing
PCC info:
Symbolic name: bgp_c_51_ep_2001:1ab::102_discr_100
PLSP-ID: 2
Constraints:
Prefix-SID Algorithm: 129
Protection Type: protected-preferred
Maximum SID Depth: 13
Dynamic (pce 10.1.1.77) (inactive)
Metric Type: NONE, Path Accumulated Metric: 0
SRv6 Information:
Locator: Not configured
Binding SID requested: Not configured
Binding SID behavior: Unknown (0)
Attributes:
Forward Class: 0
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:PE5#
Any ideas?
Full configs have been attached along with higher resolution topology screenshot. Focus on PE5, RR1, RR2. PE2 and the 192.168.23.0/24 LAN to the right of the topology (you'll see other unrelated config and topology elements as I've been using this lab for other things).
08-08-2024 08:31 AM
Hi @steven.crutchley ,
The error message you are getting indicates that the locator has not been configured.
Last error: SRv6 locator name is missing
You need to configure globally or at the policy level. It would look something like this:
segment-routing
traffic-eng
srv6
locator <locator name> binding-sid dynamic behavior ub6-insert-reduced
!
!
!
Regards,
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