On Sat, 2006-05-06 at 11:39 +0900, YOSHIFUJI Hideaki wrote: > In article <[EMAIL PROTECTED]> (at Sat, 06 May 2006 01:53:21 +0100), David > Woodhouse <[EMAIL PROTECTED]> says: > > > There is a default route, because I believe that's the only thing that > > radvd can do. I cannot advertise a route to _only_ fec0::/16, can I? > > Yes, you can, via Route Information option. > (>= 2.6.17-rc1 support this.)
Hm. Has radvd also been updated to send it, or did I miss it when I looked for such an option? Either way, this isn't particularly useful to me yet, since no deployed systems support it. > Anyway, it is valid to use (obsolete) site-local source address > for global destination address. > The problem seems that router does NOT send ICMPv6 destination > unreachable to the sender. I don't know why, but it SHOULD. I'll pursue that question later. It wouldn't be _sufficient_ since there are (buggy) programs, including Evolution, which will not fall back to the second and subsequent addresses from getaddrinfo() -- they'll just give up when the first attempt to connect fails. So we really do need the IPv4 address to be listed _first_ in the results, as it used to be. Glibc _used_ to do what we want -- I always attributed it to Rule 2 of the destination address selection, without looking hard at the implementation details. Let's forget about any details of my current implementation and I'll ask a _simple_ question... I have machines on an internal company network, which is all RFC1918 IPv4 addresses and has connectivity by NAT to the outside world. These machines are mostly Linux, of various versions. I wish to deploy IPv6 internally so that we can develop and test IPv6 support. There is _no_ chance of getting proper IPv6 connectivity to the outside world through the corporate firewall. I'd like IPv6 to be usable _internally_ though, without breaking connectivity to the outside world over IPv4. How should I do this? In the past, I've done it with site-local addresses. A machine on each Ethernet subnet runs radvd, and machines pick up a site-local address (and default route) automatically. The machines running radvd also have IPv6-over-IPv4 tunnels for routing between subnets. Glibc's getaddrinfo() has in the past given me optimal behaviour. If connecting to a remote machine which has a site-local IPv6 address, it's favoured that site-local address. If connecting to a remote machine which has a _Global_ IPv6 address, it's given the IPv4 address first instead. On new kernels, however, glibc has started to return IPv6 addresses even for external machines which can't be reached. Hence my mail about $SUBJECT. If I'm doing this the wrong way, what _should_ I be doing? Uli's response has been to switch glibc so that it _always_ favours IPv4 over IPv6, which AIUI basically means that IPv6 will never get _any_ usage on Linux machines unless in an IPv6-only environment rather than dual-stack. I.e. Unless I publish _only_ an AAAA record for my server instead of both A and AAAA records, I won't get any IPv6 traffic. I think it would be best to avoid that situation. -- dwmw2 - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html