How do I specify an IP address of a peer (node) for the node-to-node mesh?

My worker nodes have two addresses assigned, one for iSCSI traffic and one for all other traffic. When I installed calico the first worker node peered with the address I expected, but the second is trying to peer with the iSCSI address and is not establishing (as expected).

Standard Network:
iSCSI network:

I need to modify to How would I accomplish this?

arozar@k8s-cp-1:~$ sudo ./calicoctl node status
Calico process is running.

IPv4 BGP status
| PEER ADDRESS |     PEER TYPE     | STATE |  SINCE   |    INFO     |
|   | node-to-node mesh | up    | 01:34:57 | Established |
|   | node-to-node mesh | up    | 01:37:13 | Established |
|   | node-to-node mesh | start | 01:37:53 | Connect     |
|   | node-to-node mesh | up    | 01:46:34 | Established |

So it looks like if I disable this iSCSI address, reboot it uses the proper address. Then use netplan to re-apply the address. But this seems like a possible issue in the event of a reboot. Is it possible to bind node-to-node mesh to a particular address?

As soon as I re-apply with netplan it roles back over to the iSCSI address.

If you have multiple interfaces, you’ll need to set the IP autodetection method to pick up the right one. See this doc: Configure IP autodetection

Without that, it picks up the first IP that it finds.

Thank you @fasaxc, works like a charm.

The solution:
kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=can-reach=