Connection Troubleshootを理解するための前提
Connection Troubleshootはpoint-in-timeの接続性診断。継続監視のConnection Monitorとは目的が違う。 current documentationではTCPまたはICMPを、VM、VMSS、Azure Bastion、Application Gateway v2(Private Application Gateway deploymentを除く)等からVM/FQDN/URI/IPへ検査できる。
結果はReachable/Unreachableだけでなく、minimum/maximum/average latency、probes、hop path、configuration/platform issueのinsightを返す。 2026年のcurrent docsではVM extension不要のagentless experienceがpreviewとして追加された。preview機能をproduction runbookの唯一の前提に固定しない。
Reachableは「そのtest条件でnetwork到達性が成立した」証拠であり、HTTP responseの内容、authentication、backend全台、継続可用性を証明しない。 FQDN/URIテストは名前解決もfailure domainに含む。結果を保存する際は実際に解決されたdestinationと時刻を併記する。
診断結果をどう読み分けるか
source resource、destination、protocol、destination port、必要ならsource port。ここがincidentの再現条件。
Reachable/Unreachableとprobe成功率。network pathのpoint-in-time評価。
hops、route/security/configuration fault。原因層を絞るhintであり全middleboxのpacket proofではない。
実client/curl/backend log。Connection Troubleshootの外側でapplication semanticsを閉じる。
障害が起きたときの調べ方
- production failureを1つ選び、source resource ID、destination FQDN/IP、protocol/port、時刻、期待statusを固定する。
- FQDN/URIの場合はsource側が解決するIPを別途保存し、DNS failureとIP reachability failureを混ぜない。
- Connection Troubleshootを同じsource/destinationで実行し、ConnectionStatus、ProbesSent/Failed、latency、Hops/faultを保存する。
- Unreachableなら表示されたroute/NSG/port/DNS等のfaultを、Next Hop、IP Flow Verify、guest側listen確認など専用toolで検証する。
- Reachableなのにapplication failureならnetwork reachabilityをいったん通過条件とし、TLS/Host/auth/application/backend dependencyへ移る。
- 修正後に同じ条件で再実行し、production clientのnew connectionでも同じ回復を確認する。
仕組みと読み方
Connection Troubleshootは複数の接続性チェックを1回のtestへまとめ、NSG、UDR、port、DNS、resource状態などの問題を短時間で絞り込むための入口です。ただし、返却されるhop/pathはAzureが評価可能な範囲の診断結果であり、任意のNVA内部処理やアプリケーションの業務レスポンスまで直接観測するものではありません。
運用では「UnreachableだからNSGを開ける」のではなく、faultの種類を次の専用証拠へ変換します。RouteMissingならeffective route/Next Hop、NSG blockならIP Flow Verify/effective security rules、port/listenならguest/application、DNSならsource contextでの名前解決という順です。
運用設計
| 判断軸 | 運用設計 |
|---|---|
| Point-in-time use | 障害の今を測る。SLA/継続異常検知はConnection Monitorへ分ける。 |
| Source fidelity | 本番clientとnetwork contextが違うjump VMからの成功を本番成功とみなさない。 |
| Preview dependency | agentless preview利用可否をrunbookに明記し、extension-based pathも把握する。 |
| Negative test | 本来blockedである通信もtest vector化し、変更で意図せず開通していないか確認する。 |
確認手順 / read-only first
実行前に固定する情報
- subscription / resource group / resource ID / region
- source IP/NIC/subnet と destination FQDN/IP
- protocol / source port / destination port
- UTC time window + JST表示
- expected result と known-good comparison
Evidence to keep
- command/query textとraw JSON/CSV
- Portal screenshotだけでなくresource IDを含む機械可読結果
- 変更前/変更後の同一test vector
- negative test と adjacent critical path
- rollback実施時の復帰確認
az network watcher test-connectivity \
--resource-group <rg> \
--source-resource <vm-name-or-id> \
--dest-address <fqdn-or-ip> \
--protocol TCP \
--dest-port 443 -o jsoncTest-AzNetworkWatcherConnectivity -NetworkWatcher <watcher> -SourceId <vm-resource-id> -DestinationAddress <fqdn-or-ip> -DestinationPort 443
この結果で何を証明できるか
| 観測結果 | 証明できること | それだけでは証明できないこと |
|---|---|---|
| Reachable + low latency | そのsource/test時点でprobeがdestinationへ到達。 | 実ユーザーrequestのstatus/body、全backend、継続性。 |
| Unreachable + RouteMissing | 診断時のsource側reachabilityにroute問題がある可能性が高い。 | どの設定変更が正解か。effective routes/desired designと照合が必要。 |
| Unreachable + NSG indication | security ruleがreachabilityを阻害。 | Firewall/WAF/guest firewallを含む全security layer。 |
| DNS resolution failure | その診断contextでname resolutionが失敗。 | 別client/別DNS resolverでも同じ結果になること。 |
| Reachable but app 500 | network reachabilityは成立。 | application/dependency正常性。別レイヤーへ移る。 |
よくある切り分けの失敗
| 症状 / 状態 | 疑う層 | 次の証拠 |
|---|---|---|
| 結果はReachableだがWebは失敗 | L7/TLS/auth/backend issue | curl/browser/backend logを同時刻で確認。 |
| jump VMからだけ成功 | source context差 | 本番sourceと同一subnet/route/security/DNSで再試験。 |
| FQDNだけ失敗 | DNS resolution | resolved IPへのdirect testとDNS query pathを分ける。 |
| App Gateway sourceで使えない | private deployment等のsupport boundary | current supported source typesを確認し別source/packet evidenceを使う。 |
| agentlessが使えない | preview availability/feature change | extension前提のsupported workflowへfallbackする。 |
変更時の確認と rollback
- 診断のためだけにroute/NSGを恒久変更しない。
- 一時的なallow/bypassを使う場合はConnection Troubleshootのbefore/after結果を同一条件で保存する。
- 回復後はtemporary changeを戻し、再度Reachableと実application成功の両方を確認する。
Current notes — 2026-09-11
Microsoft Learnの2026-04頃の更新ではConnection Troubleshootにagentless experience(preview)が追加されています。previewは「extension不要になる可能性があるcurrent path」として記載し、一般提供済み機能と混同しない表記にしています。
Related articles
Official sources
動作、support boundary、preview/GA、retirement、schemaはMicrosoft Learnのcurrent documentationを基準にしています。productionで使う際は対象subscription/region/resource provider/API/CLI versionの最新documentationを再確認してください。