]> git.ipfire.org Git - thirdparty/bird.git/commit
Better profylaction recursive route loops
authorMaria Matejka <mq@ucw.cz>
Fri, 22 Oct 2021 17:43:55 +0000 (19:43 +0200)
committerMaria Matejka <mq@ucw.cz>
Tue, 6 Sep 2022 13:15:03 +0000 (15:15 +0200)
commit71b3456eede17be6646b7deebff84f34ee5755f7
tree0f5b8bc9790f735db37f396548072670080a8bf0
parentd2c1036a42881d413ec97203ede92a69f8cd218f
Better profylaction recursive route loops

In some specific configurations, it was possible to send BIRD into an
infinite loop of recursive next hop resolution. This was caused by route
priority inversion.

To prevent priority inversions affecting other next hops, we simply
refuse to resolve any next hop if the best route for the matching prefix
is recursive or any other route with the same preference is recursive.

Next hop resolution doesn't change route priority, therefore it is
perfectly OK to resolve BGP next hops e.g. by an OSPF route, yet if the
same (or covering) prefix is also announced by iBGP, by retraction of
the OSPF route we would get a possible priority inversion.
nest/rt-table.c