Share via

Outbound App Service connectivity failure over Global VNet Peering after Hub Address Space change

Samir Tapde 0 Reputation points
2026-04-25T17:15:23.8433333+00:00

Issue Summary

Outbound TCP traffic from a Windows App Service (Premium v3) fails to reach a VM in a peered Spoke VNet across regions (Global Peering), despite VM-to-VM traffic succeeding on the same path.

Environment

Hub VNet: Central India (172.15.0.0/16)

App Service: tradeannexapi integrated into subnet snet-appsvc-v2 (172.15.2.0/24).

Spoke VNet: West India (10.3.0.0/16) via Global Peering.

Destination: Spoke VM (10.3.0.4) listening on port 1926.

Diagnostic Evidence

VM-to-VM Success: A Test VM in the Hub (172.15.0.4) successfully connects to the Spoke VM (10.3.0.4:1926). This confirms Peering, Spoke NSGs, and Spoke Routing Tables are 100% correct for the 172.15.x.x range.

App Service Local Success: The App Service successfully reaches the Hub VM (172.15.0.4:3389). This confirms VNet Integration is functional locally.

Pktmon Results: pktmon on the Spoke VM shows 0 packets received when triggered from the App Service, while showing successful Rx/Tx for the Hub VM. Traffic is dying before leaving the Hub region.

A TCP trace from the App Service worker process (w3wp.exe) confirms that the application is successfully generating SYN packets for 10.3.0.4:1926 from source IP 172.15.2.254. However, the trace shows a total absence of ingress traffic (SYN-ACK) from the peered VNet, confirming that the return path is being dropped at the regional gateway level.

Troubleshooting Completed

Address space was recently changed from 10.0.0.0/16 to 172.15.0.0/16.

App Service VNet Integration has been disconnected and recreated on a fresh subnet.

WEBSITE_VNET_ROUTE_ALL is set to 1.

Peering "Sync" has been performed; "Allow Forwarded Traffic" is enabled on both sides.

Spoke VPN Gateway reset has been performed.

App Service Plan has been scaled to force worker migration.

Request

Please investigate the Regional Gateway/SDN routing for the App Service workers in Central India. It appears the internal routing for the App Service "Swift" integration is not honoring the Global Peering path for the new 172.15.x.x prefix, even though the VNet System routes are correct.

Issue Summary

Outbound TCP traffic from a Windows App Service (Premium v3) fails to reach a VM in a peered Spoke VNet across regions (Global Peering), despite VM-to-VM traffic succeeding on the same path.

Environment

Hub VNet: Central India (172.15.0.0/16)

App Service: tradeannexapi integrated into subnet snet-appsvc-v2 (172.15.2.0/24).

Spoke VNet: West India (10.3.0.0/16) via Global Peering.

Destination: Spoke VM (10.3.0.4) listening on port 1926.

Diagnostic Evidence

VM-to-VM Success: A Test VM in the Hub (172.15.0.4) successfully connects to the Spoke VM (10.3.0.4:1926). This confirms Peering, Spoke NSGs, and Spoke Routing Tables are 100% correct for the 172.15.x.x range.

App Service Local Success: The App Service successfully reaches the Hub VM (172.15.0.4:3389). This confirms VNet Integration is functional locally.

Pktmon Results: pktmon on the Spoke VM shows 0 packets received when triggered from the App Service, while showing successful Rx/Tx for the Hub VM. Traffic is dying before leaving the Hub region.

Troubleshooting Completed

Address space was recently changed from 10.0.0.0/16 to 172.15.0.0/16.

App Service VNet Integration has been disconnected and recreated on a fresh subnet.

WEBSITE_VNET_ROUTE_ALL is set to 1.

Peering "Sync" has been performed; "Allow Forwarded Traffic" is enabled on both sides.

Spoke VPN Gateway reset has been performed.

App Service Plan has been scaled to force worker migration.

Request

Please investigate the Regional Gateway/SDN routing for the App Service workers in Central India. It appears the internal routing for the App Service "Swift" integration is not honoring the Global Peering path for the new 172.15.x.x prefix, even though the VNet System routes are correct.

Azure App Service
Azure App Service

Azure App Service is a service used to create and deploy scalable, mission-critical web apps.


1 answer

Sort by: Most helpful
  1. Jerald Felix 11,550 Reputation points Volunteer Moderator
    2026-04-27T02:07:03.6433333+00:00

    Hello Samir Tapde,

    Greetings!

    Thanks for raising this question in Q&A forum.

    You have done an excellent job diagnosing this! Based on your evidence — SYN packets leaving the App Service worker but no SYN-ACK returning, zero packets on pktmon at the Spoke VM, and VM-to-VM working fine — the root cause is almost certainly a stale internal SDN (Software Defined Networking) route cache within the App Service "Swift" VNet Integration infrastructure, left over from the old 10.0.0.0/16 address space. When you changed the Hub VNet address space to 172.15.0.0/16, the App Service platform's internal routing fabric did not fully propagate the new prefix for Global Peering paths, even though the VNet system routes are correct from Azure's perspective.

    Here is a structured set of steps to resolve this:

    Step 1: Re-sync both sides of the Global Peering explicitly

    Even though you have already done a Sync, do it again in this specific order:

    1. Go to the Azure Portal → Hub VNet (172.15.0.0/16) → Peerings.
    2. Click on the peering link to the Spoke VNet and click Sync — then wait 2–3 minutes.
    3. Then go to the Spoke VNet (10.3.0.0/16) → Peerings → click the peering back to the Hub and click Sync again.
    4. This bidirectional re-sync is important after an address space change, as each side needs to re-advertise the updated prefixes independently.

    Step 2: Delete and recreate the VNet Integration completely (not just disconnect)

    Since the address space changed from 10.0.0.0/16 to 172.15.0.0/16, the App Service Swift integration may still have an internal reference to the old prefix. A full delete and recreate is needed:

    1. Go to Azure Portal → App Service tradeannexapi → Networking → VNet Integration.
    2. Click Disconnect and confirm.
    3. Delete the subnet snet-appsvc-v2 from the Hub VNet entirely.
    4. Recreate the subnet with a fresh name (e.g., snet-appsvc-v3) under the new 172.15.0.0/16 address space.
    5. Re-integrate the App Service to this brand-new subnet.

    This forces the Swift integration to register the 172.15.x.x prefix fresh with no stale references.

    Step 3: Verify the App Service Outbound Route Table

    1. Go to the subnet snet-appsvc-v3 in the Hub VNet.
    2. Check the associated Route Table (if any).
    3. Make sure there is a route for 10.3.0.0/16 (Spoke VNet) pointing to VNet Peering or Virtual Network as the next hop — not to an NVA or Azure Firewall that might be dropping cross-region traffic.
    4. If you are using a hub-spoke with an NVA/Firewall in the middle, make sure the firewall rules explicitly allow traffic from 172.15.2.0/24 to 10.3.0.4:1926.

    Step 4: Confirm WEBSITE_VNET_ROUTE_ALL and add the Spoke prefix explicitly

    1. In App Service → Configuration → Application Settings, confirm WEBSITE_VNET_ROUTE_ALL = 1 is still set after the VNet Integration recreation.
    2. Additionally, go to App Service → Networking → VNet Integration → and check the Outbound address prefixes listed. The Spoke VNet range 10.3.0.0/16 must appear here or be reachable via a route.
    3. If it is missing, add an explicit route in the Route Table attached to the App Service subnet: Destination 10.3.0.0/16 → Next Hop: Virtual Network.

    Step 5: Scale the App Service Plan again after the above steps

    After completing Steps 1–4, force a worker migration once more:

    1. Go to App Service Plan → Scale Up → change to a different SKU (e.g., P2v3) → Save.
    2. Wait 5 minutes, then scale back to P3v3.
    3. This forces the App Service workers to re-register with the updated networking configuration.

    Step 6: If the issue still persists — raise a support ticket

    Since your diagnostics clearly point to an internal SDN/platform routing issue in the Central India region, and you have already exhausted all client-side options, you need Microsoft's networking backend team to investigate:

    1. Open a support request via the Azure Portal → your App Service resource → Support + Troubleshooting → New Support Request.
    2. Choose Networking as the problem type and clearly state this is a Global VNet Peering + App Service Swift VNet Integration routing issue after address space change.
    3. Include your pktmon evidence, the TCP trace showing SYN with no SYN-ACK, and the Correlation IDs from the Activity Log.
    4. Request that the support engineer investigate the App Service regional gateway SDN routing table for the 172.15.x.x prefix propagation to the West India Global Peering path.

    Quick Summary: The traffic is leaving the App Service correctly but is being dropped at the regional boundary because the App Service Swift integration's internal SDN fabric still has stale routing for the old address space. The fix involves a full peering re-sync in the correct order, a complete VNet Integration recreation on a fresh subnet, and route table validation followed by a worker scale cycle to pick up all changes.

    If this answer helps you kindly accept the answer which will help others who have similar questions.

    Best Regards,

    Jerald Felix.


Your answer

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