Azure CLI Network Cheat Sheetを理解するための前提
CLI commandはsubscription/resource group/resource IDを明示し、incident中のwrong-contextを防ぐ。 NIC effective route/securityは設定値より実効状態を確認するための最重要read-only evidence。
Network Watcher show-next-hop/test-ip-flowはrouteとNSG decisionを個別に証明できる。 test-connectivityはsource resourceからdestination endpointへのconnection testに使えるがCLI上はPreview statusのためsupport levelを認識する。
show-topologyはresource relationship inventoryに使えるがResource Graph反映遅延を考慮する。 outputはtableだけでなくJSONを保存しbefore/after diffへ使う。
Control plane と data plane
仕組みと設計上の意味
最初にaz account showでsubscriptionを固定する。
incident evidenceはcommand、timestamp、resource ID、outputをセットで保存する。
JMesPath --queryは便利だが初動ではfieldを落としすぎずraw JSONも保持する。
mutation command(create/update/delete)とread-only command(show/list/test)をrunbookで分離する。
Packet / decision path
source→destinationを1本のflowとして固定し、名前解決・routing・security・NAT/service processing・return pathを必要な範囲で順に確認する。
- context確認。
- resource inventory。
- effective route/security。
- Network Watcher diagnostic。
- application/runtime evidenceと突合。
設計判断
| 判断点 | 推奨 | 理由 |
|---|---|---|
| Inventory | show/list | resource stateを取得 |
| Routing | show-effective-route-table / show-next-hop | winning route確認 |
| Security | list-effective-nsg / test-ip-flow | NSG decision確認 |
| Connectivity | test-connectivity | end-to-end diagnostic補助 |
確認手順
Azure Portal
- Cloud Shell/terminalでaz account showを最初に実行。
- 対象resource IDをPortalからコピーしcommand typoを防ぐ。
- output JSONをincident folderへ保存。
Evidence contract
az account show -o table
az network nic show-effective-route-table -g <rg> -n <nic> -o table
az network nic list-effective-nsg -g <rg> -n <nic> -o jsonc
az network watcher show-next-hop -g <rg> --vm <vm> --source-ip <src> --dest-ip <dst> -o jsonc
az network watcher test-ip-flow -g <rg> --vm <vm> --direction Outbound --protocol TCP --local <src:port> --remote <dst:port>
az network watcher test-connectivity -g <rg> --source-resource <vm-or-id> --dest-address <fqdn-or-ip> --dest-port <port>
az network watcher show-topology -g <rg> -o jsonc
az network route-table route list -g <rg> --route-table-name <rt> -o table
障害切り分け
| 症状 | 疑う点 | 証拠 | 次の確認 |
|---|---|---|---|
| ResourceNotFound | subscription/RG/name誤り | az account show + resource ID | context修正 |
| command unavailable | CLI version/extension差 | az version/help | current CLI docs確認 |
| empty effective route | resource state/permission/target mismatch | NIC/provisioning/RBAC | target見直し |
| tool PASSだがapp失敗 | application/DNS/TLS/NVA layer | app/log evidence | tool scope外へ進む |
変更・rollback
- incident中にupdate/create/delete commandを混ぜない。
- CLI versionとextensionsをevidenceに残す。
- script化する場合set -e相当だけでなくread-only contractをreview。
- 検証後もraw JSONを保存し、table出力だけに依存しない。