Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

I installed Ubuntu 14.04 server a week ago. I use it as a virtual machine host (tasksel installed). meaning am running it with kvm + libvirt.

I have set up the same bridge I had in 13.10.

auto p4p1
iface p4p1 inet manual
    up ifconfig $IFACE up
    down ifconfig $IFACE down

auto br0
iface br0 inet static
    address 46.182.xxx.xxx
    gateway 46.182.xxx.xxx
    dns-nameservers 46.182.xxx.xxx 46.182.xxx.xxx
    bridge_ports p4p1
    bridge_stp off
    bridge_maxwait 0

iface br0 inet6 auto

Against br0 I connect my virtual machines with <source bridge='br0'/> defined in libvirt.

My virtual machines get Router Advertisement messages without problem. All virtual machines get IPv6 addresses.

My problem is that IPv6 does not work over the bridge. But it does work when I turn on tcpdump against br0 for troubleshooting. I have tried setting the interface manually into promiscous mode but that does not make it work, ifconfig br0 promisc.

Why I have the IPv4 addresses on the bridge? I do not know, old habit, never question it. IPv6 does not work on the virtual machine host but the host get IPv6 address by RA, just like the virtual machines.

share|improve this question
If the VMs get IPv6 addresses that means there are IPv6 packets going over the bridge from the network to the VM. Otherwise the VMs wouldn't see the router advertisements. Is there any firewalling or filtering on the bridge? –  Sander Steffann May 4 '14 at 9:05
This is standard ubuntu 14.04 server that I have installed and then added "virtual machine host" with tasksel. There is no firewall activated that I know of. iptables -L is clean. –  Niklas Hagman May 4 '14 at 12:51
IPv6 uses ip6tables. Can you check that one as well? –  Sander Steffann May 4 '14 at 19:49
ip6tables -L is clean –  Niklas Hagman May 5 '14 at 4:54
Hmmm. Weird. All I can think of right now is to run tcpdump/wireshark/tshark on the interfaces to see where the packets get stuck. –  Sander Steffann May 5 '14 at 13:43

2 Answers 2

have you enabled IPv6 on the interface at all? if the bridge device is br0, then do this:

sysctl net.ipv6.conf.br0.disable_ipv6=0
sysctl net.ipv6.conf.br0.autoconf=1
sysctl net.ipv6.conf.br0.accept_ra=1
sysctl net.ipv6.conf.br0.accept_ra_defrtr=1
share|improve this answer
sysctl net.ipv6.conf.br0.accept_ra=1 is 0 as default. I can not test this because I switched to separated physical interface on the server and then it started to work. So I can not troubleshoot this anymore. Meaning, I have sysctl net.ipv6.conf.br0.accept_ra=0 and it still works for my vhosts. –  Niklas Hagman Jul 7 '14 at 9:51
This is the right answer. –  James Mills 21 hours ago

The only obvious problem I see with your configuration is:

    bridge_stp off

For various reasons STP needs to be enabled on libvirt bridges.

Change the configuration to:

    bridge_stp on

You can also activate it immediately without restarting the network:

$ sudo brctl stp br0 on
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.