VPN gateway inter-vnet routing with default site

Geoff Lee 20 Reputation points
2025-04-09T10:23:36.5666667+00:00

I've recently come to understand the following:

If:

  1. A VPN gateway is configured in a hub vnet and
  2. Spoke vnets are peered with the hub and configured to use gateway transit to access the S2S VPN connection through this gateway and
  3. Forced tunnelling is enabled with the Default Site setting to route all 0.0.0.0/0 traffic through the gateway

Then:

The default behaviour of the gateway is to route traffic between the spoke VNets. ie if spoke A knows nothing about spoke B, then traffic from spoke A addressed to spoke B will be sent to the 0.0.0.0/0 route and the gateway will pass it between the VNets. I don't think this is made very clear in the documentation and isn't the behaviour I want.

Having discovered this behaviour, I had assumed that the default NSG would at least block this traffic, but as best I can tell, this inter-spoke traffic is also allowed by the 'Vnet' service tag in the default NSG, meaning that when Default Site is enabled, any spoke Vnets that have gateway transit over the hub are effectively transitively peered together.

I have two questions:

  1. Is my understanding correct? My testing bears it out but I'm quite possibly missing something
  2. Is there a recommended way to stop this behaviour? Other than putting a UDR on every spoke subnet to explicitly blackhole traffic for other spoke VNets?
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,716 questions
{count} votes

Accepted answer
  1. Rohith Vinnakota 3,925 Reputation points Microsoft External Staff
    2025-04-10T09:59:27.82+00:00

    Hi @Geoff Lee,

    I tested your scenario. As you mentioned, I was able to communicate between two spoke VNets even though they are not peered with each other. This two vnets are peered with the hub vnet only.

    This my Topology

    User's image

    I deployed two VMs in the two spoke VNets. See this screenshot; they are communicating with each other.
    User's image

    User's image

    See this traffic is going like this:
    spoke01vnet----->VPN Gateway------>spoke02vnet
    User's image

    User's image

    I configured the NGS rule to block this communication.


    Hope the above answer helps! Please let us know do you have any further queries.

    Please do consider to “up-vote” wherever the information provided helps you, this can be beneficial to other community members.

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

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.