Yes, this is the default behavior. You can use RTS_DEVICE filter. Petr
protocol kernel kernel4 { > ipv4 { import all; export where source != RTS_DEVICE; }; > learn; > scan time 300; > } > > protocol kernel kernel6 { > ipv6 { import all; export where source != RTS_DEVICE; }; > learn; > scan time 300; > } > > po 20. 2. 2023 v 14:52 odesílatel ico <i...@petrzalka.net> napsal: > Hello all, > > Here at $work we are using bird for OSPF at some 30 linux boxes. Works > great. But there is a thing that confuses me: > > Let's have some simple linux box: > > # ip addr > 1: lo: ...rest of loopback output > 2: eth0@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue > state UP group default qlen 1000 > link/ether 86:37:65:15:fa:d9 brd ff:ff:ff:ff:ff:ff link-netns r2 > inet 10.0.0.1/24 scope global eth0 > valid_lft forever preferred_lft forever > # ip route > 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 > > As you can see, there is single interface with single address, single > device route automatically generated by kernel. Simple bird config: > > # cat bird.conf > # BEGIN bird config > router id 10.0.0.1; > protocol device { > scan time 3; > } > protocol kernel krnl4 { > ipv4 { > table master4; > import all; export all; > }; > learn; > } > protocol ospf ospf1 { > ipv4 { > table master4; > import all; export all; > }; > area 0.0.0.0 { > stub no; > interface "eth0" { > stub yes; > }; > }; > } > # END bird config > > When I run bird with this configuration, it inserts another route: > > # ip route > 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 > 10.0.0.0/24 dev eth0 proto bird scope link metric 32 > > Is this expected/correct behaviour? Or should I somehow filter those > device routes out? I want those device routes to be read by OSPF, of > course, just not to output them back. What is the best way to get rid of > them? > > Another unrelated question: When I run bird, it logs this: > > bird: KRT: Netlink strict checking failed, will scan all tables at once > bird: Started > > Should I do something about that failed strict check? Is it important or > only some info message I shouldn't worry about? > > Thank you > > ico >