Skip to main content
Version: Next

Task 07 — 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 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.

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
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. Click Review + createCreate

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

Standard IIC logical networks — example portal values:

Network nameVLANSubnetGatewayIP pool rangeAlloc
ln-iic01-management-10010010.100.0.0/2410.100.0.110.100.0.50–200Static
ln-iic01-production-20020010.200.0.0/2410.200.0.110.200.0.50–250Static
ln-iic01-avd-300300(DHCP)(DHCP)(DHCP)Dynamic

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

← PreviousTask 06 — VM Image Downloads
↑ Phase IndexPhase 06 — Post-Deployment Index
→ NextTask 08 — Post-Deployment Verification