Macvlan does not work on virtual machine

on physical machine macvlan is working well.

but it doesn't work on virtual machine , This test was conducted on an ESXI virtual machine, routeros v7.22.1 x86

So, am I missing any necessary settings?

You may well be. I don't specifically know about esxi, but most hypervisors have a "mac lock" functionality, where they filter any packets coming from or going to the vm that don't have the correct (as assigned by them) mac address. This is specifically what macvlan does. This functionality can be turned off.

Your theoretical knowledge is so solid that I admire it. You directly hit the key point

It is indeed the mechanism of virtualization system. It assigns a MAC address to the virtual machine network card, and the default security settings only allow this network card to receive data frames with the destination address of this MAC and send data frames with this MAC address as the source address.

After I tried to turn off security settings in ESXI, macvlan worked normally.

Thank you very much.