bird 2.0.2 does not propagate krt_metric set in static routes when exporting to kernel (and couple other small issues in static protocol)
Alexander Demenshin
aldem-bird.201704 at nk7.net
Sat Apr 14 23:57:36 CEST 2018
Hi,
Looks like setting of krt_metric in bird 2.0.2 does not work like in
bird 1.6.
Construction like:
protocol static static4 {
route 0.0.0.0/0 via 1.1.1.1 {
krt_metric = 10000;
};
}
is accepted, I see the route exported to the kernel, but with default
bird metric 32.
Yes, I know that bird can find the best route and install only that one,
but I prefer
to keep several static routes installed with different metrics, when
bird is used
only to keep them alive.
Another issue, when setting via scope using "%" notation, like:
route 1.2.3.0/24 via 1.1.1.1 % ifname onlink on;
if "ifname" contains characters like "-" or ".", it will be rejected
(syntax error),
while such names are perfectly legal (at least in linux). May be it
makes sense
to allow quoted (TEXT instead of SYM) interface name for such cases (I
tried to
extend grammar and it works perfectly - fix is trivial so there is no
patch attached).
Small annoyance, though not an issue - "route" only accepts CIDR
notation, though
it would be nice to omit "/32" for single IPs, as it looks more
"natural".
Finally - looks like bird 2 docs is a bit incorrect - static route
options
must be followed by ';' as a terminator (according to grammar), while
documentation
lists them without, which produces "syntax error" without any details.
BTW, "onlink" is not documented at all, though I was really happy to
find it :)
PS: As this is my first experience with bird v2 - many thanks - it is
much better :)
--
With best regards,
Alexander.
More information about the Bird-users
mailing list