Page MenuHomeVyOS Platform

IS-IS Redistribution: Route not withdrawn from LSP after prefix-list change
Open, NormalPublic

Description

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

Details

Version
1.4.4
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

c.faria triaged this task as Normal priority.
c.faria created this object in space S1 VyOS Public.
c.faria created this object with edit policy "All Users".