FRRouting / frr

The FRRouting Protocol Suite
https://frrouting.org/
Other
3.21k stars 1.24k forks source link

FRR on Linux do not redistribute default route between instances #14326

Open oldafn opened 1 year ago

oldafn commented 1 year ago

When linux box (without locally set default route) running two instances of OSPF, learn default route from one of them, default route isn't pass to second one although default-information originate is specified.

I experienced this on version frr-9.0-01.el8.x86_64 and frr-8.5.2-02.el8.x86_64 from frr repository running on Red Hat Enterprise Linux 8.7 (kernel 4.18.0-425.13.1.el8_7.x86_64)

Current configuration: ! frr version 9.0 frr defaults traditional hostname inline-vMSP-0 no ipv6 forwarding no service integrated-vtysh-config ! interface bond0 ip ospf 3 area 1 exit ! interface bond2 ip ospf 6 area 0 exit ! router ospf 3 redistribute ospf 6 exit ! router ospf 6 redistribute ospf 3 default-information originate exit !

OSPF database: OSPF Instance: 3

   OSPF Router with ID (192.168.45.225)

            Router Link States (Area 0.0.0.1)

Link ID ADV Router Age Seq# CkSum Link count 192.168.45.92 192.168.45.92 234 0x8000000d 0xf27d 1 192.168.45.225 192.168.45.225 228 0x8000000b 0xebf5 1

            Net Link States (Area 0.0.0.1)

Link ID ADV Router Age Seq# CkSum 192.168.45.92 192.168.45.92 234 0x80000009 0x53ad

            AS External Link States

Link ID ADV Router Age Seq# CkSum Route 0.0.0.0 192.168.45.92 2 0x80000004 0x3c01 E2 0.0.0.0/0 [0x0]

OSPF Instance: 6

   OSPF Router with ID (192.168.45.225)

            Router Link States (Area 0.0.0.0)

Link ID ADV Router Age Seq# CkSum Link count 192.168.17.189 192.168.17.189 124 0x80000007 0xaa62 1 192.168.45.225 192.168.45.225 124 0x80000007 0xab7f 1

            Net Link States (Area 0.0.0.0)

Link ID ADV Router Age Seq# CkSum 192.168.17.29 192.168.45.225 124 0x80000004 0xb9dc

OSPF neighbors: (192.168.45.92 propagate default route, 192.168.17.189 is expecting to get it but isn't) OSPF Instance: 3

Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL 192.168.45.92 1 Full/DR 5m48s 31.517s 192.168.45.92 bond0:192.168.45.225 0 0 0

OSPF Instance: 6

Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL 192.168.17.189 1 Full/Backup 3m24s 31.712s 192.168.17.189 bond2:192.168.17.29 0 0 0

OSPF routes: (note that defalt route learned from neigbor 192.168.45.92 was correctly installed into kernel) OSPF Instance: 3

============ OSPF network routing table ============ N 192.168.45.0/24 [10] area: 0.0.0.1 directly attached to bond0

============ OSPF router routing table ============= R 192.168.45.92 [10] area: 0.0.0.1, ASBR via 192.168.45.92, bond0

============ OSPF external routing table =========== N E2 0.0.0.0/0 [10/10] tag: 0 via 192.168.45.254, bond0

OSPF Instance: 6

============ OSPF network routing table ============ N 192.168.17.0/24 [1] area: 0.0.0.0 directly attached to bond2

============ OSPF router routing table =============

============ OSPF external routing table ===========

Local routes: (note that there must not be any local default route to replicate the issue) Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, 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[3]> 0.0.0.0/0 [110/10] via 192.168.45.254, bond0, weight 1, 00:08:43 C> 172.19.0.0/16 is directly connected, bond1, 02:11:37 O[6] 192.168.17.0/24 [110/1] is directly connected, bond2, weight 1, 00:09:00 C> 192.168.17.0/24 is directly connected, bond2, 02:11:37 O[3] 192.168.45.0/24 [110/10] is directly connected, bond0, weight 1, 00:09:00 C> 192.168.45.0/24 is directly connected, bond0, 02:11:37 K>* 192.168.172.0/24 [0/300] via 192.168.17.254, bond2, 02:11:37

When default route is set statically or lern from kernel then default-information originate works ok. I tried same on Cisco Nexus 9300 router (it uses very similar syntax) and redistribution works ok.

brun064 commented 1 year ago

Here is a patch that is working for me on FRR 8.4.

frr-8.4-ospf-default-information-redist-fix.patch

oldafn commented 1 year ago

This patch is applicable to v8.4 branch only or I can insert it to recent v9/v8.5 branch?

brun064 commented 1 year ago

I’ve only tested it on 8.4. Your results may very.

oldafn commented 1 year ago

Shouldn't such patch be inserted to master branch? Curent behavior looks like a bug.

github-actions[bot] commented 6 months ago

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.

frrbot[bot] commented 6 months ago

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

oldafn commented 6 months ago

I see that after while there isn't any comment from maintainers, is there some plan to fix this bug in main branch?

frrbot[bot] commented 6 months ago

This issue will no longer be automatically closed.