Azure Point-to-Site VPN Implementation Guide
1. Overview
Azure Point-to-Site (P2S) VPN enables secure connections from individual client computers to your Azure virtual network. This guide covers the complete implementation process, from infrastructure setup to client configuration and troubleshooting.
Key Benefits:
- Secure remote access to Azure resources
- Multiple authentication methods
- Cross-platform client support
- Scalable connection architecture
2. Architecture and Traffic Flow
2.1 High-Level Architecture
graph TB
Client[Remote Client]
Internet[Internet]
VPNGw[VPN Gateway]
GwSubnet[Gateway Subnet]
VNet[Virtual Network]
VM1[Virtual Machine 1]
VM2[Virtual Machine 2]
Storage[Storage Account]
Client -->|P2S VPN Connection| Internet
Internet -->|Encrypted Tunnel| VPNGw
VPNGw --> GwSubnet
GwSubnet --> VNet
VNet --> VM1
VNet --> VM2
VNet --> Storage
subgraph "Azure Virtual Network"
VPNGw
GwSubnet
VNet
VM1
VM2
Storage
end
This diagram shows the high-level architecture of Azure Point-to-Site VPN. Remote clients establish secure encrypted tunnels through the internet to the VPN Gateway, which provides access to resources within the Azure Virtual Network. The VPN Gateway resides in a dedicated Gateway Subnet and acts as the entry point for all P2S connections.
2.2 Detailed Traffic Flow
sequenceDiagram
participant C as Client
participant I as Internet
participant G as VPN Gateway
participant A as Azure AD/RADIUS
participant V as VNet Resources
C->>I: Initiate VPN Connection
I->>G: Forward Connection Request
G->>A: Authentication Request
A->>G: Authentication Response
G->>C: Certificate/Token Exchange
C->>G: Establish Encrypted Tunnel
G->>V: Route Traffic to VNet
V->>G: Return Traffic
G->>C: Encrypted Response
This sequence diagram illustrates the step-by-step process of establishing a P2S VPN connection. The client initiates a connection through the internet to the VPN Gateway, which handles authentication (either through Azure AD or RADIUS), establishes an encrypted tunnel, and routes traffic to virtual network resources.
2.3 Authentication Flow Comparison
graph LR
subgraph "Certificate Authentication"
C1[Client] -->|Client Certificate| G1[VPN Gateway]
G1 -->|Validate Certificate| CA[Certificate Authority]
CA -->|Certificate Valid| G1
G1 -->|Access Granted| V1[VNet Resources]
end
subgraph "Azure AD Authentication"
C2[Client] -->|Authentication Request| G2[VPN Gateway]
G2 -->|Redirect to Azure AD| AAD[Azure AD]
AAD -->|MFA + Credentials| C2
C2 -->|Token| G2
G2 -->|Access Granted| V2[VNet Resources]
end
subgraph "RADIUS Authentication"
C3[Client] -->|Credentials| G3[VPN Gateway]
G3 -->|RADIUS Request| R[RADIUS Server]
R -->|Accept/Reject| G3
G3 -->|Access Granted| V3[VNet Resources]
end
This diagram compares the three main authentication methods for P2S VPN: Certificate-based authentication uses client certificates validated against a Certificate Authority; Azure AD authentication leverages modern authentication with MFA support; RADIUS authentication integrates with existing RADIUS infrastructure for centralized user management.
3. Virtual Network Gateway SKU Selection
3.1 SKU Comparison
SKU |
Max P2S Connections |
Throughput |
BGP Support |
Use Case |
Basic |
128 |
100 Mbps |
No |
Development/Testing |
VpnGw1 |
128 |
650 Mbps |
Yes |
Small Production |
VpnGw2 |
128 |
1 Gbps |
Yes |
Medium Production |
VpnGw3 |
128 |
1.25 Gbps |
Yes |
Large Production |
VpnGw1AZ |
128 |
650 Mbps |
Yes |
Zone-redundant Small |
3.2 Create Virtual Network Gateway
# Create Resource Group
az group create \
--name rg-vpn-gateway \
--location eastus
Parameters:
--name
: Resource group name for organizing VPN resources
--location
: Azure region (choose closest to users)
Purpose: Creates a logical container for all VPN-related resources. This should be the first step in the implementation process.
# Create Virtual Network
az network vnet create \
--name vnet-hub \
--resource-group rg-vpn-gateway \
--address-prefix 10.1.0.0/16 \
--subnet-name default \
--subnet-prefix 10.1.1.0/24
Parameters:
--address-prefix
: Overall VNet address space (must not overlap with on-premises)
--subnet-prefix
: Default subnet for VM resources
Purpose: Creates the virtual network that will host your Azure resources and the VPN gateway.
# Create Gateway Subnet (Required for VPN Gateway)
az network vnet subnet create \
--name GatewaySubnet \
--resource-group rg-vpn-gateway \
--vnet-name vnet-hub \
--address-prefix 10.1.255.0/27
Parameters:
--name
: Must be exactly "GatewaySubnet" (case-sensitive)
--address-prefix
: Minimum /27 required, /26 or larger recommended
Purpose: Creates the dedicated subnet where the VPN Gateway will be deployed. This subnet name is fixed by Azure and cannot be changed.
# Create Public IP for VPN Gateway
az network public-ip create \
--name pip-vpn-gateway \
--resource-group rg-vpn-gateway \
--allocation-method Static \
--sku Standard
Parameters:
--allocation-method Static
: Required for VPN Gateway
--sku Standard
: Required for zone-redundant gateways
Purpose: Creates the public IP address that clients will connect to. This IP remains constant throughout the gateway's lifetime.
# Create VPN Gateway
az network vnet-gateway create \
--name vgw-hub \
--resource-group rg-vpn-gateway \
--vnet vnet-hub \
--public-ip-addresses pip-vpn-gateway \
--gateway-type Vpn \
--vpn-type RouteBased \
--sku VpnGw1 \
--no-wait
Parameters:
--gateway-type Vpn
: Specifies VPN Gateway (vs. ExpressRoute)
--vpn-type RouteBased
: Required for P2S VPN
--sku VpnGw1
: Gateway performance tier
--no-wait
: Continue without waiting for completion (20-45 minutes)
Purpose: Creates the VPN Gateway infrastructure. This is the longest step in the process, typically taking 20-45 minutes to complete.
4. Tunnel Type Configuration
4.1 Supported Tunnel Types
graph TB
TunnelTypes[Tunnel Types]
IKEv2[IKEv2]
OpenVPN[OpenVPN]
SSTP[SSTP]
TunnelTypes --> IKEv2
TunnelTypes --> OpenVPN
TunnelTypes --> SSTP
IKEv2 --> IKEv2Clients[Windows 10+
macOS
iOS
Android]
OpenVPN --> OpenVPNClients[All Platforms
Third-party Clients
Custom Apps]
SSTP --> SSTPClients[Windows Only
Legacy Support]
Azure P2S VPN supports three tunnel types: IKEv2 provides native support across modern platforms; OpenVPN offers the most flexibility and cross-platform compatibility; SSTP is Windows-specific and primarily used for legacy scenarios.
4.2 Configure P2S VPN Settings
# Configure Point-to-Site VPN
az network vnet-gateway update \
--name vgw-hub \
--resource-group rg-vpn-gateway \
--address-prefixes 172.16.200.0/24 \
--protocols IkeV2 OpenVPN \
--radius-server-address 10.1.1.50 \
--radius-server-secret MyRadiusSecret123
Parameters:
--address-prefixes
: IP pool for VPN clients (must not overlap with VNet or on-premises)
--protocols
: Supported tunnel types (IkeV2, OpenVPN, SSTP)
--radius-server-address
: RADIUS server IP (optional)
--radius-server-secret
: RADIUS shared secret (optional)
Purpose: Configures the P2S VPN settings including client IP pool and tunnel protocols. The address prefix must be unique and not conflict with existing networks.
4.3 Protocol Selection Guide
Protocol |
Platforms |
Advantages |
Considerations |
IKEv2 |
Windows, macOS, iOS, Android |
Native support, fast reconnection |
May be blocked by firewalls |
OpenVPN |
All platforms |
Best firewall traversal, flexible |
Requires client software |
SSTP |
Windows only |
Good firewall traversal |
Limited platform support |
5. Authentication Methods
5.1 Authentication Method Overview
graph TD
Auth[Authentication Methods]
Cert[Certificate Authentication]
AAD[Azure AD Authentication]
RADIUS[RADIUS Authentication]
Auth --> Cert
Auth --> AAD
Auth --> RADIUS
Cert --> RootCA[Root Certificate]
Cert --> ClientCert[Client Certificates]
AAD --> MFA[Multi-Factor Authentication]
AAD --> ConditionalAccess[Conditional Access]
RADIUS --> NPS[Network Policy Server]
RADIUS --> ThirdParty[Third-party RADIUS]
Azure P2S VPN supports three primary authentication methods: Certificate authentication uses PKI infrastructure with root and client certificates; Azure AD authentication provides modern identity with MFA and conditional access; RADIUS authentication integrates with existing network access control systems.
5.2 Certificate Authentication Setup
# Generate Root Certificate (PowerShell on Windows)
$cert = New-SelfSignedCertificate `
-Type Custom `
-KeySpec Signature `
-Subject "CN=P2SRootCert" `
-KeyExportPolicy Exportable `
-HashAlgorithm sha256 `
-KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" `
-KeyUsageProperty Sign `
-KeyUsage CertSign
Parameters:
-Subject "CN=P2SRootCert"
: Root certificate common name
-KeyLength 2048
: Minimum key length for security
-HashAlgorithm sha256
: Secure hash algorithm
Purpose: Creates a self-signed root certificate for P2S authentication. In production, use a proper CA-issued certificate.
# Export Root Certificate Public Key
$rootCertName = "P2SRootCert"
$rootCert = Get-ChildItem -Path "Cert:\CurrentUser\My\" | Where-Object {$_.Subject -eq "CN=$rootCertName"}
$rootCertData = [Convert]::ToBase64String($rootCert.RawData)
Write-Output $rootCertData
Purpose: Exports the root certificate's public key in Base64 format, which is required for uploading to Azure. Copy this output for use in the next command.
# Upload Root Certificate to Azure
az network vnet-gateway root-cert create \
--gateway-name vgw-hub \
--resource-group rg-vpn-gateway \
--name P2SRootCert \
--public-cert-data "MIIC4jCCAcqgAwIBAgIQ..."
Parameters:
--name
: Friendly name for the root certificate
--public-cert-data
: Base64-encoded certificate data (without headers)
Purpose: Uploads the root certificate to Azure for validating client certificates. Only the public key is uploaded, keeping the private key secure.
6. RADIUS Authentication
6.1 RADIUS Architecture
graph TB
Client[VPN Client]
VPNGw[VPN Gateway]
RADIUS[RADIUS Server/NPS]
AD[Active Directory]
Client -->|1. Connection Request| VPNGw
VPNGw -->|2. Access-Request| RADIUS
RADIUS -->|3. User Lookup| AD
AD -->|4. User Info| RADIUS
RADIUS -->|5. Access-Accept/Reject| VPNGw
VPNGw -->|6. Connection Granted/Denied| Client
RADIUS authentication flow: The VPN client initiates a connection to the VPN Gateway, which forwards the authentication request to the RADIUS server. The RADIUS server validates credentials against Active Directory or another user store and responds with Access-Accept or Access-Reject, determining whether the connection is allowed.
6.2 Configure RADIUS Authentication
# Configure RADIUS Authentication
az network vnet-gateway update \
--name vgw-hub \
--resource-group rg-vpn-gateway \
--radius-server-address 10.1.1.50 \
--radius-server-secret "MySecureRadiusSecret123!" \
--radius-server-port 1812
Parameters:
--radius-server-address
: IP address of RADIUS server (must be reachable from Gateway Subnet)
--radius-server-secret
: Shared secret between VPN Gateway and RADIUS server
--radius-server-port
: RADIUS authentication port (default: 1812)
Purpose: Configures the VPN Gateway to use RADIUS for authentication. Ensure the RADIUS server is accessible from the Gateway Subnet and firewall rules allow traffic on the specified port.
6.3 Network Policy Server (NPS) Configuration
NPS Setup Requirements:
- Windows Server with NPS role installed
- Domain membership for Active Directory integration
- Network access permissions configured
- Appropriate network policies defined
# PowerShell commands to configure NPS (run on NPS server)
# Add RADIUS Client (VPN Gateway)
New-NpsRadiusClient `
-Name "Azure-VPN-Gateway" `
-Address "10.1.255.4" `
-SharedSecret "MySecureRadiusSecret123!" `
-VendorName "Microsoft"
Parameters:
-Address
: Private IP address of the VPN Gateway
-SharedSecret
: Must match the secret configured on VPN Gateway
-VendorName "Microsoft"
: Vendor identifier for Azure VPN Gateway
Purpose: Registers the Azure VPN Gateway as a RADIUS client in NPS, allowing it to send authentication requests.
7. Microsoft Entra ID Authentication
7.1 Azure AD Authentication Flow
sequenceDiagram
participant C as VPN Client
participant G as VPN Gateway
participant AAD as Azure AD
participant MFA as MFA Provider
participant CA as Conditional Access
C->>G: Initiate VPN Connection
G->>AAD: Redirect to Azure AD
AAD->>C: Authentication Challenge
C->>AAD: Username/Password
AAD->>MFA: MFA Challenge
MFA->>C: MFA Prompt
C->>MFA: MFA Response
MFA->>AAD: MFA Success
AAD->>CA: Evaluate Policies
CA->>AAD: Policy Decision
AAD->>G: Issue Token
G->>C: VPN Connection Established
Azure AD authentication provides a modern, secure authentication experience with support for multi-factor authentication and conditional access policies. The process involves redirecting users to Azure AD for authentication, evaluating conditional access policies, and issuing tokens for VPN access.
7.2 Configure Azure AD Authentication
# Register Azure VPN application (if not already registered)
az ad app create \
--display-name "Azure VPN" \
--identifier-uris "https://ags.azure.com/41b23e61-6c1e-4545-b367-cd054e0ed4b4" \
--reply-urls "https://login.microsoftonline.com/common/oauth2/nativeclient"
Parameters:
--identifier-uris
: Fixed identifier URI for Azure VPN service
--reply-urls
: OAuth2 redirect URL for authentication flow
Purpose: Registers the Azure VPN application in Azure AD. This step is typically pre-configured but may be required in some scenarios.
# Configure P2S VPN with Azure AD authentication
az network vnet-gateway update \
--name vgw-hub \
--resource-group rg-vpn-gateway \
--aad-tenant-id "your-tenant-id" \
--aad-audience "41b23e61-6c1e-4545-b367-cd054e0ed4b4" \
--aad-issuer "https://sts.windows.net/your-tenant-id/"
Parameters:
--aad-tenant-id
: Your Azure AD tenant identifier
--aad-audience
: Fixed audience ID for Azure VPN service
--aad-issuer
: Token issuer URL for your tenant
Purpose: Configures the VPN Gateway to use Azure AD for authentication. Replace "your-tenant-id" with your actual Azure AD tenant ID.
7.3 Conditional Access Integration
Conditional Access Capabilities:
- Device compliance requirements
- Location-based access controls
- Risk-based authentication
- Multi-factor authentication enforcement
- Session controls and monitoring
8. VPN Client Configuration
8.1 Generate Client Configuration
# Generate VPN client configuration package
az network vnet-gateway vpn-client generate \
--name vgw-hub \
--resource-group rg-vpn-gateway \
--processor-architecture Amd64
Parameters:
--processor-architecture
: Target architecture (Amd64, X86)
Purpose: Generates a downloadable client configuration package containing connection profiles for different platforms. This command returns a URL to download the configuration files.
8.2 Client Configuration Components
graph TB
ConfigPackage[Configuration Package]
WindowsConfig[Windows Configuration]
GenericConfig[Generic Configuration]
ConfigPackage --> WindowsConfig
ConfigPackage --> GenericConfig
WindowsConfig --> EXE[VpnClientSetupAmd64.exe]
WindowsConfig --> MSI[VpnClientSetupAmd64.msi]
GenericConfig --> OpenVPNConfig[OpenVPN Config Files]
GenericConfig --> IKEv2Config[IKEv2 Config Files]
OpenVPNConfig --> OVPN[.ovpn files]
IKEv2Config --> XML[VpnSettings.xml]
The VPN client configuration package contains platform-specific setup files: Windows clients use executable or MSI installers; other platforms use generic configuration files including OpenVPN profiles (.ovpn) and IKEv2 settings (VpnSettings.xml).
8.3 Download and Extract Configuration
# Download the configuration package (URL from previous command)
curl -o vpn-client-config.zip "https://vgwhub123.blob.core.windows.net/..."
# Extract the package
unzip vpn-client-config.zip -d vpn-client-config/
Purpose: Downloads and extracts the VPN client configuration package. The package contains different configuration files for various client platforms and tunnel types.
8.4 Client Configuration by Platform
Platform |
Configuration File |
Installation Method |
Windows |
VpnClientSetupAmd64.exe |
Run executable as administrator |
macOS |
VpnSettings.xml |
Import into native VPN client |
iOS |
VpnSettings.xml |
Import via configuration profile |
Android |
VpnSettings.xml |
Import into strongSwan app |
Linux (OpenVPN) |
*.ovpn |
Use with OpenVPN client |
9. Troubleshooting
9.1 Common Issues and Diagnostics
graph TD
Issue[Connection Issue]
AuthFail[Authentication Failure]
ConnFail[Connection Failure]
PerfIssue[Performance Issue]
Issue --> AuthFail
Issue --> ConnFail
Issue --> PerfIssue
AuthFail --> CertCheck[Check Certificates]
AuthFail --> RadiusCheck[Check RADIUS]
AuthFail --> AADCheck[Check Azure AD]
ConnFail --> DNSCheck[Check DNS]
ConnFail --> FirewallCheck[Check Firewall]
ConnFail --> GatewayCheck[Check Gateway Status]
PerfIssue --> BandwidthCheck[Check Bandwidth]
PerfIssue --> SKUCheck[Check Gateway SKU]
PerfIssue --> MTUCheck[Check MTU Size]
VPN troubleshooting follows a systematic approach: Authentication failures require checking certificate validity, RADIUS server status, or Azure AD configuration; Connection failures often involve DNS resolution, firewall rules, or gateway health; Performance issues may relate to bandwidth limitations, gateway SKU capacity, or MTU size optimization.
9.2 Gateway Diagnostics
# Check VPN Gateway status
az network vnet-gateway show \
--name vgw-hub \
--resource-group rg-vpn-gateway \
--query "provisioningState"
Purpose: Verifies that the VPN Gateway is properly provisioned and operational. The state should be "Succeeded" for normal operation.
# View P2S connection details
az network vnet-gateway show \
--name vgw-hub \
--resource-group rg-vpn-gateway \
--query "vpnClientConfiguration"
Purpose: Displays the current P2S VPN configuration including address pools, protocols, and authentication settings.
9.3 Connection Monitoring
# Enable VPN Gateway logging
az monitor diagnostic-settings create \
--name vpn-gateway-logs \
--resource /subscriptions/{subscription-id}/resourceGroups/rg-vpn-gateway/providers/Microsoft.Network/virtualNetworkGateways/vgw-hub \
--workspace /subscriptions/{subscription-id}/resourceGroups/rg-monitoring/providers/Microsoft.OperationalInsights/workspaces/law-monitoring \
--logs '[{"category":"GatewayDiagnosticLog","enabled":true},{"category":"TunnelDiagnosticLog","enabled":true}]'
Parameters:
--resource
: Full resource ID of the VPN Gateway
--workspace
: Log Analytics workspace for storing logs
--logs
: Categories of logs to enable
Purpose: Enables diagnostic logging for the VPN Gateway to monitor connections, authentication events, and troubleshoot issues.
9.4 Client-Side Troubleshooting
Common Client Issues:
- Certificate errors: Verify client certificate installation and validity
- DNS resolution: Check that clients can resolve internal hostnames
- Routing issues: Verify client routing table after connection
- Firewall blocking: Ensure client firewall allows VPN traffic
10. Always On VPN Requirements
10.1 Always On VPN Architecture
graph TB
Device[Windows 10/11 Device]
DeviceTunnel[Device Tunnel]
UserTunnel[User Tunnel]
VPNGateway[VPN Gateway]
Device --> DeviceTunnel
Device --> UserTunnel
DeviceTunnel --> VPNGateway
UserTunnel --> VPNGateway
DeviceTunnel --> SystemAccess[System-level Access
Pre-logon Connectivity]
UserTunnel --> UserAccess[User-specific Access
Post-logon Connectivity]
Always On VPN provides persistent connectivity through two tunnel types: Device Tunnel establishes system-level connectivity before user logon for device management and authentication; User Tunnel provides user-specific access after logon with personalized routing and access policies.
10.2 Azure Requirements for Always On VPN
Azure Infrastructure Requirements:
- VPN Gateway with IKEv2 protocol support
- Certificate-based authentication for Device Tunnel
- Azure AD authentication for User Tunnel (optional)
- Appropriate gateway SKU for concurrent connections
- Network routes configured for split tunneling
10.3 Device Tunnel Configuration
# PowerShell configuration for Device Tunnel
$VpnServerAddress = "pip-vpn-gateway.eastus.cloudapp.azure.com"
$VpnClientAddressPool = "172.16.200.0/24"
Add-VpnConnection `
-Name "Always On Device Tunnel" `
-ServerAddress $VpnServerAddress `
-TunnelType IKEv2 `
-AuthenticationMethod MachineCertificate `
-EncryptionLevel Required `
-AllUserConnection
Parameters:
-AllUserConnection
: Makes connection available to all users
-AuthenticationMethod MachineCertificate
: Uses device certificate
-TunnelType IKEv2
: Protocol for Always On VPN
Purpose: Creates a device-level VPN connection that establishes before user logon, enabling system-level connectivity.
10.4 Client Requirements
Component |
Requirement |
Purpose |
Operating System |
Windows 10/11 Pro or Enterprise |
Always On VPN feature support |
Domain Membership |
Azure AD joined or Hybrid joined |
Certificate and policy management |
Certificates |
Machine and user certificates |
Authentication for both tunnel types |
Group Policy |
VPN profile configuration |
Centralized management and deployment |
11. Azure Network Adapter
11.1 Azure Network Adapter Overview
graph TB
Client[Windows Client]
ANA[Azure Network Adapter]
WAC[Windows Admin Center]
AzureArc[Azure Arc]
VNet[Azure Virtual Network]
Client --> ANA
ANA --> WAC
WAC --> AzureArc
AzureArc --> VNet
ANA --> Features[Features:
- Point-to-point connection
- No gateway required
- Simplified management]
Azure Network Adapter provides a simplified point-to-point VPN connection between on-premises Windows machines and Azure virtual networks. It leverages Azure Arc and Windows Admin Center for management, eliminating the need for a VPN Gateway for basic connectivity scenarios.
11.2 Azure Requirements for Network Adapter
Prerequisites:
- Azure Arc-enabled servers
- Windows Admin Center gateway
- Virtual network with available address space
- Hybrid Runbook Worker (for management)
- Appropriate Azure permissions
11.3 Enable Azure Network Adapter
# Install Azure Arc agent on Windows server
Invoke-WebRequest -Uri "https://aka.ms/AzureConnectedMachineAgent" -OutFile "AzureConnectedMachineAgent.msi"
msiexec /i AzureConnectedMachineAgent.msi /qn
Purpose: Downloads and installs the Azure Arc agent, which is required for Azure Network Adapter functionality.
# Connect server to Azure Arc
azcmagent connect `
--resource-group "rg-hybrid-connectivity" `
--tenant-id "your-tenant-id" `
--location "eastus" `
--subscription-id "your-subscription-id"
Parameters:
--resource-group
: Resource group for Arc-enabled server
--tenant-id
: Azure AD tenant identifier
--location
: Azure region for the Arc resource
Purpose: Registers the on-premises server with Azure Arc, enabling hybrid management capabilities.
11.4 Network Adapter vs VPN Gateway Comparison
Feature |
Azure Network Adapter |
VPN Gateway |
Connection Type |
Point-to-point |
Point-to-site / Site-to-site |
Scalability |
Limited (individual connections) |
High (up to 128 P2S connections) |
Cost |
Lower (no gateway charges) |
Higher (gateway infrastructure) |
Management |
Windows Admin Center |
Azure Portal / CLI / PowerShell |
Use Case |
Simple hybrid scenarios |
Enterprise-scale connectivity |
12. Implementation Command Flow
12.1 Complete Implementation Sequence
graph TD
Start([Start Implementation])
RG[1. Create Resource Group
az group create]
VNet[2. Create Virtual Network
az network vnet create]
GWSubnet[3. Create Gateway Subnet
az network vnet subnet create]
PIP[4. Create Public IP
az network public-ip create]
VPNGw[5. Create VPN Gateway
az network vnet-gateway create]
AuthChoice{Choose Authentication}
CertAuth[Certificate Authentication
Upload root certificate]
RadiusAuth[RADIUS Authentication
Configure RADIUS server]
AADAuth[Azure AD Authentication
Configure AAD settings]
P2SConfig[6. Configure P2S VPN
az network vnet-gateway update]
ClientConfig[7. Generate Client Config
az network vnet-gateway vpn-client generate]
ClientInstall[8. Install Client Certificates
Deploy to client devices]
Testing[9. Test Connections]
Monitoring[10. Setup Monitoring
Enable diagnostic logs]
End([Implementation Complete])
Start --> RG
RG --> VNet
VNet --> GWSubnet
GWSubnet --> PIP
PIP --> VPNGw
VPNGw --> AuthChoice
AuthChoice --> CertAuth
AuthChoice --> RadiusAuth
AuthChoice --> AADAuth
CertAuth --> P2SConfig
RadiusAuth --> P2SConfig
AADAuth --> P2SConfig
P2SConfig --> ClientConfig
ClientConfig --> ClientInstall
ClientInstall --> Testing
Testing --> Monitoring
Monitoring --> End
This flowchart shows the complete implementation sequence for Azure P2S VPN. The process follows a logical order: first establishing the infrastructure (resource group, virtual network, gateway subnet, public IP, VPN gateway), then configuring authentication, setting up P2S VPN parameters, generating client configurations, and finally testing and monitoring the solution.
12.2 Command Dependencies and Timing
Implementation Timeline:
- Infrastructure Setup (Steps 1-4): ~5 minutes - Can be run sequentially
- VPN Gateway Creation (Step 5): ~20-45 minutes - Longest step, use --no-wait
- Authentication Configuration: ~5-10 minutes - Depends on chosen method
- P2S Configuration (Step 6): ~2-5 minutes - Wait for gateway completion
- Client Configuration (Steps 7-8): ~10-15 minutes - Includes client deployment
- Testing and Monitoring: ~15-30 minutes - Validation and setup
Total Estimated Time: 1-2 hours (mostly waiting for gateway deployment)
12.3 Critical Success Factors
Key Implementation Considerations:
- Address Space Planning: Ensure P2S client pool doesn't overlap with VNet or on-premises networks
- Gateway Subnet Sizing: Use /27 minimum, /26 recommended for future growth
- Authentication Method: Choose based on security requirements and client capabilities
- Protocol Selection: IKEv2 + OpenVPN for maximum compatibility
- Monitoring Setup: Enable diagnostic logging from the start for troubleshooting
12.4 Post-Implementation Checklist
Validation Steps:
- ✓ VPN Gateway shows "Succeeded" provisioning state
- ✓ P2S configuration displays correct address pool and protocols
- ✓ Client configuration package downloads successfully
- ✓ Test connection from each supported client platform
- ✓ Verify DNS resolution for internal resources
- ✓ Confirm routing table on connected clients
- ✓ Test access to target Azure resources
- ✓ Monitor connection logs and performance metrics
Additional Resources
- Azure VPN Gateway Documentation: Comprehensive guide to VPN Gateway features and configuration
- Point-to-Site VPN Troubleshooting: Common issues and resolution steps
- Always On VPN Deployment Guide: Detailed implementation for enterprise environments
- Azure Network Adapter: Alternative connectivity solution for hybrid scenarios