This explanation was posted in the Kernel mailing list by Jiri Bohac:
==========================
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 (different 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 … )
@IanWade: I checked and YaST is setting the option in /etc/sysctl.conf, at least
for 11.4 M4. Please check yours.
Is the router yours? It seems to be the real problem. On my system, it doesn’t
matter whether IPv6 is enabled or disabled. I guess mine is OK.