Trying to communicate between virtual servers on the same host through ipv6

Posted by Daniele Testa on Server Fault See other posts from Server Fault or by Daniele Testa
Published on 2013-08-02T14:53:36Z Indexed on 2013/08/02 15:41 UTC
Read the original article Hit count: 186

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.

© Server Fault or respective owner

Related posts about networking

Related posts about router