Source Address Dependent Routing for BIRD

Dean dluga93 at
Sun Mar 5 21:21:43 CET 2017

Static routes can be added in the configuration file with a source

address constraint. To match an entry in the routing table, you have to
match both the source and destination address. The same thing as running
the command:

ip -6 route add 2001:db9:1::/64 from 2001:db9:2::/64 dev eth0

Meaning we can only send packets to the network 2001:db9:1::/64 if the
source address is part of the 2001:db9:2::/64 subnet. Otherwise we get a
network unreachable message. One little problem is that it needs the
IPV6_SUBTREES kernel option, which is available in linux kernel versions
later than 3.11, but it might not be enabled by default. It's being
explored in the IETF as a way of handling multihoming for IPv6 without NAT.

OSPF can then spread the route through the network. It's also called
source-specific routing. There's a paper out there for an implementation
in babel.

About the patch: it might be a little long, about 60 commits. And I
started working last year, on BIRD 1.6.2, so some things might be
different. Should I still just send each commit one by one here?

On 03/05/2017 08:57 PM, Ondrej Zajicek wrote:
> On Sun, Mar 05, 2017 at 07:39:57PM +0100, Dean wrote:
>> Hello,
>> I have been working on implementing SADR (Source Address Dependent Routing)
>> in BIRD for the static and OSPFv3 protocols.
> Interesting. How it works?
>> What's the procedure for publishing the code? Should I put it on a
>> repository online and send you a link?
> Generally just send a patch / patch set to the mailing list.

More information about the Bird-users mailing list