On Tue, Apr 22, 2025 at 05:32:30PM +1200, Mark Davies wrote: > I've just replaced an archlinux system running 2.14 with a NetBSD system > running 2.17. > > Everything seems to be working fine except that every 20 seconds it > complains: > > KRT: Error sending route XX.XX.XX.XX/XX to kernel: File exists > > for each directly connected network. > > ie it tries to write the directly connected network entries out to the > kernel routing socket and gets told they already exist. > > Whats going wrong here? Should it have determined that they are directly > connected and not try to write them out or is it expecting the write > shouldn't fail or what?
Hi In the past, we had some implicit filter that device routes were not exported to kernel, assuming that they were already there. It did not worked reliably and had some problems, so later we removed it. Currently, we export all routes to the kernel, but use different than default kernel metric, so these routes do not collide with kernel provided ones. Unfortunately, this is available only on Linux and (i think) OpenBSD. You can avoid the warning by filtering the routes in kernel export filter. You can do that automatically by setting up a direct protocol, then filtering out all routes from the direct protocol in kernel export filter: export where source != RTS_DEVICE; -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: [email protected]) "To err is human -- to blame it on a computer is even more so."
