Network Watcher Next Hopを理解するための前提
Next hopはsource VM/NICとdestination IPを指定し、Azureが選ぶnext hop type/IPを返す。 Effective routesが候補一覧ならNext hopはdestination-specificな判定確認として使える。
VirtualAppliance、VirtualNetworkGateway、Internet、None等の結果をroute designと照合する。 Next hopはNVA内部がその後forwardするか、NSGがallowするか、applicationがlistenするかまでは証明しない。
change前後で同じsource/destinationを使うとrouting regressionのsmoke testになる。 FQDN問題では先に実際のresolved IPを固定してからNext hopを実行する。
Control plane と data plane
仕組み
toolはAzure control-plane/routing informationを使ってsource VMからdestinationへのnext-hop判断を返す。
「Internet」と出ても実application通信成功は別。NSG、Firewall policy、NAT、remote sideを順に追う。
「Virtual appliance」と出たら次にappliance capture/logへ移り、packetが到着しforwardされたかを確認する。
Packet path
routing問題は「どのresourceがあるか」ではなく、packetが各hopで何を選ぶかを順に追う。
- source VMとsource IPを固定。
- destination FQDNならresolved IPを記録。
- Next hopを実行。
- Effective routesでwinner理由を確認。
- selected device以降をlog/capture/application testで追跡。
設計判断
| 判断点 | 推奨 | 理由 |
|---|---|---|
| Use case | UDR/NVA changeのbefore/after smoke test。 | destination-specificで結果が明確。 |
| Pairing | Effective routesと必ず組み合わせる。 | winnerの背景route sourceを確認できる。 |
| Scope | 実flowのsource VMを使う。 | subnet contextが異なると結果も変わる。 |
| Limit | security/application成功判定には使わない。 | routingだけを証明するtoolとして位置付ける。 |
確認手順
Azure Portal
- Network Watcher → Network diagnostic tools → Next hop。
- Subscription/Resource group/VM/Network interface/Source IP/Destination IPを実flowに合わせる。
- 結果のNext hop type/IPを保存しeffective routesへ遷移。
Verification discipline
- subscription / resource group / resource IDを記録する。
- 同じsource・destinationでbefore/afterを比較する。
- read-only evidenceを保存してから変更する。
- control-plane successとapplication successを別々に判定する。
az network watcher show-next-hop --resource-group <network-watcher-rg> --vm <vm-name-or-id> --source-ip <source-ip> --dest-ip <destination-ip> -o jsonc# Portal/CLIを優先。PowerShell cmdletは導入中のAz.Network versionに合わせて Get-Command *NextHop* で確認。
障害切り分け
| 症状 | 疑う点 | 証拠 | 次の確認 |
|---|---|---|---|
| None | matching drop/invalid route | effective routes | prefix/source/state確認 |
| VirtualApplianceだが通信不可 | NVA以降の問題 | NVA capture/log | IP forwarding/policy/return path確認 |
| Internetが想定外 | forced tunnel UDR不在/よりspecific | effective routes | association/LPM確認 |
| destination IPが毎回違う | DNS/CDN/FQDN | name resolution result | 同じresolved IPでtest vector固定 |
変更時の確認と rollback
- change ticketへsource VM/IP + destination IP + resultを保存。
- rollback後に全critical destination test vectorを再実行。
- Next hop PASSだけで完了せず、実application flowも確認。