frr
frr copied to clipboard
OSPFv3 NSSA: redistributed kernel route wrongly shows as directly connected
Describe the bug
- [ x] Did you check if this is a duplicate issue?
- [ ] Did you test it on the latest FRRouting/frr master branch?
To Reproduce
- OSPFv3 NSSA containing router1 (frrouting), router2 (frrouting) and router3 (Cisco IOS)
- router1 has kernel route to fd00::/64 and redistributes this route via OSPFv3
- router2 has kernel route to fd01::/64 and redistributes this route via OSPFv3
- router3 correctly shows router1 as nexthop for fd00::/64 and router2 as nexthop for fd01::/64.
- router 1 wrongly shows fd01::/64 as directly connected.
- router 2 wrongly shows fd00::/64 as directly connected.
- Happens when the area is a Not So Stubby Area (NSSA) and only affects OSPFv3
Expected behavior
- router 1 shows router 2 as nexthop for fd01::/64.
- router 2 shows router 1 as nexthop for fd00::/64.
Versions
- OS Version: RHEL8.6, RHEL9.0
- Kernel: 4.18, 5.14
- FRR Version: 8.2.2, 8.3
Please provide config and show output to show what you think is wrong.
router1 & router2 configuration:
interface eth0
ip ospf area 1
ipv6 ospf6 area 1
exit
!
router ospf
redistribute kernel
area 1 nssa
exit
!
router ospf6
redistribute kernel
area 1 nssa
exit
!
end
router1 routing table:
# sh ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
A - Babel, F - PBR, f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
O ::/0 [110/2] via fe80::4, eth0, weight 1, 00:02:26
K>* ::/0 [0/100] via fe80::4, eth0, 00:03:46
O <prefix_redacted>:8e04::/64 [110/1] is directly connected, eth0, weight 1, 00:02:17
C>* <prefix_redacted>:8e04::/64 is directly connected, eth0, 00:03:46
C>* <prefix_redacted>:8e04::5/128 is directly connected, cilium_host, 00:03:46
K>* <prefix_redacted>:8e40::/64 [0/1024] via <prefix_redacted>:8e40::f558, cilium_host, src <prefix_redacted>:8e04::5, 00:00:25
K>* <prefix_redacted>:8e40::f558/128 [0/1024] is directly connected, cilium_host, 00:00:25
O>* <prefix_redacted>:8e41::/64 [110/20] is directly connected, eth0, weight 1, 00:01:42 ### Received from router2, should be: <prefix_redacted>:8e41::/64 [110/20] via <prefix_redacted>:8e04::a ###
O>* <prefix_redacted>:8e41::4f34/128 [110/20] is directly connected, eth0, weight 1, 00:01:42 ### Received from router2, should be: <prefix_redacted>:8e41::4f34/128 [110/20] via <prefix_redacted>:8e04::a ###
C * fe80::/64 is directly connected, lxcda272c180790, 00:03:46
C * fe80::/64 is directly connected, lxc_health, 00:03:46
C * fe80::/64 is directly connected, cilium_host, 00:03:46
C * fe80::/64 is directly connected, cilium_net, 00:03:46
C>* fe80::/64 is directly connected, eth0, 00:03:46
router2 routing table
# sh ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
A - Babel, F - PBR, f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
O ::/0 [110/2] via fe80::4, eth0, weight 1, 00:02:49
K>* ::/0 [0/100] via fe80::4, eth0, 00:04:17
O <prefix_redacted>:8e04::/64 [110/1] is directly connected, eth0, weight 1, 00:02:49
C>* <prefix_redacted>:8e04::/64 is directly connected, eth0, 00:04:17
C>* <prefix_redacted>:8e04::a/128 is directly connected, cilium_host, 00:04:17
O>* <prefix_redacted>:8e40::/64 [110/20] is directly connected, eth0, weight 1, 00:02:03 ### Received from router1, should be: <prefix_redacted>:8e40::/64 [110/20] via <prefix_redacted>:8e04::5 ###
O>* <prefix_redacted>:8e40::f558/128 [110/20] is directly connected, eth0, weight 1, 00:02:03 ### Received from router1, should be: <prefix_redacted>:8e40::f558/128 [110/20] via <prefix_redacted>:8e04::5 ###
K>* <prefix_redacted>:8e41::/64 [0/1024] via <prefix_redacted>:8e41::4f34, cilium_host, src <prefix_redacted>:8e04::a, 00:00:02
K>* <prefix_redacted>:8e41::4f34/128 [0/1024] is directly connected, cilium_host, 00:00:02
C * fe80::/64 is directly connected, lxc7fdca77a36cc, 00:04:17
C * fe80::/64 is directly connected, lxc_health, 00:04:17
C * fe80::/64 is directly connected, cilium_host, 00:04:17
C * fe80::/64 is directly connected, cilium_net, 00:04:17
C>* fe80::/64 is directly connected, eth0, 00:04:17
I added comments to the routes that are incorrectly marked as directly connected. Expected result is achieved when the area is not a NSSA. Also works as expected for OSPFv2 NSSA's.
This issue is stale because it has been open 180 days with no activity. Comment or remove the autoclose label in order to avoid having this issue closed.
This issue will be automatically closed in the specified period unless there is further activity.