Hi, On Tue, Nov 30, 2010 at 02:09:16PM -0600, Larry Finger wrote:
Is there some good reason why IPV6 is built into the kernel rather than as a module?
originally, IPv6 got moved in the kernel in our moblin kernel branch to speed up booting. We quickly found that having it as a module in some branches and built-in in other branches caused a lot of pain (differrent behaviour when setting various ipv6 sysctl parameters or when disabling it). Thus we decided to unify all the branches by always building it in. Also, the bonding module now depends on the ipv6 module, so the old method of disablling IPv6 by blacklisting the ipv6 module breaks bonding.
There are a lot of systems where every DNS lookup has to timeout on the IPV6 lookup, thus IPV6 must be disabled.
... or the network infrastructure should be fixed, really. Normally, you should not see any timeouts with IPv6 enabled. When a host has both AAAA and A records in the DNS, an attempt to connect to it will(*) try IPv6 first and then fall back to IPv4. When there is no IPv6 connectivity on the network, the connect(2) call should return immediately and cause no delay at all. One common cause of possible timeout delays is badly configured IPv6 router that advertises an IPv6 default route on the local network without providing the connectivity or sending proper ICMPv6 Destination Unreachable messages.
When it is a module, the YaST setting suffices, but if built in, it must be disabled on the kernel boot line in GRUB.
Another method of disabling IPv6 is sysctl net.ipv6.conf.all.disable_ipv6=1 Also, YaST still has the option to disable IPv6 and does this by setting this sysctl option in /etc/sysctl.conf (*) this is an over-simplification the policy can be tuned with gai.conf and also IPv6 does not always have precedence in some cases (e.g. 2002::/16 ... ) HTH, -- Jiri Bohac <jbohac@suse.cz> SUSE Labs, SUSE CZ -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kernel+help@opensuse.org