PowerShell を使用した送信接続のトラブルシューティング
この記事では、Azure Network Watcher の接続トラブルシューティングを使用して、接続の問題を診断およびトラブルシューティングする方法について説明します。 接続のトラブルシューティングの詳細については、「接続のトラブルシューティングの概要」を参照してください。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
トラブルシューティングする仮想マシン (VM) のリージョンで Network Watcher が有効になっている。 既定で、Azure では、リージョン内に仮想ネットワークを作成したときに、そのリージョン内で Network Watcher が有効になります。 詳細については、「Azure Network Watcher を有効または無効にする」を参照してください。
Network Watcher エージェント VM 拡張機能がインストールされている仮想マシンと、次の送信 TCP 接続:
- ポート 80 を経由する 169.254.169.254 への接続
- ポート 8037 を経由する 168.63.129.16 への接続
テスト対象の (ポート スキャナー診断テスト用の) ポートを経由する 168.63.129.16 からの受信 TCP 接続を持つ 2 番目の仮想マシン。
Azure Cloud Shell または Azure PowerShell。
この記事の手順では、Azure Cloud Shell で Azure PowerShell コマンドレットを対話型で実行します。 Cloud Shell でコマンドを実行するには、コード ブロックの右上隅にある [Cloud Shell を開く] を選択します。 [コピー] を選択してコードをコピーし、続いて Cloud Shell に貼り付けて実行します。 Azure portal 内から Cloud Shell を実行することもできます。
また、Azure PowerShell をローカルにインストールしてコマンドレットを実行することもできます。 この記事では、Az PowerShell モジュールが必要です。 詳細については、「Azure PowerShell のインストール方法」を参照してください。 インストールされているバージョンを確認するには、
Get-InstalledModule -Name Az
を実行します。 PowerShell をローカルで実行している場合は、Connect-AzAccount コマンドレットを使用して Azure にサインインします。
Note
- Windows 仮想マシンに拡張機能をインストールするには、Windows 用 Network Watcher エージェント VM 拡張機能に関するページを参照してください。
- Linux 仮想マシンに拡張機能をインストールするには、Linux 用 Network Watcher エージェント VM 拡張機能に関するページを参照してください。
- 既にインストールされている拡張機能を更新するには、Azure Network Watcher エージェント VM 拡張機能の最新バージョンへの更新に関するページを参照してください。
仮想マシンへの接続を確認する
この例では、ポート 80 で接続先の仮想マシンへの接続を確認します。 この例では、ソース VM を含むリージョンで Network Watcher を有効にしている必要があります。
例
$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"
$destVMName = "Database0"
$RG = Get-AzResourceGroup -Name $rgName
$VM1 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName
$VM2 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $destVMName
$networkWatcher = Get-AzNetworkWatcher | Where-Object -Property Location -EQ -Value $VM1.Location
Test-AzNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationId $VM2.Id -DestinationPort 80
Response
次の応答は、以前の例からのものです。 この応答で、ConnectionStatus
は Unreachable (到達不能) です。 送信されたすべてのプローブが失敗したことがわかります。 接続は、ポート 80 の受信トラフィックをブロックするように構成された、UserRule_Port80 というユーザーが構成した NetworkSecurityRule
のために、仮想アプライアンスで失敗しています。 この情報は、接続の問題を調査するために使用できます。
ConnectionStatus : Unreachable
AvgLatencyInMs :
MinLatencyInMs :
MaxLatencyInMs :
ProbesSent : 100
ProbesFailed : 100
Hops : [
{
"Type": "Source",
"Id": "c5222ea0-3213-4f85-a642-cee63217c2f3",
"Address": "10.1.1.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurat
ions/ipconfig1",
"NextHopIds": [
"9283a9f0-cc5e-4239-8f5e-ae0f3c19fbaa"
],
"Issues": []
},
{
"Type": "VirtualAppliance",
"Id": "9283a9f0-cc5e-4239-8f5e-ae0f3c19fbaa",
"Address": "10.1.2.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/fwNic/ipConfiguratio
ns/ipconfig1",
"NextHopIds": [
"0f1500cd-c512-4d43-b431-7267e4e67017"
],
"Issues": []
},
{
"Type": "VirtualAppliance",
"Id": "0f1500cd-c512-4d43-b431-7267e4e67017",
"Address": "10.1.3.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/auNic/ipConfiguratio
ns/ipconfig1",
"NextHopIds": [
"a88940f8-5fbe-40da-8d99-1dee89240f64"
],
"Issues": [
{
"Origin": "Outbound",
"Severity": "Error",
"Type": "NetworkSecurityRule",
"Context": [
{
"key": "RuleName",
"value": "UserRule_Port80"
}
]
}
]
},
{
"Type": "VnetLocal",
"Id": "a88940f8-5fbe-40da-8d99-1dee89240f64",
"Address": "10.1.4.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/dbNic0/ipConfigurati
ons/ipconfig1",
"NextHopIds": [],
"Issues": []
}
]
ルーティングの問題を確認する
この例では、仮想マシンとリモート エンドポイント間の接続を確認します。 この例では、ソース VM を含むリージョンで Network Watcher を有効にしている必要があります。
例
$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"
$RG = Get-AzResourceGroup -Name $rgName
$VM1 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName
$networkWatcher = Get-AzNetworkWatcher | Where-Object -Property Location -EQ -Value $VM1.Location
Test-AzNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationAddress 13.107.21.200 -DestinationPort 80
Response
次の例では、ConnectionStatus
は Unreachable (到達不能) として示されます。 Hops
の詳細では、トラフィックが UserDefinedRoute
のためにブロックされた、Issues
で確認できます。
ConnectionStatus : Unreachable
AvgLatencyInMs :
MinLatencyInMs :
MaxLatencyInMs :
ProbesSent : 100
ProbesFailed : 100
Hops : [
{
"Type": "Source",
"Id": "b4f7bceb-07a3-44ca-8bae-adec6628225f",
"Address": "10.1.1.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
"NextHopIds": [
"3fee8adf-692f-4523-b742-f6fdf6da6584"
],
"Issues": [
{
"Origin": "Outbound",
"Severity": "Error",
"Type": "UserDefinedRoute",
"Context": [
{
"key": "RouteType",
"value": "User"
}
]
}
]
},
{
"Type": "Destination",
"Id": "3fee8adf-692f-4523-b742-f6fdf6da6584",
"Address": "13.107.21.200",
"ResourceId": "Unknown",
"NextHopIds": [],
"Issues": []
}
]
Web サイトの待ち時間を確認する
次の例では、Web サイトへの接続を確認します。 この例では、ソース VM を含むリージョンで Network Watcher を有効にしている必要があります。
例
$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"
$RG = Get-AzResourceGroup -Name $rgName
$VM1 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName
$networkWatcher = Get-AzNetworkWatcher | Where-Object -Property Location -EQ -Value $VM1.Location
Test-AzNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationAddress https://bing.com/
Response
次の応答では、ConnectionStatus
は Reachable (到達不能) として示されます。 接続に成功すると、待ち時間の値が提供されます。
ConnectionStatus : Reachable
AvgLatencyInMs : 1
MinLatencyInMs : 0
MaxLatencyInMs : 7
ProbesSent : 100
ProbesFailed : 0
Hops : [
{
"Type": "Source",
"Id": "1f0e3415-27b0-4bf7-a59d-3e19fb854e3e",
"Address": "10.1.1.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
"NextHopIds": [
"f99f2bd1-42e8-4bbf-85b6-5d21d00c84e0"
],
"Issues": []
},
{
"Type": "Internet",
"Id": "f99f2bd1-42e8-4bbf-85b6-5d21d00c84e0",
"Address": "204.79.197.200",
"ResourceId": "Internet",
"NextHopIds": [],
"Issues": []
}
]
ストレージ エンドポイントへの接続を確認する
次の例では、仮想マシンからのブログのストレージ アカウントへの接続を確認します。 この例では、ソース VM を含むリージョンで Network Watcher を有効にしている必要があります。
例
$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"
$RG = Get-AzResourceGroup -Name $rgName
$VM1 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName
$networkWatcher = Get-AzNetworkWatcher | Where-Object -Property Location -EQ -Value $VM1.Location
Test-AzNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationAddress https://contosostorageexample.blob.core.windows.net/
Response
次の json は、前のコマンドレットを実行した応答の例です。 接続先は到達可能なため、ConnectionStatus
プロパティには Reachable (到達可能) と表示されます。 ストレージ BLOB に到達するために必要なホップ数と待ち時間に関する詳細情報が提供されます。
ConnectionStatus : Reachable
AvgLatencyInMs : 1
MinLatencyInMs : 0
MaxLatencyInMs : 8
ProbesSent : 100
ProbesFailed : 0
Hops : [
{
"Type": "Source",
"Id": "9e7f61d9-fb45-41db-83e2-c815a919b8ed",
"Address": "10.1.1.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
"NextHopIds": [
"1e6d4b3c-7964-4afd-b959-aaa746ee0f15"
],
"Issues": []
},
{
"Type": "Internet",
"Id": "1e6d4b3c-7964-4afd-b959-aaa746ee0f15",
"Address": "13.71.200.248",
"ResourceId": "Internet",
"NextHopIds": [],
"Issues": []
}
]