02-23-2025 09:52 AM
Hi everyone,
Normally I would configure SRv6 for a VRF as follows:
router bgp 100
segment-routing srv6
locator LOCATOR1
!
address-family vpnv4 unicast
!
!
neighbor-group iBGP
remote-as 100
update-source Loopback0
address-family vpnv4 unicast
next-hop-self
encapsulation-type srv6
!
!
!
neighbor 10.1.1.2
use neighbor-group iBGP
!
neighbor 10.1.1.3
use neighbor-group iBGP
!
!
vrf ACME
address-family ipv4 unicast
mpls alloc enable
segment-routing srv6
alloc mode per-vrf
!
!
!
neighbor 172.16.1.2
remote-as 1000
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
It works fine and SRv6 uSID headers are placed on packets between devices in vrf ACME.
So I figured I would try it with just ipv4 unicast. So I removed the interfaces from their ACME VRF, adjusted the BGP config and moved the BGP neighbor to be in global rather than under a VRF. My config now looks like this:
router bgp 100
segment-routing srv6
locator LOCATOR1
!
address-family ipv4 unicast
segment-routing srv6
alloc mode per-ce
!
neighbor-group iBGP
remote-as 100
update-source Loopback0
address-family ipv4 unicast
next-hop-self
encapsulation-type srv6
!
!
neighbor 10.1.1.2
use neighbor-group iBGP
!
neighbor 10.1.1.3
use neighbor-group iBGP
!
!
neighbor 172.16.1.2
remote-as 1000
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
But now my ipv4 prefixes on each PE are 'not advertised to any peer` and I've no idea why.
RP/0/RP0/CPU0:PE1#sh bgp ipv4 unicast 172.20.40.3
Sun Feb 23 17:37:12.490 UTC
BGP routing table entry for 172.20.40.3/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 2 2
Last Modified: Feb 23 17:25:39.540 for 00:11:33
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1000
172.16.1.2 from 172.16.1.2 (172.16.10.10)
Origin IGP, metric 0, localpref 100, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 2
Origin-AS validity: (disabled)
RP/0/RP0/CPU0:PE1#
!
If I strip the `encapsulation-type srv6` IPv4 routes are advertised as normal.
Is there some config I am missing that would make this work or am I missing something fundamental about SRv6?
Locator config as follows:
segment-routing
global-block 16000 23999
local-block 26000 27999
srv6
logging locator status
encapsulation
source-address 2001:1ab:101::1
!
locators
locator LOCATOR1
micro-segment behavior unode psp-usd
prefix fccc:100:1::/48
Solved! Go to Solution.
02-24-2025 11:10 AM
> Interestingly, if take a PE, create a loopback in the global GRT and then use the network command to push it into BGP, > the prefix is advertised to the other PEs with SRv6 encapsulation attributes.
The PE loopback interface prefix will be allocated a per vrf label.
> But if I get a prefix from an eBGP IPv4 neighbor (the CE). The PE will receive the prefix, but not advertise it on to any > peer. When I strip the sr-encap command, it advertises it fine.
The prefixes coming from the CE will be allocated a per CE label, since this is the label allocation mode you configured. Can you try changing the label allocation mode to per vrf and see if it solves the issue?
BTW, I quickly tried with XRd 24.4 and it works like a charm with the label allocation mode per ce for both v4 and v6 prefixes coming from the CE.
Regards,
02-23-2025 11:26 AM
Hi @steven.crutchley ,
It is most probably related to the level of code you are running. What version of XRv9k are you using?
Regards,
02-24-2025 01:50 AM
Cisco IOS XR Software, Version 7.9.2
02-24-2025 07:44 AM
So I tested it again using 7.3.2 and I get the same behaviour.
Interestingly, if take a PE, create a loopback in the global GRT and then use the network command to push it into BGP, the prefix is advertised to the other PEs with SRv6 encapsulation attributes.
But if I get a prefix from an eBGP IPv4 neighbor (the CE). The PE will receive the prefix, but not advertise it on to any peer. When I strip the sr-encap command, it advertises it fine.
02-24-2025 11:10 AM
> Interestingly, if take a PE, create a loopback in the global GRT and then use the network command to push it into BGP, > the prefix is advertised to the other PEs with SRv6 encapsulation attributes.
The PE loopback interface prefix will be allocated a per vrf label.
> But if I get a prefix from an eBGP IPv4 neighbor (the CE). The PE will receive the prefix, but not advertise it on to any > peer. When I strip the sr-encap command, it advertises it fine.
The prefixes coming from the CE will be allocated a per CE label, since this is the label allocation mode you configured. Can you try changing the label allocation mode to per vrf and see if it solves the issue?
BTW, I quickly tried with XRd 24.4 and it works like a charm with the label allocation mode per ce for both v4 and v6 prefixes coming from the CE.
Regards,
02-24-2025 12:37 PM
Success! Changing the made to per-vrf makes everything work ok.
Thanks so much.
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