Azureにおける高度で高パフォーマンスのワークロードの増加に伴い、これらのワークロードを実行する複雑なネットワークの運用状態の可視性と制御を強化する必要があります。 このような複雑なネットワークは、ネットワーク セキュリティ グループ、ファイアウォール、ユーザー定義ルート、Azureによって提供されるリソースを使用して実装されます。 構成が複雑であるため、接続に関する問題のトラブルシューティングは困難です。
Azure Network Watcherの接続トラブルシューティング機能は、ネットワーク接続の問題の診断とトラブルシューティングにかかる時間を短縮するのに役立ちます。 返された結果から、接続の問題の根本原因と、それがプラットフォームまたはユーザー構成の問題によるものかどうかについての分析情報が得られます。
接続のトラブルシューティングでは、ネットワーク セキュリティ グループ、ユーザー定義ルート、ブロックされたポートに関連する問題を検出するために、すべての接続の主要なチェックを実行する包括的な方法を提供することで、平均解決時間 (MTTR) が削減されます。 迅速な解決のために、ステップ バイ ステップ ガイドまたは対応するドキュメントが提供される実用的な分析情報を含む、次の結果も提供されます。
- 異なる宛先の種類 (VM、URI、FQDN、または IP アドレス) を使用した接続テスト
- 到達可能性に影響する構成の問題
- 待機時間 (ソースと宛先の間の最小、最大、および平均)
- ソースから宛先へのグラフィカル トポロジ ビュー
- 接続のトラブルシューティング チェック中に失敗したプローブの数。
エージェントレス エクスペリエンス (プレビュー)
接続のトラブルシューティングでエージェントレス エクスペリエンスがサポートされるようになりました (現在プレビュー段階)。 接続テストを実行するために、Network Watcher エージェント仮想マシン拡張機能を仮想マシンにインストールする必要がなくなりました。 機能は、一般公開前に変更される可能性があります。
以前は、接続を使用した接続テストのトラブルシューティングでは、ソース仮想マシンに Network Watcher エージェント VM 拡張機能がインストールされている必要がありました。 この拡張機能は、VM からテストを実行するために必要でした。
新着情報
エージェントレス エクスペリエンスにより、診断エージェントまたは VM 拡張機能をインストールせずに、Azure リソース間で接続テストを実行できるようになりました。 これにより、セットアップが簡略化され、運用上のオーバーヘッドが軽減され、Azure ポータルから直接トラブルシューティングが高速化されます。
- エージェントのインストールは必要ありません: Windowsまたは Linux 仮想マシンにNetwork Watcher エージェント VM 拡張機能をデプロイまたは更新することなく、接続テストを開始できます。
- Streamlined エクスペリエンス: すべての診断は、Azureプラットフォーム API を使用して実行され、プロセスをシームレスかつ効率的にします。
サポートされる変換元と変換先の種類
接続のトラブルシューティングでは、次のいずれかのAzure リソースからの TCP または ICMP 接続を確認する機能が提供されます。
- 仮想マシン
- 仮想マシン スケール セット
- Azure Bastion インスタンス
- Application Gateway v2 (プライベート アプリケーション ゲートウェイのデプロイに登録されているゲートウェイを除く)
接続のトラブルシューティングでは、次のいずれかの宛先への接続をテストできます。
- 仮想マシン
- 完全修飾ドメイン名 (FQDN)
- ユニフォーム・リソース・アイデンティファイア(URIs)
- IP アドレス
接続のトラブルシューティングで検出された問題
接続のトラブルシューティングでは、接続に影響する可能性がある次の種類の問題を検出できます。
- 高い VM の CPU 使用率
- 高い VM のメモリ使用率
- トラフィックをブロックしている仮想マシン (ゲスト) のファイアウォール規則
- DNS 解決失敗
- ルートが正しく構成されていない、または見つからない
- トラフィックをブロックしているネットワーク セキュリティ グループ (NSG) ルール
- 指定したソース ポートでソケットが開けない
- Azure ExpressRoute回線のアドレス解決プロトコル エントリがありません
- 指定された宛先ポートでサーバーがリッスンしていない
[応答]
次の表には、接続のトラブルシューティングの実行後に返されるプロパティを示します。
| プロパティ | 説明 |
|---|---|
| 接続状況 | 接続チェックの状態。 結果は Reachable か Unreachable のいずれかです。 |
| 平均レイテンシー (ミリ秒) | 接続チェック中の平均待機時間 (ミリ秒)。 (チェックの状態が到達可能の場合にのみ表示されます)。 |
| 最小レイテンシー (ミリ秒) | 接続チェック中の最小待機時間 (ミリ秒)。 (チェックの状態が到達可能の場合にのみ表示されます)。 |
| 最大レイテンシー (ミリ秒) | 接続チェック中の最大待機時間 (ミリ秒)。 (チェックの状態が到達可能の場合にのみ表示されます)。 |
| ProbesSent | チェック中に送信されたプローブの数。 最大値は 100 です。 |
| プローブ失敗 | チェック中に失敗したプローブの数。 最大値は 100 です。 |
| ホップ | 送信元から送信先へのホップ バイ ホップのパス。 |
| ホップ[].タイプ | リソースの種類。 値は、Source、VirtualAppliance、VnetLocal、Internet のいずれかです。 |
| ホップ[].ID | ホップの一意識別子。 |
| ホップ[]。住所 | ホップの IP アドレス。 |
| ホップ[].リソースID | ホップがAzure リソースである場合のホップのリソース ID。 インターネット リソースの場合、リソース ID は Internet です。 |
| Hops[].NextHopIds | 次に取得されるホップの一意識別子。 |
| ホップ[].課題 | そのホップのチェック中に発生した問題の一覧。 問題がない場合、値は空になります。 |
| ホップ[].問題[].起源 | 現在のホップで、問題が発生した場所。 使用できる値: 受信: 問題は、前のホップから現在のホップへのリンクにあります。 送信: 問題は、現在のホップから次のホップへのリンクにあります。 ローカル: 問題は現在のホップにあります。 |
| Hops[].Issues[].Severity | 検出された問題の重大度。 値は、Error か Warning のいずれかです。 |
| Hops[].Issues[].Type | 検出された問題の種類。 使用できる値: CPU メモリ ゲストファイアウォール DnsResolution ネットワークセキュリティルール UserDefinedRoute |
| Hops[].Issues[].Context | 検出された問題に関する詳細。 |
| ホップ[].問題[].コンテキスト[].key | 返されたキーと値のペアのキー。 |
| ホップ[].問題[].コンテキスト[].value | 返されたキーと値のペアの値。 |
| NextHopAnalysis.ネクストホップタイプ | ネクスト ホップの種類。 使用できる値: ハイパーネットゲートウェイ インターネット なし バーチャルアプライアンス VirtualNetworkGateway VnetLocal |
| NextHopAnalysis.NextHopIpAddress (英語) | ネクスト ホップの IP アドレス。 |
| 返されたルートに関連付けられているルート テーブルのリソース識別子。 返されたルートが、ユーザーが作成したどのルートにも対応していない場合、このフィールドには文字列 System Route が設定されます。 | |
| SourceSecurityRuleAnalysis.Results[].Profile | ネットワーク構成診断プロファイル。 |
| SourceSecurityRuleAnalysis.Results[].Profile.Source | トラフィックの送信元。 使用可能な値は、*****、 IP アドレス/CIDR、 サービス タグです。 |
| SourceSecurityRuleAnalysis.Results[].Profile.Destination | トラフィックの送信先。 使用可能な値は、*****、 IP アドレス/CIDR、 サービス タグです。 |
| SourceSecurityRuleAnalysis.Results[].Profile.DestinationPort | トラフィックの送信先ポート。 設定される可能性のある値: *、0 - 65535 の範囲の単一ポート。 |
| SourceSecurityRuleAnalysis.Results[].Profile.Protocol | 検証対象のプロトコル。 使用可能な値は、*****、 TCP 、 UDP です。 |
| SourceSecurityRuleAnalysis.Results[].Profile.Direction | トラフィックの方向。 設定される可能性のある値: Outbound、Inbound。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult (ネットワークセキュリティグループ結果) | ネットワーク セキュリティ グループの結果。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[] | ネットワーク セキュリティ グループ診断の結果の一覧。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.SecurityRuleAccessResult | ネットワーク トラフィックは許可または拒否されます。 設定される可能性のある値: Allow、Deny。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].AppliedTo | ネットワーク セキュリティ グループが適用される NIC またはサブネットのリソース ID。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].MatchedRule | 一致したネットワーク セキュリティ規則。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].MatchedRule.Action | ネットワーク トラフィックは許可または拒否されます。 設定される可能性のある値: Allow、Deny。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].MatchedRule.RuleName | 一致したネットワーク セキュリティ規則の名前。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].NetworkSecurityGroupId | ネットワーク セキュリティ グループ ID。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[] | ネットワーク セキュリティ規則の評価結果の一覧。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].DestinationMatched | 値は、送信先が一致するかどうかを示します。 ブール値。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].宛先ポートが一致しました | 値は、送信先ポートが一致するかどうかを示します。 ブール値。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].Name | ネットワーク セキュリティ規則の名前。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].ProtocolMatched | 値は、プロトコルが一致するかどうかを示します。 ブール値。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].SourceMatched | 値は、送信元が一致するかどうかを示します。 ブール値。 |
| SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].SourcePortMatched | 値は、送信元ポートが一致するかどうかを示します。 ブール値。 |
| DestinationSecurityRuleAnalysis (英語) | SourceSecurityRuleAnalysis の形式と同じです。 |
| SourcePortStatus (ソースポートステータス) | 送信元のポートに到達できるかどうかを決定します。 可能な値は次のとおりです: 不明 リーチャブル 不安定 接続なし タイムアウト |
| DestinationPortStatus(宛先ポートステータス) | 送信先のポートに到達できるかどうかを決定します。 可能な値は次のとおりです: 不明 リーチャブル 不安定 接続なし タイムアウト |
次に示すのは、ホップで見つかった問題の例です。
"Issues": [
{
"Origin": "Outbound",
"Severity": "Error",
"Type": "NetworkSecurityRule",
"Context": [
{
"key": "RuleName",
"value": "UserRule_Port80"
}
]
}
]
エラー
接続のトラブルシューティングでは、次のエラー メッセージが返されます。
| 問題タイプ | 説明 |
|---|---|
| AgentStopped | ソース VM 上のNetwork Watcher エージェントが停止しているか、応答していない。 |
| ゲストファイアウォール | 送信元または宛先 VM のゲスト OS ファイアウォールによってトラフィックがブロックされています。 |
| DNSResolution | ソース エージェントで宛先ホスト名の DNS 検索に失敗しました。 |
| SocketError | ソース エージェントは、必要なローカル ソケット ( SocketBindFailed や ListenFailed など) でバインドまたはリッスンできませんでした。 |
| ネットワークセキュリティルール | NSG ルールは、送信元と送信先の間の受信または送信トラフィックを拒否しています。 |
| UserDefinedRoute | トラフィックを None 次ホップにルーティングし、ブラックホール ルーティングを作成する UserDefinedRoute が見つかりました。 |
| プラットフォーム | Azureプラットフォーム レベルの問題が接続に影響しています。 |
| NetworkError | 一般的なネットワーク エラーが発生しました (たとえば、接続がタイムアウトした、接続に失敗した、応答がない、送受信の失敗など)。 |
| CPU | ソースまたは宛先 VM での CPU 使用率がしきい値を超えました。 |
| メモリ | ソースまたは宛先 VM でのメモリ使用量がしきい値を超えました。 |
| ARPMissing | Microsoft Edge (ExpressRoute) ホップの ARP テーブルがないか、顧客/Microsoft edge IP のエントリが不完全です。 |
| ルートが見つかりません | ホップで宛先への有効なルートが見つからない場合に発生します。 |
| VMRebooting | 移行元または移行先の VM は現在再起動中の状態です。 |
| VMNotAllocated (VMは割り当てされていません) | VM が割り当てられません (割り当て解除/停止)。 |
| 宛先にリスナーがありません | 宛先接続チェックで、指定されたポートでリッスンしているプロセスがないことを確認しました。 |
| DIPProbeDown | SLB 正常性プローブは、バックエンド DIP (宛先 IP) を ダウンとして報告します。 |
| NoRouteLearned | SLB または仮想ハブで、宛先への有効なルートが見つかりませんでした。 |
| PeeringInfoNotFound | 2 つの VNet 間のピアリング情報を取得できませんでした。 |
| VMStarting | 宛先 VM は開始状態であり、まだトラフィックを受け入れる準備ができていません。 |
| VMStopped | 宛先 VM は停止 (ただし割り当て済み) であるため、ネットワーク トラフィックを受け入れることはできません。 |
| VMStopping | 宛先 VM は停止中であり、トラフィックを確実に受け入れていません。 |
| VMDeallocating | 移行先 VM の割り当てが解除され、リソースを解放中であるため、一時的に到達できません。 |
| VMDeallocated | 移行先 VM の割り当てが完全に解除されました。 |
| SystemError | 内部システムまたはインフラストラクチャ エラーが発生しました。 |
| UDRLoop | ユーザー定義ルートが見つかりました。 これにより、次ホップ IP が現在のホップ IP と一致するルーティング ループが作成されます。 |
| IP 転送が有効になっていません | トラフィックがルーティングされる NVA (仮想アプライアンス) VM では、その NIC で IP 転送が有効になっていません。 |
| VnetAccessNotAllowed | 仮想ネットワーク ピアリング リンクに AllowVNetAccess が false に設定されており、トラフィックがピアリング境界を越えるのをブロックしています。 |
| AllowGatewayTransitNotEnabled | ハブ/ゲートウェイ側のピアリングでは AllowGatewayTransit が有効になっていません。 |
| MultiNICsInSameSubnet | VM 上の複数の NIC が同じサブネット内にあり、非対称ルーティングや予期しないトラフィック動作を引き起こす可能性があります。 |
| 標準ILBアウトバウンドインターネット禁止 | Standard Internal Load Balancer のバックエンド プール内の VM がインターネットに到達しようとしたときに発生します。Standard ILB バックエンドには、Basic ILB とは異なり、既定の送信インターネット アクセスがありません。 |
| 同一サブネット内の複数NICで弱いホスト送信が有効 | 複数の NIC が同じサブネット内にあり、脆弱なホスト送信が有効になっているため、トラフィックが予期しないインターフェイスから送信される可能性があります。 |
| MultiNICsInSameSubnetWithWeakHostEnabled | 複数の NIC が同じサブネット内にあり、VM で脆弱なホスト (送受信) が有効になっているため、意図しないインターフェイスを介してパケットがルーティングされる可能性があります。 |
| SourcePortInUse | エージェントによって選択されたソース ポートは既 にTIME_WAIT 状態 (残留 TCP ソケット) であるため、そのポートから新しい接続が確立されません。 |
| InvalidResponseFromServer | DNS プローブがサーバーにクエリを実行したが、一致するレコードを受信しなかった。 |
| DNSレスポンスの検証に失敗しました | DNS プローブの応答が構成された検証規則に失敗しました (たとえば、間違ったレコード数、間違った再帰のサポート、間違った RCode、間違った機関フラグなど)。 |
| UnsupportedSystem | エージェントは、要求されたプローブの種類をサポートしていない OS またはシステム構成で実行されています。 |
| IncompleteTopology | サービスが宛先への完全なホップ パスを構築できませんでした。 |
| DestinationUnreachable | ソース マシン上のエージェントが宛先に到達できませんでした。 |
| TraceRouteUnavailable | エージェントは traceroute の結果 (パスなし) を返さなかったため、ソースと宛先の間の接続状態を判断できません。 |
| 目的地は部分的に到達可能 | エージェントからの一部の traceroute パスが宛先に正常に到達したわけではありません。 |
| GatewayNotProvisioned | VPN/ExpressRoute ゲートウェイから GatewayNotProvisioned エラーが返されました 。 |
| ResourceHealthUnavailable | Azure Resource Healthは、ホップ リソース (VM、ゲートウェイ、ファイアウォールなど) を Unavailable として報告します。 |
| ResourceHealthDegraded | Azure Resource Healthは、ホップ リソースを Degraded として報告します。 |
| VirtualHubNotProvisioned | パスに関連付けられているVirtual WAN ハブが、Succeeded プロビジョニング状態ではありません。 |
| StatusCodeValidationFailed | HTTP プローブは応答を受け取りましたが、返された HTTP 状態コードが予期された値と一致しませんでした。 |
| HeaderValidationFailed (ヘッダーの検証に失敗しました) | HTTP プローブは応答を受信しましたが、1 つ以上の HTTP 応答ヘッダーが見つからないか、一致しませんでした。 |
| ContentValidationFailed | HTTP プローブは応答を受信しましたが、応答本文の内容が予期された値と一致しませんでした。 |
| 接続が構成されていませんNoConnectionConfigured | 接続モニターの設定で、ソース エンドポイントと宛先エンドポイントの間に接続が構成されていない。 |
| ConnectionStateDisconnected | 監視対象の接続が切断状態であり、論理接続パスの中断を示します。 |
| BasicILBはグローバルピアリングでサポートされていません | ベーシック内部ロードバランサーでは、グローバル仮想ネットワーク ピアリングをサポートしていません。 |
| BGPルート伝播無効化 | BGP ルート伝達は、ソース サブネットに関連付けられているルート テーブルで無効になります。 |
| リモートゲートウェイの使用が有効になっていません | スポーク側のピアリングでは、UseRemoteGateways が有効になっていません。 |
| 予期しない仮想ネットワークゲートウェイ接続 | 想定されていないパスに仮想ネットワーク ゲートウェイ接続が見つかりました。 |
障害の種類
接続のトラブルシューティングでは、接続に関する障害の種類が返されます。 次の表は、返される可能性のある障害の種類の一覧です。
| タイプ | 説明 |
|---|---|
| CPU | CPU の使用率が高くなっています。 |
| メモリ | メモリの使用率が高くなっています。 |
| ゲストファイアウォール | 仮想マシンのファイアウォールの構成によりトラフィックがブロックされています。 TCP ping は特異なユース ケースであり、許可するルールがない場合、TCP ping はターゲット IP アドレス/FQDN に到達しませんが、ファイアウォール自体がクライアントの TCP ping 要求に応答します。 このイベントはログに記録されません。 ターゲット IP アドレス/FQDN へのアクセスを許可するネットワーク ルールがある場合は、ping 要求がターゲット サーバーに到達し、その応答がクライアントに送り返されます。 このイベントは、ネットワーク規則ログに記録されます。 |
| DNSResolution | 送信先アドレスの DNS 解決が失敗しました。 |
| ネットワークセキュリティルール | ネットワーク セキュリティ グループ規則によってトラフィックがブロックされています (セキュリティ規則が返されます)。 |
| ユーザー定義ルート | ユーザー定義またはシステム ルートによりトラフィックがドロップしました。 |
次のステップ
接続のトラブルシューティングを使って接続のテストとトラブルシューティングを行う方法については、次のステップに進んでください。