<div dir="ltr"><div dir="ltr">Yes, this is the default behavior. You can use RTS_DEVICE filter.</div><div dir="ltr"><br></div><div dir="ltr">Petr</div><div dir="ltr"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><pre style="white-space:pre-wrap;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.6px;margin-top:0px;margin-bottom:16px;padding:16px;overflow:auto;line-height:1.45;border-radius:6px;color:rgb(36,41,47)"><code style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;padding:0px;margin:0px;background:transparent;border-radius:6px;word-break:normal;border:0px;display:inline;overflow:visible;line-height:inherit">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;
}</code></pre></blockquote></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">po 20. 2. 2023 v 14:52 odesílatel ico <<a href="mailto:ico@petrzalka.net">ico@petrzalka.net</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello all,<br>
<br>
Here at $work we are using bird for OSPF at some 30 linux boxes. Works <br>
great. But there is a thing that confuses me:<br>
<br>
Let's have some simple linux box:<br>
<br>
# ip addr<br>
1: lo: ...rest of loopback output<br>
2: eth0@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue <br>
state UP group default qlen 1000<br>
     link/ether 86:37:65:15:fa:d9 brd ff:ff:ff:ff:ff:ff link-netns r2<br>
     inet <a href="http://10.0.0.1/24" rel="noreferrer" target="_blank">10.0.0.1/24</a> scope global eth0<br>
        valid_lft forever preferred_lft forever<br>
# ip route<br>
<a href="http://10.0.0.0/24" rel="noreferrer" target="_blank">10.0.0.0/24</a> dev eth0 proto kernel scope link src 10.0.0.1<br>
<br>
As you can see, there is single interface with single address, single <br>
device route automatically generated by kernel. Simple bird config:<br>
<br>
# cat bird.conf<br>
# BEGIN bird config<br>
router id 10.0.0.1;<br>
protocol device {<br>
     scan time 3;<br>
}<br>
protocol kernel krnl4 {<br>
     ipv4 {<br>
         table master4;<br>
         import all; export all;<br>
     };<br>
     learn;<br>
}<br>
protocol ospf ospf1 {<br>
     ipv4 {<br>
         table master4;<br>
         import all; export all;<br>
     };<br>
     area 0.0.0.0 {<br>
         stub no;<br>
         interface "eth0" {<br>
             stub yes;<br>
         };<br>
     };<br>
}<br>
# END bird config<br>
<br>
When I run bird with this configuration, it inserts another route:<br>
<br>
# ip route<br>
<a href="http://10.0.0.0/24" rel="noreferrer" target="_blank">10.0.0.0/24</a> dev eth0 proto kernel scope link src 10.0.0.1<br>
<a href="http://10.0.0.0/24" rel="noreferrer" target="_blank">10.0.0.0/24</a> dev eth0 proto bird scope link metric 32<br>
<br>
Is this expected/correct behaviour? Or should I somehow filter those <br>
device routes out? I want those device routes to be read by OSPF, of <br>
course, just not to output them back. What is the best way to get rid of <br>
them?<br>
<br>
Another unrelated question: When I run bird, it logs this:<br>
<br>
bird: KRT: Netlink strict checking failed, will scan all tables at once<br>
bird: Started<br>
<br>
Should I do something about that failed strict check? Is it important or <br>
only some info message I shouldn't worry about?<br>
<br>
Thank you<br>
<br>
ico<br>
</blockquote></div>