Hi, Am Dienstag, 2. Februar 2010 schrieb Ondrej Zajicek:
On Tue, Feb 02, 2010 at 06:57:14PM +0000, Chris Webb wrote:
This seems to work fine, apart from the message "bird: Netlink: File exists" appearing in syslog every minute.
in case this is related to bird being unable to overwrite the existing static routes?
Yes, the behavior is that BIRD will ignore existing 'alien' routes and can't overwrite them. As routes in kernel routing table have protocol tag specifying who added such route, we remove 'our' unexpected routes (for example, if BIRD is killed and restarted), but ignore 'alien' routes.
I also ran into that bug with six equal routers doing OSPF and one default router not doing OSPF. Each of the OSPF routers has a default route and two unreachable routes (ip r a ... proto static), that were tried to be overwritten by BIRD, because BIRD liked the same route via OSPF better. From what I read in ip(8) (search for "rt_protos") the correct behaviour would be: * On start up purge all routes with protocol boot * Respect routes with protocol static and give them higher precedence than dynamic routes. Routes with protocol kernel seem to be handled by the direct protocol. Perhaps it's using the addresses on the interfaces instead. For now I have set preference values manually (direct 20, kernel 15, ospf 10) and the log messages are gone. Greetings Timo -- Timo Weingärtner Abteilung Technische InfraStruktur Uni Karlsruhe
On Mon, Sep 13, 2010 at 08:48:50PM +0200, Timo Weingärtner wrote:
Hi,
Am Dienstag, 2. Februar 2010 schrieb Ondrej Zajicek:
On Tue, Feb 02, 2010 at 06:57:14PM +0000, Chris Webb wrote:
This seems to work fine, apart from the message "bird: Netlink: File exists" appearing in syslog every minute.
in case this is related to bird being unable to overwrite the existing static routes?
Yes, the behavior is that BIRD will ignore existing 'alien' routes and can't overwrite them. As routes in kernel routing table have protocol tag specifying who added such route, we remove 'our' unexpected routes (for example, if BIRD is killed and restarted), but ignore 'alien' routes.
I also ran into that bug with six equal routers doing OSPF and one default router not doing OSPF. Each of the OSPF routers has a default route and two unreachable routes (ip r a ... proto static), that were tried to be overwritten by BIRD, because BIRD liked the same route via OSPF better.
Yes, currently BIRD does not purge any user route. Therefore the preference for kernel routes should be probably higher than the preference of most dynamic protocols.
From what I read in ip(8) (search for "rt_protos") the correct behaviour would be: * On start up purge all routes with protocol boot * Respect routes with protocol static and give them higher precedence than dynamic routes.
I thought about using this behavior, but it has one big problem - although user-configured routes should be protocol static, 'ip' tool sets protocol boot by default and most users don't know about protocol field so they don't change it. Therefore routes of protocol static are practically nonexistent and purging most user routes by default seems to me as unexpected behavior for users. I am planning to implement some config option that enables the behavior suggested by ip(8). -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
participants (2)
-
Ondrej Zajicek -
Timo Weingärtner