In my lab I've set up a QEMU guest ("guest1") intending to add ipv6 support, but things aren't quite right. For some reason, guest1 is unable to see neighbor discovery packets originating from router1, and thus IPv6 communications to the internet are failing.
When sending Ipv6 pings from guest1 to an internet host for example, the ICMPv6 packet gets to the internet host, and a response is generated and observable by router1, and by host1, but this response never reaches guest1.
A closer look with tcpdump shows that router1 is busy trying to resolve guest1's MAC by sending neighbor discovery packets across the VLAN. These neighbor discovery packets can be observed (with tcpdump) on router1, and host1, but not within the VM "guest1".
I suspect this to be a bug (not sure if 802.1q driver, QEMU, or where) but before going too deep I want to share what I'm seeing and ask for any suggestions the community may have, in order to shed more light on what I'm seeing.
I'm including a quick diagram I drafted to show the lab architecture.
BTW IPv4 traffic works fine - guest1 can communicate with the internet and other hosts on the network with no problem. Only IPv6 seems to be having problems.
no iptables filters are in place on any of the hosts to block icmpv6.
OS versions:
- Linux guest1 3.10.0-862.3.2.el7.x86_64 #1 SMP Mon May 21 23:36:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
- Linux host1 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
EDIT 1: In the diagram I show a pong coming back into the network. Actually the pong stops at the router as the router tries to locate the destination of the pong using Neighbor Discovery (ND). So the diagram shows pong but really the ND packets are what are failing. If ND resolution succeeds then the router will have the destination MAC and be able to send the packet to the destination.
