Automatic source routing

Emmanuel Thierry ml at
Tue Sep 24 14:30:17 CEST 2013


I'm working on multi-interfaces setups on IPv6 with linux. I experience some troubles with routing.

I have too interfaces eth1 and eth2, each connected to a different access router, each router advertising its own prefix in RAs. eth1 and eth2 are configured to perform SLAAC and accept default router from RAs.
Unfortunately, when performing, for instance, a ping from one specific interface or source address, the ping always use the most recent default router.

(eth1 = fd01::5054::ff:fe00:11)
(eth2 =  fd02::5054::ff:fe00:12)
E.g. if i perform the following on a 3.11.1 linux kernel (the same on former versions):
$ ping6 -I fd02::5054::ff:fe00:12 fd08::1

... the ping might go through eth1 with fd02::5054::ff:fe00:12 as a source address.

Worse happens if i use the interface name:
$ ping6 -I eth2 fd08::1

... the ping might go through eth1 with fd01::5054::ff:fe00:11 as a source address.

The problem is really annoying if you want to use autoconfiguration in a multihoming scenario without the need for an external daemon. But maybe i missed a sysctl flag or something like that.

Do you confirm the problem ? Does someone knows any automatic (i mean in-kernel) solution to source route packets through the right interface ?

Emmanuel Thierry

More information about the ipv6-ops mailing list