Controllare la connettività con Azure Network Watcher usando PowerShellCheck connectivity with Azure Network Watcher using PowerShell

Informazioni su come usare la connettività per verificare se è possibile stabilire una connessione TCP diretta da una macchina virtuale a uno specifico endpoint.Learn how to use connectivity to verify if a direct TCP connection from a virtual machine to a given endpoint can be established.

Prima di iniziareBefore you begin

Questo articolo presuppone che l'utente disponga delle risorse seguenti:This article assumes you have the following resources:

  • Un'istanza di Network Watcher nell'area di cui si vuole controllare la connettività.An instance of Network Watcher in the region you want to check connectivity.

  • Macchine virtuali con cui controllare la connettività.Virtual machines to check connectivity with.

Importante

Il controllo della connettività di Network Watcher è attualmente in versione di anteprima pubblica e potrebbe non offrire lo stesso livello di disponibilità e affidabilità delle funzionalità presenti nella versione con disponibilità generale.Network Watcher connectivity check is currently in public preview release and may not have the same level of availability and reliability as features that are in general availability release. Alcune funzionalità potrebbero non essere supportate, potrebbero avere funzioni limitate o potrebbero non essere disponibili in tutte le località di Azure.Certain features may not be supported, may have constrained capabilities, and may not be available in all Azure locations. Per ricevere le notifiche più aggiornate su disponibilità e stato di questa funzionalità, vedere la pagina Aggiornamenti di Azure (Network Watcher).For the most up-to-date notifications on availability and status of this feature, check the Azure Network Watcher updates page.

Importante

Il controllo della connettività richiede un'estensione macchina virtuale AzureNetworkWatcherExtension.Connectivity check requires a virtual machine extension AzureNetworkWatcherExtension. Per installare l'estensione in una VM Windows, vedere Estensione macchina virtuale agente Azure Network Watcher per Windows e per una VM Linux VM vedere Estensione macchina virtuale Azure Network Watcher Agent per Linux.For installing the extension on a Windows VM visit Azure Network Watcher Agent virtual machine extension for Windows and for Linux VM visit Azure Network Watcher Agent virtual machine extension for Linux.

Registrare la funzionalità in anteprimaRegister the preview capability

La connettività è attualmente disponibile in anteprima pubblica; per usare questa funzionalità, è necessario averne eseguito la registrazione.Connectivity is currently in public preview, to use this feature it needs to be registered. A tale scopo, eseguire questo esempio di PowerShell:To do this, run the following PowerShell sample:

Register-AzureRmProviderFeature -FeatureName AllowNetworkWatcherConnectivityCheck  -ProviderNamespace Microsoft.Network
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.Network

Per verificare se la registrazione è riuscita, eseguire questo esempio di Powershell:To verify the registration was successful, run the following Powershell sample:

Get-AzureRmProviderFeature -FeatureName AllowNetworkWatcherConnectivityCheck  -ProviderNamespace  Microsoft.Network

Se la funzionalità è stata registrata correttamente, l'output deve corrispondere a quanto segue:If the feature was properly registered, the output should match the following:

FeatureName         ProviderName      RegistrationState
-----------         ------------      -----------------
AllowNetworkWatcherConnectivityCheck  Microsoft.Network Registered

Controllare la connettività a una macchina virtualeCheck connectivity to a virtual machine

Questo esempio controlla la connettività a una macchina virtuale di destinazione sulla porta 80.This example checks connectivity to a destination virtual machine over port 80. Questo esempio presuppone che Network Watcher sia abilitato nell'area che contiene la macchina virtuale di origine.This example requires that you have Network Watcher enabled in the region containing the source VM.

EsempioExample

$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"
$destVMName = "Database0"

$RG = Get-AzureRMResourceGroup -Name $rgName

$VM1 = Get-AzureRMVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName
$VM2 = Get-AzureRMVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $destVMName

$nw = Get-AzurermResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq $VM1.Location} 
$networkWatcher = Get-AzureRmNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName

Test-AzureRmNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationId $VM2.Id -DestinationPort 80

ResponseResponse

La risposta seguente è relativa all'esempio precedente.The following response is from the previous example. In questa risposta ConnectionStatus è Unreachable.In this response, the ConnectionStatus is Unreachable. Si noti che tutti i probe inviati presentano un errore.You can see that all the probes sent failed. Si è verificato un problema di connettività nell'appliance virtuale a causa di un valore NetworkSecurityRule configurato dall'utente per bloccare il traffico in ingresso sulla porta 80, denominato UserRule_Port80.The connectivity failed at the virtual appliance due to a user-configured NetworkSecurityRule named UserRule_Port80, configured to block incoming traffic on port 80. Queste informazioni possono essere usate per analizzare i problemi di connessione.This information can be used to research connection issues.

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/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/resourceGrou
                   ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/dbNic0/ipConfigurati
                   ons/ipconfig1",
                       "NextHopIds": [],
                       "Issues": []
                     }
                   ]

Problemi relativi alla convalida del routingValidate routing issues

L'esempio verifica la connettività tra una macchina virtuale e un endpoint remoto.The example checks connectivity between a virtual machine and a remote endpoint. Questo esempio presuppone che Network Watcher sia abilitato nell'area che contiene la macchina virtuale di origine.This example requires that you have Network Watcher enabled in the region containing the source VM.

EsempioExample

$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"

$RG = Get-AzureRMResourceGroup -Name $rgName
$VM1 = Get-AzureRMVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName

$nw = Get-AzurermResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq $VM1.Location } 
$networkWatcher = Get-AzureRmNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName

Test-AzureRmNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationAddress 13.107.21.200 -DestinationPort 80

ResponseResponse

Nell'esempio seguente ConnectionStatus è Unreachable.In the following example, the ConnectionStatus is shown as Unreachable. I dettagli relativi a Hops sotto Issues indicano che il traffico è stato bloccato a causa di un valore UserDefinedRoute.In the Hops details, you can see under Issues that the traffic was blocked due to a UserDefinedRoute.

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/00000000-0000-0000-0000-000000000000/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": []
                     }
                   ]

Controllare la latenza del sito WebCheck website latency

L'esempio seguente controlla la connettività a un sito Web.The following example checks the connectivity to a website. Questo esempio presuppone che Network Watcher sia abilitato nell'area che contiene la macchina virtuale di origine.This example requires that you have Network Watcher enabled in the region containing the source VM.

EsempioExample

$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"

$RG = Get-AzureRMResourceGroup -Name $rgName
$VM1 = Get-AzureRMVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName

$nw = Get-AzurermResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq $VM1.Location } 
$networkWatcher = Get-AzureRmNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName


Test-AzureRmNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationAddress http://bing.com/

ResponseResponse

Nella risposta seguente il valore indicato per ConnectionStatus è Reachable.In the following response, you can see the ConnectionStatus shows as Reachable. In caso di esito positivo della connessione vengono forniti i valori della latenza.When a connection is successful, latency values are provided.

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/00000000-0000-0000-0000-000000000000/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": []
                     }
                   ]

Controllare la connettività a un endpoint di archiviazioneCheck connectivity to a storage endpoint

L'esempio seguente testa la connettività da una macchina virtuale a un account di archiviazione BLOB.The following example tests the connectivity from a virtual machine to a blog storage account. Questo esempio presuppone che Network Watcher sia abilitato nell'area che contiene la macchina virtuale di origine.This example requires that you have Network Watcher enabled in the region containing the source VM.

EsempioExample

$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"

$RG = Get-AzureRMResourceGroup -Name $rgName

$VM1 = Get-AzureRMVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName

$nw = Get-AzurermResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq $VM1.Location }
$networkWatcher = Get-AzureRmNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName

Test-AzureRmNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationAddress https://contosostorageexample.blob.core.windows.net/ 

ResponseResponse

Il codice JSON seguente è la risposta di esempio generata dall'esecuzione del cmdlet precedente.The following json is the example response from running the previous cmdlet. Poiché la destinazione è raggiungibile, la proprietà ConnectionStatus risulta Reachable.As the destination is reachable, the ConnectionStatus property shows as Reachable. Vengono forniti i dettagli sul numero di hop necessari per raggiungere il BLOB di archiviazione e la latenza.You are provided the details regarding the number of hops required to reach the storage blob and latency.

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/00000000-0000-0000-0000-000000000000/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": []
                     }
                   ]

Passaggi successiviNext steps

Per stabilire se un traffico specificato è consentito all'interno o all'esterno di una macchina virtuale, vedere Check IP flow verify (Controllare la verifica del flusso IP).Find if certain traffic is allowed in or out of your VM by visiting Check IP flow verify

Se il traffico risulta bloccato e non dovrebbe esserlo, vedere Gestire i gruppi di sicurezza di rete per individuare il gruppo di sicurezza di rete e le relative regole di sicurezza definite.If traffic is being blocked and it should not be, see Manage Network Security Groups to track down the network security group and security rules that are defined.