Dean <dlug...@gmail.com> writes: > 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.
Very cool! This is on my list of things to add to the Babel protocol as well, so I'll be interested in looking over your patch - the core parts should be reusable, and exchanging source-specific routes between Babel and OSPF should also be doable I guess. As for the lack of IPV6_SUBTREES: It is possible to achieve source-specific routing by using policy routing in Linux (i.e. `ip rule`), but it's somewhat of a hack. May be necessary to do something like that anyway for BSD, though... Here's the draft on the Babel source-specific extension: https://tools.ietf.org/html/draft-boutier-babel-source-specific-01 -Toke