Source Address Dependent Routing patch

Dean dluga93 at gmail.com
Mon May 22 12:36:47 CEST 2017


On 05/22/2017 12:07 PM, Toke Høiland-Jørgensen wrote:
>> Yes, they can. You can use two kernel protocols, one with the SADR
>> channel  and the other with ipv6. Both sets of routes are stored in
>> the same kernel table.
> Ah, yes, but I meant inside Bird in this instance. Can the bird 'struct
> fib' hold both types of routes, or do you need a separate one for each?
No, the fib structure holds only one address type. But depending on how 
you plan to use it, maybe you can simulate non-sadr entries using ::/0 
source prefix?
>> But the kernel bug is still present. Using both types of routes in the
>> same table gives undefined behavior. A hacky workaround would be to
>> replace ::/0 sources with 2000::/3 in netlink, but it would reduce the
>> set of accepted prefixes.
> Do you have a quick howto on triggering this bug?

If you insert two routes with the same destination in the routing table, 
one of them being SADR, the dst-only route is ignored.

2001:db9:1::3 from 2001:db9:1::4 dev v0  metric 1024
2001:db9:1::3 dev v0  metric 1024

Pinging to 2001:db9:1::3 using a source address that's not 2001:db9:1::4 
gives a network unreachable error. Though if you remove the SADR route, 
or if you add another SADR route with the correct source address, it 
works fine.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20170522/0543e12b/attachment.html>


More information about the Bird-users mailing list