Hmm, I have been running babeld with source-specific routes for quite some time and never run into this problem. Are you sure you didn't botch the netlink calls? ;)
I don't think so, I even tested inserting the routes with ip route without running bird. It was a documented behavior in net/ipv6/Kconfig in the kernel source. config IPV6_SUBTREES bool "IPv6: source address based routing" depends on IPV6_MULTIPLE_TABLES ---help--- Enable routing by source address or prefix. The destination address is still the primary routing key, so mixing normal and source prefix specific routes in the same routing table may sometimes lead to unintended routing behavior. This can be avoided by defining different routing tables for the normal and source prefix specific routes. If unsure, say N. On Mon, Mar 6, 2017 at 11:40 AM, Toke Høiland-Jørgensen <toke@toke.dk> wrote:
Dean <dluga93@gmail.com> writes:
There is already an implementation for that here (https://github.com/jech/babeld), if you want to check. I think this supports both IPV6_SUBTREES and policy routing, not sure.
I meant for the Bird Babel implementation. And yeah, that was what I was referring to with policy routing:)
And I encountered another problem with IPV6_SUBTREES yesterday. Having source constrained routes and normal routes in the same routing table leads to unintended behavior. In my case, the normal route was ignored. If I had both a normal route and a source constrained route (with a wrong source address) in the table, it automatically returned a Network Unreachable, ignoring the normal route which should have worked.
Hmm, I have been running babeld with source-specific routes for quite some time and never run into this problem. Are you sure you didn't botch the netlink calls? ;)
-Toke