Skip to content

[Feature]: Add IPv6 support for Managed Network Virtual Appliances (NVA) #30290

Open

Description

@debipdasfeb14

Description of the new feature

Related command

az network virtual-appliance create --name --resource-group [--additional-nics] [--asn] [--boot-blobs --boot-strap-config-blobs] [--cloud-blobs --cloud-init-config-blobs] [--cloud-init-config --init-config] [--delegation] [--identity] [--internet-ingress-ips] [--location] [--network-profile] [--no-wait] [--scale-unit] [--tags] [--vendor] [--version] [--vhub] [--nva-interface-configuration] [--address-family]

az network virtual-appliance update ... [--address-family]

az network virtual-appliance show (ensure the output includes the new IPv6 properties)

Resource Provider

Microsoft.Network/networkVirtualAppliances

Description of Feature or Work Requested

Add IPv6 support for Managed Network Virtual Appliances (NVA), for both Hub and VNet scenarios.

  • Add a new --address-family parameter to az network virtual-appliance create and
    az network virtual-appliance update. It accepts IPv4 and/or IPv6. Omitting it defaults
    to IPv4-only (backward compatible). It is used to enable dual-stack and to
    upgrade/downgrade the address family on an existing NVA.
  • Ensure az network virtual-appliance show output reflects the new properties:
    addressFamily, addressPrefixV6, privateIpAddressV6 on the NVA, and
    publicIpAddressV6 / privateIpAddressV6 on the virtual appliance NICs.

Validation for --address-family:

  • Case-insensitive (ipv4, IPV6 accepted; canonicalized to IPv4/IPv6)
  • Only IPv4 and IPv6 allowed
  • No duplicates
  • Maximum of two values

Behavior summary:

  • create with --address-family IPv4 IPv6 → dual-stack; omitted or IPv4 → IPv4-only
  • update with --address-family → upgrade/downgrade; omitted → unchanged

Example

Dual-stack NVA in a Virtual Hub

az network virtual-appliance create -g dev2-testingipv6 -n ciscoNVA3 -l australiaeast
--vhub --vendor ciscosdwan --scale-unit 2 --version 17.18.02 --asn 65222
--cloud-init-config "Hello!World" --address-family IPv4 IPv6

Dual-stack NVA in a VNet

az network virtual-appliance create -g dev2-testingipv6 -n ciscoNVAvnet -l australiaeast
--vendor ciscosdwan --scale-unit 2 --version 17.18.02 --asn 65222
--cloud-init-config "Hello!World" --address-family IPv4 IPv6
--nva-interface-configuration

PowerShell reference (already implemented & merged)

Hub (dual-stack)

$sku = New-AzVirtualApplianceSkuProperty -VendorName 'ciscosdwan' -BundledScaleUnit 2 -MarketPlaceVersion '17.18.02'
$hub = Get-AzVirtualHub -ResourceGroupName "dev2-testingipv6" -Name "chainhub-03"
$nva = New-AzNetworkVirtualAppliance -ResourceGroupName "dev2-testingipv6" -Name "ciscoNVA3" -Location "australiaeast" -VirtualApplianceAsn 65222 -VirtualHubId $hub.Id -Sku $sku
-CloudInitConfiguration "Hello!World" -AddressFamily "IPv4","IPv6"

VNet (dual-stack)

$vnet = Get-AzVirtualNetwork -ResourceGroupName "dev2-testingipv6" -Name "vnet-v6"
$privateSubnetId = ($vnet.Subnets | Where-Object Name -eq "subnet1").Id
$publicSubnetId = ($vnet.Subnets | Where-Object Name -eq "subnet2").Id
$config1 = New-AzNvaInterfaceConfiguration -NicType "PrivateNic" -Name "privateInterface" -SubnetId $privateSubnetId
$config2 = New-AzNvaInterfaceConfiguration -NicType "PublicNic" -Name "publicInterface" -SubnetId $publicSubnetId
$nva = New-AzNetworkVirtualAppliance -ResourceGroupName "dev2-testingipv6" -Name "ciscoNVAvnet" -Location "australiaeast" -VirtualApplianceAsn 65222 -Sku $sku
-CloudInitConfiguration "Hello!World" -AddressFamily "IPv4","IPv6" `
-NvaInterfaceConfiguration $config1, $config2

Here is a link to Poweshell changes: #30246

Minimum API Version Required

2025-09-01

Swagger PR link / SDK link

Azure/azure-rest-api-specs#44811

Request Example

https://github.com/Azure/azure-rest-api-specs/pull/44811/changes#diff-c8fe9d17e868478e0a23186ce9def161194b8b7863f223cdb1c19a0f59705dd3

https://github.com/Azure/azure-rest-api-specs/pull/44811/changes#diff-52221a851bfe7bff8c6203f1bd5998b39ec1d0e86bcc4d0d7c039814c937f0c3

https://github.com/Azure/azure-rest-api-specs/pull/44811/changes#diff-26a21be992474c38d667f2570a0dd6efe991ee58c62a08f96bbe0239119425c1

https://github.com/Azure/azure-rest-api-specs/pull/44811/changes#diff-e50322dde0aebaf35ced627fece5604e90bce81cc1b65c1821992c855042c9ee

https://learn.microsoft.com/en-us/rest/api/virtualnetwork/network-virtual-appliances/create-or-update?view=rest-virtualnetwork-2026-01-01&tabs=HTTP#create-nva-in-virtual-hub-for-ipv4-and-ipv6

https://learn.microsoft.com/en-us/rest/api/virtualnetwork/network-virtual-appliances/create-or-update?view=rest-virtualnetwork-2026-01-01&tabs=HTTP#create-nva-in-vnet-for-ipv4-and-ipv6

Target Date

2026-03-01

PM Contact

cfields@microsoft.com

Engineer Contact

debidas@microsoft.com

Proposed implementation details (optional)

No response

Activity

  1. added
    feature-requestThis issue requires a new behavior in the product in order be resolved.
    needs-triageThis is a new issue that needs to be triaged to the appropriate team.
    on Oct 13, 2026
  2. added
    needs-triageThis is a new issue that needs to be triaged to the appropriate team.
    and removed
    needs-triageThis is a new issue that needs to be triaged to the appropriate team.
    on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    customer-reportedfeature-requestThis issue requires a new behavior in the product in order be resolved.needs-triageThis is a new issue that needs to be triaged to the appropriate team.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions