Skip to main content
Version: 1.0.0

Task 02: Configure Management Mode

Implementation Terraform

DOCUMENT CATEGORY: Task
SCOPE: Management mode network configuration
PURPOSE: Define VNet, VPN Gateway, subnets, and optional servers MASTER REFERENCE: Azure Local Deployment Overview

Status: Active Last Updated: 2026-02-07


Objective

Configure the management_network_config variable for deploying shared management infrastructure including VNet, VPN Gateway, Bastion, Key Vault, and optional monitoring servers.


Prerequisites

  • Task 01 completed (core variables configured)
  • On-premises network IP ranges documented
  • Azure VNet IP range planned (avoid conflicts)
  • VPN Gateway BGP settings from network team
  • Subnet sizing calculated (minimum requirements met)

Configuration

Network Configuration Block

management_network_config = {
on_prem = {
mgmt_network = "10.0.0.0/24" # On-premises management network CIDR
oob_network = "10.1.0.0/24" # Out-of-band management network CIDR
}

azure = {
asn = 65515 # VPN Gateway ASN (Azure default or custom)
gateway_bgp_ips = [ # VPN Gateway BGP IP addresses
"169.254.21.2", # Instance 0 BGP IP
"169.254.21.3" # Instance 1 BGP IP (zone-redundant)
]
gateway_sku = "VpnGw2AZ" # VPN Gateway SKU (VpnGw1/2/3 or AZ variants)
vnet_address_space = "10.100.1.0/24" # Azure VNet CIDR (must not conflict)

subnets = {
gateway = "10.100.1.0/27" # GatewaySubnet (minimum /27)
azrl = "10.100.1.32/27" # Azure Local management VMs
bastion = "10.100.1.64/26" # AzureBastionSubnet (minimum /26)
endpoints = "10.100.1.128/27" # Private endpoints
dns = "10.100.1.160/28" # DNS resolver (minimum /28)
}
}
}

Optional: Deploy NDM and Utility Servers

# Optional: Network Device Monitor server
deploy_ndm_server = true

# Optional: Utility/jumpbox server
deploy_utility_server = true

Variable Reference

VariableTypeDescriptionExample
on_prem.mgmt_networkstringOn-prem management network"10.0.0.0/24"
on_prem.oob_networkstringOut-of-band network"10.1.0.0/24"
azure.asnnumberVPN Gateway ASN65515
azure.gateway_bgp_ipslist(string)BGP IP addresses["169.254.21.2", ...]
azure.gateway_skustringVPN Gateway SKU"VpnGw2AZ"
azure.vnet_address_spacestringAzure VNet CIDR"10.100.1.0/24"
azure.subnets.gatewaystringGateway subnet (min /27)"10.100.1.0/27"
azure.subnets.azrlstringManagement VMs subnet"10.100.1.32/27"
azure.subnets.bastionstringBastion subnet (min /26)"10.100.1.64/26"
azure.subnets.endpointsstringPrivate endpoints subnet"10.100.1.128/27"
azure.subnets.dnsstringDNS resolver (min /28)"10.100.1.160/28"

VPN Gateway SKU Options

SKUTunnelsThroughputZone-RedundantUse Case
VpnGw130650 MbpsNoSmall deployments
VpnGw2301 GbpsNoStandard deployments
VpnGw3301.25 GbpsNoHigh bandwidth
VpnGw1AZ30650 MbpsYesSmall + HA
VpnGw2AZ301 GbpsYesRecommended
VpnGw3AZ301.25 GbpsYesHigh bandwidth + HA
Recommended SKU

Use VpnGw2AZ for zone-redundant high availability with 1 Gbps throughput.


IP Planning Guidelines

Subnet Minimums

SubnetMinimumRecommendedPurpose
Gateway/27 (32 IPs)/27VPN Gateway instances
Bastion/26 (64 IPs)/26Azure Bastion service
DNS/28 (16 IPs)/28DNS resolver
AZRL/27 (32 IPs)/27 or largerManagement VMs
Endpoints/27 (32 IPs)/27 or largerPrivate endpoints

Network Conflict Check

Ensure Azure VNet CIDR does not overlap with:

  • ✅ On-premises management network
  • ✅ On-premises OOB network
  • ✅ Cluster networks
  • ✅ Other Azure VNets

Validation

  • VNet CIDR does not conflict with on-premises networks
  • All subnets fit within VNet address space
  • Gateway subnet is minimum /27
  • Bastion subnet is minimum /26
  • DNS subnet is minimum /28
  • VPN Gateway SKU supports required bandwidth
  • BGP ASN and IPs are correct
  • Optional server flags set as desired

Next Steps

Proceed to Task 03 - Configure Cluster Mode to define cluster-specific resources.



When to use: Use this tab if your CI/CD pipeline runs on GitHub Actions.

See procedure steps above for GitHub-specific guidance.

Toolkit Reference

Scripts for this task are located in the azurelocal-toolkit repository under scripts/deploy/ in the appropriate task folder.


Alternatives

The procedures in this task use the scripted methods shown in the tabs above. Additional deployment methods including Azure CLI and Bash scripts are available in the azurelocal-toolkit repository under scripts/deploy/.

MethodDescription
Azure CLIPowerShell-based Azure CLI scripts for Azure resource operations
BashLinux/macOS compatible shell scripts for pipeline environments
PreviousUpNext
Task 01 - Core VariablesPhase 01 - ConfigurationTask 03 - Cluster Mode

Variables from variables.yml

VariableConfig PathExample
Management Modeazure.management.modefull
Management VNETazure.networking.management.vnet_namevnet-management-01
Management Subnetazure.networking.management.subnet_namesnet-management-01

Troubleshooting

IssueCauseResolution
Management mode configuration not applyingInvalid variable values in configuration fileVerify management mode variables match expected format
Pipeline fails at management mode validationConflicting settings between management and cluster modesReview mode configuration for consistency

Version Control

VersionDateAuthorChanges
1.0.02026-03-24Azure Local CloudInitial release