Microsoft improves its Azure Load Balancer platform by introducing a simpler, more robust, and predictable port allocation SNAT algorithm.
Azure Load Balancer is a Layer 4 load balancer that is used to distribute the incoming traffic among healthy instances of services in a load-balanced set. It provides better network performance and availability to applications.
For outbound connectivity, Azure uses two scenarios (Azure Resource Manager and Classic deployment), depending on the resources and configuration utilized by customers. These scenarios are enabled using Source Network Address Translation (SNAT).
SNAT is used in routers and modems to provide internet connectivity to multiple devices in a local area network or small network. The devices connected using a single SNAT based network have unique IP addresses.
The existing SNAT version can allocate 160 ports per instance, allowing users to initiate multiple connections. In case, if there are more number of outbound connections taking place simultaneously and exhausting the allocated SNAT ports, then the instances are allocated additional number of ports. It works well for distributed model services by creating uniform outbound flows.
However, if the services need multiple simultaneous flows with some external destinations as well, the initial port allocation exhausts in short time, causing failures in connection. It becomes difficult to predict the exact number of ports needed to initiate the connection.
To address these issues, Microsoft introduced new SNAT algorithms. The new model helps users in pre-allocating the ports, and evenly distribute them among the backend pool of Load Balancer.
“Each IP configuration gets a pre-determined number of ports. Your services can make decisions on the distribution of connections amongst the backend pool instances and make an efficient use of resources. The change will assist customers in designing their services better and with fewer scaling limitations,” wrote Raman Deep Singh, Senior Program Manager, Azure Software Defined Networking, in a blog post.
Microsoft will enable migration of existing deployments to new SNAT port allocation algorithm by Summer 2018. The new customers of Azure Standard SKU Load Balancer, Basic SKU Load Balancer will be assigned the new version.