Routing & Transit参照資料確認: 2026-09-10

Symmetric Routing with Stateful NVA

stateful Firewall/NVAを通すflowで往路と復路を同じstate domainへ戻し、UDR/BGP/LB/NATの組合せによるasymmetryを防ぐ。

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

Symmetric Routing with Stateful NVAを理解するための前提

stateful NVAはconnection stateを保持するため、return packetが別の非同期instance/pathへ入るとdropされ得る。 symmetryは「同じVM instance」を必ず意味せず、vendor clusterでstate同期された同じstate domainへ戻れば成立する場合がある。

UDR、BGP、ILB HA Ports、Gateway Load Balancer、SNAT/DNATはそれぞれreturn pathへ影響する。 asymmetric failureはTCP retransmission/silent dropとして見え、Azure control-plane statusが正常でも発生する。

source/destination双方のeffective routesと、NVA ingress/egress両方向packet captureを突き合わせる。 SNATを入れるとreturn destinationがNVA addressになるためsymmetryを作りやすい場合があるが、source visibilityとのtrade-offがある。

通信や判断の流れを追う
SourceEffective routeNext hopDestinationReturn path

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で証明する。

仕組み

forward path: workload A→UDR→NVA1→workload B。return pathでB→system/peering route→Aへ直接戻ればNVA1 stateを通らずasymmetric。

return側にもNVAへ向くrouteを置く、Load Balancer HA Portsで同一flow hashingする、NATでreturn destinationをNVAへ固定する等の設計がある。

BGP failoverではroute convergence後のnew flowはalternate NVAへ行けても、existing stateが同期されていなければ切断する。HA acceptanceをnew/existing connectionで分ける。

Packet path

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

  1. SYNがsource routeによりNVAへ入る。
  2. NVAがstate作成し必要ならNAT、destinationへforward。
  3. SYN/ACKのdestinationとreturn routeを計算。
  4. 同じstate domainへ戻る。
  5. NVA state match後にsourceへ配送しsession成立。

設計判断

判断点推奨理由
Packet walkforward/reverseを同じ表に書く。片方向図だけでsymmetryは判断できない。
HA modelstate sync有無とflow hashingをvendor仕様で確認。route HAとsession HAは別。
NATどこでsource/destinationが変換されるか明示。reverse routeのdestinationが変わる。
Failure testexisting + new sessionの両方でfailover。convergenceとstate preservationを分離評価。

確認手順

Azure Portal

  • source/destination NICのEffective routesを両方取得。
  • NVA HA/cluster stateとsession tableを確認。
  • 両側packet captureで同一5-tuple(NAT前後も記録)を追跡。

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 nic show-effective-route-table -g <source-rg> -n <source-nic> -o jsonc
az network nic show-effective-route-table -g <dest-rg> -n <dest-nic> -o jsonc
PowerShell — read-only first
Get-AzNetworkInterface -ResourceGroupName <rg> -Name <nic>

障害切り分け

症状疑う点証拠次の確認
SYN出るがSYN/ACK後に確立しないreturn pathがNVAをbypassbidirectional capturereturn UDR/BGP/NAT修正
failoverでexisting sessionのみ切れるstate syncなし/非対応NVA session sync status仕様として受容またはstateful HA構成
片方向だけNVA instanceが違うLB hashing/route next hop差NVA capture + LB flowHA Ports/vendor setting確認
ICMPは通るがTCP失敗stateful policy/NAT/asymmetryTCP packet capture5-tupleとstate tableを確認

変更時の確認と rollback

  • routing/policy変更前にcritical flowのforward/reverse packet pathを保存。
  • NVA maintenanceはstate sync/traffic drainを使う。
  • rollback後はexisting flowを再利用せずnew TCP sessionも生成し、session tableとpacket pathを確認。

Official sources