Networking Foundation参照資料確認: 2026-09-11

Subnet Delegation

Azure PaaSへsubnetを委任するときのNetwork Intent Policy、IP capacity、NSG/UDR可否、Private Endpointとの排他を運用目線で整理する。

Scope: Microsoft Learn / Azure Architecture Centerの一次資料を2026-09-11時点で確認し、旧来の短い記事を公開運用向けdeep diveへ更新。SKU、region、limits、Preview statusは変わるため、実装直前にOfficial sourcesを再確認してください。

Subnet Delegationを理解するための前提

delegationはPaaS serviceにsubnet内でservice-specific resource/configurationを作る権限を与える。 委任先serviceはNetwork Intent Policyを使い、動作を壊す構成変更をPUT時に拒否できる。

NSG、UDR、service endpoint、共有/専用subnet可否、最小subnet sizeはserviceごとに異なる。 delegated subnetではPrivate Endpointを配置できないため、同一subnetへ役割を詰め込まない。

delegation解除前にservice instanceを残したまま削除・再利用しようとすると依存関係で失敗しやすい。 capacityはAzure予約5 IPに加えてserviceのscale-out/upgrade bufferを見込んで設計する。

通信や判断の流れを追う
利用側VNet / SubnetNIC / Azure service接続先

Control plane と data plane

Control planeVNet ownerがsubnetのdelegations propertyを構成し、対象PaaS resourceがその契約に従ってinstanceやNetwork Intent Policyを配置する。
Data plane実trafficはdelegated subnetのIP、effective route、NSG、service-specific dataplaneを通る。delegation自体はreachabilityを保証しない。

仕組みと設計上の意味

delegationは「serviceへsubnetを明け渡す」機能ではなく、Azure Resource Manager上の明示的な許可契約。

serviceが要求するNetwork Intent Policyは、NSG/UDR等の不整合をdeployment/update時に防ぐためのguardrailとして働く。

delegation可能service名は固定値ではなくplatform更新で増減するため、実装直前にPortal/CLIで利用可能値とservice documentationを確認する。

同じsubnetに複数serviceを置けるか、VM/VMSSと共存できるかはdelegation targetごとのcontractで決まる。

Packet / decision path

source→destinationを1本のflowとして固定し、名前解決・routing・security・NAT/service processing・return pathを必要な範囲で順に確認する。

  1. 対象serviceのnetwork integration要件を確認する。
  2. 必要なsubnet sizeと同居可否を決める。
  3. delegation、NSG、UDR、DNS、service endpointの組み合わせをcontrol planeで確認する。
  4. service deployment後にeffective route/securityとservice healthを確認する。
  5. 削除/移行時はservice dependencyを外してからdelegationを解除する。

設計判断

判断点推奨理由
専用subnetかserviceが専用を要求/推奨するなら専用化将来のpolicy衝突とIP枯渇を避ける
NSG/UDRserviceが明示的にsupportする範囲だけ適用generic network policyよりservice要件を優先
IP size最大scale + maintenance/upgrade bufferで確保small subnetは拡張時に停止要因になる
Private Endpoint別subnetへ分離delegated subnetとの排他を避ける

確認手順

Azure Portal

  • VNet → Subnets → Delegation、NSG、Route table、Available IPを確認。
  • 対象PaaS側のNetworking画面で選択subnetとintegration stateを照合。
  • 変更後はdeployment healthと代表通信を別々に確認。

Evidence contract

Identitysubscription / resource group / resource ID / regionを固定。
Before / After同じsource・destination・protocol・portで比較。
Effective state設定値だけでなくeffective route/security/health/logを取得。
Runtimecontrol-plane Succeededとapplication successを分けて判定。
Azure CLI — read-only first
az network vnet subnet show -g <rg> --vnet-name <vnet> -n <subnet> --query "{prefix:addressPrefix,delegations:delegations,routeTable:routeTable.id,nsg:networkSecurityGroup.id}" -o jsonc
az network vnet subnet list -g <rg> --vnet-name <vnet> -o table
PowerShell — read-only first
$vnet = Get-AzVirtualNetwork -ResourceGroupName <rg> -Name <vnet>
$vnet.Subnets | Select Name,AddressPrefix,Delegations,RouteTable,NetworkSecurityGroup

障害切り分け

症状疑う点証拠次の確認
deploymentがPUTで拒否delegation/service policy不一致Activity Log + subnet delegationservice-specific requirementsを再確認
scale-out失敗subnet IP不足subnet prefixとservice instance数larger/new subnetへ移行計画
通信だけ失敗NSG/UDR/DNSの問題effective state + DNS resultdelegationとreachabilityを切り分け
subnet削除不可service/delegation dependency残存resource dependenciesserviceを先にdetach/delete

変更・rollback

  • 変更前にdelegation/NSG/UDR/subnet prefixをexportする。
  • service移行はnew subnetへparallel deploymentできるか確認してからcutoverする。
  • rollbackはdelegationだけ戻すのではなくservice instanceとDNS/routeもbefore stateへ戻す。
  • IP capacity不足をrollbackで解決しようとせず、address planを修正する。

Official sources