I am running KVM on a host with 2 virtual servers.
Each virtual server has a own bridge interface on the host
VPS1 has br1
VPS2 has br2
Each virtual server has a own ipv4 and a ipv6.
The virtual servers has no problem communicating with internet or with eachother through ipv4.
However, with ipv6, they can only communicate with internet and NOT with eachother.
The host can ping the 2 virtual servers without any problems, but they cannot ping eachother.
iptables has been set to ACCEPT on all chains, so it is not the problem.
VPS1 has ipv6 = 2a01:4f8:xxx:xxx::10
VPS2 has ipv6 = 2a01:4f8:xxx:xxx::5
the host has the following routes set:
ip route add 2a01:4f8:xxx:xxx::10 dev br1
ip route add 2a01:4f8:xxx:xxx::5 dev br2
When I do a ping from VPS2 to VPS1, I see the following on the host:
tcpdump -i br1
15:32:27.704404 IP6 2a01:4f8:xxx:xxx::10 > ff02::1:ff00:5: ICMP6, neighbor solicitation, who has 2a01:4f8:xxx:xxx::5, length 32
So it seems like the host is seeing the request coming from VPS1 on br1. But for some reason, it does not forward it to br2. Instead it is asking where the destination IP is through ipv6 multicast.
Anyone has a clue what is going on? I find this very strange, as it is working fine with ipv4 with the exact same settings and routes.