Skip to main content
Version: 1.0.0

Task 08 — Logical Network Creation

DOCUMENT CATEGORY: Implementation Guide
SCOPE: Phase 06 — Post-Deployment | Azure Local
PURPOSE: Create all logical networks defined in variables.yml. Each entry is MASTER REFERENCE: Azure Local Logical Networks provisioned as an Azure resource on the cluster's Hyper-V vSwitch, providing the network layer for Arc VM deployment — with Static IP pools or Dynamic (DHCP) allocation, VLAN isolation, and optional static routes, exactly as configured.

Status: Active

Phase Status

Objective: Create every logical network entry in networking.logical_networks[] on the Azure Local cluster. The Orchestrated script reads the YAML config and deploys each network as-configured — Static or Dynamic, with or without routes. The Standalone script has hardcoded values for one-off use or when running outside the toolkit.

This task creates the VM network layer — not the physical switch config

Logical networks bind to a Hyper-V vSwitch (already on the cluster from deployment) and map to a physical VLAN. Switch VLAN configuration and network_intents were completed during Phase 05. This task creates the Azure resource representations.

Prerequisites:

  • Azure Local cluster deployed and Arc-enabled (Phase 05 complete)
  • CSV volumes created and healthy (Task 05 complete)
  • az stack-hci-vm CLI extension installed: az extension add --name stack-hci-vm
  • Azure identity authenticated: az login or Connect-AzAccount
  • powershell-yaml module installed: Install-Module powershell-yaml -Scope CurrentUser
  • networking.logical_networks block populated in variables.yml

Variables from variables.yml

PathTypeDescription
networking.logical_networks[].namestringNetwork resource name
networking.logical_networks[].vlan_idintegerVLAN ID
networking.logical_networks[].allocationstringStatic or Dynamic
networking.logical_networks[].subnet.*objectSubnet configuration
networking.logical_networks[].dns_serversarrayDNS servers
networking.logical_networks[].default_gatewaystringGateway
networking.logical_networks[].ip_pools[]*arrayIP pool ranges
networking.logical_networks[].nsg_namestringNSG to associate (from Task 07)
compute.azure_local.vm_switch_namestringvSwitch name
azure_platform.resource_groups.cluster.namestringResource group
compute.azure_local.custom_locationstringCustom location

Create Logical Networks

When to use: Creating a single logical network, visually confirming VLAN and IP pool details, or when CLI access is unavailable.

Prerequisites: Contributor rights on the cluster resource group in the Azure Portal.


Steps (repeat for each logical network):

  1. Navigate to your Azure Local cluster resource: Azure PortalAzure Localiic-clus01

  2. In the left navigation, select ResourcesLogical networks

  3. Click + Create

  4. On the Basics tab, fill in:

  • Subscription: a1b2c3d4-e5f6-7890-abcd-ef1234567890
  • Resource group: rg-iic01-azl-eus-01
  • Logical network name: e.g. ln-iic01-management-100
  • Custom location: cl-iic01
  • Virtual switch name: ConvergedSwitch(hci)
Finding the vSwitch name

If you're unsure of the vSwitch name, run the following on any cluster node:

Invoke-Command -ComputerName iic-01-n01 -ScriptBlock { Get-VMSwitch | Select-Object Name, SwitchType }
  1. Click Next: Network configuration

  2. On the Network configuration tab:

  • VLAN ID: enter the VLAN number (e.g. 100)
  • Click + Add subnet
  • Subnet name: default
  • IP allocation method: Static or Dynamic

For Static networks:

  • Address prefix: e.g. 10.100.0.0/24
  • Default gateway: e.g. 10.100.0.1
  • DNS servers: e.g. 10.100.0.10, 10.100.0.11
  • Click + Add IP pool:
  • Pool name: e.g. pool-mgmt-vms
  • Start IP: e.g. 10.100.0.50
  • End IP: e.g. 10.100.0.200

For Dynamic (DHCP) networks:

  • Address prefix, IP pools, and gateway are not required

  • Supply DNS servers under DHCP options

  • Click Add

  1. Under Network Security Group, select the NSG created in Task 07:

    • ln-iic01-management-100nsg-iic-management
    • ln-iic01-production-200nsg-iic-production
    • ln-iic01-avd-300nsg-iic-avd
  2. Click Review + createCreate

  3. Repeat for each additional logical network in networking.logical_networks[].

Standard IIC logical networks — example portal values:

Network nameVLANSubnetGatewayIP pool rangeAllocNSG
ln-iic01-management-10010010.100.0.0/2410.100.0.110.100.0.50–200Staticnsg-iic-management
ln-iic01-production-20020010.200.0.0/2410.200.0.110.200.0.50–250Staticnsg-iic-production
ln-iic01-avd-300300(DHCP)(DHCP)(DHCP)Dynamicnsg-iic-avd

Validation

After all logical networks are created, confirm they are in a Succeeded provisioning state and are visible on the cluster's Logical networks blade.

List all logical networks in the resource group
az stack-hci-vm network lnet list `
--subscription a1b2c3d4-e5f6-7890-abcd-ef1234567890 `
--resource-group rg-iic01-azl-eus-01 `
--output table
Check a specific logical network
az stack-hci-vm network lnet show `
--subscription a1b2c3d4-e5f6-7890-abcd-ef1234567890 `
--resource-group rg-iic01-azl-eus-01 `
--name ln-iic01-management-100 `
--query "{Name:name, State:provisioningState, VLAN:properties.networkType}" `
--output table

Expected results:

NameStateVLAN
ln-iic01-management-100Succeeded100
ln-iic01-production-200Succeeded200
ln-iic01-avd-300Succeeded300
Logical network stuck in "Updating" or "Failed"

If a logical network enters Failed state or stays in Updating for more than 5 minutes:

  1. Check the cluster Arc resource bridge (az arcappliance show) is in a healthy state
  2. Confirm the vSwitch name matches exactly (case-sensitive): Get-VMSwitch on a cluster node
  3. Verify the VLAN ID does not conflict with an existing logical network on the cluster
  4. Delete the failed resource and re-run: az stack-hci-vm network lnet delete --name <lnet-name> --resource-group <rg> --yes

Troubleshooting

IssueCauseResolution
Logical network creation fails with InvalidParametervSwitch name mismatch (case-sensitive) or invalid VLAN IDVerify vSwitch name exactly: Get-VMSwitch on a cluster node; ensure VLAN ID is within valid range (1-4094)
Logical network stuck in Updating stateArc resource bridge processing delay or unhealthyCheck bridge status: az arcappliance show; if unhealthy, restart the bridge appliance VM on the cluster
VLAN traffic not flowing on the logical networkPhysical switch trunk port missing the VLANVerify switch configuration allows the VLAN on all uplink ports; check Get-VMSwitch for correct teaming config


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
← PreviousTask 07 — Configure NSGs
↑ Phase IndexPhase 06 — Post-Deployment Index
→ NextTask 09 — Post-Deployment Verification

Version Control

VersionDateAuthorChanges
1.0.02025-03-25Azure Local CloudInitial release