Hello,
You’re hitting the classic limitation of NLB in Unicast mode. By design, all cluster nodes share the same virtual MAC, and the switch sees multiple ports advertising that MAC. With modern switches, features like port security, MAC anti-spoofing, and dynamic ARP inspection will immediately flag this as a violation and drop the traffic. That’s why your inter-node heartbeat and convergence are failing.
You don’t need to disable port security globally, but you do need to adjust the configuration on the ports connected to the NLB nodes. The proper fix is to allow multiple instances of the same MAC on those specific ports. On Cisco IOS, for example, you’d configure the NLB-facing interfaces with switchport port-security maximum 2 (or higher depending on node count) and switchport port-security mac-address sticky disabled, so the switch accepts the shared virtual MAC. On some platforms, you may need to explicitly disable MAC spoofing protection or configure a static MAC entry for the NLB virtual MAC pointing to all cluster ports.
Another best practice is to consider switching the NLB cluster to Multicast mode instead of Unicast. In Multicast, the cluster uses a unique multicast MAC that doesn’t conflict with the node MACs, and you avoid the spoofing issue altogether. The trade-off is that you’ll need to configure a static ARP entry on the switch/router mapping the cluster’s virtual IP to the multicast MAC, otherwise upstream devices won’t know how to reach it.
I hope you've found something useful here. If it helps you get more insight into the issue, it's appreciated to accept the answer. Should you have more questions, feel free to leave a message. Have a nice day!
Domic Vo.