Macvlan based interface pings from host but not from namespace

OK, so, for posterity, the fact that tcpdump makes all suddenly works should have put me on track. What it does internally is switch eth0 into promiscuous mode. That is to say, eth0 will yield all the network traffic, not only the one with the server's main MAC

However, this is precisely how macvlan works: it adds a new secondary virtual MAC address which the "physical" (that's a VM) network adapter doesn't know.

So the easy workaround is to manually: ifconfig eth0 promisc

I hope it helps !