duplicate device routes on linux

Petr Boltík petr.boltik at gmail.com
Mon Feb 20 15:01:07 CET 2023


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 <ico at 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 at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20230220/9f45fd1f/attachment.htm>


More information about the Bird-users mailing list