In Openstack, you have unicast RPF mechanism to avoid communication from an unknown source IP.
On your openstack, you have to play with the “allowed address pairs” to allow a flow from a source not the IP of the interface of the VM itself.
First, check you have this extension with the command neutron ext-list and verify you have “allowed address pairs” listed.
2nd, update the port of your VM with a command like this one.
neutron port-update ‘port-id’ --allowed_address_pairs list=true type=dict ip_address=0.0.0.0/0 (you can restrict to a specific subnet)
Hope it helps.