Skip to content

Latest commit

 

History

History
16 lines (9 loc) · 2.16 KB

regionalVirtualNetworkIntegration.md

File metadata and controls

16 lines (9 loc) · 2.16 KB

Regional Virtual Network integration

The bots deployed in Azure for the functional tests have configured a Virtual Network to communicate with each other to mitigate a port exhaustion issue within the application services.

Documentation about setting the regional VNet integration can be found in the official documentation.

VNet implementation

image

As you can see in the image, the Virtual Network resource is configured with 3 subnets, one for each language. All of these are integrated into the corresponding Bot's app service to make use of the available IPs for that subnet. Whenever a bot wants to communicate with another bot, the virtual network will recognize the destination address as internal to the VNET and will route the traffic through it. All subnets are interconnected with each other through the VNET. This brings the benefit of increased speed and available ports for connections between the bots. All outbound connections are routed through SNAT to the internet.

image

This configuration lowers the experienced networking issues by reducing the amount of SNAT ports needed to communicate between bots. SNAT ports are managed by Azure and provided in batches of 128. When a resource requires more ports than it currently has, azure auto-provisions another batch for said resource. This process is not instantaneous and, some connections that are waiting for an available port might fail. When routing the traffic inside Azure with VNET, the resources gain access to all available ports in the running OS (65.000+), increasing reliability.