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

Subnet 設計

IP分割ではなくrouting・security・egress・delegation・managed serviceの適用境界としてsubnetを設計する。

Scope: Microsoft Learn / Azure Architecture Centerの一次資料を基準に、設計と運用で判断が必要な点をpacket path中心に整理。SKU、region、limitsは変更されるため、実装時はOfficial sourcesのcurrent documentationを再確認してください。

Subnet 設計を理解するための前提

同一VNet内のsubnet間はsystem routeにより既定でroutingされる。isolationにはNSG/Firewall/UDR等が必要。 1 subnetに関連付けられるroute tableは0または1。NSG/NAT Gatewayなどもsubnet単位の重要association。

Azureは各subnetで5 IPv4 addressを予約するため、small subnetほどusable率が下がる。 GatewaySubnet、RouteServerSubnetなどservice-specific subnetは名前/associationに制約がある。

delegated subnetやmanaged PaaS integrationはserviceごとのminimum size・同居可否を確認する。 subnetを環境・役割・trust/routing境界で分け、1 subnetへ無関係な責務を詰め込まない。

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

Control plane と data plane

Control planePortal / ARM / CLIで定義されたresource、association、route advertisement、peering flagなど。設定がSucceededでもpacket到達を保証しない。
Data plane実際のsource/destination/5-tupleが選ぶroute、NAT、security device、return path。Effective state、Next hop、logs、packet capture、application testで証明する。

仕組み

subnetはVNet address spaceの一部であり、Azure SDNがVNet内routeを提供する。security boundaryは自動では生まれない。

route tableをsubnetへassociateするとUDRがsystem/BGP routesと合成される。NAT GatewayはInternet egress behaviorをsubnet単位で置き換える。

managed service専用subnetでは一般VMと同じpolicyを付けられない場合がある。service documentationをgeneric network ruleより優先する。

private subnet設定は「subnet内resourceがprivate IPしか持てない」意味ではなく、VM default outbound IP生成を抑止する設定として扱う。

Packet path

routing問題は「どのresourceがあるか」ではなく、packetが各hopで何を選ぶかを順に追う。

  1. source NICが属するsubnetを特定。
  2. subnetに関連するNSG/route table/NAT/delegation/private settingを取得。
  3. destination IPに対するeffective routeをNICで確認。
  4. security decisionをsubnet/NIC両方で確認。
  5. managed serviceの場合はservice-specific health/logも確認。

設計判断

判断点推奨理由
Segmentationworkload role + trust + route policyが同じresourceを同一subnetへ。policy associationを理解しやすくする。
Dedicated subnetMicrosoftが専用subnetを要求するserviceは混在させない。unsupported associationやupgrade failureを防ぐ。
Capacityscale-out最大値から逆算しreserveを持つ。Private Endpointやmanaged instance追加で後から枯渇しやすい。
Egressexplicit outboundをsubnet designの初期項目に含める。2026年以降のprivate subnet defaultへ適合する。

確認手順

Azure Portal

  • VNet → Subnets → 対象subnetを開き、Address range / Private subnet / NSG / Route table / NAT gateway / Delegationを確認。
  • 関連resource側からもassociationが一致することを確認。
  • 変更前後で代表NICのEffective routes / Effective security rulesを比較。

Verification discipline

  • subscription / resource group / resource IDを記録する。
  • 同じsource・destinationでbefore/afterを比較する。
  • read-only evidenceを保存してから変更する。
  • control-plane successとapplication successを別々に判定する。
Azure CLI — read-only first
az network vnet subnet show -g <rg> --vnet-name <vnet> -n <subnet> -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 | Format-Table Name,AddressPrefix,NetworkSecurityGroup,RouteTable,NatGateway

障害切り分け

症状疑う点証拠次の確認
subnet間が意図せず通る同一VNet system routingをisolationと誤認effective route = VirtualNetworkNSG/Firewall等でsecurity policyを明示
managed service deployment失敗専用subnet/delegation/size条件違反service deployment error + subnet configservice-specific requirementsへ合わせる
一部VMだけoutbound不可private subnet + explicit egress不足/association差subnet/NAT/UDR associationsubnet単位のegress contractを統一
scale-outでIP枯渇capacity reserve不足available IPとscale requirementlarger/new subnetへ計画移行

変更時の確認と rollback

  • association変更前にNSG/UDR/NATのbefore snapshotを保存。
  • route table付替えはcritical destinationごとのnext hopを事前に列挙。
  • private subnet化はexisting VMを含むoutbound dependencyを先に検証。
  • rollback後はnew connectionで再試験し、stateful session残存に惑わされない。

Official sources