frr icon indicating copy to clipboard operation
frr copied to clipboard

OSPFv3 NSSA: redistributed kernel route wrongly shows as directly connected

Open karelvanhecke opened this issue 3 years ago • 2 comments


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

karelvanhecke avatar Aug 03 '22 15:08 karelvanhecke

Please provide config and show output to show what you think is wrong.

donaldsharp avatar Aug 03 '22 15:08 donaldsharp

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.

karelvanhecke avatar Aug 03 '22 16:08 karelvanhecke

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.

github-actions[bot] avatar Feb 06 '23 01:02 github-actions[bot]

This issue will be automatically closed in the specified period unless there is further activity.

frrbot[bot] avatar Feb 06 '23 01:02 frrbot[bot]