Docker swarm vxlan vtep listens on wrong address when using loopbacks (dummy0) for datapath

I have a 3 node swarm I’m working on, and have a frustrating issue:

All three nodes communicate over a direct connect 10Gb ring among, no switching. Each node has a dummy0 interface used as the destination for all services, openvswitch tunnels, gluster, etc… and this is reachable via BGP on each node.

I set up the initial manager and inspect the node and it shows the dummy IP, good!
But as soon as I setup node 2 or 3, the interface that faces node1 is listed in node inspect. This is also reflected in dmesg where I see the vxlan vtep being attached to the LAN interface IP and not the dummy interface IP.

I could just create an openvswitch interface for each server and make docker swarm use that, but docker is the only app that I’ve had this issue.
How can I force docker to listen vtep on the specified ip, and not just chose the IP facing the leader?

Just writing asking if you still need help so the topic appears again at the top in case someone didn’t see it yet, but I’m not using Swarm. If you still have the issue, maybe you can share some commands you used to check the IP addresses and the node state where you can replace the public IPs with a fake IP. It could give users some ideas or just help them understand the issue easier than by reading the description. If you share code or terminal outputs, please, use code blocks (</> button or just three backticks before and after the code in separate lines)