Re: Question about proper IPv6 configuration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux