Brctl addbr and bonding not working for CentOS6 if IPv6 is disabled

bondingbridgecentos6ipv6rhel6

I set up a CentOS6-XEN4-Server according to these instructions.

Now I want to set up bridges – first manually:

brctl addbr test – but this fails with:

"add Bridge failed: Package not installed"

Googling about that I tried to manually modprobe bridge which triggers an error that is caused-according to dmesg by:

bridge: Unknown symbol ipv6_dev_get_saddr (err 0)

modinfo bridge reveals that the bridge-modules depends on stp,llc and ipv6.

Great. I do not want IPv6, I do not need IPv6 and have blacklisted IPv6.

  1. Is there any way to get brctl running without enabling IPv6?

  2. Why is that depency there at all?

Update 2014-05-14

I found this to be a general CentOS 6/RH 6 problem. It also applies to the bonding module.

The accepted answer describes the root-cause – so this problem will also arise on comparable kernel-versions and is not restricted to CentOS/RedHat/Scentific Linux 6.

Best Answer

it has been discussed on the kernel ML and the conclusion was that users shouldn't disable ipv6 anymore.

quoted from https://bugzilla.redhat.com/show_bug.cgi?id=685053

The workaround for this situation is to not blacklist the ipv6 module, but rather set its disable_ipv6 module option. That way the code gets loaded, but no ipv6 functionality is registered with the kernel so user space can't accesses it.

Update 2014-05-14:

The correct workaround seems to be:

  1. Un-blacklist ipv6 and net-pf-10
  2. create /etc/modprobe.d/ipv6.conf with the following content:

    options ipv6 disable_ipv6=1