I have a similar problem and setup as described in IPv6 does not work over bridge.
My host get a IPv6 prefix but the guest VM only gets a local fe80-prefix.
Using tcpdump I can see that solicit messages are going out from the guest but the host (ubuntu-server) doesn't seem to respond:
arne@ubuntu-server:/var/log$ sudo tcpdump -i br0 host fe80::5054:00ff:fe4d:9ae0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:31:15.314419 IP6 fe80::5054:ff:fe4d:9ae0 > ff02::16: HBH ICMP6, multicast listener report v2, 4 group record(s), length 88
14:31:15.322337 IP6 fe80::5054:ff:fe4d:9ae0 > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
14:31:15.502374 IP6 fe80::5054:ff:fe4d:9ae0 > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
14:31:15.743894 IP6 fe80::5054:ff:fe4d:9ae0.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 solicit
14:31:15.802389 IP6 fe80::5054:ff:fe4d:9ae0 > ff02::16: HBH ICMP6, multicast listener report v2, 4 group record(s), length 88
14:31:17.906580 IP6 fe80::5054:ff:fe4d:9ae0.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 solicit
I had a firewall issue which I fixed by adding the following (copied from similar IPv4 before.rules settings) to /etc/ufw/before6.rules at the end before the commit statement:
# allow bridging (for KVM)
-I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
I am running the host on a Ubuntu 14.04 server so I guess I could have used dnsmasq but I didn't find any howto for it so I used radvd (which had to be installed) with the following configuration in /etc/radvd.conf:
interface br0 {
AdvSendAdvert on;
AdvLinkMTU 1480;
prefix 2a01:79d:xxx::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
This didn't help though so I guess I must have configured it wrong?
Any help appreciated.
Br,
Arne
PS: I wish the Ubuntu documentation included how to configure virtualization to work with IPv6