SR-TE Disjoint Planes using Anycast SIDs
Load sr-te.dual.plane.init.cfg
configure
load bootflash:sr-te.dual.plane.init.cfg
commit replace
y

The core routers (R3, R5, R4, R6, R9, R10) are in two separate “planes”: odd and even. The IGP costs have been adjusted so that core links between routers in different planes are high, but links connecting each PE to each plane are the same (10). Also, each router has already configured its TE RID and is distributing LS under the IGP.
Using Anycast SID, configure two policies on R1 for endpoint R7 as follows:
Color 10 uses the “odd” plane
Color 20 uses the “even” plane
R3, R5 and R9 should use 101.101.101.1/32 as the anycast address. R4, R6 and R10 should use 100.100.100.1/32 as the anycast address.
Answer
#R3, R5, R9
int lo101
ip add 101.101.101.1/32
!
router isis 1
int lo101
add ipv4 uni
prefix-sid index 101 n-flag-clear
#R4, R6, R10
int lo100
ip add 100.100.100.1/32
!
router isis 1
int lo100
add ipv4 uni
prefix-sid index 100 n-flag-clear
#R1
segment-routing traffic-eng
segment-list R7_VIA_ODD
index 1 address ipv4 101.101.101.1
index 2 address ipv4 7.7.7.1
!
segment-list R7_VIA_EVEN
index 1 address ipv4 100.100.100.1
index 2 address ipv4 7.7.7.1
!
policy R7_VIA_ODD
color 10 end-point ipv4 7.7.7.1
candidate-paths pref 100
explicit segment-list R7_VIA_ODD
!
policy R7_VIA_EVEN
color 20 end-point ipv4 7.7.7.1
candidate-paths pref 100
explicit segment-list R7_VIA_EVEN
Explanation
This topology is “dual plane” because we have two separate network planes: even nodes, and odd nodes. Link metrics between nodes of each plane are set high to discourage traffic crossing over from one plane to another. Only in the event of multiple link failures will traffic cross over.
To start, we configure Anycast SIDs for each plane: 100.100.100.1/32 for all even nodes, and 101.101.101.1/32 for all odd nodes. Remember to clear the N flag for an Anycast SID.
#R3, R5, R9
int lo101
ip add 101.101.101.1/32
!
router isis 1
int lo101
add ipv4 uni
prefix-sid index 101 n-flag-clear
#R4, R6, R10
int lo100
ip add 100.100.100.1/32
!
router isis 1
int lo100
add ipv4 uni
prefix-sid index 100 n-flag-clear
Next, we can use explicit paths on R1 which simply use either one of these Anycast SIDs as the first index, and R7 as the last index. Once traffic is on the correct plane, it can simply be IGP-routed towards R7.
#R1
segment-routing traffic-eng
segment-list R7_VIA_ODD
index 1 address ipv4 101.101.101.1
index 2 address ipv4 7.7.7.1
!
segment-list R7_VIA_EVEN
index 1 address ipv4 100.100.100.1
index 2 address ipv4 7.7.7.1
!
policy R7_VIA_ODD
color 10 end-point ipv4 7.7.7.1
candidate-paths pref 100
explicit segment-list R7_VIA_ODD
!
policy R7_VIA_EVEN
color 20 end-point ipv4 7.7.7.1
candidate-paths pref 100
explicit segment-list R7_VIA_EVEN
Verification
We can see that both policies are up, and that R1 correctly resolved the MPLS label for each SID descriptor (IP address):

If we look at the forwarding details for these policies, we can see the next hop is correct for each one. The ODD policy has a nexthop of R3, and the EVEN policy has a nethop of R4.

By setting the corresponding color on routes advertised from R7, we can verify the policies are working correctly:
#R7
extcommunity-set opaque TEST
10
end-set
!
route-policy TEST
set extcommunity color TEST
end-policy
!
router bgp 100
vrf BLUE
neighbor 192.168.107.107
address-family ipv4 unicast
route-policy TEST in

#R7
extcommunity-set opaque TEST
20
end-set

Summary
This method does not seem particularly scalable, as you cannot use ODN. Instead, configuring link colors (affinity) different for links in each plane might be an easier way to get this behavior with ODN policies, so that you don’t need a “full mesh” of SR-TE policies between all PEs.
Last updated