Source Address Dependent Routing patch

Dean dluga93 at gmail.com
Mon May 22 12:42:00 CEST 2017


On 05/22/2017 12:36 PM, Dean wrote:
> 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.
>
To add SADR routes with ip route you can use 'from'. I can't find this 
in the manual.

ip -6 route add 2001:db9:1::3 from 2001:db9:1::4 dev v0

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


More information about the Bird-users mailing list