Azure VPN Gateway Slow

Curci, Andrea 0 Reputation points
2023-12-07T12:06:07.04+00:00

Hi Community,

I have a problem with the performance of the Site to Site VPN from Azure to on premises. My scenario is as follows:

I'm using a Test Subscription (for PoC) with 200$ Credit, VPN Virtual Gateway (VpnGw1 Gen 1) and 1 Virtual Machine and 1 Windows 365.

My Region is West Europe.

On Premises infrastructure is formed from 2 Fortinet 100F in HA and 1Gbps internet Up & Down (Used only for test, only 1 client connected).

From OnPremises Firewall i Set the MTU 1400 and MSS 1350 as best practice and i set the static route.

My problem is that whatever changes I make IPerf always returns me the same values which are not very satisfactory:

User's image

When i copy one file from on premises to cloud and vice versa, the speed is (maximum) 8 MB for second.

As a note: I tested (I think) every combination of algorithms, and also the VpnGw2 Gen 2 VPN

I have no more ideas, do you have any?

Thank you

Azure VPN Gateway
Azure VPN Gateway
An Azure service that enables the connection of on-premises networks to Azure through site-to-site virtual private networks.
1,635 questions
{count} votes

1 answer

Sort by: Most helpful
  1. VIVEK DWIVEDI 105 Reputation points Microsoft Employee
    2025-02-05T13:26:37.9866667+00:00

    Hi @Curci, Andrea

    Could you please try iperf with multiple thread as given below which enforces to use Mutiple thread at the same time.
    Also, could you share the Azure VM type and size and on-prem VM/host size ?

    On the Azure VM, open an elevated command prompt, navigate to the path of iperf.exe and execute the following: iperf3 -s. This starts the IPerf server and you should see “Server listening on TCP port 5201”

    1. Note* By default, Iperf listens on port 5201, so you will need to make sure that connections are permitted to port 5201 over the Windows Firewall.
    2. From the on-premises client open an elevated command prompt and execute the following: iperf3 -c <IP ADDRESS OF AZURE VM> -t 300 -f m --logfile %computername%-iperf.log -i 30
      1. Note* Yes - there are two dashes in front of the logfile parameter
    3. Once the previous test has concluded, from the on-premises client, execute the following command: iperf3 -c <IP ADDRESS OF AZURE VM> -t 300 -f m --logfile %computername%-iperf32.log -i 30 -P 32
    4. Now we want to reverse the test. Stop the IPerf server on the Azure VM with CTRL+C. Open an elevated command prompt on the on-premises machine and execute the following: iperf3 -s
    5. **Note: You can actually do the reverse test without switching client and server by running the client side tests with the -R (must be uppercase) switch. This will do a "Reverse" test server sends, client receives.
    6. From the Azure VM open an elevated command prompt and execute the following: iperf3 -c <IP ADDRESS OF ON-PREMISES MACHINE> -t 300 -f m --logfile %computername%-iperf.log -i 30
    7. Once the previous test has concluded, from the Azure VM, execute the following command: iperf3 -c <IP ADDRESS OF ON-PREMISES MACHINE> -t 300 -f m --logfile %computername%-iperf32.log -i 30 -P 32
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.