Migrations go across the fabric layer and fabric layer sockets bind to the same interface as what heartbeat is configured to. See our Heartbeat Configuration documentation. Specifically, the interface-address
parameter.
interface-address 192.168.1.100 # IP of the NIC to use to send out
# heartbeat and bind fabric ports
That said, Aerospike doesn’t determine which IP address will be used, that determination is from Linux’s routing. If your public and private interfaces can route to each other than you will likely not get the result you want. You either need to have the interfaces on 2 different and separate networks or configure static routes.
Here is a similar thread for reference: Fabric listener on different NIC