接続のトラブルシューティングの概要
Azure への高度でパフォーマンスの高いワークロードの増加に伴い、これらのワークロードを実行する複雑なネットワークの運用状態の可視性と制御を高める必要があります。 こうした複雑なネットワークは、ネットワーク セキュリティ グループ、ファイアウォール、ユーザー定義ルート、および Azure が提供するリソースを使用して実装されます。 構成が複雑であるため、接続に関する問題のトラブルシューティングは困難です。
Azure Network Watcher の接続トラブルシューティング機能は、ネットワーク接続の問題を診断してトラブルシューティングする時間を短縮するのに役立ちます。 返された結果から、接続の問題の根本原因と、それがプラットフォームまたはユーザー構成の問題によるものかどうかについての分析情報が得られます。
接続のトラブルシューティングでは、ネットワーク セキュリティ グループ、ユーザー定義ルート、ブロックされたポートに関連する問題を検出するために、すべての接続の主要なチェックを実行する包括的な方法を提供することで、平均解決時間 (MTTR) が削減されます。 迅速な解決のために、ステップ バイ ステップ ガイドまたは対応するドキュメントが提供される実用的な分析情報を含む、次の結果も提供されます。
- 異なる宛先の種類 (VM、URI、FQDN、または IP アドレス) を使用した接続テスト
- 到達可能性に影響する構成の問題
- ソースから宛先への可能なすべてのホップ バイ ホップのパス。
- ホップ バイ ホップの待機時間
- 待機時間 (ソースと宛先の間の最小、最大、および平均)
- ソースから宛先へのグラフィカル トポロジ ビュー
- 接続のトラブルシューティング チェック中に失敗したプローブの数。
サポートされる変換元と変換先の種類
接続のトラブルシューティングでは、次のいずれかの Azure リソースからの TCP または ICMP 接続を確認する機能が提供されます。
- 仮想マシン
- 仮想マシン スケール セット
- Azure Bastion インスタンス
- Application Gateway (v1 を除く)
重要
接続のトラブルシューティングを行うには、トラブルシューティングを行う仮想マシンに "Network Watcher エージェント VM 拡張機能"がインストールされている必要があります。 接続先の仮想マシンでは、拡張機能は必要ありません。
- Windows 仮想マシンに拡張機能をインストールするには、Windows 用 Network Watcher エージェント VM 拡張機能に関するページを参照してください。
- Linux 仮想マシンに拡張機能をインストールするには、Linux 用 Network Watcher エージェント VM 拡張機能に関するページを参照してください。
- 既にインストールされている拡張機能を更新するには、Azure Network Watcher エージェント VM 拡張機能の最新バージョンへの更新に関するページを参照してください。
接続のトラブルシューティングでは、次のいずれかの宛先への接続をテストできます。
- 仮想マシン
- 完全修飾ドメイン名 (FQDN)
- Uniform Resource Identifier (URI)
- IP アドレス
接続で検出された問題のトラブルシューティング
接続のトラブルシューティングでは、接続に影響する可能性がある次の種類の問題を検出できます。
- 高い VM の CPU 使用率
- 高い VM のメモリ使用率
- トラフィックをブロックしている仮想マシン (ゲスト) のファイアウォール規則
- DNS 解決の失敗
- ルートが正しく構成されていない、または見つからない
- トラフィックをブロックしているネットワーク セキュリティ グループ (NSG) ルール
- 指定したソース ポートでソケットが開けない
- Azure ExpressRoute 回線のアドレス解決プロトコル エントリがありません
- 指定された宛先ポートでサーバーがリッスンしていない
Response
次の表には、接続のトラブルシューティングの実行後に返されるプロパティを示します。
プロパティ | 説明 |
---|---|
ConnectionStatus | 接続チェックの状態。 結果は Reachable か Unreachable のいずれかです。 |
AvgLatencyInMs | 接続チェック中の平均待機時間 (ミリ秒)。 (チェックの状態が Reachable の場合にのみ表示されます)。 |
MinLatencyInMs | 接続チェック中の最小待機時間 (ミリ秒)。 (チェックの状態が Reachable の場合にのみ表示されます)。 |
MaxLatencyInMs | 接続チェック中の最大待機時間 (ミリ秒)。 (チェックの状態が Reachable の場合にのみ表示されます)。 |
ProbesSent | チェック中に送信されたプローブの数。 最大値は 100 です。 |
ProbesFailed | チェック中に失敗したプローブの数。 最大値は 100 です。 |
Hops | 送信元から送信先へのホップ バイ ホップのパス。 |
Hops[].Type | リソースの種類。 値は、Source、VirtualAppliance、VnetLocal、Internet のいずれかです。 |
Hops[].Id | ホップの一意識別子。 |
Hops[].Address | ホップの IP アドレス。 |
Hops[].ResourceId | ホップが Azure リソースの場合、そのホップのリソース ID。 インターネット リソースの場合、リソース ID は Internet です。 |
Hops[].NextHopIds | 次に取得されるホップの一意識別子。 |
Hops[].Issues | そのホップのチェック中に発生した問題のコレクション。 問題がない場合、値は空になります。 |
Hops[].Issues[].Origin | 現在のホップで、問題が発生した場所。 使用できる値: Inbound - 前のホップから現在のホップへのリンクに問題があります。 Outbound - 現在のホップから次のホップへのリンクに問題があります。 Local - 問題が現在のホップにある |
Hops[].Issues[].Severity | 検出された問題の重大度。 値は、Error か Warning のいずれかです。 |
Hops[].Issues[].Type | 検出された問題の種類。 使用できる値: CPU メモリ GuestFirewall DnsResolution NetworkSecurityRule UserDefinedRoute |
Hops[].Issues[].Context | 検出された問題に関する詳細。 |
Hops[].Issues[].Context[].key | 返されたキーと値のペアのキー。 |
Hops[].Issues[].Context[].value | 返されたキーと値のペアの値。 |
NextHopAnalysis.NextHopType | ネクスト ホップの種類。 使用できる値: HyperNetGateway Internet なし VirtualAppliance VirtualNetworkGateway VnetLocal |
NextHopAnalysis.NextHopIpAddress | ネクスト ホップの IP アドレス。 |
返されたルートに関連付けられているルート テーブルのリソース識別子。 返されたルートが、ユーザーが作成したどのルートにも対応していない場合、このフィールドには文字列 System Route が設定されます。 | |
SourceSecurityRuleAnalysis.Results[].Profile | ネットワーク構成診断プロファイル。 |
SourceSecurityRuleAnalysis.Results[].Profile.Source | トラフィックの送信元。 設定される可能性のある値: *、IP Address/CIDR、Service Tag。 |
SourceSecurityRuleAnalysis.Results[].Profile.Destination | トラフィックの送信先。 設定される可能性のある値: *、IP Address/CIDR、Service Tag。 |
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[].DestinationPortMatched | 値は、送信先ポートが一致するかどうかを示します。 ブール値。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].Name | ネットワーク セキュリティ規則の名前。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].ProtocolMatched | 値は、プロトコルが一致するかどうかを示します。 ブール値。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].SourceMatched | 値は、送信元が一致するかどうかを示します。 ブール値。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].SourcePortMatched | 値は、送信元ポートが一致するかどうかを示します。 ブール値。 |
DestinationSecurityRuleAnalysis | SourceSecurityRuleAnalysis の形式と同じです。 |
SourcePortStatus | 送信元のポートに到達できるかどうかを決定します。 使用できる値: 不明 Reachable Unstable NoConnection タイムアウト |
DestinationPortStatus | 送信先のポートに到達できるかどうかを決定します。 使用できる値: 不明 Reachable Unstable NoConnection タイムアウト |
次に示すのは、ホップで見つかった問題の例です。
"Issues": [
{
"Origin": "Outbound",
"Severity": "Error",
"Type": "NetworkSecurityRule",
"Context": [
{
"key": "RuleName",
"value": "UserRule_Port80"
}
]
}
]
障害の種類
接続のトラブルシューティングでは、接続に関する障害の種類が返されます。 次の表は、返される可能性のある障害の種類の一覧です。
型 | 説明 |
---|---|
CPU | CPU の使用率が高くなっています。 |
メモリ | メモリの使用率が高くなっています。 |
GuestFirewall | 仮想マシンのファイアウォールの構成によりトラフィックがブロックされています。 TCP ping は特異なユース ケースであり、許可するルールがない場合、TCP ping はターゲット IP アドレス/FQDN に到達しませんが、ファイアウォール自体がクライアントの TCP ping 要求に応答します。 このイベントはログに記録されません。 ターゲット IP アドレス/FQDN へのアクセスを許可するネットワーク ルールがある場合は、ping 要求がターゲット サーバーに到達し、その応答がクライアントに送り返されます。 このイベントは、ネットワーク規則ログに記録されます。 |
DNSResolution | 送信先アドレスの DNS 解決が失敗しました。 |
NetworkSecurityRule | ネットワーク セキュリティ グループ規則によってトラフィックがブロックされています (セキュリティ規則が返されます)。 |
UserDefinedRoute | ユーザー定義またはシステム ルートによりトラフィックがドロップしました。 |
次のステップ
接続のトラブルシューティングを使って接続のテストとトラブルシューティングを行う方法については、次のステップに進んでください。