hi,
On Feb 6, 2009, at 9:09 AM, Pascal Hambourg wrote:
eth0 has global address 1234:0:ffff:100::2
Default gateway is 1234:0:ffff:100::1
eth1 has global address 1234:100::1
Computers behind eth1 using 1234:100::1 as default gateway, their
connectivity is fine.
And here started my problem, on the gateway i would like to
maintain a service, eg. NTP.
programs picks up the address 1234:0:ffff:100::2 so they won't
reach their destination.
So i added the ip 1234:100::1 to eth0 too (noticed that programs
picks up the last added IP address mostly),
Yes, the IPv6 default source address selection in the kernel is
kinda tricky.
basically it is less tricky than in IPv4 because the IPv6 source
address selection follows the rules defined in RFC3484 while the IPv4
selection is quite depends upon implementation.
the problem here is when multiple address is configured with a host,
IPv6 source address selection applies address-scope matching and then
destination-prefix matching but doesn't involve the route table (as
ipv4 does). in IPv6, it is believed coupling source address selection
with routing table may cause scalability issues. however, if you have
more than one addresses, equivalent in the scope and prefix matching
towards the destination, then the kernel will pick up one (typically
the first one) for your communications. therefore, Pascal's comment is
right: making a policy route table in IPv6 doesn't change the way of
source address selection.
in real practice, your case is a typical multi-homing configuration,
where you have eth0 connected to a subnet, 1234:0:ffff:100::/64, while
eth1 to another, 1234:100::/64, and right now the global connectivity
to eth0 is broken (by the ISP, in your case). theoretically we'd
expect the source address selection mechanism will change the source
address (along with the default routing) automatically but,
unfortunately, right now the system does not.
(sorry i just use the prefix length /64 instead of your real case, to
clarify the problem only.)
shim6 may solve the problem but the shim6 code is still in experiment.
should you have the interest, i recommend you refer to the work (as
well as the implementation) at one of the shim6 researcher's web page: http://inl.info.ucl.ac.be/keywords/shim6
.
Pascal's workaround looks working but i couldn't understand what the
problem it solves.
best,
- M.
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html