仮想ネットワーク内で動的スケーリングを必要とするアプリケーションデプロイでは、サブネットのアドレス空間が枯渇するリスクがあります。 仮想ネットワーク内のサブネットは、スケールアウト機能を必要とする多くのアプリケーションをホストできます。 Multiple Address Prefixes on Subnet
機能を使用すると、サブネット内の仮想マシンと Azure 仮想マシン スケール セットを簡単にスケーリングできます。 この機能により、サブネットのアドレス プレフィックスを変更するための前提条件として、サブネットからすべてのリソースを削除しなくてもよくなります。
現時点では、サブネット空間を拡張したり、サブネットの境界を越えたりする機能はありません。この機能により、仮想マシン スケール セットはサブネット内の使用可能なアドレス空間に制限されます。 ただし、この機能により、仮想マシン スケール セットでは、スケールアップ時に追加のサブネット アドレス空間を利用できるようになりました。 最初のサブネットがいっぱいの場合、追加の仮想マシンまたは仮想マシン スケール セットは、同じサブネット内の新しいアドレス空間プレフィックスに流出する可能性があります。
現時点では、次の制限が引き続き適用されます。
この機能は仮想マシンと仮想マシン スケール セットのみをサポートし、コンテナー (特に AKS クラスターの PodSubnet IPAM モード) のベア メタルまたは VNet インジェクションをサポートしていません。 委任されたサブネットでは、この機能を使用できません (VPN Gateway および ExpressRoute ゲートウェイ サービスに委任された GatewaySubnet を除く)。
この機能では、複数の顧客アドレス (CA) 構成をサポートしていません。 1 つのサブネット上で複数のプレフィックスを使用する場合、使用できる顧客アドレス (CA) 構成は 1 つだけです。 各 NIC (ネットワーク インターフェイス カード) では、IPv4 (インターネット プロトコル バージョン 4) アドレスが 1 つ、そして IPv6 (インターネット プロトコル バージョン 6) アドレスが 1 つサポートされています。
この機能は現在、コマンド ライン (PowerShell、CLI) または Azure Resource Manager テンプレートでのみ使用できます。 Azure portal のサポートは制限されています。 追加のアドレス プレフィックスが追加されると、
Subnets
ブレードの下にすべてのプレフィックスからのAvailable IPs
の正しい数が表示されますが、最初のプレフィックスのみが一覧表示されます。- [Virtual Network
Overview
] ページに移動し、JSON View
を選択すると、サブネット構成とすべてのサブネット プレフィックスの詳細を取得できます。
- [Virtual Network
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
注意事項
サブネットのプロパティ addressPrefixes と addressPrefix は、同じ意味で使用されません。 最適な結果を得るには、1 つのアドレス プレフィックスと複数のアドレス プレフィックスの両方に addressPrefixes のみを使用します。 ワークフローで addressPrefixes を既に使用している場合は、引き続きこのプロパティを使用します。
ローカルにインストールされた Azure PowerShell または Azure Cloud Shell。
Azure PowerShell にサインインし、この機能を使用したいサブスクリプションを確実に選択します。 詳細については、「Azure PowerShell を使用してサインインする」を参照してください。
Az.Network
モジュールが 4.3.0 以降であることを確認します。 インストールされているモジュールを確認するには、コマンド Get-InstalledModule -NameAz.Network
を使用します。 モジュールの更新が必要な場合は、必要に応じてコマンド Update-Module -NameAz.Network
を使用します。
PowerShell をインストールしてローカルで使用する場合、この記事では Azure PowerShell モジュール バージョン 5.4.1 以降が必要になります。 インストールされているバージョンを確認するには、Get-Module -ListAvailable Az
を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount
を実行して Azure との接続を作成することも必要です。
複数のプレフィックスを持つサブネットを作成する
このセクションでは、複数のプレフィックスを持つサブネットを作成します。
New-AzResourceGroup を使用して test-rg という名前のリソース グループを eastus2 の場所に作成します。
$rg = @{ Name = 'test-rg' Location = 'eastus2' } New-AzResourceGroup @rg
New-AzVirtualNetworkSubnetConfig を使用して複数のプレフィックスを持つサブネットを作成します。
$subnet = @{ Name = 'subnet-1' AddressPrefix = '10.0.0.0/24', '10.0.1.0/24' } $subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
New-AzVirtualNetwork を使用して、サブネットを持つ仮想ネットワークを作成します。
$net = @{ Name = 'vnet-1' ResourceGroupName = 'test-rg' Location = 'eastus2' AddressPrefix = '10.0.0.0/16' Subnet = $subnetConfig } New-AzVirtualNetwork @net
既存のサブネットを複数のプレフィックスで更新する
このセクションでは、既存のサブネットに 2 つ目のプレフィックスを追加してアドレス空間を拡張します。
Get-AzVirtualNetwork を使用して、変数内のターゲット仮想ネットワーク構成を取得します。
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'
Set-AzVirtualNetworkSubnetConfig を使用して、サブネット構成に 2 番目のアドレス プレフィックスを追加します。 この手順では、既存のアドレス プレフィックスと新しいアドレス プレフィックスの両方を指定します
重要
この手順では、既存のサブネット プレフィックスの一覧をスキップしないでください。 次の手順では、ここで指定したアドレス プレフィックスのみが適用され、使用されていない場合は他のすべてのプレフィックスが削除され、既存のネットワーク インターフェイスによって参照されている場合はエラーが発生します。
Set-AzVirtualNetworkSubnetConfig -Name 'subnet-1' -VirtualNetwork $vnet -AddressPrefix '10.0.0.0/24', '10.0.1.0/24'
Set-AzVirtualNetwork を使用して、更新された仮想ネットワーク構成を適用します。
$vnet | Set-AzVirtualNetwork
Get-AzVirtualNetwork と Get-AzVirtualNetwork を使用して、更新された仮想ネットワークとサブネットの構成を取得します。 サブネットに 2 つのアドレス プレフィックスがあることを確認します。
Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1' | ` Get-AzVirtualNetworkSubnetConfig -Name 'subnet-1' | ` ConvertTo-Json
サブネットからプレフィックスを削除する
また、アクティブに使用されていないサブネットからアドレス プレフィックスを削除することもできます。つまり、これらのアドレス プレフィックスを参照している既存のネットワーク インターフェイスはありません。 このセクションでは、 unused
アドレス プレフィックスを削除します。
Get-AzVirtualNetwork を使用して、変数内のターゲット仮想ネットワーク構成を取得します。
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'
Get-AzVirtualNetworkSubnetConfig を使用して、ターゲット サブネット上のすべてのアドレス プレフィックスを一覧表示します。
Get-AzVirtualNetworkSubnetConfig -Name 'subnet-1' -VirtualNetwork $vnet
Set-AzVirtualNetworkSubnetConfig を使用してアドレス プレフィックスの一覧を更新し、使用されていないプレフィックスを削除します。
重要
次の手順では、ここで指定したアドレス プレフィックスのみが適用され、使用されていない場合は他のすべてのプレフィックスが削除され、既存のネットワーク インターフェイスによって参照されている場合はエラーが発生します。
Set-AzVirtualNetworkSubnetConfig -Name 'subnet-1' -VirtualNetwork $vnet -AddressPrefix '10.0.1.0/24'
Set-AzVirtualNetwork を使用して、更新された仮想ネットワーク構成を適用します。
$vnet | Set-AzVirtualNetwork
Get-AzVirtualNetwork と Get-AzVirtualNetwork を使用して、更新された仮想ネットワークとサブネットの構成を取得します。 サブネットに 2 つのアドレス プレフィックスがあることを確認します。
Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1' | ` Get-AzVirtualNetworkSubnetConfig -Name 'subnet-1' | ` ConvertTo-Json