When a prefix is removed from a prefix-list used in IS-IS redistribution, the IS-IS daemon does not trigger a redistribution update to withdraw the route from the LSP. The stale route remains in the LSP and continues to be propagated throughout the IS-IS domain until a redistribution recalculation is manually forced. This behavior was reproduced in the lab environment running VyOS 1.4.4 with FRR 9.1.3.
###Environment### VyOS Version1.4.4 FRR Version 9.1.3 IS-IS Level Level-2 Metric Style Wide Redistribution IPv4 static - IS-IS level-2 via route-map
###Lab Topology### 2x VyOS routers, point-to-point eth1 <-> eth1 Router ALAB-CORE-01 | lo: 192.0.2.1/32 | eth1: 198.51.100.1/31 Router BLAB-EDGE-01 | lo: 192.0.2.2/32 | eth1: 198.51.100.0/31
###Steps to Reproduce### ###LAB-CORE-01### # Interfaces set interfaces ethernet eth1 address '198.51.100.1/31' set interfaces ethernet eth1 description 'LAB-CORE-01-LAB-EDGE-01' set interfaces loopback lo address '192.0.2.1/32' set interfaces loopback lo description 'LOOPBACK' # Static routes set protocols static route 203.0.113.0/28 next-hop '198.51.100.0' set protocols static route 203.0.113.16/28 next-hop '198.51.100.0' set protocols static route 203.0.113.32/32 next-hop '198.51.100.0' # Prefix-list set policy prefix-list REDISTRIBUTE_ISIS rule 10 action permit set policy prefix-list REDISTRIBUTE_ISIS rule 10 prefix 203.0.113.0/28 set policy prefix-list REDISTRIBUTE_ISIS rule 20 action permit set policy prefix-list REDISTRIBUTE_ISIS rule 20 prefix 203.0.113.16/28 set policy prefix-list REDISTRIBUTE_ISIS rule 30 action permit set policy prefix-list REDISTRIBUTE_ISIS rule 30 prefix 203.0.113.32/32 # Route-map set policy route-map REDISTRIBUTE-ISIS rule 10 action permit set policy route-map REDISTRIBUTE-ISIS rule 10 match ip address prefix-list REDISTRIBUTE_ISIS set policy route-map REDISTRIBUTE-ISIS rule 100 action deny # IS-IS set protocols isis net '49.0001.1920.0200.0001.00' set protocols isis level 'level-2' set protocols isis metric-style 'wide' set protocols isis dynamic-hostname set protocols isis log-adjacency-changes set protocols isis interface eth1 metric '10' set protocols isis interface eth1 network point-to-point set protocols isis interface lo passive set protocols isis interface lo metric '10' # IS-IS redistribution set protocols isis redistribute ipv4 static level-2 route-map 'REDISTRIBUTE-ISIS' # BGP set protocols bgp system-as '64512' set protocols bgp parameters router-id '192.0.2.1' set protocols bgp neighbor 192.0.2.2 remote-as '64512' set protocols bgp neighbor 192.0.2.2 description 'LAB-EDGE-01' set protocols bgp neighbor 192.0.2.2 update-source 'lo' set protocols bgp neighbor 192.0.2.2 address-family ipv4-unicast nexthop-self # System set system host-name 'LAB-CORE-01' commit save ###LAB-EDGE-01### # Interfaces set interfaces ethernet eth1 address '198.51.100.0/31' set interfaces ethernet eth1 description 'LAB-EDGE-01-LAB-CORE-01' set interfaces loopback lo address '192.0.2.2/32' set interfaces loopback lo description 'LOOPBACK' # Route-map set policy route-map ALLOW-ALL rule 10 action permit # IS-IS set protocols isis net '49.0001.1920.0200.0002.00' set protocols isis level 'level-2' set protocols isis metric-style 'wide' set protocols isis dynamic-hostname set protocols isis log-adjacency-changes set protocols isis interface eth1 metric '10' set protocols isis interface eth1 network point-to-point set protocols isis interface lo passive set protocols isis interface lo metric '10' # BGP set protocols bgp system-as '64512' set protocols bgp parameters router-id '192.0.2.2' set protocols bgp neighbor 192.0.2.1 remote-as '64512' set protocols bgp neighbor 192.0.2.1 description 'LAB-CORE-01' set protocols bgp neighbor 192.0.2.1 update-source 'lo' set protocols bgp neighbor 192.0.2.1 address-family ipv4-unicast nexthop-self set protocols bgp neighbor 192.0.2.1 address-family ipv4-unicast route-map import 'ALLOW-ALL' # System set system host-name 'LAB-EDGE-01'
Verify prefixes are redistributed into IS-IS
LAB-CORE-01
LAB-CORE-01# run show isis database detail
Extended IP Reachability: 203.0.113.0/28 (Metric: 0) Extended IP Reachability: 203.0.113.16/28 (Metric: 0) Extended IP Reachability: 203.0.113.32/32 (Metric: 0)
LAB-EDGE-01
LAB-EDGE-01# run show ip route isis
I>* 203.0.113.0/28 [115/10] via 198.51.100.1, eth1, weight 1
I>* 203.0.113.16/28 [115/10] via 198.51.100.1, eth1, weight 1
I>* 203.0.113.32/32 [115/10] via 198.51.100.1, eth1, weight 1
Remove a prefix from the prefix-list
LAB-CORE-01
delete policy prefix-list REDISTRIBUTE_ISIS rule 20
commit
save
Verify the prefix-list change was applied
LAB-CORE-01
LAB-CORE-01# run show ip prefix-list REDISTRIBUTE_ISIS
ISIS: ip prefix-list REDISTRIBUTE_ISIS: 2 entries
seq 10 permit 203.0.113.0/28 seq 30 permit 203.0.113.32/32 ###seq 20 permit 203.0.113.16/28### ###no longer present###
Observed Behavior
Despite the prefix 203.0.113.16/28 being removed from the prefix-list and the change confirmed in the output above, the IS-IS LSP on LAB-CORE-01 continues to advertise the prefix with Metric: 0:
LAB-CORE-01ALAB-CORE-01# run show isis database detail
LAB-CORE-01.00-00 *
... Extended IP Reachability: 203.0.113.0/28 (Metric: 0) Extended IP Reachability: 203.0.113.16/28 (Metric: 0) ###still present### Extended IP Reachability: 203.0.113.32/32 (Metric: 0)
The prefix continues to be propagated to all IS-IS neighbors:
LAB-EDGE-01# run show ip route 203.0.113.16/28
Routing entry for 203.0.113.16/28
Known via "isis", distance 115, metric 10, best Last update 00:22:32 ago * 198.51.100.1, via eth1, weight 1
Expected Behavior
When a prefix is removed from the prefix-list and the change is committed, the IS-IS daemon should immediately trigger a redistribution update to withdraw the route from the LSP. Expected output after removing rule 20:
LAB-CORE-01# run show isis database detail
LAB-CORE-01.00-00 *
... Extended IP Reachability: 203.0.113.0/28 (Metric: 0) Extended IP Reachability: 203.0.113.32/32 (Metric: 0) ###203.0.113.16/28 should NOT be present###
Validated Workaround
delete protocols isis redistribute
commit
set protocols isis redistribute ipv4 static level-2 route-map REDISTRIBUTE-ISIS
commit
save