An Azure service that enables the connection of on-premises networks to Azure through site-to-site virtual private networks.
If the VPN shows Connected but traffic does not pass between Azure and AWS resources, check the Azure-to-AWS BGP VPN configuration end to end.
- Verify the required topology.
- For this Azure-to-AWS BGP design, Azure should use a VPN gateway with active-active and BGP enabled.
- AWS uses two site-to-site VPN connections, each with two tunnels, for a total of four tunnels.
- In Azure, there should be four local network gateways and four connections to receive those four AWS tunnels.
- An active-passive Azure VPN gateway supports only one custom BGP APIPA, so it is not sufficient for multiple AWS tunnels.
- Check Azure connection status.
- In Azure portal, open the virtual network gateway.
- Go to Connections.
- Confirm that all 4 connections show Connected.
- Check Azure BGP peer status.
- In the same virtual network gateway, go to BGP Peers.
- Confirm that all peers show Connected and that routes are being exchanged.
- If BGP peers are not connected, traffic will not route even if the tunnel appears established.
- Check AWS tunnel status.
- In the Amazon VPC console, open Site-to-Site VPN Connections.
- Select each connection and open Tunnel Details.
- Verify both tunnels show UP.
- Verify the tunnel details show one or more BGP routes.
- Validate the Azure and AWS BGP settings.
- On AWS, the customer gateways for Azure should use BGP ASN 65000 if that is the ASN configured on the Azure VPN gateway.
- The AWS customer gateways should point to the first and second public IP addresses of the Azure VPN gateway.
- In Azure, the Custom BGP Address must match the AWS tunnel APIPA configuration used for that connection.
- For connections to Azure instance 0, only the Primary Custom BGP Address is used.
- For connections to Azure instance 1, only the Secondary Custom BGP Address is used.
- Confirm the inside tunnel CIDRs and preshared keys match.
- AWS tunnel inside CIDRs must align with the APIPA configuration selected for the Azure side.
- The Shared key (PSK) in Azure must match the preshared key configured for the corresponding AWS tunnel.
- Check for traffic selector or prefix mismatch.
- A tunnel can come up while traffic still fails if the prefixes advertised on AWS do not match what Azure expects.
- One documented case showed the issue was on the AWS side because AWS advertised a broader prefix than expected, causing a traffic selector mismatch.
- If this applies, update AWS to advertise the correct specific subnet or use wildcard traffic selector pairs that align with Azure.
A good minimum validation is:
- Azure Connections: all 4 are Connected
- Azure BGP Peers: all peers are Connected and exchanging routes
- AWS Tunnel Details: all tunnels are UP and showing BGP routes
- Azure/AWS PSK, ASN, APIPA, and prefixes all match exactly
References: