Problembehandlung für Verbindungen mit Azure Network Watcher und der Azure-REST-API
Hier erfahren Sie, wie Sie mit der Problembehandlung für Verbindungen überprüfen können, ob von einem virtuellen Computer eine direkte TCP-Verbindung mit einem bestimmten Endpunkt hergestellt werden kann.
Voraussetzungen
In diesem Artikel wird davon ausgegangen, dass Sie über die folgenden Ressourcen verfügen:
- Eine Instanz von Network Watcher in der Region, in der Sie die Problembehandlung für eine Verbindung ausführen möchten
- Virtuelle Computer zum Ausführen der Problembehandlung für Verbindungen
Wichtig
Für die Problembehandlung für Verbindungen muss auf dem virtuellen Computer, auf dem Sie die Problembehandlung ausführen, die VM-Erweiterung AzureNetworkWatcherExtension
installiert sein. Informationen zur Installation der Erweiterung finden Sie für einen virtuellen Windows-Computer unter VM-Erweiterung für den Network Watcher-Agent für Windows und für einen virtuellen Linux-Computer unter VM-Erweiterung für den Network Watcher-Agent für Linux. Die Erweiterung ist nicht auf dem Zielendpunkt erforderlich.
Anmelden mit ARMClient
Melden Sie sich mit Ihren Azure-Anmeldeinformationen bei ARMClient an.
armclient login
Abrufen eines virtuellen Computers
Führen Sie das folgende Skript aus, um einen virtuellen Computer zurückzugeben. Diese Informationen werden für die Ausführung der Konnektivität benötigt.
Der folgende Code benötigt Werte für die folgenden Variablen:
- subscriptionId – die zu verwendende Abonnement-ID.
- resourceGroupName: der Name einer Ressourcengruppe, die virtuelle Computer enthält.
$subscriptionId = '<subscription id>'
$resourceGroupName = '<resource group name>'
armclient get https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Compute/virtualMachines?api-version=2015-05-01-preview
Im folgenden Beispiel wird die ID des virtuellen Computers aus der folgenden Ausgabe verwendet:
...
,
"type": "Microsoft.Compute/virtualMachines",
"location": "westcentralus",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoExampleRG/providers/Microsoft.Compute
/virtualMachines/ContosoVM",
"name": "ContosoVM"
}
]
}
Überprüfen der Konnektivität zu einem virtuellen Computer
In diesem Beispiel wird die Konnektivität zu einem virtuellen Zielcomputer über Port 80 überprüft.
Beispiel
$subscriptionId = "00000000-0000-0000-0000-000000000000"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$sourceResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Compute/virtualMachines/MultiTierApp0"
$destinationResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Compute/virtualMachines/Database0"
$destinationPort = "0"
$requestBody = @"
{
'source': {
'resourceId': '${sourceResourceId}',
'port': 0
},
'destination': {
'resourceId': '${destinationResourceId}',
'port': ${destinationPort}
}
}
"@
$response = armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/connectivityCheck?api-version=2017-03-01" $requestBody
Da dieser Vorgang eine lange Ausführungsdauer hat, werden der URI für das Ergebnis im Antwortheader wie in der folgenden Antwort zurückgegeben:
Wichtige Werte
- Location: Diese Eigenschaft enthält den URI, unter dem sich die Ergebnisse befinden, wenn der Vorgang abgeschlossen ist.
HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 10
x-ms-request-id: f09b55fe-1d3a-4df7-817f-bceb8d2a94c8
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache
Location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westcentralus/operationResults/f09b55fe-1d3a-4df7-817f-bceb8d2a94c8?api-version=2017-03-01
Server: Microsoft-HTTPAPI/2.0; Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: 367a91aa-7142-436a-867d-d3a36f80bc54
x-ms-routing-request-id: WESTUS2:20170602T202117Z:367a91aa-7142-436a-867d-d3a36f80bc54
Date: Fri, 02 Jun 2017 20:21:16 GMT
null
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.
{
"hops": [
{
"type": "Source",
"id": "0cb75c91-7ebf-4df8-8424-15594d6fb51c",
"address": "10.1.1.4",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
"nextHopIds": [
"06dee00a-9c4a-4fb1-b2ea-fa0a539ca684"
],
"issues": []
},
{
"type": "VirtualAppliance",
"id": "06dee00a-9c4a-4fb1-b2ea-fa0a539ca684",
"address": "10.1.2.4",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/fwNic/ipConfigurations/ipconfig1",
"nextHopIds": [
"75e0cfa5-f9d2-48d8-b705-2c7016f81570"
],
"issues": []
},
{
"type": "VirtualAppliance",
"id": "75e0cfa5-f9d2-48d8-b705-2c7016f81570",
"address": "10.1.3.4",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/auNic/ipConfigurations/ipconfig1",
"nextHopIds": [
"86caf6aa-33b0-48a1-b4da-f3c9ce785072"
],
"issues": [
{
"origin": "Outbound",
"severity": "Error",
"type": "NetworkSecurityRule",
"context": [
{
"key": "RuleName",
"value": "UserRule_Port80"
}
]
}
]
},
{
"type": "VnetLocal",
"id": "86caf6aa-33b0-48a1-b4da-f3c9ce785072",
"address": "10.1.4.4",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/dbNic0/ipConfigurations/ipconfig1",
"nextHopIds": [],
"issues": []
}
],
"connectionStatus": "Unreachable",
"probesSent": 100,
"probesFailed": 100
}
Überprüfen von Routingproblemen
In diesem Beispiel wird die Konnektivität zwischen einem virtuellen Computer und einem Remoteendpunkt überprüft.
Beispiel
$subscriptionId = "00000000-0000-0000-0000-000000000000"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$sourceResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Compute/virtualMachines/MultiTierApp0"
$destinationResourceId = "13.107.21.200"
$destinationPort = "80"
$requestBody = @"
{
'source': {
'resourceId': '${sourceResourceId}',
'port': 0
},
'destination': {
'address': '${destinationResourceId}',
'port': ${destinationPort}
}
}
"@
$response = armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/connectivityCheck?api-version=2017-03-01" $requestBody
Da dieser Vorgang eine lange Ausführungsdauer hat, werden der URI für das Ergebnis im Antwortheader wie in der folgenden Antwort zurückgegeben:
Wichtige Werte
- Location: Diese Eigenschaft enthält den URI, unter dem sich die Ergebnisse befinden, wenn der Vorgang abgeschlossen ist.
HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 10
x-ms-request-id: 15eeeb69-fcef-41db-bc4a-e2adcf2658e0
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache
Location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westcentralus/operationResults/15eeeb69-fcef-41db-bc4a-e2adcf2658e0?api-version=2017-03-01
Server: Microsoft-HTTPAPI/2.0; Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: 4370b798-cd8b-4d3e-ba28-22232bc81dc5
x-ms-routing-request-id: WESTUS:20170602T202606Z:4370b798-cd8b-4d3e-ba28-22232bc81dc5
Date: Fri, 02 Jun 2017 20:26:05 GMT
null
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.
{
"hops": [
{
"type": "Source",
"id": "5528055a-b393-4751-97bc-353d8c0aaeff",
"address": "10.1.1.4",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
"nextHopIds": [
"66eefa79-5bfe-48b2-b6ca-eec8247457a3"
],
"issues": [
{
"origin": "Outbound",
"severity": "Error",
"type": "UserDefinedRoute",
"context": [
{
"key": "RouteType",
"value": "User"
}
]
}
]
},
{
"type": "Destination",
"id": "66eefa79-5bfe-48b2-b6ca-eec8247457a3",
"address": "13.107.21.200",
"resourceId": "Unknown",
"nextHopIds": [],
"issues": []
}
],
"connectionStatus": "Unreachable",
"probesSent": 100,
"probesFailed": 100
}
Überprüfen der Websitelatenz
Im folgenden Beispiel wird die Konnektivität zu einer Website überprüft.
Beispiel
$subscriptionId = "00000000-0000-0000-0000-000000000000"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$sourceResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Compute/virtualMachines/MultiTierApp0"
$destinationResourceId = "https://bing.com"
$destinationPort = "0"
$requestBody = @"
{
'source': {
'resourceId': '${sourceResourceId}',
'port': 0
},
'destination': {
'address': '${destinationResourceId}',
'port': ${destinationPort}
}
}
"@
$response = armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/connectivityCheck?api-version=2017-03-01" $requestBody
Da dieser Vorgang eine lange Ausführungsdauer hat, werden der URI für das Ergebnis im Antwortheader wie in der folgenden Antwort zurückgegeben:
Wichtige Werte
- Location: Diese Eigenschaft enthält den URI, unter dem sich die Ergebnisse befinden, wenn der Vorgang abgeschlossen ist.
HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 10
x-ms-request-id: e49b12c7-c232-472c-b6d2-6c257ce80fa5
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache
Location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westcentralus/operationResults/e49b12c7-c232-472c-b6d2-6c257ce80fa5?api-version=2017-03-01
Server: Microsoft-HTTPAPI/2.0; Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: c3d9744f-5683-427d-bdd1-636b68ab01b6
x-ms-routing-request-id: WESTUS:20170602T203101Z:c3d9744f-5683-427d-bdd1-636b68ab01b6
Date: Fri, 02 Jun 2017 20:31:00 GMT
null
Antwort
In der folgenden Antwort wird der connectionStatus
als Erreichbar angezeigt. Wenn eine Verbindung erfolgreich ist, werden Latenzwerte bereitgestellt.
{
"hops": [
{
"type": "Source",
"id": "6adc0fe1-e384-4220-b1b1-f0d181220072",
"address": "10.1.1.4",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
"nextHopIds": [
"b50b7076-9ff2-4782-b40e-0b89cf758f74"
],
"issues": []
},
{
"type": "Internet",
"id": "b50b7076-9ff2-4782-b40e-0b89cf758f74",
"address": "204.79.197.200",
"resourceId": "Internet",
"nextHopIds": [],
"issues": []
}
],
"connectionStatus": "Reachable",
"avgLatencyInMs": 1,
"minLatencyInMs": 0,
"maxLatencyInMs": 7,
"probesSent": 100,
"probesFailed": 0
}
Überprüfen der Konnektivität zu einem Speicherendpunkt
Im folgenden Beispiel wird die Konnektivität von einem virtuellen Computer mit einem Blobspeicherkonto überprüft.
Beispiel
$subscriptionId = "00000000-0000-0000-0000-000000000000"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$sourceResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Compute/virtualMachines/MultiTierApp0"
$destinationResourceId = "https://build2017nwdiag360.blob.core.windows.net/"
$destinationPort = "0"
$requestBody = @"
{
'source': {
'resourceId': '${sourceResourceId}',
'port': 0
},
'destination': {
'address': '${destinationResourceId}',
'port': ${destinationPort}
}
}
"@
$response = armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/connectivityCheck?api-version=2017-03-01" $requestBody
Da dieser Vorgang eine lange Ausführungsdauer hat, werden der URI für das Ergebnis im Antwortheader wie in der folgenden Antwort zurückgegeben:
Wichtige Werte
- Location: Diese Eigenschaft enthält den URI, unter dem sich die Ergebnisse befinden, wenn der Vorgang abgeschlossen ist.
HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 10
x-ms-request-id: c4ed3806-61ea-4a6b-abc1-9d6f2afc79c2
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache
Location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westcentralus/operationResults/c4ed3806-61ea-4a6b-abc1-9d6f2afc79c2?api-version=2017-03-01
Server: Microsoft-HTTPAPI/2.0; Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: 93bf5af0-fef5-4b7a-bb9e-9976ba5cdb95
x-ms-routing-request-id: WESTUS2:20170602T200504Z:93bf5af0-fef5-4b7a-bb9e-9976ba5cdb95
Date: Fri, 02 Jun 2017 20:05:03 GMT
null
Antwort
Im folgenden Beispiel sehen Sie die Antwort auf die Ausführung des vorherigen API-Aufrufs. Da die Überprüfung erfolgreich ist, wird die Eigenschaft connectionStatus
als Erreichbar angezeigt. Die Einzelheiten in Bezug auf die Anzahl der Hops, die zum Erreichen des Speicherblobs und der Latenz benötigt werden, werden bereitgestellt.
{
"hops": [
{
"type": "Source",
"id": "6adc0fe1-e384-4220-b1b1-f0d181220072",
"address": "10.1.1.4",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
"nextHopIds": [
"b50b7076-9ff2-4782-b40e-0b89cf758f74"
],
"issues": []
},
{
"type": "Internet",
"id": "b50b7076-9ff2-4782-b40e-0b89cf758f74",
"address": "13.71.200.248",
"resourceId": "Internet",
"nextHopIds": [],
"issues": []
}
],
"connectionStatus": "Reachable",
"avgLatencyInMs": 1,
"minLatencyInMs": 0,
"maxLatencyInMs": 7,
"probesSent": 100,
"probesFailed": 0
}
Nächste Schritte
Informationen zur Automatisierung von Paketerfassungen mit VM-Warnungen finden Sie unter Erstellen einer durch Warnungen ausgelösten Paketerfassung.
Lesen Sie den Artikel zur IP-Datenflussüberprüfung, um herauszufinden, ob bestimmter eingehender oder ausgehender Datenverkehr für Ihren virtuellen Computer zulässig ist.