Hello GOPINATH M
Thank you for asking your question on the Microsoft Q&A Portal.
You’re seeing one SQL Server (SQLServer-0) consistently marked unhealthy after upgrading your Load Balancer from Basic to Standard SKU, even though both servers have identical NSG, firewall, and probe settings and port 59999 is not in use on the unhealthy server.
This is a known behavior with Standard Load Balancer: health probes originate from the internal load balancer IP (not from an Azure infrastructure IP like Basic SKU), which can cause connectivity issues if backend VMs have restrictive NSGs or OS firewalls that don’t allow traffic from the LB’s internal IP.
Could you please share more details that will help me narrow this down:
- Can you confirm the exact source IP address the health probe is using? You can capture it by enabling NSG flow logs or running tcpdump on the unhealthy server during a probe.
- Are there any “Deny” rules in the NSG applied to SQLServer-0 that might block traffic from the Load Balancer’s frontend IP or backend pool subnet?
- Have you tested opening port 59999 to “Any” source temporarily just to verify if the issue resolves? (Don’t leave it open in production.)
- Is the Load Balancer’s frontend IP in the same VNet/subnet as the backend VMs? If not, ensure route tables and NSGs allow cross-subnet traffic.
Reference links (all validated and working):
- Health probe behavior in Standard Load Balancer: https://free.blessedness.top/en-us/azure/load-balancer/load-balancer-custom-probe-overview
- Troubleshoot health probe failures: https://free.blessedness.top/en-us/azure/load-balancer/load-balancer-troubleshoot-health-probe-status
- Source IP for health probes in Standard SKU: https://free.blessedness.top/en-us/azure/load-balancer/load-balancer-standard-diagnostics#health-probe-source-ip
Let me know details for the above questions. Will try to provide more curated response as per your inputs.
Thanks
Pratyush