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

Private Subnet / Explicit Outbound

2026年のdefault変更を前提に、VM outboundをimplicit platform behaviorからNAT Gateway/Firewall/NVA等の明示構成へ移行する。

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

Private Subnet / Explicit Outboundを理解するための前提

2026-03-31以降にリリースされたAPI versionでは、新規VNetのsubnetはdefaultOutboundAccess=falseが既定。 private subnetではVMのdefault outbound IP生成を抑止し、Internet/public Microsoft endpointへはexplicit outbound methodが必要。

explicit outboundの代表はNAT Gateway、Standard Load Balancer outbound rules、public IP、Azure Firewall/NVAへ向けるUDRなど。 nonprivate subnetではexplicit outboundが存在してもdefault outbound IPが割り当てられている場合があるが、explicit methodが優先されている間はそれがegressに使われるとは限らない。

default outbound IPを完全に除去するにはprivate subnet化に加え、対象VMのstop/deallocateが必要になるケースがある。 outbound designでは「到達できるか」だけでなくsource public IP、SNAT capacity、logging、failover、deny policyを契約化する。

通信や判断の流れを追う
利用側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で証明する。

仕組み

implicit default outboundはMicrosoft-owned public IPに依存し、addressが予告なく変わり得るためdeterministic allowlistに不向き。

private subnet + NAT Gatewayならsubnet-levelでexplicit SNATを提供し、unsolicited inboundを開かずにegress identityを固定できる。

central Firewall/NVA egressならUDRでnext hopをinspection pointへ向ける。routeだけでなくSNAT、DNS、return path、platform dependencyを確認する。

migrationではexisting connectionが旧SNAT stateを保持する場合があるため、新規TCP connectionでsource IP/routeを確認する。

Packet path

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

  1. source workloadがpublic destinationへ接続開始。
  2. subnetのroute selectionで0.0.0.0/0等のnext hopを決定。
  3. NAT Gateway/Firewall/NVA/LBなどexplicit outbound componentでSNAT/inspection。
  4. public destinationへ送信。
  5. responseが同じtranslation/stateへ戻りprivate sourceへ復元。

設計判断

判断点推奨理由
Preferred defaultNAT Gatewayを一般的なdirect Internet egressの第一候補にする。managed SNAT、stable public IP、subnet-level運用。
Central inspectionpolicy/loggingが要件ならFirewall/NVA経由を設計。routingとsecurityをcentralizeできるがsymmetry/DNS/HAを追加検証。
Migrationdefault outboundから一気に切らずdependency listとtest vectorを作る。Windows Update等、見えにくいpublic dependencyを漏らさない。
Acceptancepublic source IP、next hop、allowed/denied destination、failoverを実測。portalのassociationだけではegress behaviorを証明しない。

確認手順

Azure Portal

  • VNet → Subnets → 対象subnetのPrivate subnet設定を確認。
  • subnetのNAT gateway / Route table / Load Balancer/public IP依存を確認。
  • Network Watcher + external echo endpoint/approved test destinationでsource IPとreachabilityを確認。

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> --query "{defaultOutboundAccess:defaultOutboundAccess,natGateway:natGateway,routeTable:routeTable}" -o jsonc
az network nat gateway list -g <rg> -o table
PowerShell — read-only first
$vnet = Get-AzVirtualNetwork -ResourceGroupName <rg> -Name <vnet>
$vnet.Subnets | Select-Object Name,DefaultOutboundAccess,NatGateway,RouteTable

障害切り分け

症状疑う点証拠次の確認
新規VNetだけInternet不可private subnet defaultdefaultOutboundAccess=false + explicit egressなしNAT/Firewall等を設計
allowlistでsource IPが想定外implicit/default SNATや別egress patheffective route + observed source public IPexplicit outboundへ統一
private化したのにalert/default IPが残るVMがdeallocateされていない/legacy statesubnet propertyとVM lifecyclemaintenance windowでstop/deallocate後再確認
Firewall経由で一部serviceだけ失敗FQDN/DNS/platform dependency漏れFirewall logs/DNS/routedependency allowlistを根拠付きで補完

変更時の確認と rollback

  • migration前に外向きdependency、source IP allowlist、SNAT volume、critical job時刻を記録。
  • new egress pathを先に作成してからsubnet association/UDRを切替。
  • new connectionsでsource IPとdeny/allowを確認。
  • rollbackは元associationだけでなくexisting state/NAT tableとVM lifecycleも考慮。

What changed recently

2026年の運用上の注意

2026-03-31以降のAPIでは新規VNetのsubnetがprivate既定。既存VNetは自動変更されないため、「新旧環境で同じIaCに見えるのにoutbound behaviorが違う」状況に注意する。

Official sources