Table 1. Feature History Table
Feature Name
|
Release Information
|
Feature Description
|
Weighted Anycast SID-Aware Path Computation
|
Release 7.3.1
|
This feature extends Anycast SIDs with weighted nodes.
Weighted Anycast nodes advertise a cost (weight) along with the Anycast SID. Traffic is then distributed according to the
weights.
Weighted Anycast SIDs allow for highly available paths with node redundancy and path optimality that provide Fast ReRoute
(FRR) for node failure of service provider edge (PE) routers and ABR/ASBRs nodes in multi-domain networks.
|
The Weighted Anycast SID feature extends Anycast SIDs with weighted nodes.
Anycast routing enables the steering of traffic toward multiple advertising nodes, providing load-balancing and redundancy.
Packets addressed to an Anycast address are forwarded to the topologically nearest nodes. With the default (unweighted) behavior,
the traffic is load-balanced across each node in the group evenly.
Weighted Anycast nodes advertise a cost along with the Anycast SID. This cost serves as a weight. Traffic to the SID is then
distributed according to the weights.
Weighted Anycast SIDs allow for highly available paths with node redundancy and path optimality that provide FRR for node
failure of service provider edge (PE) routers and ABR/ASBR nodes in multi-domain networks.
In addition, Weighted Anycast SIDs allow for scaled computation at the PCE of multi-domain paths.
The native SR path computation algorithms are augmented to compute optimum paths relying on Weighted Anycast SIDs during
path encoding.
Consider the example depicted below. Nodes A and B are part of the same Anycast groups, represented by different SIDs (100,
200, 300).
-
SID 100 sends traffic preferentially to node A
-
SID 200 sends traffic preferentially to node B
-
SID 300 sends traffic equally to both nodes
The Anycast replacement algorithm runs after an SR-TE path has been computed. It examines the prefix SIDs in the path and
swaps them with Anycast SIDs that contain the same node. The new paths are checked against the original constraints and kept
if suitable.
If a node is part of multiple Anycast groups, the algorithm considers them according to their weights.
Example
The following figure shows 3 isolated IGP domains without redistribution and without BGP 3107. Each Area Border Router (ABR)
1 through 4 is configured with a node SID. The link delays are also shown.

ABRs 1 and 2 share the following Anycast SIDs:
-
16012 – sends traffic to either Node 1 or 2 (the topologically nearest node)
-
17012 – sends traffic preferentially to Node 1
-
18012 – sends traffic preferentially to Node 2
ABRs 3 and 4 share the following Anycast SIDs:
-
16034 – sends traffic either Node 3 or 4 (the topologically nearest node)
-
17034 – sends traffic preferentially to Node 3
-
18034 – sends traffic preferentially to Node 4
Consider the case where routers A and Z are provider edge (PE) routers in the same VPN. Router A receives a VPN route with
BGP next-hop to router Z. Router A resolves the SR path to router Z using SR-ODN or SR-PCE.
Before considering Anycast SIDs, the head-end router or SR-PCE computes the SID list.

In this case, the optimized computed path from router A to router Z is 16002 > 16003 > 1600Z.
Using the weighted Anycast-encoded SID list, the optimized computed path from router A to router Z is 18012 > 17034 > 1600Z.
This path has a cumulative delay of 31.

Using node SIDs, failures inside each domain (for example, links) benefit from fast TI-LFA convergence. However, failures
of the ABR nodes would be dependent on SR-PCE reoptimization.
Using weighted Anycast SIDs, failures of the ABR nodes and failures inside each domain benefit from fast TI-LFA convergence.
Configuration
Based on the topology in Figure NN, this example shows the Weighted Anycast SID configuration of ABRs 1 and 2.
ABR 1 Configuration
RP/0/RSP0/CPU0:ios(config)# router isis 1
RP/0/RSP0/CPU0:ios(config-isis)# interface Loopback0
RP/0/RSP0/CPU0:ios(config-isis-if)# address-family ipv4 unicast
RP/0/RSP0/CPU0:ios(config-isis-if-af)# prefix-sid absolute 16001
RP/0/RSP0/CPU0:ios(config-isis-if-af)# exit
RP/0/RSP0/CPU0:ios(config-isis-if)# exit
RP/0/RSP0/CPU0:ios(config-isis)# interface Loopback1
RP/0/RSP0/CPU0:ios(config-isis-if)# prefix-attributes anycast
RP/0/RSP0/CPU0:ios(config-isis-if)# address-family ipv4 unicast
RP/0/RSP0/CPU0:ios(config-isis-if-af)# prefix-sid absolute 16012
RP/0/RSP0/CPU0:ios(config-isis-if-af)# exit
RP/0/RSP0/CPU0:ios(config-isis-if)# exit
RP/0/RSP0/CPU0:ios(config-isis)# interface Loopback2
RP/0/RSP0/CPU0:ios(config-isis-if)# prefix-attributes anycast
RP/0/RSP0/CPU0:ios(config-isis-if)# address-family ipv4 unicast
RP/0/RSP0/CPU0:ios(config-isis-if-af)# weight 1
RP/0/RSP0/CPU0:ios(config-isis-if-af)# prefix-sid absolute 17012
RP/0/RSP0/CPU0:ios(config-isis-if-af)# exit
RP/0/RSP0/CPU0:ios(config-isis-if)# exit
RP/0/RSP0/CPU0:ios(config-isis)# interface Loopback3
RP/0/RSP0/CPU0:ios(config-isis-if)# prefix-attributes anycast
RP/0/RSP0/CPU0:ios(config-isis-if)# address-family ipv4 unicast
RP/0/RSP0/CPU0:ios(config-isis-if-af)# weight 100000
RP/0/RSP0/CPU0:ios(config-isis-if-af)# prefix-sid absolute 18012
Running Config
router isis 1
interface Loopback0
address-family ipv4 unicast
prefix-sid absolute 16001 // Node SID
!
!
interface Loopback1
prefix-attributes anycast
address-family ipv4 unicast
prefix-sid absolute 16012 //Anycast SID – (prefer node 1 or 2)
!
!
interface Loopback2
prefix-attributes anycast
address-family ipv4 unicast
weight 1
prefix-sid absolute 17012 // Weighted Anycast SID (prefer node 1)
!
!
interface Loopback3
prefix-attributes anycast
address-family ipv4 unicast
weight 100000
prefix-sid absolute 18012 // Weighted Anycast SID (prefer node 2)
!
!
!
end
ABR 2 Configuration
RP/0/RSP0/CPU0:ios(config)# router isis 1
RP/0/RSP0/CPU0:ios(config-isis)# interface Loopback0
RP/0/RSP0/CPU0:ios(config-isis-if)# address-family ipv4 unicast
RP/0/RSP0/CPU0:ios(config-isis-if-af)# prefix-sid absolute 16001
RP/0/RSP0/CPU0:ios(config-isis-if-af)# exit
RP/0/RSP0/CPU0:ios(config-isis-if)# exit
RP/0/RSP0/CPU0:ios(config-isis)# interface Loopback1
RP/0/RSP0/CPU0:ios(config-isis-if)# prefix-attributes anycast
RP/0/RSP0/CPU0:ios(config-isis-if)# address-family ipv4 unicast
RP/0/RSP0/CPU0:ios(config-isis-if-af)# prefix-sid absolute 16012
RP/0/RSP0/CPU0:ios(config-isis-if-af)# exit
RP/0/RSP0/CPU0:ios(config-isis-if)# exit
RP/0/RSP0/CPU0:ios(config-isis)# interface Loopback2
RP/0/RSP0/CPU0:ios(config-isis-if)# prefix-attributes anycast
RP/0/RSP0/CPU0:ios(config-isis-if)# address-family ipv4 unicast
RP/0/RSP0/CPU0:ios(config-isis-if-af)# weight 100000
RP/0/RSP0/CPU0:ios(config-isis-if-af)# prefix-sid absolute 17012
RP/0/RSP0/CPU0:ios(config-isis-if-af)# exit
RP/0/RSP0/CPU0:ios(config-isis-if)# exit
RP/0/RSP0/CPU0:ios(config-isis)# interface Loopback3
RP/0/RSP0/CPU0:ios(config-isis-if)# prefix-attributes anycast
RP/0/RSP0/CPU0:ios(config-isis-if)# address-family ipv4 unicast
RP/0/RSP0/CPU0:ios(config-isis-if-af)# weight 1
RP/0/RSP0/CPU0:ios(config-isis-if-af)# prefix-sid absolute 18012
Running Config
router isis 1
interface Loopback0
address-family ipv4 unicast
prefix-sid absolute 16002 // Node SID
!
!
interface Loopback1
prefix-attributes anycast
address-family ipv4 unicast
prefix-sid absolute 16012 // Anycast SID (prefer any)
!
!
interface Loopback2
prefix-attributes anycast
address-family ipv4 unicast
weight 100000
prefix-sid absolute 17012 // Weighted Anycast SID (prefer node 1)
!
!
interface Loopback3
prefix-attributes anycast
address-family ipv4 unicast
weight 1
prefix-sid absolute 18012 // Weighted Anycast SID (prefer node 2)
!
!
!
end