Fehlersuche bei ausgehenden Verbindungen mit PowerShell
In diesem Artikel erfahren Sie, wie Sie die Funktion zur Verbindungsfehlerbehebung von Azure Network Watcher verwenden, um Probleme mit der Konnektivität zu diagnostizieren und zu beheben. Weitere Informationen zur Behandlung von Verbindungsproblemen finden Sie unter Übersicht über die Verbindungsproblembehandlung.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
Network Watcher ist in der Region des virtuellen Computers (VM) aktiviert, den Sie behandeln möchten. Standardmäßig aktiviert Azure Network Watcher in einer Region, wenn Sie ein virtuelles Netzwerk darin erstellen. Weitere Informationen finden Sie unter Aktivieren oder Deaktivieren von Azure Network Watcher.
Eine VM, auf der die VM-Erweiterung für den Network Watcher-Agent installiert ist und die über die folgende ausgehende TCP-Verbindung verfügt:
- mit 169.254.169.254 über Port 80
- mit 168.63.129.16 über Port 8037
Eine zweite VM mit eingehender TCP-Konnektivität von 168.63.129.16 über den zu testenden Port (für Portscanner-Diagnosetest).
Azure Cloud Shell oder Azure PowerShell.
Die Schritte in diesem Artikel führen die Azure PowerShell Cmdlets interaktiv in Azure Cloud Shell aus. Um die Befehle in Cloud Shell auszuführen, wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Azure Cloud Shell innerhalb des Azure-Portals starten.
Sie können Azure PowerShell auch lokal installieren, um die Cmdlets auszuführen. Für diesen Artikel ist das Az PowerShell-Modul erforderlich. Weitere Informationen finden Sie unter Installieren von Azure PowerShell. Führen Sie
Get-InstalledModule -Name Az
aus, um die installierte Version zu ermitteln. Melden Sie sich bei Azure mit dem Cmdlet Connect-AzAccount an, wenn Sie PowerShell lokal ausführen.
Hinweis
- Informationen zum Installieren der Erweiterung auf einer Windows-VM finden Sie unter VM-Erweiterung des Network Watcher-Agents für Windows.
- Informationen zum Installieren der Erweiterung auf einer Linux-VM finden Sie unter VM-Erweiterung des Network Watcher-Agents für Linux.
- Um eine bereits installierte Erweiterung zu aktualisieren, siehe Aktualisieren der VM-Erweiterung des Network Watcher-Agents auf die neueste Version.
Überprüfen der Konnektivität zu einem virtuellen Computer
In diesem Beispiel wird die Verbindung mit einem virtuellen Zielcomputer über Port 80 überprüft. Für dieses Beispiel muss Network Watcher in der Region mit der Quell-VM aktiviert sein.
Beispiel
$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
Antwort
Die folgende Antwort stammt aus dem vorherigen Beispiel. In dieser Antwort ist der ConnectionStatus
Nicht erreichbar. Wie Sie sehen, sind alle gesendeten Tests fehlgeschlagen. Bei der Konnektivität ist am virtuellen Gerät ein Fehler aufgetreten. Der Grund dafür ist eine benutzerdefinierte NetworkSecurityRule
mit der Bezeichnung UserRule_Port80, deren Konfiguration eingehenden Datenverkehr über Port 80 blockiert. Diese Informationen können bei der Untersuchung von Konnektivitätsproblemen verwendet werden.
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": []
}
]
Überprüfen von Routingproblemen
In diesem Beispiel wird die Konnektivität zwischen einem virtuellen Computer und einem Remoteendpunkt überprüft. Für dieses Beispiel muss Network Watcher in der Region mit der Quell-VM aktiviert sein.
Beispiel
$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
Antwort
Im folgenden Beispiel wird der ConnectionStatus
als Nicht erreichbar angezeigt. In den Hops
-Details können Sie unter Issues
sehen, dass der Datenverkehr aufgrund einer UserDefinedRoute
blockiert war.
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": []
}
]
Überprüfen der Websitelatenz
Im folgenden Beispiel wird die Konnektivität mit einer Website überprüft. Für dieses Beispiel muss Network Watcher in der Region mit der Quell-VM aktiviert sein.
Beispiel
$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/
Antwort
In der folgenden Antwort wird der ConnectionStatus
als Erreichbar angezeigt. Wenn eine Verbindung erfolgreich ist, werden Latenzwerte bereitgestellt.
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": []
}
]
Überprüfen der Konnektivität zu einem Speicherendpunkt
Im folgenden Beispiel wird die Konnektivität von einem virtuellen Computer mit einem Blobspeicherkonto überprüft. Für dieses Beispiel muss Network Watcher in der Region mit der Quell-VM aktiviert sein.
Beispiel
$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/
Antwort
Der folgende JSON-Code ist die Beispielantwort auf die Ausführung des vorherigen Cmdlets. Da das Ziel erreichbar ist, wird die ConnectionStatus
-Eigenschaft als Erreichbar angezeigt. Sie erhalten Angaben zur Anzahl der Sprünge, die erforderlich sind, um den Speicherblob zu erreichen, sowie zur Latenzzeit.
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": []
}
]